commit 9902fe23f16142499fe8a5c2cda7cb471f61c398 Author: redraz Date: Wed Oct 25 14:42:26 2023 +0300 Initial Ultra 1.5 diff --git a/SaltySD/exceptions.txt b/SaltySD/exceptions.txt new file mode 100644 index 0000000..77b6ddb --- /dev/null +++ b/SaltySD/exceptions.txt @@ -0,0 +1,52 @@ +;GRID: Autosport +;1.4.0RC9, 1.5_46790, 1.8_49215 and 1.8.3_61741 crash, 1.4.1_45339 stucks in infinite loop +0100DC800A602000 + +;Luigi's Mansion 3 +;1.0.0-1.4.0 crash +0100DCA0064A6000 + +;YouTube +;Stucks in infinite loop +X01003A400C3DA000 + +;Alien: Isolation +;1.1_46609 - 1.1.4_60709 crash on first loading +010075D00E8BA000 + +;Grandia Collection +;Only launcher is 64-bit, games are 32-bit +0100E0600BBC8000 + +;Immortals Fenyx Rising +;1.0.3, 1.3.4 crash +01004A600EC0A000 + +;Stubbs the Zombie in Rebel Without a Pulse +;1.0.0 - 1.0.2 crash on boot +X0100964012528000 + +;Olympic Games Tokyo 2020 – The Official Video Game +;1.0.0 crash on boot +010034B00E14C000 + +;Mario Strikers: Battle League +;1.0.0 crash on boot +010019401051C000 + +;The Lara Croft Collection +;1.0.0 - Games in collection are crashing on boot, only launcher doesn't +010079C017F5E001 +010079C017F5E002 + +;Plants vs. Zombies: Battle for Neighborville +;1.0.3 crash on boot +0100C56010FD8000 + +;EA SPORTS FC 24 +;1.0.0 - v1.53.dd6d crash +0100BDB01A0E6000 + +;Company of Heroes Collection +;1.5_66915 crash on boot +0100ABD0156F8000 diff --git a/SaltySD/flags/log.flag b/SaltySD/flags/log.flag new file mode 100644 index 0000000..e69de29 diff --git a/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml b/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml new file mode 100644 index 0000000..b169203 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml @@ -0,0 +1,75 @@ +# TT Isle of Man 2 1.0.1 +# BID: 02F2E5C8CBF5A92F + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = 0.96 * (1000/FPS) + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 64 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 48 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 38.4 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 32 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 27.42 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 24 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 21.333333 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 19.2 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 17.454545 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2153CFC] + value_type: float + value: 16 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml b/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml new file mode 100644 index 0000000..a6d6913 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml @@ -0,0 +1,99 @@ +# Rad Rogers: Radical Edition 1.2.0 +# BID: 78885A1CA987C04C + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS (100 to ensure than NVN itself will handle 60 FPS while not enabling SmoothedFrameRateRange) + - + type: write + address: [MAIN, 0x579C208, 0] + value_type: float + value: [100, 100] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml b/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml new file mode 100644 index 0000000..cdb4e2e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml @@ -0,0 +1,219 @@ +# BPM: Bullets Per Minute 0.1 +# BID: 331E3DFBDF650226 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [15, 15] + # t.VSync (default value) - game really struggles to get 60 FPS with this turned on + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [1, 1] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [20, 20] + # t.VSync (default value) + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [1, 1] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [25, 25] + # t.VSync (default value) + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [1, 1] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [0, 0] + # t.VSync (default value) + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [1, 1] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [35, 35] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [40, 40] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [45, 45] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [50, 50] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [55, 55] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B8C78, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69AEE10, 0] + value_type: float + value: [60, 60] + # t.VSync + - + type: write + address: [MAIN, 0x6220790, 0] + value_type: int32 + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml b/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml new file mode 100644 index 0000000..f8d2c1b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml @@ -0,0 +1,75 @@ +# WRC Generations 1.2.2 +# BID: B8BE1CFAE53CAEBE + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2D5A83C] + value_type: float + value: 14.333333 diff --git a/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml b/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml new file mode 100644 index 0000000..6a01a30 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml @@ -0,0 +1,75 @@ +# Sniper Elite 4 1.0.3 +# BID: 4EEA2970DF38ECE1 + +unsafeCheck: true + +15FPS: + # Dynamic Resolution frame time target = (32.3/(1000/30)) * (1000/FPS) + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 64.6 +20FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 48.45 +25FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 38.76 +30FPS: + # Dynamic Resolution frame time target (default value) + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 32.3 +35FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 27.68 +40FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 24.225 +45FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 21.53 +50FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 19.38 +55FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 17.61 +60FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x2D7A974] + value_type: float + value: 16.15 diff --git a/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml b/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml new file mode 100644 index 0000000..59d6ffd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml @@ -0,0 +1,135 @@ +# The Elder Scrolls V: Skyrim 1.1.177.3285177 +# BID: 771BDFB65F8D0AF7 + +unsafeCheck: true + +15FPS: + # Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 60 + # Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS) + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 66 +20FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 45 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 49.5 +25FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 36 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 39.6 +30FPS: + # Dynamic Resolution Frame Time Min (default value) + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 30 + # Dynamic Resolution Frame Time Max (default value) + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 33 +35FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 25.71 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 28.28 +40FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 22.5 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 24.75 +45FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 20 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 22 +50FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 18 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 19.8 +55FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 16.36 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 18 +60FPS: + # Dynamic Resolution Frame Time Min + - + type: write + address: [MAIN, 0x33178C8] + value_type: float + value: 15 + # Dynamic Resolution Frame Time Max + - + type: write + address: [MAIN, 0x33178B0] + value_type: float + value: 16.5 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml b/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml new file mode 100644 index 0000000..c6d39b1 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml @@ -0,0 +1,159 @@ +# Vampyr 0.4 +# BID: E417100FFEEFD1DE + +unsafeCheck: true + +15FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [15, 15] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynResTargetFPS (default value) + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [30, 30] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [35, 35] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [55, 55] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynResTargetFPS + - + type: write + address: [MAIN, 0x71A31F8, 0] + value_type: int32 + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71B2BD0, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml b/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml new file mode 100644 index 0000000..477b901 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml @@ -0,0 +1,75 @@ +# Zombie Army 4: Dead War 1.1.1 +# BID: 12024D08CCFD25EB + +unsafeCheck: true + +15FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 15 +20FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 20 +25FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 25 +30FPS: + # Dynamic Resolution FPS Target (default value) + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 30 +35FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 35 +40FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 40 +45FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 45 +50FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 50 +55FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 55 +60FPS: + # Dynamic Resolution FPS Target + - + type: write + address: [MAIN, 0x179EF64] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml b/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml new file mode 100644 index 0000000..995b82c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml @@ -0,0 +1,159 @@ +# Raji: An Ancient Epic 1.0.4 +# BID: 8A39E660F956BB00 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6B461B8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6B3C330, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml b/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml new file mode 100644 index 0000000..56e53f8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml @@ -0,0 +1,339 @@ +# Remnant: From The Ashes 1.0.1 +# BID: 49CF6B0B0A62F9E2 + +unsafeCheck: false + +15FPS: + # r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93) + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [62, 62] + # r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87) + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [58, 58] + # r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945) + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [63, 63] + # r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93) + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [62, 62] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [46.5, 46.5] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [43.5, 43.5] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [47.25, 47.25] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [46.25, 46.25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [37.2, 37.2] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [34.2, 34.2] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [37.8, 37.8] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [37.2, 37.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.MaxGPUTime (default value) + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [31, 31] + # r.DynamicRes.MinGPUTime (default value) + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [29, 29] + # r.DynamicRes.MaxGPUTimeStill (default value) + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [31.5, 31.5] + # r.DynamicRes.MinGPUTimeStill (default value) + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [31, 31] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [26.57, 26.57] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [24.85, 24.85] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [27, 27] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [26.57, 26.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [23.25, 23.25] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [21.75, 21.75] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [23.625, 23.625] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [23.25, 23.25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [20.66, 20.66] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [19.33, 19.33] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [21, 21] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [20.66, 20.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [18.6, 18.6] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [17.4, 17.4] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [18.9, 18.9] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [18.6, 18.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [16.9, 16.9] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [15.81, 15.81] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [17.18, 17.18] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [16.9, 16.9] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.MaxGPUTime + - + type: write + address: [MAIN, 0x7E23AF0, 0] + value_type: float + value: [15.5, 15.5] + # r.DynamicRes.MinGPUTime + - + type: write + address: [MAIN, 0x7E23B08, 0] + value_type: float + value: [14.5, 14.5] + # r.DynamicRes.MaxGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B20, 0] + value_type: float + value: [15.75, 15.75] + # r.DynamicRes.MinGPUTimeStill + - + type: write + address: [MAIN, 0x7E23B38, 0] + value_type: float + value: [15.5, 15.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E46698, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml b/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml new file mode 100644 index 0000000..3a9c36c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml @@ -0,0 +1,159 @@ +# Mortal Shell 1.0.1 +# BID: BE2D1A84420113EC + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6ACCBD8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6AEF760, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml b/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml new file mode 100644 index 0000000..3aed03c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml @@ -0,0 +1,135 @@ +# From Space 1.0.357 +# BID: 593BD545295A65FB + +unsafeCheck: true + +15FPS: + # vSyncCount (we are resetting it to 0 so game will calculate Dynamic Resolution for specified FPS target) + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 15 +20FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 20 +25FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 25 +30FPS: + # vSyncCount (default value) + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 2 + # targetFrameRate (default value) + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 0 +35FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 35 +40FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 40 +45FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 45 +50FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 50 +55FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 0 + # targetFrameRate + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 55 +60FPS: + # vSyncCount + - + type: write + address: [MAIN, 0x68A9828, 0x210, 0x68] + value_type: int32 + value: 1 + # targetFrameRate (default value) + - + type: write + address: [MAIN, 0x6483A70] + value_type: int32 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml b/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml new file mode 100644 index 0000000..14fc1a4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml @@ -0,0 +1,66 @@ +# WARRIORS OROCHI 4 1.0.13 +# BID: 5C9CCD358BE85FC9 +# Credits to Hazerou for figuring out the offset + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 2 +20FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 2 +25FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 2 +30FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 2 +35FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 +40FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 +45FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 +50FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 +55FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 +60FPS: + - + type: write + address: [MAIN, 0x3AF80, -0x931F4] + value_type: int32 + value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml b/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml new file mode 100644 index 0000000..8cf36c3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml @@ -0,0 +1,159 @@ +# Grand Theft Auto: Vice City - Definitive Edition 1.0.7 +# BID: 56EEFA704373BDB3 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value is 36.5, obviously we don't want it) + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7565298, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7589FE0, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml new file mode 100644 index 0000000..e9982e2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml @@ -0,0 +1,159 @@ +# Gigantosaurus: Dino Kart 1.0.0 +# BID: 5F7A2866D8E20BBA + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6D196C8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6D46C58, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml b/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml new file mode 100644 index 0000000..b2e4433 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml @@ -0,0 +1,159 @@ +# Ship Graveyard Simulator 1.0.0 +# BID: 63B72CD5F2A90020 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D46658, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D73FF8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml b/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml new file mode 100644 index 0000000..a4f193d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml @@ -0,0 +1,75 @@ +# WRC9 1.2.0 +# BID: 66B2DEA98B5CDF65 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x27C4B0C] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml b/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml new file mode 100644 index 0000000..816f4bb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml @@ -0,0 +1,159 @@ +# Bright Memory: Infinite Gold Edition 1.2 +# BID: 323631B628A32D84 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69CE1D8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69FBA78, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml b/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml new file mode 100644 index 0000000..efc1013 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml @@ -0,0 +1,192 @@ +# Persona 5 Scramble 1.0.3 +# BID: 737E56D43D2C0B38 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [15, 2] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 15 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 1 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [20, 2] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 20 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 1 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [25, 2] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 25 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 1 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [30, 2] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 30 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 1 +35FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [35, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 35 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [40, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 40 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [45, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 45 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [50, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 50 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [55, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 55 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x1D15228] + value_type: int32 + value: [60, 1] + - + type: write + address: [MAIN, 0x1D28CB8] + value_type: float + value: 60 + - + type: write + address: [MAIN, 0x2A88DC0] + value_type: int32 + value: 0 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml b/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml new file mode 100644 index 0000000..8441a3a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml @@ -0,0 +1,159 @@ +# Insomnis 1.01 +# BID: 4C6727375D877B90 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x680CAB8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x683A358, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml new file mode 100644 index 0000000..c9c59fe --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml @@ -0,0 +1,91 @@ +# Farming Simulator 23 Nintendo Switch Edition 1.1.0.0 +# BID: 1C38F0E269ED4438 + +unsafeCheck: true + +15FPS: + # Internal FPS lock + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # default value + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 30 +35FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0xFAC7AC] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml b/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml new file mode 100644 index 0000000..fb81141 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml @@ -0,0 +1,159 @@ +# Asterix & Obelix XXXL - The Ram From Hibernia 1.04.00 +# BID: DF556AF2E30073C0 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71331A8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7160D78, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml b/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml new file mode 100644 index 0000000..9c76a5c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml @@ -0,0 +1,276 @@ +# CONVERGENCE: A League of Legends Story 1.0.1 +# BID: 7E25622D50D562BF +# Everything derived through DS.Game.Luna.NetworkTime$$Apply30FpsSettings + DS.Game.Luna.NetworkTime$$Apply60FpsSettings + +unsafeCheck: true + +15FPS: + # fixedDeltaTime = 1/FPS + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0666666666 + - # maximumParticleDeltaTime = 1/FPS + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0666666666 + - # maximumDeltaTime = 6 * (1/FPS) + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.4 + - # DS.Tech.Networking.Clock_TypeInfo = 1/FPS + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0666666666 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo => every 15 FPS jump += 1 + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 1 +20FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.05 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.05 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.3 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.05 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 1 +25FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.04 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.04 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.24 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.04 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 1 +30FPS: + # fixedDeltaTime (default value) + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0333333333 + - # maximumParticleDeltaTime (default value) + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0333333333 + - # maximumDeltaTime (default value) + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.2 + - # DS.Tech.Networking.Clock_TypeInfo (default value) + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0333333333 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 2 +35FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0285714 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0285714 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.17142857142 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0285714 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 2 +40FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.025 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.025 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.15 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.025 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 2 +45FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0222222222 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0222222222 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.1333333333 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0222222222 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 3 +50FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.02 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.02 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.12 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.02 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 3 +55FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0181818181 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0181818181 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.109090909 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0181818181 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 3 +60FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x52BD280, 0x48] + value_type: float + value: 0.0166666666 + - # maximumParticleDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x104] + value_type: float + value: 0.0166666666 + - # maximumDeltaTime + type: write + address: [MAIN, 0x52BD280, 0x100] + value_type: float + value: 0.1 + - # DS.Tech.Networking.Clock_TypeInfo + type: write + address: [MAIN, 0x4EABAE0, 0xB8, 0] + value_type: float + value: 0.0166666666 + - # DS.Tech.Networking.ClientInterpolator_TypeInfo + type: write + address: [MAIN, 0x4EABA98, 0xB8, 0] + value_type: int32 + value: 4 diff --git a/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml b/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml new file mode 100644 index 0000000..2a82895 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml @@ -0,0 +1,75 @@ +# BioShock Remastered 2 1.0.2 +# BID: 7D1714279435589C + +unsafeCheck: true + +15FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 15 +20FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 20 +25FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 25 +30FPS: + # Dynamic resolution FPS factor (default) + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 30 +35FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 35 +40FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 40 +45FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 45 +50FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 50 +55FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 55 +60FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x212C138, 0] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml b/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml new file mode 100644 index 0000000..9426dbf --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml @@ -0,0 +1,92 @@ +# Divinity Original Sin 2 1.0.10 +# BID: 4979B200D53BB282 +# Game is using double buffer, nvnWindowBuilderSetTextures has hardcoded values. +# So it's not possible to get stable FPS lock between 30 and 60. + +unsafeCheck: true + +MASTER_WRITE: + # Change location of GPU frametime double divider to MAIN+0x32C6D00 + - + type: bytes + main_offset: 0x921768 + value_type: uint32 + value: + - 0xB0014D28 + - 0xFD468101 + # Default value + - + type: bytes + main_offset: 0x32C6D00 + value_type: double + value: 1000000 +15FPS: + # GPU Frametime divider = (30/FPS) * 1000000 + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 2000000 +20FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 1500000 +25FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 1200000 +30FPS: + # GPU Frametime divider (default value) + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 1000000 +35FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 857142 +40FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 750000 +45FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 666666 +50FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 600000 +55FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 545454 +60FPS: + # GPU Frametime divider + - + type: write + address: [MAIN, 0x32C6D00] + value_type: double + value: 500000 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml b/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml new file mode 100644 index 0000000..af91900 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml @@ -0,0 +1,159 @@ +# The Sinking City 1.2.0 +# BID: 85E49C169A8B988A + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5228DC0, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x524F940, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml b/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml new file mode 100644 index 0000000..5d896f6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml @@ -0,0 +1,220 @@ +# Need For Speed Hot Pursuit Remastered 1.0.3 +# BID: 799D1061182C1302 +# Thanks to theboy181 for finding instruction responsible for calculating frame time which I used to find where is FPS target stored + +unsafeCheck: true + +15FPS: + # FPS Target = (19200*(1000/(FPS*2))) + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 640000 + # FPS 2D Game Speed Target = (1/(FPS*2)) + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.03333333 + # FPS 3D Game Speed Target = (1/(FPS*2)) + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.03333333 + - + type: block + what: timing +20FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 480000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.025 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.025 + - + type: block + what: timing +25FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 384000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.02 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.02 + - + type: block + what: timing +30FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 320000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.01666666 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.01666666 +35FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 274286 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.01428571 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.01428571 + - + type: block + what: timing +40FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 240000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.0125 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.0125 + - + type: block + what: timing +45FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 213334 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.01111111 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.01111111 + - + type: block + what: timing +50FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 192000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.01 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.01 + - + type: block + what: timing +55FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 174546 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.00909091 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.00909091 + - + type: block + what: timing +60FPS: + # FPS Target + - + type: write + address: [MAIN, 0xED96A8, 0x30] + value_type: uint64 + value: 160000 + # FPS 2D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x30] + value_type: float + value: 0.00833333 + # FPS 3D Game Speed Target + - + type: write + address: [MAIN, 0xEFFC60, 0x50] + value_type: float + value: 0.00833333 diff --git a/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml b/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml new file mode 100644 index 0000000..8eebd96 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml @@ -0,0 +1,159 @@ +# Gamedec - Definitive Edition 1.3.0 +# BID: BFA92380757EF97D + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8A9A438, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8AC7808, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml b/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml new file mode 100644 index 0000000..7c1179a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml @@ -0,0 +1,141 @@ +# Hyrule Warriors: Age of Calamity 1.3.0 +# BID: C3CF52BF2B05D731 +# Thanks to iCris4 for finding offsets +# Some cutscenes speed is hardlocked to 30 FPS, so setting FPS above results in faster speed + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [15, 2, 15] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [20, 2, 20] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [25, 2, 25] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [30, 2, 30] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 30 +35FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [35, 1, 35] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [40, 1, 40] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [45, 1, 45] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [50, 1, 50] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [55, 1, 55] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x269E150] + value_type: int32 + value: [60, 1, 60] + - + type: write + address: [MAIN, 0x269E15C] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml b/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml new file mode 100644 index 0000000..8335076 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml @@ -0,0 +1,159 @@ +# New Tales from the Borderlands 1.0.2 +# BID: A19E113723E5C32E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xA158F08, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0xA1884D8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml b/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml new file mode 100644 index 0000000..6d5651a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml @@ -0,0 +1,225 @@ +# Maglam Lord 1.00 +# BID: 3A3C781930CB8201 +# WARNING: Enemy Movement Speed is not scaling properly to framerate. At 60 FPS it's multiple times slower, looking like enemies are practically walking in place. + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5F32908, 0x7B8] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5F086C0, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5F331D8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml b/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml new file mode 100644 index 0000000..39d50be --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml @@ -0,0 +1,159 @@ +# Gigantosaurus The Game 1.0.0 +# BID: EF7B49570430043E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x52F20E8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x531C300, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml b/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml new file mode 100644 index 0000000..db1a9fc --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml @@ -0,0 +1,75 @@ +# Advance Wars 1+2: Re-Boot Camp 1.0.0 +# BID: 320A17744AEFD67F + +unsafeCheck: true + +15FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +20FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +25FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +30FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo (originally it's 2, but setting it with NX-FPS interval also to 2 causes bigger input lag) + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +35FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +40FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +45FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +50FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +55FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 +60FPS: + # _UnityEngine.Rendering.OnDemandRendering_TypeInfo + - + type: write + address: [MAIN, 0x481B2F8, 0xB8, 0] + value_type: int32 + value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml b/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml new file mode 100644 index 0000000..a5f7186 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml @@ -0,0 +1,224 @@ +# Demon Slayer -Kimetsu no Yaiba- The Hinokami Chronicles 1.52 +# BID: 14C878ECCA9D7CB5 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to unlock framerate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # Disable internal flag that ties 3D game speed to FixedFrameRate value + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate (default is 0x47) + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate (default is 1) + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0xB314540, 0x7F8] + value_type: uint32 + value: 7 + # Untie game speed from framerate + - + type: write + address: [MAIN, 0xB314540, 0x810] + value_type: uint8 + value: 0 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xB314830, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml b/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml new file mode 100644 index 0000000..5b86380 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml @@ -0,0 +1,99 @@ +# Dragon's Dogma: Dark Arisen 1.0.1 +# BID: 2CDB9B9D70010E88 + +unsafeCheck: true + +15FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 30 +35FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x24924D8, 0x504C] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml b/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml new file mode 100644 index 0000000..f5e9e58 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml @@ -0,0 +1,102 @@ +# The Great Ace Attorney Chronicles 1.0.0 +# BID: 761CD556AB357C87 + +unsafeCheck: true + +15FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # FPS lock (default) + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCF90F8, 0x4C] + value_type: float + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml b/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml new file mode 100644 index 0000000..5aab83b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml @@ -0,0 +1,159 @@ +# What Remains of Edith Finch 1.0.0 +# BID: E9578A470B175851 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [63, 63] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [47.2, 47.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [37.8, 37.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [27, 27] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [23.6, 23.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [21, 21] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [18.9, 18.9] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [17.1, 17.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x532B3A0, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5350858, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..26521e0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml b/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml new file mode 100644 index 0000000..95f898a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml @@ -0,0 +1,224 @@ +# Dusk Diver 2 1.0.1 +# BID: 217C9ECF258C0312 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x77C7098, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x779A0E8, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x77C79B8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml b/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml new file mode 100644 index 0000000..71cd175 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml @@ -0,0 +1,102 @@ +# Eiyuden Chronicle: Rising 1.02 +# BID: 39DC785D9073C22B + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DynamicResolution$$LowerResSW Max Target in MS to MAIN+0x3BE1200 + - + type: bytes + main_offset: 0x2426988 + value_type: uint32 + value: + - 0x14000043 + - + type: bytes + main_offset: 0x2426A94 + value_type: uint32 + value: + - 0xF000BDD3 + - 0xFD410261 + - 0x17FFFFBC + # Redirect DynamicResolution$$LowerResSW Min Target in MS to MAIN+0x3BE1208 + - + type: bytes + main_offset: 0x24269F4 + value_type: uint32 + value: + - 0x1400012C + - + type: bytes + main_offset: 0x2426EA4 + value_type: uint32 + value: + - 0xF000BDC8 + - 0xFD410501 + - 0x17FFFED3 + # Write default values + - + type: bytes + main_offset: 0x3BE1200 + value_type: double + value: [31, 29] +15FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [62, 58] +20FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [46.5, 43.5] +25FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [37.2, 34.8] +30FPS: + - # Default values + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [31, 29] +35FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [26.5714, 24.8571] +40FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [23.25, 21.75] +45FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [20.666666, 19.333333] +50FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [18.6, 17.4] +55FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [16.90909, 15.818181] +60FPS: + - + type: write + address: [MAIN, 0x3BE1200] + value_type: double + value: [15.5, 14.5] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml new file mode 100644 index 0000000..cd115e4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml @@ -0,0 +1,82 @@ +# Fate/Samurai Remnant 1.0.1 +# BID: B3F271EF130A5338 + +unsafeCheck: true + +# Disable setting double buffer +MASTER_WRITE: + - + type: bytes + main_offset: 0x5DAADC + value_type: uint32 + value: 0x52800079 +15FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 4 +20FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 3 +25FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 2 +30FPS: + # interval (default value) + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 2 +35FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 +40FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 +45FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 +50FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 +55FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 +60FPS: + # interval + - + type: write + address: [MAIN, 0x2EEC5E0] + value_type: int32 + value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml b/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml new file mode 100644 index 0000000..b48f50d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml @@ -0,0 +1,255 @@ +# Wolfenstein: Youngblood 1.5 +# BID: 8B40EBBA7244C94A + +unsafeCheck: true + +15FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 0 + # rs_raiseThreshold = 0.96 * (30/FPS) + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 1.92 + # rs_dropThreshold = 0.984 * (30/FPS) + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 1.968 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 30 +20FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 0 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 1.44 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 1.476 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 30 +25FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 0 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 1.152 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 1.1808 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 30 +30FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 0 + # rs_raiseThreshold (default) + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.96 + # rs_dropThreshold (default) + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.984 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 30 +35FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.823 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.843 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 +40FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.72 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.738 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 +45FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.64 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.656 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 +50FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.576 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.59 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 +55FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.5236 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.5367 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 +60FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x7994DF0] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x7994F14] + value_type: float + value: 0.48 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x7994E84] + value_type: float + value: 0.492 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x85F74E0] + value_type: int32 + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml b/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml new file mode 100644 index 0000000..dfc6bdd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml @@ -0,0 +1,75 @@ +# RiMS Racing 1.2.0 +# BID: 4232D493269475B2 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CDFCBC] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml b/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml new file mode 100644 index 0000000..86a38e5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml @@ -0,0 +1,75 @@ +# WRC10 1.1.0 +# BID: 69CACEEC5F01C418 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2A149BC] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml b/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml new file mode 100644 index 0000000..fb899c4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml @@ -0,0 +1,83 @@ +# Super Kirby Clash 1.0.1 +# BID: DCDFA5A4AD9A175D +# Thanks to Kirby567Fan for finding offsets +# Game is using fake double buffer + +unsafeCheck: true + +15FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 3 + - + type: block + what: timing +20FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 2 + - + type: block + what: timing +25FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 1 +30FPS: + # Interval (default value) + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 1 +35FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 +40FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 +45FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 +50FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 +55FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 +60FPS: + # Interval + - + type: write + address: [MAIN, 0x99CB08, 0] + value_type: int32 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml new file mode 100644 index 0000000..c4ce8a8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml @@ -0,0 +1,315 @@ +# DOOM 1.2 +# BID: 01ACE43E724259C3 + +unsafeCheck: true + +15FPS: + # rs_460Threshold (default) + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 0.285 + # rs_raiseMilliseconds (32.2/(1000/30))*(1000/FPS) + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 64.4 + # rs_dropMilliseconds (33/(1000/30))*(1000/FPS) + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 66 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 30 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +20FPS: + # rs_460Threshold (default) + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 0.285 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 48.3 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 49.5 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 30 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +25FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 0.285 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 38.64 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 39.6 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 30 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +30FPS: + # rs_460Threshold (default) + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 0.285 + # rs_raiseMilliseconds (default) + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 32.2 + # rs_dropMilliseconds (default) + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 33 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 30 + # com_adaptiveTickMinHz (default) + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 30 +35FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 27.6 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 28.28 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +40FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 24.15 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 24.75 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +45FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 21.46 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 22 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +50FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 19.32 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 19.8 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +55FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 17.56 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 18 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 +60FPS: + # rs_460Threshold + - + type: write + address: [MAIN, 0x87AEC74] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x87AF0B4] + value_type: float + value: 16.1 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x87AF02C] + value_type: float + value: 16.5 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x74B2680] + value_type: int32 + value: 60 + # com_adaptiveTickMinHz + - + type: write + address: [MAIN, 0x74B25F8] + value_type: int32 + value: 15 diff --git a/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml b/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml new file mode 100644 index 0000000..9cae215 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml @@ -0,0 +1,75 @@ +# LEGO Star Wars: The Skywalker Saga 1.0.8 +# BID: C6901CE5426C704A + +unsafeCheck: true + +15FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 3 +20FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 3 +25FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 3 +30FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 3 +35FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 +40FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 +45FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 +50FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 +55FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 +60FPS: + # g_video_swap_mode + - + type: write + address: [MAIN, 0xA9FAE80] + value_type: int32 + value: 2 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml b/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml new file mode 100644 index 0000000..218cf2a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml @@ -0,0 +1,159 @@ +# Balan Wonderland 1.01 +# BID: 1A0EAEC3AE90B018 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [36, 36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [30, 30] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [25.714, 25.714] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [22.5, 22.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [16.3636, 16.3636] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x86FEF50, 0] + value_type: float + value: [15, 15] + # t.MaxFPS + - + type: write + address: [MAIN, 0x87519B0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml b/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml new file mode 100644 index 0000000..cc0e691 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml @@ -0,0 +1,161 @@ +# Hellblade: Senua's Sacrifice 1.1.0 +# BID: 9B3DDF2FB9100E51 + +unsafeCheck: true + +15FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + # MAX = (1/FPS) * 0.95 + # MIN = (1/FPS) * 0.9 + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0633333333, 0.06] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0475, 0.045] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.038, 0.036] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) (default value) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0316666666, 0.03] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [0, 0] +35FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0271428571, 0.0257142857] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.02375, 0.0225] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0211111111, 0.02] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.019, 0.018] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0172727272, 0.0163636363] + # t.MaxFPS + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) + - + type: write + address: [MAIN, 0x520BBE0, 0x40] + value_type: float + value: [0.0158333333, 0.015] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x521F7A0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml b/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml new file mode 100644 index 0000000..a01a201 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml @@ -0,0 +1,81 @@ +# Assassin's Creed The Rebel Collection - Assassin's Creed Rogue 1.0.0 +# BID: 3DEF0E36AA8C6592 + +unsafeCheck: true + +MASTER_WRITE: +# Patch code to divide last frametime by float scale factor stored in MAIN+0x61EE400 +# To match it to Dynamic Resolution calculations + - + type: bytes + main_offset: 0x9F1DDC + value_type: uint32 + value: + - 0xB002BFE8 + - 0xBD440101 +# Write default dynamic resolution timing factor + - + type: bytes + main_offset: 0x61EE400 + value_type: float + value: 1000 +15FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 2000 +20FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 1500 +25FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 1200 +30FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 1000 +35FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 857 +40FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 750 +45FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 666 +50FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 600 +55FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 545 +60FPS: + - + type: write + address: [MAIN, 0x61EE400] + value_type: float + value: 500 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml b/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml new file mode 100644 index 0000000..06971c2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml @@ -0,0 +1,159 @@ +# Call of Cthulhu 0.1.6 +# BID: 8F6B002FEB5D0F8E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value is 31) + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x61B1940, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x61D5FE8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml new file mode 100644 index 0000000..ef3dae2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml @@ -0,0 +1,99 @@ +# Master Detective Archives: RAIN CODE 1.3.0 +# BID: 2058227F80E9B40C + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value at first game boot, with next boot it's 30) + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB4888, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml new file mode 100644 index 0000000..551d6ef --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml @@ -0,0 +1,99 @@ +# Master Detective Archives: RAIN CODE 1.3.2 +# BID: 6D722DED660CD6E3 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value at first game boot, with next boot it's 30) + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml new file mode 100644 index 0000000..d66da7b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml @@ -0,0 +1,99 @@ +# Master Detective Archives: RAIN CODE 1.3.3 +# BID: B1C54D7E3540577B + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value at first game boot, with next boot it's 30) + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7FB5888, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml b/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml new file mode 100644 index 0000000..4bd50aa --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml @@ -0,0 +1,164 @@ +# DRAGON QUEST TREASURES 1.0.1 +# BID: 2F81A2EC9B298B37 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x7E110D8, 0x7C0] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x7E119A8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml b/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml new file mode 100644 index 0000000..c1b410e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml @@ -0,0 +1,328 @@ +# Dark Souls Remastered 1.0.3 +# BID: DF3766A2BB651A3E + +unsafeCheck: true + +MASTER_WRITE: + # Redirect FPS target to MAIN+0x55E9A00 + - + type: bytes + main_offset: 0x706FA4 + value_type: uint32 + value: + - 0xF0027701 + - + type: bytes + main_offset: 0x7070B0 + value_type: uint32 + value: + - 0xFD450020 + # Redirect game speed to MAIN+0x55E9A08 + - + type: bytes + main_offset: 0x667900 + value_type: uint32 + value: + - 0xD0027C08 + - 0xBD4A0908 + # Write default value + - + type: bytes + main_offset: 0x55E9A00 + value_type: double + value: 30 + - + type: bytes + main_offset: 0x55E9A08 + value_type: float + value: 0.0333333333 +15FPS: + - + type: write + address: [MAIN, 0x55E9A00] + value_type: double + value: 15 + - + type: write + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x55E9A00] + value_type: double + value: 20 + - + type: write + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x55E9A00] + value_type: double + value: 25 + - + type: write + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.04 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: write + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.033333333 +35FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 35 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.028571 + - + type: block + what: timing +40FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 40 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.025 + - + type: block + what: timing +45FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 45 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0222222222 + - + type: block + what: timing +50FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 50 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0222222222 + - + type: block + what: timing +55FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 55 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0181818181 + - + type: block + what: timing +60FPS: + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 30 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "==" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0333333333 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A00] + value_type: double + value: 60 + - + type: compare + compare_address: [MAIN, 0x4543788, 0x470] + compare_type: "!=" + compare_value_type: int32 + compare_value: 1 + address: [MAIN, 0x55E9A08] + value_type: float + value: 0.0166666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml b/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml new file mode 100644 index 0000000..1ca4292 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml @@ -0,0 +1,159 @@ +# CRISIS CORE -FINAL FANTASY VII- REUNION 1.0.4 +# BID: 44D207EA6428E3F1 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x96CFDA8, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x96FDCD0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml new file mode 100644 index 0000000..c1e7aec --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml @@ -0,0 +1,83 @@ +# Kirby and the Forgotten Land 1.0.0 +# BID: D9BA7DB72FFAFECD +# Thanks to Hazerou for finding offsets +# Game speed is tied to framerate, no proper support for anything between 30 and 60. + +unsafeCheck: true + +15FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 4 + - + type: block + what: timing +20FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 3 + - + type: block + what: timing +25FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 2 +30FPS: + # Interval (default value) + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 2 +35FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 +40FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 +45FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 +50FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 +55FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 +60FPS: + # Interval + - + type: write + address: [MAIN, 0xA72628, 0x50] + value_type: int32 + value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml b/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml new file mode 100644 index 0000000..6ed4c13 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml @@ -0,0 +1,75 @@ +# SENRAN KAGURA Peach Ball +# BID: 31CDAD67EA25CC16 + +unsafeCheck: true + +15FPS: + # CRendSpanMgr:[SpanType_30FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 1 +20FPS: + # CRendSpanMgr:[SpanType_30FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 1 +25FPS: + # CRendSpanMgr:[SpanType_30FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 1 +30FPS: + # CRendSpanMgr:[SpanType_30FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 1 +35FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 +40FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 +45FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 +50FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 +55FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 +60FPS: + # CRendSpanMgr:[SpanType_60FPS] + - + type: write + address: [MAIN, 0x62D8CC] + value_type: int32 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml b/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml new file mode 100644 index 0000000..6033c3d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml @@ -0,0 +1,159 @@ +# Life is Strange: True Colors 1.0.4 +# BID: 118AA7B71E824B3B + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7426EF0, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7451B78, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml b/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml new file mode 100644 index 0000000..12d5c98 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml @@ -0,0 +1,159 @@ +# Monster Jam Steel Titans 2 1.0.2 +# BID: E0E9D0429A2458E1 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6DD50F8, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6DF7F90, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml new file mode 100644 index 0000000..93def47 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml @@ -0,0 +1,164 @@ +# DRAGON BALL Z: KARAKOR + A NEW POWER AWAKENS SET 1.32 +# BID: 13B450093A7DA8E2 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate in cutscenes to unlock framerate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + # Default is 0x47 in cutscenes, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x8DED498, 0x810] + value_type: uint32 + value: 7 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8DEDD48, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml b/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml new file mode 100644 index 0000000..724596b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml @@ -0,0 +1,159 @@ +# Hellblade: Senua's Sacrifice 1.1.0 +# BID: 9B3DDF2FB9100E51 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7B279E8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7B555E8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml b/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml new file mode 100644 index 0000000..59481b2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml @@ -0,0 +1,143 @@ +# The Legend of Heroes: Trails of Cold Steel III 1.0.1 +# BID: 134EC3D8BE75126F +# Button polling is 2x more sensitive to holding any button at 60 FPS +# Fishing timer is decreasing 2x faster at 60 FPS +# Bike is turning 2x faster at 60 FPS + +unsafeCheck: true + +MASTER_WRITE: + # Move loading FPS lock time to MAIN+0x2B31200 + - + type: bytes + main_offset: 0x511818 + value_type: uint32 + value: + - 0x90013109 + - 0xB9420129 + # Default value + - + type: bytes + main_offset: 0x2B31200 + value_type: uint32 + value: 33333333 + # Write game's loop time as float to MAIN+0x2B31204 + - + type: bytes + main_offset: 0x511884 + value_type: uint32 + value: + - 0x17FFFFDC + - + type: bytes + main_offset: 0x5117F4 + value_type: uint32 + value: + - 0xFD001100 + - 0x1E624004 + - 0x140000A2 + - + type: bytes + main_offset: 0x511A84 + value_type: uint32 + value: + - 0x90013108 + - 0xBD020504 + - 0x17FFFF7F + - # Read lowest timing float factor from MAIN+0x2B31204 + type: bytes + main_offset: 0x5E5EC + value_type: uint32 + value: + - 0xF0015688 + - 0x1E227821 + - 0xBD420502 + - # Default value + type: bytes + main_offset: 0x2B31204 + value_type: float + value: 0.0333333333 +15FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 66666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 50000000 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 40000000 + - + type: block + what: timing +30FPS: + - # default value + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 33333333 +35FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 28571428 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 25000000 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 22222222 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 20000000 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 18181818 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x2B31200] + value_type: uint32 + value: 16666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml b/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml new file mode 100644 index 0000000..62552a2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml @@ -0,0 +1,96 @@ +# Monster Hunter Rise JP 15.0.1 +# BID: 5CE1FFBE4B433343 + +unsafeCheck: false + +# Disable NX-FPS delay function to prioritize game's own FPS lock. +15FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 60 + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml b/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml new file mode 100644 index 0000000..7d917e8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml @@ -0,0 +1,99 @@ +# A Hat in Time 1.0.4 +# BID: 746F0D697EEEE2DD + +unsafeCheck: true + +15FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # MaxSmoothedFrameRate (default is 32) + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 30 +35FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + # MaxSmoothedFrameRate + - + type: write + address: [MAIN, 0x2265248, 0x71C] + value_type: float + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml b/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml new file mode 100644 index 0000000..91cae45 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml @@ -0,0 +1,99 @@ +# OCTOPATH TRAVELER 1.0.4 +# BID: B88A8D8E5516DDE9 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x50B5698, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml b/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml new file mode 100644 index 0000000..00997d7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml @@ -0,0 +1,99 @@ +# Dragon's Dogma: Dark Arisen 1.0.1 +# BID: 2D5B93C856CDF009 + +unsafeCheck: true + +15FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 30 +35FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + # FPS Lock + - + type: write + address: [MAIN, 0x2495500, 0x304C] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml b/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml new file mode 100644 index 0000000..e794533 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml @@ -0,0 +1,532 @@ +# Crysis 2 Remastered 1.3.0 +# BID: B3967105033ACC08 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect Dynamic Resolution Timings to read always not from .text + - + type: bytes + main_offset: 0x2EE9A90 + value_type: uint32 + value: 0x1E204020 + - + type: bytes + main_offset: 0x2EE9AA8 + value_type: uint32 + value: 0x1E221C42 +# Redirect Dynamic Resolution Timings readings to MAIN+0x453B300 + - + type: bytes + main_offset: 0x2EE9A38 + value_type: uint32 + value: 0xD000B28B + - + type: bytes + main_offset: 0x2EE9A40 + value_type: uint32 + value: + - 0xD000B28C + - 0xBD430161 + - 0xBD430582 + - + type: bytes + main_offset: 0x2EE9A50 + value_type: uint32 + value: + - 0xD000B28D + - 0x910C21AD + - + type: bytes + main_offset: 0x2EE9A7C + value_type: uint32 + value: + - 0xD000B289 + - 0x910C4129 + - 0xD000B28B + - 0x910C616B +# Write default values + # MAIN + 0x333FAFC + - + type: bytes + main_offset: 0x453B300 + value_type: float + value: 31.5 + # MAIN + 0x333F844 + - + type: bytes + main_offset: 0x453B304 + value_type: float + value: 32.5 + # MAIN + 0x333E360 + - + type: bytes + main_offset: 0x453B308 + value_type: float + value: [33, 35] + # MAIN + 0x333E258 + - + type: bytes + main_offset: 0x453B310 + value_type: float + value: [32, 33.5] + # MAIN + 0x333E9F8 + - + type: bytes + main_offset: 0x453B318 + value_type: float + value: [28.75, 29.75] +15FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 15 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.033 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 63 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 65 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [66, 66] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [64, 64] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [57.5, 57.5] + - + type: block + what: timing +20FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 20 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.033 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 47.25 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 48.75 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [49.5, 49.5] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [48, 48] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [43.125, 43.125] + - + type: block + what: timing +25FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 25 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.033 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 37.8 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 39 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [39.6, 39.6] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [38.4, 38.4] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [34.5, 34.5] + - + type: block + what: timing +30FPS: + # sys_MaxFPS (default value) + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 30 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.033 + # MAIN + 0x333FAFC (default value) + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 31.5 + # MAIN + 0x333F844 (default value) + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 32.5 + # MAIN + 0x333E360 (default value) + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [33, 35] + # MAIN + 0x333E258 (default value) + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [32, 33.5] + # MAIN + 0x333E9F8 (default value) + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [28.75, 29.75] +35FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 35 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 27 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 27.8571 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [28.2857, 28.2857] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [27.4286, 27.4286] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [24.6429, 24.6429] + - + type: block + what: timing +40FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 40 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 23.625 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 24.375 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [24.75, 24.75] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [24, 24] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [21.5625, 21.5625] + - + type: block + what: timing +45FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 45 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 21 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 21.6667 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [22, 22] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [21.3333, 21.3333] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [19.1667, 19.1667] + - + type: block + what: timing +50FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 50 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 18.9 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 19.5 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [19.8, 19.8] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [19.2, 19.2] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [17.25, 17.25] + - + type: block + what: timing +55FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 55 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 17.1818 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 17.7273 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [18, 18] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [17.4545, 17.4545] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [15.6818, 15.6818] + - + type: block + what: timing +60FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x43E0B14] + value_type: int32 + value: 60 + # Renderer thread delay + - + type: write + address: [MAIN, 0x444A0D8] + value_type: float + value: 0.015 + # MAIN + 0x333FAFC + - + type: write + address: [MAIN, 0x453B300] + value_type: float + value: 15 + # MAIN + 0x333F844 + - + type: write + address: [MAIN, 0x453B304] + value_type: float + value: 15.5 + # MAIN + 0x333E360 + - + type: write + address: [MAIN, 0x453B308] + value_type: float + value: [16.5, 16.5] + # MAIN + 0x333E258 + - + type: write + address: [MAIN, 0x453B310] + value_type: float + value: [16, 16] + # MAIN + 0x333E9F8 + - + type: write + address: [MAIN, 0x453B318] + value_type: float + value: [14.375, 14.375] diff --git a/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml b/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml new file mode 100644 index 0000000..73d87a6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml @@ -0,0 +1,159 @@ +# SWORD ART ONLINE: FATAL BULLET Complete Edition 1.2.0 +# BID: 029C2837B0EEE8A9 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7D78510, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D9D178, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml new file mode 100644 index 0000000..38add66 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml @@ -0,0 +1,224 @@ +# Warhammer 40,000: Boltgun 1.0.0.2 +# BID: 448B5EEE940FF0B0 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to unlock framerate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate (default is 0x47) + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x70F99C8, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x70CC628, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x70FA2E8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml b/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml new file mode 100644 index 0000000..2f189e4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml @@ -0,0 +1,136 @@ +# Marvel Ultimate Alliance 3: The Black Order 4.0.1 +# BID: E853C44FDF18B88F +# Credits to Hazerou for finding offsets + +unsafeCheck: true + +15FPS: + # Internal Vsync (default value) + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [2, 2] + # Game Speed = FPS + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 15 +20FPS: + # Internal Vsync (default value) + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [2, 2] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 20 +25FPS: + # Internal Vsync (default value) + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [2, 2] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 25 +30FPS: + # Internal Vsync (default value) + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [2, 2] + # Game Speed (default value) + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 30 +35FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 35 +40FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 40 +45FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 45 +50FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 50 +55FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 55 +60FPS: + # Internal Vsync + - + type: write + address: [MAIN, 0x45A7410] + value_type: int32 + value: [1, 1] + # Game Speed + - + type: write + address: [MAIN, 0x45A71F0] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml b/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml new file mode 100644 index 0000000..ba1bee5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml @@ -0,0 +1,159 @@ +# The Outer Worlds 1.0.5 +# BID: 761CD556AB357C87 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7A4AE48, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7A70080, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml b/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml new file mode 100644 index 0000000..e8e38fd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml @@ -0,0 +1,75 @@ +# V-Rally 4 1.2.0 +# BID: EB8A679B5DDD0060 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x20A0E44] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml b/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml new file mode 100644 index 0000000..6492183 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml @@ -0,0 +1,159 @@ +# Grand Theft Auto: San Andreas - Definitive Edition 1.0.7 +# BID: 6FB56071CCB321B6 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value is 36.5, obviously we don't want it) + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7952298, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7976FE0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml new file mode 100644 index 0000000..c5320ee --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml @@ -0,0 +1,159 @@ +# Redout 2 1.0.6 +# BID: D45B9332B5742A70 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.969) + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [64.6, 64.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [48.45, 48.45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [38.76, 38.76] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [32.3, 32.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [27.6857, 27.6857] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [24.225, 24.225] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [21.53, 21.53] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [19.38, 19.38] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [17.61, 17.61] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x8549648, 0] + value_type: float + value: [16.15, 16.15] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8577218, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml new file mode 100644 index 0000000..2fdee03 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml @@ -0,0 +1,159 @@ +# Casette Beasts 1.4.0 +# BID: 224357DED42E86ED + +unsafeCheck: true + +15FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 15 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 20 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 25 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # physics/common/physics_fps (default value) + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 30 + # debug/settings/fps/force_fps (default value is 30) + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 0 +35FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 35 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 40 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 45 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 50 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 55 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # physics/common/physics_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x24] + value_type: int32 + value: 60 + # debug/settings/fps/force_fps + - + type: write + address: [MAIN, 0x33DCB78, 0x30] + value_type: int32 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml new file mode 100644 index 0000000..8cc51e8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml @@ -0,0 +1,84 @@ +# Assassin's Creed: The Ezio Collection - Assassin's Creed 2 1.3 +# BID: 824B38A25986B2AB +# Scenes exclusively 2D are tied to framerate, so at 60 FPS they are 2x faster. + +unsafeCheck: true + +MASTER_WRITE: +# Patch code to multiply last frametime by float scale factor stored in MAIN+0x3B4D800 +# To match it to Dynamic Resolution calculations + - + type: bytes + main_offset: 0xB40638 + value_type: uint32 + value: + - 0xB0018069 + - 0xBD480120 + - 0x1E200909 + - 0xD503201F +# Write default dynamic resolution timing factor + - + type: bytes + main_offset: 0x3B4D800 + value_type: float + value: 1 +15FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 0.5 +20FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 0.6666666666 +25FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 0.8333333333 +30FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1 +35FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1.1666666666 +40FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1.3333333333 +45FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1.5 +50FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1.6666666666 +55FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 1.8333333333 +60FPS: + - + type: write + address: [MAIN, 0x3B4D800] + value_type: float + value: 2 diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml new file mode 100644 index 0000000..4396ff6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml @@ -0,0 +1,89 @@ +# Assassin's Creed: The Ezio Collection - Assassin's Creed Brotherhood 1.3 +# BID: 2B59D6C677258A2A +# Scenes exclusively 2D are tied to framerate, so at 60 FPS they are 2x faster. + +unsafeCheck: true + +MASTER_WRITE: +# Patch code to multiply last frametime by float scale factor stored in MAIN+0x4276B00 +# To match it to Dynamic Resolution calculations + - + type: bytes + main_offset: 0xBDBE44 + value_type: uint32 + value: + - 0xF001B4C8 + - 0xBD4B0100 + - + type: bytes + main_offset: 0xBDBE58 + value_type: uint32 + value: + - 0x1E200900 + - 0xD503201F +# Write default dynamic resolution timing factor + - + type: bytes + main_offset: 0x4276B00 + value_type: float + value: 1 +15FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 0.5 +20FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 0.6666666666 +25FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 0.8333333333 +30FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1 +35FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1.1666666666 +40FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1.3333333333 +45FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1.5 +50FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1.6666666666 +55FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 1.8333333333 +60FPS: + - + type: write + address: [MAIN, 0x4276B00] + value_type: float + value: 2 diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml new file mode 100644 index 0000000..653d1f4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml @@ -0,0 +1,82 @@ +# Assassin's Creed: The Ezio Collection - Assassin's Creed Revelations 1.3 +# BID: 0AE4D1770B196094 +# Scenes exclusively 2D are tied to framerate, so at 60 FPS they are 2x faster. + +unsafeCheck: true + +MASTER_WRITE: +# Patch code to divide last frametime by float scale factor stored in MAIN+0x4422800 +# To match it to Dynamic Resolution calculations + - + type: bytes + main_offset: 0xAD51A0 + value_type: uint32 + value: + - 0xB001CA68 + - 0xBD480101 +# Write default dynamic resolution timing factor + - + type: bytes + main_offset: 0x4422800 + value_type: float + value: 1000 +15FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 2000 +20FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 1500 +25FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 1200 +30FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 1000 +35FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 857 +40FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 750 +45FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 666 +50FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 600 +55FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 545 +60FPS: + - + type: write + address: [MAIN, 0x4422800] + value_type: float + value: 500 diff --git a/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml b/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml new file mode 100644 index 0000000..05f6419 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml @@ -0,0 +1,159 @@ +# The Caligula Effect: Overdose 1.01 +# BID: A953B35A45BEA33D + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CF2530, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5D170A8, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml b/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml new file mode 100644 index 0000000..c8ba1fd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml @@ -0,0 +1,159 @@ +# Destiny Connect: Tick-Tock Travelers 1.0.0 +# BID: 5AD84EFD9D28FDDE + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5934540, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x59590A8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml b/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml new file mode 100644 index 0000000..724e0eb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml @@ -0,0 +1,339 @@ +# DRAGON QUEST XI S: Echoes of an Elusive Age - Definitive Edition 1.0.3 +# BID: 1719AABFA5EAE42B + +unsafeCheck: true + +15FPS: + # r.DynamicResolution.MaxTimeBudget = 0.99 * (1000/FPS) + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [66, 66] + # r.DynamicResolution.MinTimeBudget = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [60, 60] + # r.DynamicResolution.HeavyTimeBudget = 1.05 * (1000/FPS) + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [70, 70] + # r.DynamicResolution.LightTimeBudget = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [49.5, 49.5] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [45, 45] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [52.5, 52.5] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [39.6, 39.6] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [36, 36] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [42, 42] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [36, 36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicResolution.MaxTimeBudget (default value) + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [33, 33] + # r.DynamicResolution.MinTimeBudget (default value) + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [30, 30] + # r.DynamicResolution.HeavyTimeBudget (default value) + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [35, 35] + # r.DynamicResolution.LightTimeBudget (default value) + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [30, 30] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [28.29, 28.29] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [25.71, 25.71] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [30, 30] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [25.71, 25.71] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [24.75, 24.75] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [22.5, 22.5] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [26.25, 26.25] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [22.5, 22.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [22, 22] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [20, 20] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [23.33, 23.33] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [19.8, 19.8] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [18, 18] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [21, 21] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [18, 18] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [16.36, 16.36] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [19.09, 19.09] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [16.36, 16.36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +60FPS: + # r.DynamicResolution.MaxTimeBudget + - + type: write + address: [MAIN, 0x84ECDD8, 0] + value_type: float + value: [16.5, 16.5] + # r.DynamicResolution.MinTimeBudget + - + type: write + address: [MAIN, 0x84ECDF0, 0] + value_type: float + value: [15, 15] + # r.DynamicResolution.HeavyTimeBudget + - + type: write + address: [MAIN, 0x84ECE08, 0] + value_type: float + value: [17.5, 17.5] + # r.DynamicResolution.LightTimeBudget + - + type: write + address: [MAIN, 0x84ECE20, 0] + value_type: float + value: [15, 15] + # t.MaxFPS + - + type: write + address: [MAIN, 0x8501C48, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml b/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml new file mode 100644 index 0000000..3a7bcff --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml @@ -0,0 +1,159 @@ +# Samurai Jack: Battle Through Time 1.0.3 +# BID: 6D5DB3434CCF63F2 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6FC5558, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FEB028, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml b/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml new file mode 100644 index 0000000..40a3dc5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml @@ -0,0 +1,159 @@ +# Oceanhorn 2: Knights of the Lost Realm 1.2 +# BID: 9F2F187D1C6E44EC + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - 1.2 + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [65.4, 65.4] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [48.8, 48.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [38.8, 38.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [32.1, 32.1] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [27.3, 27.3] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [23.8, 23.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [21, 21] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [18.8, 18.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [16.9, 16.9] + # t.MaxFPS + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x51E80D8, 0] + value_type: float + value: [15.4, 15.4] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x52122E0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml b/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml new file mode 100644 index 0000000..ab193e7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml @@ -0,0 +1,159 @@ +# Blair Witch 1.0.3 +# BID: C31E59266A218855 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) with cutted decimals + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [66, 66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [33, 33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [28, 28] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [22, 22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5CC7310, 0] + value_type: float + value: [16, 16] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CEB9F8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml b/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml new file mode 100644 index 0000000..787e26c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml @@ -0,0 +1,159 @@ +# Bravely Default II 1.0.0 +# BID: 05DE5A7F20BD1532 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x72AEE90, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x73050F0, 0] + value_type: float + value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml b/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml new file mode 100644 index 0000000..c3893d8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml @@ -0,0 +1,159 @@ +# Ruiner 1.3 +# BID: F199FFD7D83F399E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x55B1690, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x55D8100, 0] + value_type: float + value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml new file mode 100644 index 0000000..7acacc6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml @@ -0,0 +1,99 @@ +# The Dark Pictures Anthology: Man of Medan 1.0.1 +# BID: 2C7A626BA5F25D5F + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default is 24) + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS (default) + - + type: write + address: [MAIN, 0xB149FF8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml new file mode 100644 index 0000000..7c78120 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml @@ -0,0 +1,99 @@ +# The Dark Pictures Anthology: Man of Medan 1.0.0 +# BID: D7D0827ABE36A00D + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default is 24) + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS (default) + - + type: write + address: [MAIN, 0xB129FF8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml b/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml new file mode 100644 index 0000000..b33b086 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml @@ -0,0 +1,135 @@ +# Darksiders 2 1.0.0 +# BID: 173E2EDEA9E5D940 + +unsafeCheck: true + +15FPS: + # gNXHighThresholdUS_hidden 930*(1000/FPS) + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 62000 + # gNXLowThresholdUS_hidden 870*(1000/FPS) + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 58000 +20FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 46500 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 43500 +25FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 37200 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 34800 +30FPS: + # gNXHighThresholdUS_hidden (default) + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 31000 + # gNXLowThresholdUS_hidden (default) + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 29000 +35FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 26571 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 24857 +40FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 23250 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 21750 +45FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 20666 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 19333 +50FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 18600 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 17400 +55FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 16909 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 15818 +60FPS: + # gNXHighThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F94] + value_type: int32 + value: 15500 + # gNXLowThresholdUS_hidden + - + type: write + address: [MAIN, 0x3293F98] + value_type: int32 + value: 14500 diff --git a/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml new file mode 100644 index 0000000..7bf19e3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml @@ -0,0 +1,183 @@ +# Gear.Club Unlimited 2 +# BID: FE757B10B45C3444 + +unsafeCheck: true + +MASTER_WRITE: +# Edit Eden.Graphics.IGraphicsQualityProfile::set_VSyncCount to get interval from MAIN + 0x5FBAF20 +# If not edited, light is flickering at > 30 FPS + - + type: bytes + main_offset: 0x14B4990 + value_type: uint32 + value: + - 0xD0025821 + - 0xB94F2021 + - 0xB9005401 + - 0xD65F03C0 +# Edit UnityEngine.QualitySettings::set_vSyncCount to get interval from MAIN + 0x5FBAF20 +# If not edited, light is flickering at > 30 FPS + - + type: bytes + main_offset: 0x1B46EE4 + value_type: uint32 + value: + - 0x900223A0 + - 0xB94F2000 + - 0xA9427BFD + - 0xA9414FF4 + - 0x9100C3FF + - 0xD61F0020 +# Edit Eden.Graphics.GraphicsQualityManager::SetTargetFrameRate to get interval from MAIN + 0x5FBAF20 +# If not edited, it locks to 30 FPS + - + type: bytes + main_offset: 0x14AB578 + value_type: uint32 + value: 0x947E69DC + - + type: bytes + main_offset: 0x3445CE8 + value_type: uint32 + value: + - 0xB0015BA1 + - 0xB94F2021 + - 0x2A0103F3 + - 0xD65F03C0 +# Edit Eden.Graphics.DynamicResolutionScaler::UpdateScaling to get DR target timing from MAIN + 0x5FBAF28 +# If not edited, performance is much worse at > 30 FPS + - + type: bytes + main_offset: 0x14988BC + value_type: uint32 + value: 0x947EB50F + - + type: bytes + main_offset: 0x3445CF8 + value_type: uint32 + value: + - 0xB0015BA0 + - 0xBD4F2800 + - 0xD65F03C0 +# Default values + - + type: bytes + main_offset: 0x5FBAF20 + value_type: uint32 + value: 2 + - + type: bytes + main_offset: 0x5FBAF28 + value_type: float + value: 33 +15FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 4 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 16.5 +20FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 3 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 22 +25FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 2 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 27.5 +30FPS: + - # Default in races + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 2 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 33 +35FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 38.5 +40FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 44 +45FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 49.5 +50FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 55 +55FPS: + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 60.5 +60FPS: + # Default for menus + - + type: write + address: [MAIN, 0x5FBAF20] + value_type: uint32 + value: 1 + - + type: write + address: [MAIN, 0x5FBAF28] + value_type: float + value: 66 diff --git a/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml b/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml new file mode 100644 index 0000000..ffa59d6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml @@ -0,0 +1,159 @@ +# Crash Bandicoot 4: It's About Time 1.2 +# BID: E8DB38F170B0149D + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7AE3340, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7B0DEB0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml new file mode 100644 index 0000000..575006a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml @@ -0,0 +1,219 @@ +# LEGO 2K Drive 1.4 +# BID: 035715948447A762 + +unsafeCheck: true + +15FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.VSync + - + type: write + address: [MAIN, 0x923DD10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9A49C48, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9A6FDC0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml new file mode 100644 index 0000000..e34e54a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml @@ -0,0 +1,220 @@ +# LEGO 2K Drive 1.7 +# BID: E93D49581521E084 + + +unsafeCheck: true + +15FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.VSync + - + type: write + address: [MAIN, 0x9323D10, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x9B2FC48, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9B55DC0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml new file mode 100644 index 0000000..4dee12f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml @@ -0,0 +1,224 @@ +# Redemption Reapers 1.3.0 +# BID: 75960383063ABB4E + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value is 30 in handheld, 60 in docked) + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x750B478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74DE1C8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x750BD98, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml new file mode 100644 index 0000000..e62f4b1 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml @@ -0,0 +1,224 @@ +# Redemption Reapers 1.4.0 +# BID: 955DF07AA5F4497B + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value is 30 in handheld, 60 in docked) + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x751C478, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74EF1C8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x751CD98, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml new file mode 100644 index 0000000..6764afe --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml @@ -0,0 +1,444 @@ +# Xenoblade Chronicles 3 2.1.1 +# BID: 0AE74B263D8AC3CF + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00] + - + type: bytes + main_offset: 0x124E9A8 + value_type: uint32 + value: + - 0x900088E8 + - 0xBD4B0100 + # Original DR frametime target + - + type: bytes + main_offset: 0x236AB00 + value_type: float + value: + - 0.0166666666 + # Fix crash when gathering big amount of ether for > 30 FPS + - # Code cave at 0x1295300 + type: bytes + main_offset: 0x67370 + value_type: uint32 + value: 0x9448B7E4 + - # Push fixed 1/30 float to game speed pointer late enough to not affect it + type: bytes + main_offset: 0x1295300 + value_type: uint32 + value: + - 0xF9400015 + - 0x1E2E1001 + - 0x1E27D002 + - 0x1E221821 + - 0xBD0216A1 + - 0xD65F03C0 +# For 15-20 FPS use internal FPS lock, for 25-30 set default value +15FPS: + # vsync + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [4, 4] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + # UI speed + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [3, 3] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.02 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.04 +30FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.024 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.028571 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +40FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.021 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.025 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +45FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.018 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0222222222 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +50FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.016 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.02 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +55FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.014 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.01818181818 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +60FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.000001 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml new file mode 100644 index 0000000..904ad21 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml @@ -0,0 +1,427 @@ +# Xenoblade Chronicles 3 2.0.0 +# BID: 8E18600222CE90C2 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR frametime target reading to .bss code cave [MAIN, 0x2369B00] + - + type: bytes + main_offset: 0x124E638 + value_type: uint32 + value: + - 0xF00088C8 + - 0xBD4B0100 + # Original DR frametime target + - + type: bytes + main_offset: 0x2369B00 + value_type: float + value: + - 0.0166666666 +# For 15-20 FPS use internal FPS lock, for 25-30 set default value +15FPS: + # vsync + - + type: write + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [4, 4] + - + type: write + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + # UI speed + - + type: write + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [3, 3] + - + type: write + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x2369B00] + value_type: float + value: 0.02 + - + type: write + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.04 +30FPS: + - + type: write + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.024 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.028571 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 +40FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.021 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.025 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 +45FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.018 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0222222222 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 +50FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.016 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.02 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 +55FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.014 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.01818181818 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 +60FPS: + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B41DB0] + value_type: int32 + value: [2, 2] + # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.000001 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x2369B00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA0A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA0A90, 128] + value_type: float + value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml new file mode 100644 index 0000000..9b3f1f4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml @@ -0,0 +1,427 @@ +# Xenoblade Chronicles 3 2.1.0 +# BID: B6BE4A6B83D4F237 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00] + - + type: bytes + main_offset: 0x124E968 + value_type: uint32 + value: + - 0x900088E8 + - 0xBD4B0100 + # Original DR frametime target + - + type: bytes + main_offset: 0x236AB00 + value_type: float + value: + - 0.0166666666 +# For 15-20 FPS use internal FPS lock, for 25-30 set default value +15FPS: + # vsync + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [4, 4] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + # UI speed + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [3, 3] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.02 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.04 +30FPS: + - + type: write + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: write + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: write + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.024 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.028571 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +40FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.021 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.025 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +45FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.018 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0222222222 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +50FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.016 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.02 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +55FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.014 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.01818181818 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 +60FPS: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.000001 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0166666666 + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml new file mode 100644 index 0000000..913ba55 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml @@ -0,0 +1,152 @@ +# Xenoblade Chronicles 3 1.3.0 +# BID: B76CD24AF02ACEA2 + +unsafeCheck: true + +# For 15-20 FPS use internal FPS lock, for 25-30 set default value +15FPS: + - + type: write + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [4, 4] + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [3, 3] + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +30FPS: + - + type: write + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +40FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +45FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +50FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +55FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] +60FPS: + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 1 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [1, 1] + - + type: compare + compare_address: [MAIN, 0x1A65958] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1A08F98] + value_type: int32 + value: [2, 2] diff --git a/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml b/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml new file mode 100644 index 0000000..dacb72c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml @@ -0,0 +1,75 @@ +# Sniper Elite 3 Ultimate Edition 1.0.1 +# BID: 6888027D61CF603D + +unsafeCheck: true + +15FPS: + # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 60 +20FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 45 +25FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 36 +30FPS: + # Dynamic Resolution frame time target (default value) + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 30 +35FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 25.71 +40FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 22.5 +45FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 20 +50FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 18 +55FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 16.36 +60FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xF39748, 4] + value_type: float + value: 15 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml b/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml new file mode 100644 index 0000000..4d0216d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml @@ -0,0 +1,159 @@ +# Paradise Lost 1.0.0 +# BID: F5ECE696120B65B3 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.9) + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [36, 36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [30, 30] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [25.7142, 25.7142] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [22.5, 22.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [16.363636, 16.363636] + # t.MaxFPS + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x56A9C78, 0] + value_type: float + value: [15, 15] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x56D3EA0, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml b/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml new file mode 100644 index 0000000..a0c848b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml @@ -0,0 +1,224 @@ +# Spyro Reignited Trilogy 1.01 +# BID: D2775FAFCF4835CB + +unsafeCheck: true + +15FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + # Default is 0x67, bSmoothFrameRate |= 0x20, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x69DA1A8, 0x778] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69B6780, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69DAC78, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml new file mode 100644 index 0000000..6c5f4ee --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml @@ -0,0 +1,219 @@ +# Sifu 1.13_842 +# BID: C56FA2C9627A26CF + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [66.66, 66.66] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [50, 50] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [40, 40] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [33.33, 33.33] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [28.51, 28.51] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [25, 25] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [22.22, 22.22] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [20, 20] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [18.18, 18.18] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x94CD848, 0] + value_type: float + value: [16.66, 16.66] + # r.VSync + - + type: write + address: [MAIN, 0x8D39378, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x94F2858, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml new file mode 100644 index 0000000..af8d597 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml @@ -0,0 +1,219 @@ +# Sifu 1.22_1197 +# BID: CE14D183190A44D2 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [66.66, 66.66] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [50, 50] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [40, 40] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [33.33, 33.33] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [28.51, 28.51] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [25, 25] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [22.22, 22.22] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [20, 20] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [18.18, 18.18] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x973F690, 0] + value_type: float + value: [16.66, 16.66] + # r.VSync + - + type: write + address: [MAIN, 0x8FAC338, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x9764588, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml b/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml new file mode 100644 index 0000000..e8e74bd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml @@ -0,0 +1,83 @@ +# Kirby Star Allies 4.0.0 +# BID: D55608916FA56C18 +# Thanks to Kirby567Fan for finding offsets +# Game is using fake double buffer + +unsafeCheck: true + +15FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 3 + - + type: block + what: timing +20FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 2 + - + type: block + what: timing +25FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 1 +30FPS: + # Interval (default value) + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 1 +35FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 +40FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 +45FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 +50FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 +55FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 +60FPS: + # Interval + - + type: write + address: [MAIN, 0x54C5B0, 0] + value_type: int32 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml b/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml new file mode 100644 index 0000000..663b53a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml @@ -0,0 +1,159 @@ +# Paradise Killer 1.2.1 +# BID: D3744AF2C376CDC4 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x715EDB8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x718C9B8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml b/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml new file mode 100644 index 0000000..d977000 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml @@ -0,0 +1,192 @@ +# Persona 5 Strikers 1.0.0 +# BID: C4DF04F647BDC727 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [15, 2] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 15 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 1 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [20, 2] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 20 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 1 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [25, 2] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 25 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 1 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [30, 2] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 30 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 1 +35FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [35, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 35 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [40, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 40 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [45, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 45 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [50, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 50 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [55, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 55 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x1D584F8] + value_type: int32 + value: [60, 1] + - + type: write + address: [MAIN, 0x1D6BFA0] + value_type: float + value: 60 + - + type: write + address: [MAIN, 0x2AEFB30] + value_type: int32 + value: 0 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml b/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml new file mode 100644 index 0000000..05414a0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml @@ -0,0 +1,135 @@ +# LA Noire 1.2 +# BID: 40F973CE3B5EC8D7 + +unsafeCheck: false + +15FPS: + # Game speed ((FPS/30) * 59.94) + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 29.97 + # Frameskipping (otherwise you will get slowdowns at framedrops) + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +20FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 39.96 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +25FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 49.95 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +30FPS: + # Game speed (default) + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 59.94 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +35FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 69.93 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +40FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 79.92 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +45FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 89.91 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +50FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 99.9 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +55FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 109.89 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 +60FPS: + # Game speed + - + type: write + address: [MAIN, 0x1A32900, 0xA0] + value_type: float + value: 119.88 + # Frameskipping + - + type: write + address: [MAIN, 0x1A5BE70] + value_type: int8 + value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml b/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml new file mode 100644 index 0000000..471625a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml @@ -0,0 +1,159 @@ +# Solar Ash 1.06.0 +# BID: 0959D87753F9FED4 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6577290, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x65A2138, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml b/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml new file mode 100644 index 0000000..07d5fbd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml @@ -0,0 +1,99 @@ +# The Dark Pictures Anthology: Little Hope 1.0.0 +# BID: 2BFF5F7711EE6C9F + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default is 24) + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS (default) + - + type: write + address: [MAIN, 0xB4E7838, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml new file mode 100644 index 0000000..bded4bb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml @@ -0,0 +1,87 @@ +# No Man's Sky 4.4.5 +# BID: DA7D68D91AB5FA3C + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x49ACD00 + - + type: bytes + main_offset: 0x1D927B0 + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1D927BC + value_type: uint32 + value: + - 0xD00160D2 + - 0xB9400408 + - 0xBD4D024A + # default value + - + type: bytes + main_offset: 0x49ACD00 + value_type: float + value: 33.3333333333 +15FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 66.6666666666 +20FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 50 +25FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 40 +30FPS: + # default value + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 33.3333333333 +35FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 28.5714 +40FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 25 +45FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 22.2222222222 +50FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 20 +55FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 18.1818181818 +60FPS: + - + type: write + address: [MAIN, 0x49ACD00] + value_type: float + value: 16.6666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml b/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml new file mode 100644 index 0000000..281e01e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml @@ -0,0 +1,87 @@ +# 妖怪ウォッチ4 ぼくらは同じ空を見上げている 2.2.0 +# BID: C7DAB27F22ACD2ED +# Game is using double buffer, nvnWindowBuilderSetTextures has hardcoded values. +# So it's not possible to get stable FPS lock between 30 and 60. + +unsafeCheck: true + +MASTER_WRITE: + # Change main loop delay from 31.6 ms to 4.2 ms + - + type: bytes + main_offset: 0x950C6C + value_type: uint32 + value: 0xD2A00800 + - + type: bytes + main_offset: 0x950C74 + value_type: uint32 + value: 0xD2A00800 + - + type: bytes + main_offset: 0x950C94 + value_type: uint32 + value: + - 0xD503201F + - 0xD503201F +15FPS: + # DUMMY + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +20FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +25FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +30FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +35FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +40FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +45FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +50FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +55FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 +60FPS: + - + type: write + address: [MAIN, 0x6AE8500] + value_type: uint8 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml b/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml new file mode 100644 index 0000000..eb5b13e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml @@ -0,0 +1,75 @@ +# WRC8 1.4.0 +# BID: 6B0B26802F0DAAAF + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x22F50FC] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml b/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml new file mode 100644 index 0000000..c36de5d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml @@ -0,0 +1,135 @@ +# Dying Light: Platinum Edition 1.0.5 +# BID: 8C93B930348C9787 + +unsafeCheck: true + +MASTER_WRITE: + # Disable Dynamic GPU Clocks + - + type: bytes + main_offset: 0x1DE89CC + value_type: uint32 + value: + - 0xD503201F + # Redirect Dynamic Resolution Timings to MAIN+0x4113D00 + - + type: bytes + main_offset: 0x1DE89A8 + value_type: uint32 + value: + - 0xF001194A + - 0xB94D014A + - + type: bytes + main_offset: 0x1DE8A08 + value_type: uint32 + value: + - 0xF001194A + - 0xB94D054A + - + type: bytes + main_offset: 0x1DE80C8 + value_type: uint32 + value: + - 0xF001194B + - 0xB94D096C + - 0xB94D0D6B + - 0xD503201F + - + type: bytes + main_offset: 0x1DE80F8 + value_type: uint32 + value: + - 0xF001194B + - 0xB94D116B +# Write default values + # MAIN + 0x1DE89AC + - + type: bytes + main_offset: 0x4113D00 + value_type: float + value: 0.034 + # MAIN + 0x1DE8A0C + - + type: bytes + main_offset: 0x4113D04 + value_type: float + value: 0.028 + # MAIN + 0x1DE80D4 + - + type: bytes + main_offset: 0x4113D08 + value_type: float + value: 0.0289855 + # MAIN + 0x1DE80D0 + - + type: bytes + main_offset: 0x4113D0C + value_type: float + value: 0.0263158 + # MAIN + 0x1DE80D0 + - + type: bytes + main_offset: 0x4113D10 + value_type: float + value: 0.0324675 +15FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.068, 0.056, 0.057971, 0.0526316, 0.064935] +20FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.051, 0.042, 0.04347825, 0.0394737, 0.04870125] +25FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.0408, 0.0336, 0.0347826, 0.03157896, 0.038961] +30FPS: + - # default values + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.034, 0.028, 0.0289855, 0.0263158, 0.0324675] +35FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.02914286, 0.024, 0.02484471, 0.0225564, 0.02782929] +40FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.0255, 0.021, 0.02173913, 0.01973685, 0.02435063] +45FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.02266667, 0.01866667, 0.01932367, 0.01754387, 0.021645] +50FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.0204, 0.0168, 0.0173913, 0.01578948, 0.0194805] +55FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.01854545, 0.01527273, 0.01581027, 0.01435407, 0.01770955] +60FPS: + - + type: write + address: [MAIN, 0x4113D00] + value_type: float + value: [0.017, 0.014, 0.01449275, 0.0131579, 0.01623375] diff --git a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml new file mode 100644 index 0000000..af52c40 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml @@ -0,0 +1,132 @@ +# The Legend of Heroes: Trails into Reverie 1.0.2 +# BID: A3E80F5FE073639D + +unsafeCheck: true + +MASTER_WRITE: + # Read FPS lock time to MAIN+0x7A51500 + - + type: bytes + main_offset: 0x80DCC + value_type: uint32 + value: + - 0xB003CE88 + - 0xB9450108 + - + type: bytes + main_offset: 0x80E00 + value_type: uint32 + value: + - 0xB003CE89 + - 0xB9450129 + # Default value + - + type: bytes + main_offset: 0x7A51500 + value_type: float + value: 0.0333333333 + # Write game's loop time as float to MAIN+0x7A51504 + - + type: bytes + main_offset: 0x80DD4 + value_type: uint32 + value: 0x94339A8B + - + type: bytes + main_offset: 0xD67800 + value_type: uint32 + value: + - 0x1E227821 + - 0xD0036754 + - 0xBD050681 + - 0xD65F03C0 + - # Read lowest timing float factor from MAIN+0x7A51504 + type: bytes + main_offset: 0x80E70 + value_type: uint32 + value: + - 0xB003CE8B + - 0xB945056B + - # Default value + type: bytes + main_offset: 0x7A51504 + value_type: float + value: 0.0333333333 +15FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.0666666666 +20FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.05 +25FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.04 + - + type: block + what: timing +30FPS: + - # default value + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.0333333333 +35FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.028571428 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.025 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.0222222222 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.02 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.0181818181 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x7A51500] + value_type: float + value: 0.0166666666 diff --git a/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml b/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml new file mode 100644 index 0000000..573e8eb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml @@ -0,0 +1,75 @@ +# Dredge 1.1.0 +# BID: D16558D855603353 + +unsafeCheck: true + +15FPS: + # fixedDeltaTime = 1/FPS + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0666666666 +20FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.05 +25FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.04 +30FPS: + # fixedDeltaTime (default value) + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0333333333 +35FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0285714 +40FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.025 +45FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0222222222 +50FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.02 +55FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0181818181 +60FPS: + # fixedDeltaTime + - + type: write + address: [MAIN, 0x5E7FE60, 0x48] + value_type: float + value: 0.0166666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml b/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml new file mode 100644 index 0000000..a00dfd0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml @@ -0,0 +1,159 @@ +# Ultra Age 2.0.4 +# BID: CA77083E259D87A2 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7984A48, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x79B22F8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml b/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml new file mode 100644 index 0000000..bb822f0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml @@ -0,0 +1,255 @@ +# Wolfenstein 2: The New Colossus 1.2 +# BID: F2FE5EF877839F4F + +unsafeCheck: true + +15FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 0 + # rs_raiseMilliseconds (32/(1000/30))*(1000/FPS) + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 64 + # rs_dropMilliseconds (32.8/(1000/30))*(1000/FPS) + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 65.6 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 30 +20FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 0 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 48 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 49.2 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 30 +25FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 0 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 38.4 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 39.36 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 30 +30FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 0 + # rs_raiseMilliseconds (default) + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 32 + # rs_dropMilliseconds (default) + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 32.8 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 30 +35FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 27.43 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 28.11 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 +40FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 24 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 24.6 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 +45FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 21.33 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 21.86 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 +50FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 19.2 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 19.68 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 +55FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 17.45 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 17.89 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 +60FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x60E0170] + value_type: int32 + value: 1 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x60E0294] + value_type: float + value: 16 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x60E0204] + value_type: float + value: 16.4 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x62D0570] + value_type: int32 + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml b/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml new file mode 100644 index 0000000..e5cebd2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml @@ -0,0 +1,90 @@ +# The Legend of Heroes: Trails of Cold Steel (Sen on Kiseki) II Kai -THE EREBONIAN CIVIL WAR- +# 英雄伝説 閃の軌跡Ⅱ:改 -THE EREBONIAN CIVIL WAR- +# BID: EAB1DC1D53E319F9 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.06666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.04 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.03333333333 +35FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.02857142857 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.025 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.022222222222 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.02 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.0181818181818 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0xB05B70] + value_type: float + value: 0.016666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml new file mode 100644 index 0000000..6b9bc6e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml @@ -0,0 +1,75 @@ +# PowerWash Simulator 1.2.1 +# BID: E44D9EFDB2F1D0A6 + +unsafeCheck: false + +15FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit) + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 15 +20FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 20 +25FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 25 +30FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo (default) + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 30 +35FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 35 +40FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 40 +45FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 45 +50FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 50 +55FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 55 +60FPS: + # FuturLab.SingletonMonoBehaviour_TypeInfo + - + type: write + address: [MAIN, 0x5833168, 0xB8, 0, 0x28] + value_type: int32 + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml b/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml new file mode 100644 index 0000000..3c19a99 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml @@ -0,0 +1,165 @@ +# It Takes Two 1.0.2 +# BID: C4067E8CB3258656 + +unsafeCheck: true + +MASTER_WRITE: + - + type: bytes + main_offset: 0x8AA9FBC + value_type: int8 + value: 0x53 +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.87 * (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [58, 58] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [43.5, 43.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [34.8, 34.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [29, 29] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [24.85, 24.85] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [21.75, 21.75] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [19.33, 19.33] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [17.4, 17.4] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [15.81, 15.81] + # t.MaxFPS + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xACCB3D8, 0] + value_type: float + value: [14.5, 14.5] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xACF9130, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100947013122000/9FC46F388F6C684C.yaml b/SaltySD/plugins/FPSLocker/patches/0100947013122000/9FC46F388F6C684C.yaml new file mode 100644 index 0000000..a7e4dd0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100947013122000/9FC46F388F6C684C.yaml @@ -0,0 +1,78 @@ +# Ruined King: A League of Legends Story 1.7 +# BID: 9FC46F388F6C684C + +unsafeCheck: true + +15FPS: + # Address that is used to determine if it should use dev's own classes to get vsync target + # If we change it to anything that is above or equal 0, it's using Unity class that always returns -1 + # Returning from function getting vsync target anything else than 2 results in Dynamic Resolution target set to 60 FPS, otherwise it's 30 FPS + # We cannot patch those FPS targets directly with FPSLocker as they are hardcoded + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: -1 +20FPS: + #Vsync target (default value) + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: -1 +25FPS: + #Vsync target (default value) + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: -1 +30FPS: + #Vsync target (default value) + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: -1 +35FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 +40FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 +45FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 +50FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 +55FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 +60FPS: + #Vsync target + - + type: write + address: [MAIN, 0x5B18318, 0x944] + value_type: int32 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml b/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml new file mode 100644 index 0000000..2198937 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml @@ -0,0 +1,159 @@ +# Kao the Kangaroo 1.5 +# BID: F9C83728910E28A4 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71160E0, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x71C39F0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml b/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml new file mode 100644 index 0000000..b4deab0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml @@ -0,0 +1,156 @@ +# Little Nightmares 2 1.4 +# BID: 7F4216B6E784A4B2 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [66.6666, 66.6666] + # t.MaxFPS (game needs to be forced to run under 20 FPS, then it slows down) + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [15, 15] +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [33.3333, 33.3333] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [28.5714, 28.5714] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [22.2222, 22.2222] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74A0370, 0] + value_type: float + value: [16.6666, 16.6666] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x74CC710, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml b/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml new file mode 100644 index 0000000..cb201f0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml @@ -0,0 +1,75 @@ +# TT Isle of Man 1.1.0 +# BID: F2F739A2F1CAFF72 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x171DE2C] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml b/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml new file mode 100644 index 0000000..caa42a7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml @@ -0,0 +1,159 @@ +# Gripper 1.1.0 +# BID: 60B9AE6094566A23 + +unsafeCheck: true + +15FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.VSync (default value is 1, but it's crippling performance for no benefit) + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [0, 0] +35FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.VSync + - + type: write + address: [MAIN, 0x72ED6D8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7AE9F08, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml b/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml new file mode 100644 index 0000000..18b3f92 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml @@ -0,0 +1,159 @@ +# Destroy All Humans! 1.0.1 +# BID: 72E8F20EBBDBA296 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66C53A0, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x66ED320, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml b/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml new file mode 100644 index 0000000..55529b0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml @@ -0,0 +1,106 @@ +# Ancestors Legacy 1.1.0 +# BID: EE20B8DD92B8F9B4 + +unsafeCheck: true + +# Disable setting double buffer +MASTER_WRITE: + - + type: bytes + main_offset: 0x41BAB80 + value_type: int8 + value: 0x53 +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [30, 30] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x5075DB0, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml b/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml new file mode 100644 index 0000000..05095f8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml @@ -0,0 +1,159 @@ +# F.I.S.T.: Forged in Shadow Torch 1.0.4 +# BID: 69EE5F71F187EAA9 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAE271C8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xAE54F58, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml b/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml new file mode 100644 index 0000000..88b8f62 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml @@ -0,0 +1,192 @@ +# Persona 5 Scramble 1.0.1 +# BID: 407978D722447B25 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [15, 2] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 15 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 1 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [20, 2] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 20 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 1 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [25, 2] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 25 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 1 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [30, 2] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 30 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 1 +35FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [35, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 35 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [40, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 40 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [45, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 45 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [50, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 50 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [55, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 55 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x1D07538] + value_type: int32 + value: [60, 1] + - + type: write + address: [MAIN, 0x1D1AFC8] + value_type: float + value: 60 + - + type: write + address: [MAIN, 0x2A7A8D0] + value_type: int32 + value: 0 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml new file mode 100644 index 0000000..e378f69 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml @@ -0,0 +1,99 @@ +# OCTOPATH TRAVELER II 1.0.2 +# BID: BB891294DA55675E + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default is 30) + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x76C9F68, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml b/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml new file mode 100644 index 0000000..b8f077e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml @@ -0,0 +1,159 @@ +# Fishing: North Atlantic 1.1 +# BID: B9DB6040F70BE58F + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x69973C8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x69C4C68, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml b/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml new file mode 100644 index 0000000..7626347 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml @@ -0,0 +1,99 @@ +# ARK: Dinosaur Discovery 1.5.0 +# BID: 9E0901B84058B5B4 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x74CD708, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml b/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml new file mode 100644 index 0000000..97cb591 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml @@ -0,0 +1,75 @@ +# Tinykin 1.1.0 +# BID: 4E2AA28721AFF2C1 + +unsafeCheck: true + +15FPS: + # Dynamic resolution frametime target in ms = (1000/FPS) minus 2 with cutted decimals + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 64 +20FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 48 +25FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 38 +30FPS: + # Dynamic resolution frametime target in ms (default is 33, but because required difference for DR to really kick in is 2ms, we will lower it to get better performance) + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 31 +35FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 27 +40FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 23 +45FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 20 +50FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 18 +55FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 16 +60FPS: + # Dynamic resolution frametime target in ms + - + type: write + address: [MAIN, 0x53C9710, 0x44F8] + value_type: double + value: 14 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml b/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml new file mode 100644 index 0000000..acc639e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml @@ -0,0 +1,75 @@ +# art of rally 1.1.6 +# BID: 116535367286904C + +unsafeCheck: true + +15FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 15 +20FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 20 +25FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 25 +30FPS: + # DynamicResolutionManager_TypeInfo (default value) + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 30 +35FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 36 +40FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 41 +45FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 46 +50FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 51 +55FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 56 +60FPS: + # DynamicResolutionManager_TypeInfo + - + type: write + address: [MAIN, 0x5F43270, 0xB8, 4] + value_type: float + value: 61 diff --git a/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml new file mode 100644 index 0000000..1868803 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml @@ -0,0 +1,159 @@ +# HYPERCHARGE: Unboxed 0.1.2341.233 +# BID: 92511355705EA8C5 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x66951B0, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x66BBA30, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml b/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml new file mode 100644 index 0000000..fbb7f49 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml @@ -0,0 +1,83 @@ +# Kirby's Dream Buffet 1.0.0 +# BID: 82AF4E16BBC0BEC8 +# Thanks to Hazerou for finding offsets +# Game is using fake double buffer. + +unsafeCheck: true + +15FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 4 + - + type: block + what: timing +20FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 3 + - + type: block + what: timing +25FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 2 +30FPS: + # Interval (default value) + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 2 +35FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 +40FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 +45FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 +50FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 +55FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 +60FPS: + # Interval + - + type: write + address: [MAIN, 0xBEBFD8, 0] + value_type: int32 + value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml b/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml new file mode 100644 index 0000000..974eb50 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml @@ -0,0 +1,159 @@ +# Batora: Lost Haven 1.0.1 +# BID: 770A07C35E631CB2 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74F84C8, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7526058, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml b/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml new file mode 100644 index 0000000..0ca5443 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml @@ -0,0 +1,159 @@ +# The Stretchers 1.0.0 +# BID: 14D7D1537BD5A986 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5C63550, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5C880D8, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml b/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml new file mode 100644 index 0000000..7be0586 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml @@ -0,0 +1,159 @@ +# HOT WHEELS UNLEASHED 1.0.13 +# BID: F73C6504D378C38B + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x978D988, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x97BB4E0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml b/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml new file mode 100644 index 0000000..8f26884 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml @@ -0,0 +1,90 @@ +# The Legend of Heroes: Trails of Cold Steel (Sen on Kiseki) Kai -THORS MILITARY ACADEMY 1204- +# 英雄伝説 閃の軌跡I:改 -THORS MILITARY ACADEMY 1204- +# BID: AC8C8EC9DB1A8EF4 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.06666666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.05 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.04 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.03333333333 +35FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.02857142857 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.025 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.022222222222 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.02 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.0181818181818 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x80C9F0] + value_type: float + value: 0.016666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml b/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml new file mode 100644 index 0000000..da6d0ad --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml @@ -0,0 +1,75 @@ +# BioShock Remastered 1.0.2 +# BID: D89FFAA2062E373D + +unsafeCheck: true + +15FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 15 +20FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 20 +25FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 25 +30FPS: + # Dynamic resolution FPS factor (default) + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 30 +35FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 35 +40FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 40 +45FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 45 +50FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 50 +55FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 55 +60FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x29B4BA0, 0] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml b/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml new file mode 100644 index 0000000..39bf8ea --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml @@ -0,0 +1,159 @@ +# Beyond Enemy Lines - Remastered Version 1.1.0 +# BID: 5915CDDDC4EEA6CD + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [36, 36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [30, 30] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [25.714, 25.714] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [22.5, 22.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [16.3636, 16.3636] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63C5618, 0] + value_type: float + value: [15, 15] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63F25B0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml new file mode 100644 index 0000000..e78349b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml @@ -0,0 +1,96 @@ +# Monster Hunter Rise 14.0.0 +# BID: 11C9CE3F0676EEFD + +unsafeCheck: false + +# Disable NX-FPS delay function to prioritize game's own FPS lock. +15FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x12257C30, 0x434] + value_type: float + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml new file mode 100644 index 0000000..00fe078 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml @@ -0,0 +1,96 @@ +# Monster Hunter Rise 16.0.1 +# BID: 55D50CA1805E9C5B + +unsafeCheck: false + +# Disable NX-FPS delay function to prioritize game's own FPS lock. +15FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x12950348, 0x434] + value_type: float + value: 60 + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml new file mode 100644 index 0000000..4a066f9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml @@ -0,0 +1,96 @@ +# Monster Hunter Rise 15.0.0 +# BID: 60EFBA0CB724E3FE + +unsafeCheck: false + +# Disable NX-FPS delay function to prioritize game's own FPS lock. +15FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x128CEEB8, 0x434] + value_type: float + value: 60 + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml new file mode 100644 index 0000000..14ad90b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml @@ -0,0 +1,96 @@ +# Monster Hunter Rise 15.0.1 +# BID: 9B50DDD970E50DD5 + +unsafeCheck: false + +# Disable NX-FPS delay function to prioritize game's own FPS lock. +15FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x12839EB8, 0x434] + value_type: float + value: 60 + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml b/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml new file mode 100644 index 0000000..7af9919 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml @@ -0,0 +1,164 @@ +# SSINNER: Sacrifice for Redemption 1.1.0319 +# BID: 490D681909609015 + +unsafeCheck: true + +15FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + # Default is 0x67, bSmoothFrameRate |= 0x20, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5CCE320, 0x750] + value_type: uint32 + value: 7 + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5CCEBA8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml b/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml new file mode 100644 index 0000000..ef7471f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml @@ -0,0 +1,375 @@ +# DOOM Eternal 1.13 +# BID: 5AF6F31EAC42D8C0 + +unsafeCheck: true + +15FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 0 + # rs_raiseThreshold = 0.948 * (30/FPS) + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 1.896 + # rs_dropThreshold = 0.97 * (30/FPS) + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 1.94 + # rs_raiseMilliseconds = 0.96 * (1000/FPS) + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 64 + # rs_dropMilliseconds = 0.99 * (1000/FPS) + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 66 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 30 +20FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 0 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 1.455 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 1.428 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 48 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 49.5 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 30 +25FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 0 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 1.1376 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 1.164 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 38.4 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 39.6 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 30 +30FPS: + # rs_force460 (default) + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 0 + # rs_raiseThreshold (default) + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.948 + # rs_dropThreshold (default) + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.97 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 32 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 33 + # com_adaptiveTickMaxHz (default) + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 30 +35FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.81 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.831 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 27.428 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 28.285 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 +40FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.7095 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.7275 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 24 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 24.75 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 +45FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.63 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.646 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 21.33 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 22 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 +50FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.576 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.582 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 0.5676 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 19.8 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 +55FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.516 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.529 + # rs_raiseMilliseconds + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 17.45 + # rs_dropMilliseconds + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 18 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 +60FPS: + # rs_force460 + - + type: write + address: [MAIN, 0x792F238, 8] + value_type: int32 + value: 1 + # rs_raiseThreshold + - + type: write + address: [MAIN, 0x792E9C8, 0xC] + value_type: float + value: 0.473 + # rs_dropThreshold + - + type: write + address: [MAIN, 0x792E950, 0xC] + value_type: float + value: 0.485 + # rs_raiseMilliseconds (exefs default) + - + type: write + address: [MAIN, 0x792E578, 0xC] + value_type: float + value: 16 + # rs_dropMilliseconds (exefs default) + - + type: write + address: [MAIN, 0x792E500, 0xC] + value_type: float + value: 16.5 + # com_adaptiveTickMaxHz + - + type: write + address: [MAIN, 0x6A674F8, 8] + value_type: int32 + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml b/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml new file mode 100644 index 0000000..b12dfdb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml @@ -0,0 +1,266 @@ +# SAMURAI WARRIORS 5 1.03 +# BID: 810CBA3D7DB83EC0 + +unsafeCheck: true + +# Block updating FPS Lock +MASTER_WRITE: + - + type: bytes + main_offset: 0x1240DFC + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1240E10 + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1240E1C + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1240E24 + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1240E2C + value_type: uint32 + value: 0xBD41F100 +15FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 4 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 15 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [4, 15] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 3 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 20 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [3, 20] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 2 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 25 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [2, 30] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 30 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 2 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 30 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [2, 30] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 30 +35FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 35 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 40 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 45 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 50 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 55 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x1E761E0] + value_type: int32 + value: 1 + - + type: write + address: [MAIN, 0x1E761E4] + value_type: float + value: 60 + - + type: write + address: [MAIN, 0x1E761E8] + value_type: int32 + value: [1, 60] + - + type: write + address: [MAIN, 0x1E761F0] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml b/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml new file mode 100644 index 0000000..514f6d9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml @@ -0,0 +1,224 @@ +# Dusk Diver 1.0.6 +# BID: FAD1AF4EDC6DB267 + +unsafeCheck: true + +15FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + # Default is 0x67, bSmoothFrameRate |= 0x20, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bSmoothFrameRate and bUseFixedFrameRate + - + type: write + address: [MAIN, 0x5379338, 0x780] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5354210, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x537A880, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml b/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml new file mode 100644 index 0000000..8165ef2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml @@ -0,0 +1,159 @@ +# MotoGP 23 1.0.3 +# BID: CEE6B8B19D3A863E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xAD51FD8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xAD80450, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml b/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml new file mode 100644 index 0000000..a458556 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml @@ -0,0 +1,159 @@ +# Soundfall 1.3.17957 +# BID: 39F1BCCB912A12DF + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75E5BF8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7613BF8, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml b/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml new file mode 100644 index 0000000..a297c4e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml @@ -0,0 +1,159 @@ +# Bassmaster Fishing 2022: Super Deluxe Edition 1.02 +# BID: 78BF042012CF9EE8 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x797AA98, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x79A7F48, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml b/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml new file mode 100644 index 0000000..22f0a51 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml @@ -0,0 +1,159 @@ +# SHIN MEGAMI TENSEI V 1.0.2 +# BID: 019FBFE7738EA314 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (by default it's 40, obviously we don't want that) + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value for cutscenes is 30, everything else is 0) + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75F81D0, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7621D70, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml b/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml new file mode 100644 index 0000000..e0a9bf7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml @@ -0,0 +1,75 @@ +# Sniper Elite V2 1.0.5 +# BID: B61F280560A937D2 + +unsafeCheck: true + +15FPS: + # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 60 +20FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 45 +25FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 36 +30FPS: + # Dynamic Resolution frame time target (default value) + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 30 +35FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 25.71 +40FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 22.5 +45FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 20 +50FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 18 +55FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 16.36 +60FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x155A880, 4] + value_type: float + value: 15 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml b/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml new file mode 100644 index 0000000..124a55a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml @@ -0,0 +1,159 @@ +# SWORD OF THE VAGRANT 1.1 +# BID: 1F1363EC8CC83C73 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674CAA0, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6791950, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml new file mode 100644 index 0000000..bb43060 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml @@ -0,0 +1,99 @@ +# EA SPORTS FC 24 1.54.2d45 +# BID: 58636D33E56B931B + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 15 + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 20 + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 25 + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 30 +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 35 + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 40 + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 45 + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 50 + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 55 + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD52EC0, 8] + value_type: double + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml new file mode 100644 index 0000000..0ed5574 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml @@ -0,0 +1,99 @@ +# EA SPORTS FC 24 1.0.0 +# BID: 6B6D4D60E3187FFC + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 15 + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 20 + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 25 + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 30 +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 35 + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 40 + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 45 + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 50 + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 55 + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD17BE0, 8] + value_type: double + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml new file mode 100644 index 0000000..68241ef --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml @@ -0,0 +1,99 @@ +# EA SPORTS FC 24 1.53.dd6d +# BID: A8D4FEE18023F15C + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 15 + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 20 + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 25 + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 30 +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 35 + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 40 + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 45 + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 50 + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 55 + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xB89BE98, 8] + value_type: double + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml new file mode 100644 index 0000000..5780e46 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml @@ -0,0 +1,99 @@ +# EA SPORTS FC 24 1.54.1d19 +# BID: E0A5A92EA4F37A3A + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 15 + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 20 + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 25 + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 30 +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 35 + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 40 + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 45 + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 50 + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 55 + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0xCD40E00, 8] + value_type: double + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml new file mode 100644 index 0000000..c72e939 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml @@ -0,0 +1,166 @@ +# Bloodstained: Ritual of the Night 1.40 +# BID: 12E0B62494B22F62 + +unsafeCheck: true + +MASTER_WRITE: + # Disable double buffer + - + type: bytes + main_offset: 0xABD8294 + value_type: int8 + value: 0x53 +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.84 * (1000/FPS) + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [56, 56] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [42, 42] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [33.6, 33.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [28, 28] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [24, 24] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [21, 21] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [18.66, 18.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [16.8, 16.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [15.27, 15.27] + # t.MaxFPS + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0xCF57E90, 0] + value_type: float + value: [14, 14] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0xCF7EC80, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml new file mode 100644 index 0000000..d5e8fc8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml @@ -0,0 +1,224 @@ +# The Witcher 3 3.7 +# BID: 4FFB62F1CD9E17F8 + +unsafeCheck: false + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA8F4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x4FDA924] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x4C983EC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml new file mode 100644 index 0000000..3c88651 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml @@ -0,0 +1,224 @@ +# The Witcher 3: Wild Hund - Complete Edition 4.04b +# BID: D27FD8A515077F34 + +unsafeCheck: true + +15FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 63 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 63 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 15 + - + type: block + what: timing +20FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 47.25 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 47.25 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 20 + - + type: block + what: timing +25FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 37.8 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 37.8 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 25 + - + type: block + what: timing +30FPS: + # DRGameTargetFrameTimeInMs (original value) + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 31.5 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 31.5 + # LimitFPS (original value) + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + +# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. +35FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 27 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 27 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 35 + - + type: block + what: timing +40FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 23.625 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 23.625 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 40 + - + type: block + what: timing +45FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 21 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 21 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 45 + - + type: block + what: timing +50FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 18.9 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 18.9 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 50 + - + type: block + what: timing +55FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 17.1818181818 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 17.1818181818 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 55 + - + type: block + what: timing +60FPS: + # DRGameTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312B4] + value_type: float + value: 15.75 + # DRCinematicTargetFrameTimeInMs + - + type: write + address: [MAIN, 0x41312E4] + value_type: float + value: 15.75 + # LimitFPS + - + type: write + address: [MAIN, 0x411DCFC] + value_type: int32 + value: 60 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml b/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml new file mode 100644 index 0000000..9fcb229 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml @@ -0,0 +1,91 @@ +# Boomerang X 1.0.2 +# BID: D92F465FE9920BB6 + +unsafeCheck: true + +MASTER_WRITE: + # Patch `DynamicResolution.Settings$$get_TargetFPS` to redirect reading targetFPS to unused .bss region [MAIN, 0x5E9AFF0] + - + type: bytes + main_offset: 0x3821020 + value_type: int32 + value: + - 0xB00133C0 + - 0xBD4FF000 + - 0xD65F03C0 + # Write default value of `DynamicResolution.Settings$$get_TargetFPS` to redirected address + - + type: bytes + main_offset: 0x5E9AFF0 + value_type: float + value: 28 +15FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 15 +20FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 20 +25FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 25 +30FPS: + # DynamicResolution.Settings$$get_TargetFPS (default is 28) + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 30 +35FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 35 +40FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 40 +45FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 45 +50FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 50 +55FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 55 +60FPS: + # DynamicResolution.Settings$$get_TargetFPS + - + type: write + address: [MAIN, 0x5E9AFF0] + value_type: float + value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml b/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml new file mode 100644 index 0000000..4c81773 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml @@ -0,0 +1,99 @@ +# Snake Pass 1.4 +# BID: D0798521F563E6A7 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [30, 30] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x49012B8, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml new file mode 100644 index 0000000..716d5b7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml @@ -0,0 +1,99 @@ +# ABZU 1.0.0 +# BID: 59719CFCD1671B98 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x6228EE0, 0] + value_type: float + value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml b/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml new file mode 100644 index 0000000..4f6b78c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml @@ -0,0 +1,159 @@ +# Grand Theft Auto III - Definitive Edition 1.0.7 +# BID: 2CF52C8DA4468946 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value is 36.5, obviously we don't want it) + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x74FD298, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7521FE0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml b/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml new file mode 100644 index 0000000..dd62b61 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml @@ -0,0 +1,70 @@ +# Clive 'N' Wrench 1.0.6 +# BID: FE211DBFAD6EA549 + +unsafeCheck: false + +15FPS: + # Dynamic Resolution GPU Frame Timing target in ms = 0.9 * (1000/FPS) + # It was derived by hooking `PSH.DynamicResolutionManager$$ScaleResolutionToAchieveFrameRate` before its first use + # at instruction `LDR d1, [x8, #0x18]` + # Then Edizon-SE's Pointer Search was used to find reliable offset chain + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 60 +20FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 45 +25FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 36 +30FPS: + # Default + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 30 +35FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 25.71 +40FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 22.5 +45FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 20 +50FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 18 +55FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 16.3636 +60FPS: + - + type: write + address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] + value_type: double + value: 15 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml b/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml new file mode 100644 index 0000000..aa245b9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml @@ -0,0 +1,75 @@ +# Zombie Army Trilogy 1.0.2 +# BID: 54211726D36A8D9C + +unsafeCheck: true + +15FPS: + # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 60 +20FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 45 +25FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 36 +30FPS: + # Dynamic Resolution frame time target (default value) + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 30 +35FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 25.71 +40FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 22.5 +45FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 20 +50FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 18 +55FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 16.36 +60FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0xDD9A88, 4] + value_type: float + value: 15 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml b/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml new file mode 100644 index 0000000..79a1a6e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml @@ -0,0 +1,99 @@ +# Sherlock Holmes The Awakened 1.0.0 +# BID: 32BF1643370F70AA + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x7D7E968, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml new file mode 100644 index 0000000..a9ff2a3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml @@ -0,0 +1,159 @@ +# Tony Hawk's Pro Skater 1 + 2 1.0.3 +# BID: 8AFCBE6A930CD42E + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 4 decimals + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [66.6666, 66.6666] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [33.3333, 33.3333] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [30, 30] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [28.5714, 28.5714] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [22.2222, 22.2222] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [18.1818, 18.1818] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7DB2AB0, 0] + value_type: float + value: [16.6666, 16.6666] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7DDEF90, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml new file mode 100644 index 0000000..e8e0e32 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml @@ -0,0 +1,159 @@ +# Triangle Strategy 1.0.2 +# BID: 2AA7F33234696651 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [63, 63] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [47.25, 47.25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [37.8, 37.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [27, 27] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [23.625, 23.625] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [21, 21] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [18.9, 18.9] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [17.18, 17.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml new file mode 100644 index 0000000..39da7d4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml @@ -0,0 +1,159 @@ +# Triangle Strategy 1.0.3 +# BID: F7C20294EFF7E6FA + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [63, 63] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [47.25, 47.25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [37.8, 37.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [27, 27] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [23.625, 23.625] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [21, 21] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [18.9, 18.9] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [17.18, 17.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x745D838, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x748B408, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml b/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml new file mode 100644 index 0000000..d3e387b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml @@ -0,0 +1,512 @@ +# Crysis 3 Remastered 1.3.0 +# BID: 53EA0196A4AEB260 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect Dynamic Resolution Timings to read always not from .text + - + type: bytes + main_offset: 0x136A51C + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x136A548 + value_type: uint32 + value: + - 0xD503201F + - 0xD503201F +# Redirect Dynamic Resolution Timings readings to MAIN+0x3608E00 + - + type: bytes + main_offset: 0x136A520 + value_type: uint32 + value: + - 0xD00114E8 + - 0xBD4E0100 + - 0xBD4E0501 + - 0xBD4E0902 + - 0xD503201F + - 0xD503201F + - + type: bytes + main_offset: 0x136A554 + value_type: uint32 + value: + - 0xD00114E9 + - 0x91383129 +# Write default values + - + type: bytes + main_offset: 0x3443CA4 + value_type: float + value: 28.5 + # MAIN + 0x22EA494 + - + type: bytes + main_offset: 0x3608E00 + value_type: float + value: 33.5 + # MAIN + 0x22EAE14 + - + type: bytes + main_offset: 0x3608E04 + value_type: float + value: 30.5 + # MAIN + 0x22EAB58 + - + type: bytes + main_offset: 0x3608E08 + value_type: float + value: 32.5 + # MAIN + 0x22E9E48 + - + type: bytes + main_offset: 0x3608E0C + value_type: float + value: [31.5, 33.25] +15FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 15 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 57 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 67 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 61 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 65 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [63, 63] + - + type: block + what: timing +20FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 20 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 42.75 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 50.25 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 45.75 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 48.75 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [47.25, 47.25] + - + type: block + what: timing +25FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 25 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 34.2 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 40.2 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 36.6 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 39 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [37.8, 37.8] + - + type: block + what: timing +30FPS: + # sys_MaxFPS (default value) + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 30 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - # default value + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 28.5 + # MAIN + 0x22EA494 (default value) + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 33.5 + # MAIN + 0x22EAE14 (default value) + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 30.5 + # MAIN + 0x22EAB58 (default value) + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 32.5 + # MAIN + 0x22E9E48 (default value) + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [31.5, 33.25] +35FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 35 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 24.4286 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 28.7143 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 26.1429 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 27.8571 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [27, 27] + - + type: block + what: timing +40FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 40 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 21.375 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 25.125 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 22.875 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 24.375 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [23.625, 23.625] + - + type: block + what: timing +45FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 45 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.022 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 19 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 22.3333 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 20.3333 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 21.6667 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [21, 21] + - + type: block + what: timing +50FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 50 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.015 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 17.1 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 20.1 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 18.3 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 19.5 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [18.9, 18.9] + - + type: block + what: timing +55FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 55 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.015 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 15.5455 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 18.2727 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 16.6364 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 17.7273 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [17.1818, 17.1818] + - + type: block + what: timing +60FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x34382D8] + value_type: int32 + value: 60 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3466BB0] + value_type: float + value: 0.015 + - + type: write + address: [MAIN, 0x3443CA4] + value_type: float + value: 14.25 + # MAIN + 0x22EA494 + - + type: write + address: [MAIN, 0x3608E00] + value_type: float + value: 16.75 + # MAIN + 0x22EAE14 + - + type: write + address: [MAIN, 0x3608E04] + value_type: float + value: 15 + # MAIN + 0x22EAB58 + - + type: write + address: [MAIN, 0x3608E08] + value_type: float + value: 15.75 + # MAIN + 0x22E9E48 + - + type: write + address: [MAIN, 0x3608E0C] + value_type: float + value: [15.5, 15.5] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml b/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml new file mode 100644 index 0000000..f62cd28 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml @@ -0,0 +1,136 @@ +# Rune Factory 5 1.0.2 +# BID: D626F7A72AF54744 +# Cutscenes don't use Dynamic Resolution + +unsafeCheck: true + +15FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 66.6 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 64 +20FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 50 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 48 +25FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 40 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 38 +30FPS: + # Dynamic Resolution Frame Target Max in ms (default is 38) + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 33.3 + # Dynamic Resolution Frame Target Min in ms (default is 33) + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 31 +35FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 28.5 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 26 +40FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 25 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 23 +45FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 22.2 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 20 +50FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 20 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 18 +55FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 18.1 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 16 +60FPS: + # Dynamic Resolution Frame Target Max in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] + value_type: float + value: 16.6 + # Dynamic Resolution Frame Target Min in ms + - + type: write + address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] + value_type: float + value: 14 diff --git a/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml b/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml new file mode 100644 index 0000000..ca1e9e7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml @@ -0,0 +1,75 @@ +# Oddworld Soulstorm 1.1.3 +# BID: 9510D677DCCE4447 + +unsafeCheck: false # At game's boot in this chain values are occuring that are not addresses + +15FPS: + # Dynamic Resolution frame time target in ms cutted to 1 decimal + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 66.6 +20FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 50 +25FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 40 +30FPS: + # Dynamic Resolution frame time target (Default value) + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 33.3 +35FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 28.5 +40FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 25 +45FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 22.2 +50FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 20 +55FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 18.1 +60FPS: + # Dynamic Resolution frame time target + - + type: write + address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] + value_type: float + value: 16.6 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml b/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml new file mode 100644 index 0000000..ea2d6f3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml @@ -0,0 +1,159 @@ +# Monster Truck Championship 1.2.0 +# BID: 682F4A502035678D + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.97 * (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [64.66, 64.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [48.5, 48.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [38.8, 38.8] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [32.33, 32.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [27.71, 27.71] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [24.25, 24.25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [21.55, 21.55] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [19.4, 19.4] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [17.63, 17.63] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x6F8C6B0, 0] + value_type: float + value: [16.16, 16.16] + # t.MaxFPS + - + type: write + address: [MAIN, 0x6FB45D8, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml b/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml new file mode 100644 index 0000000..0300f39 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml @@ -0,0 +1,140 @@ +# The Legend of Heroes: Trails of Cold Steel IV 1.0.3 +# BID: 8C93B930348C9787 +# Button polling is 2x more sensitive to holding any button + +unsafeCheck: true + +MASTER_WRITE: + # Move loading FPS lock time to MAIN+0x3AF0800 + - + type: bytes + main_offset: 0x5F02F8 + value_type: uint32 + value: + - 0x9001A809 + - 0xB9480129 + # Default value + - + type: bytes + main_offset: 0x3AF0800 + value_type: uint32 + value: 33333333 + # Write game's loop time as float to MAIN+0x3AF0804 + - + type: bytes + main_offset: 0x5F0348 + value_type: uint32 + value: 0x17FFFF5B + - + type: bytes + main_offset: 0x5F00B4 + value_type: uint32 + value: + - 0xF9000660 + - 0x1E624004 + - 0x14000086 + - + type: bytes + main_offset: 0x5F02D4 + value_type: uint32 + value: + - 0x9001A808 + - 0xBD080504 + - 0x1400001C + - # Read lowest timing float factor from MAIN+0x3AF0804 + type: bytes + main_offset: 0x65548 + value_type: uint32 + value: + - 0xF001D448 + - 0x1E227800 + - 0xBD480502 + - # Default value + type: bytes + main_offset: 0x3AF0804 + value_type: float + value: 0.0333333333 +15FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 66666666 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 50000000 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 40000000 + - + type: block + what: timing +30FPS: + - # default value + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 33333333 +35FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 28571428 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 25000000 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 22222222 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 20000000 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 18181818 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x3AF0800] + value_type: uint32 + value: 16666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml new file mode 100644 index 0000000..9bfd61a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml @@ -0,0 +1,75 @@ +# Metro 2033 Redux +# BID: 85C362CC9790F0ED + +unsafeCheck: true + +15FPS: + # Dynamic resolution FPS factor (0.989 * FPS) + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 14.835 +20FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 19.78 +25FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 24.725 +30FPS: + # Dynamic resolution FPS factor (default) + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 29.67 +35FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 34.615 +40FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 39.56 +45FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 44.505 +50FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 49.45 +55FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 54.395 +60FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 59.34 diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml new file mode 100644 index 0000000..8c38e16 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml @@ -0,0 +1,159 @@ +# ARK: Survival Evolved 2.0.10 +# BID: 49F3DD78CB5490B5 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7943C38, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7971D48, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml new file mode 100644 index 0000000..a96f79e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml @@ -0,0 +1,159 @@ +# ARK: Survival Evolved 2.0.7 +# BID: 5418E22D160F766F + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value is 30) + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x78DE6D8, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x790C798, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml b/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml new file mode 100644 index 0000000..7416fa8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml @@ -0,0 +1,75 @@ +# BioShock Infinite 1.0.2 +# BID: 48681F1D90704F6C + +unsafeCheck: true + +15FPS: + # Dynamic resolution FPS factor (FPS_Target + 1.5) + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 16.5 +20FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 21.5 +25FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 26.5 +30FPS: + # Dynamic resolution FPS factor (default) + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 31.5 +35FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 36.5 +40FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 41.5 +45FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 46.5 +50FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 51.5 +55FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 56.5 +60FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x28A8450, 0] + value_type: float + value: 61.5 diff --git a/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml b/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml new file mode 100644 index 0000000..26795a6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml @@ -0,0 +1,159 @@ +# Trek to Yomi 0.4 +# BID: A52C9938956331C9 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x73F93F8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x7426A18, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml new file mode 100644 index 0000000..d6b49c2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml @@ -0,0 +1,102 @@ +# The Great Ace Attorney Chronicles JP 1.0.0 +# BID: D871B992E95B71C5 + +unsafeCheck: true + +15FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 15 + - + type: block + what: timing +20FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 20 + - + type: block + what: timing +25FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 25 + - + type: block + what: timing +30FPS: + # FPS lock (default) + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 30 + - + type: block + what: timing +35FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 35 + - + type: block + what: timing +40FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 40 + - + type: block + what: timing +45FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 45 + - + type: block + what: timing +50FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 50 + - + type: block + what: timing +55FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 55 + - + type: block + what: timing +60FPS: + # FPS lock + - + type: write + address: [MAIN, 0xCFA0F8, 0x4C] + value_type: float + value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml new file mode 100644 index 0000000..2ffb267 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml @@ -0,0 +1,189 @@ +# Modern Combat Blackout 1.1.9 +# BID: C56E6F514FADC5C5 + +unsafeCheck: true + +15FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 15 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [15, 66] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 12.5 + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 20 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [20, 50] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 16.66666666666 + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 25 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [25, 40] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 20.83333333333 + - + type: block + what: timing +30FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 100 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [100, 33] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 25 +35FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 35 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [35, 28] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 29.166666666 + - + type: block + what: timing +40FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 40 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [40, 25] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 33.3333333333 + - + type: block + what: timing +45FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 45 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [45, 22] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 37.555555555 + - + type: block + what: timing +50FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 50 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [50, 20] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 41.6666666666 + - + type: block + what: timing +55FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 55 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [55, 18] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 45.8333333333 + - + type: block + what: timing +60FPS: + - + type: write + address: [MAIN, 0x14284E0] + value_type: int32 + value: 100 + - + type: write + address: [MAIN, 0x155C640, 0x7E8, 0x49C] + value_type: int32 + value: [100, 16] + - + type: write + address: [MAIN, 0x14E2320, 0x944] + value_type: float + value: 50 diff --git a/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml b/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml new file mode 100644 index 0000000..dc77cc5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml @@ -0,0 +1,159 @@ +# Life is Strange 1.0.1 +# BID: EE295EAAEA7D31E4 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x674AF18, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x67758C0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml b/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml new file mode 100644 index 0000000..6595086 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml @@ -0,0 +1,113 @@ +# Luigi's Mansion 3 1.4.0 +# BID: 79E5950FFA85ACF6 +# Credits for finding FPS Lock goes to theboy181 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect reading FPS Lock to MAIN+0x1D164DC + - + type: bytes + main_offset: 0x7A3E9C + value_type: uint32 + value: 0xF000AB8C + # Default value + - + type: bytes + main_offset: 0x1D164DC + value_type: float + value: 33.33333333 +15FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 66.66666666 + - + type: block + what: timing +20FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 50 + - + type: block + what: timing +25FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 40 + - + type: block + what: timing +30FPS: + # FPS Lock in ms (default value) + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 33.33333333 +35FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 28.57142857 + - + type: block + what: timing +40FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 25 + - + type: block + what: timing +45FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 22.22222222 + - + type: block + what: timing +50FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 20 + - + type: block + what: timing +55FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 18.18181818 + - + type: block + what: timing +60FPS: + # FPS Lock in ms + - + type: write + address: [MAIN, 0x1D164DC] + value_type: float + value: 16.66666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml b/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml new file mode 100644 index 0000000..b203bf9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml @@ -0,0 +1,159 @@ +# Everspace +# BID: 71873FEB4648FA39 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [32, 32] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [28.57, 28.57] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x5FAB540, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x5FD00A8, 0] + value_type: float + value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml b/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml new file mode 100644 index 0000000..031b73b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml @@ -0,0 +1,159 @@ +# Earthfall: Alien Horde 1.0.1 +# BID: 448C08A9533F3CAD + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default) + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default) + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x71A9000, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default) + - + type: write + address: [MAIN, 0x71CCE48, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml b/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml new file mode 100644 index 0000000..0299f16 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml @@ -0,0 +1,159 @@ +# Severed Steel 1.0.2 +# BID: 77C053D779EE97F6 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [60, 60] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [45, 45] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [36, 36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [30, 30] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [25.71, 25.71] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [22.5, 22.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [18, 18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [16.36, 16.36] + # t.MaxFPS + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x75EE8A8, 0] + value_type: float + value: [15, 15] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x761C478, 0] + value_type: float + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml b/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml new file mode 100644 index 0000000..950747f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml @@ -0,0 +1,188 @@ +# Trine 5: A Clockwork Conspiracy 1.0.3 +# BID: 1F0710E2B6C1DEAD +# To update dynamic resolution offsets look at fb::renderer::ResolutionScaler::update + +unsafeCheck: true + +MASTER_WRITE: + # Change double buffer to triple buffer + - + type: bytes + main_offset: 0x13D2CA4 + value_type: uint32 + value: 0x52800068 + # Allow changing dynamic resolution timings + # Max - changed address to MAIN + 0x7CA3200 + - + type: bytes + main_offset: 0x2620DD8 + value_type: uint32 + value: 0x1423399F + - + type: bytes + main_offset: 0x2EEF454 + value_type: uint32 + value: + - 0x90026DA8 + - 0xF9410108 + - 0x17DCC660 + # Min - changed address to MAIN + 0x7CA3208 + - + type: bytes + main_offset: 0x2620E50 + value_type: uint32 + value: 0x942343E0 + - + type: bytes + main_offset: 0x2620E8C + value_type: uint32 + value: 0x942343D1 + - + type: bytes + main_offset: 0x2EF1DD0 + value_type: uint32 + value: + - 0xD0026D8A + - 0xF941054A + - 0xD65F03C0 + # Default values + - + type: bytes + main_offset: 0x7CA3200 + value_type: double + value: 34.0 + - + type: bytes + main_offset: 0x7CA3208 + value_type: double + value: 32.0 +15FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 68.0 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 64.0 +20FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 51.0 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 48.0 +25FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 40.8 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 38.4 +30FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 34.0 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 32.0 +35FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 29.14 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 27.42 +40FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 25.5 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 24.0 +45FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 22.66 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 21.33 +50FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 20.4 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 19.2 +55FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 18.54 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 17.45 +60FPS: + # Max Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3200] + value_type: double + value: 17.0 + # Min Dynamic Resolution Timing + - + type: write + address: [MAIN, 0x7CA3208] + value_type: double + value: 16.0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml b/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml new file mode 100644 index 0000000..7e9c142 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml @@ -0,0 +1,81 @@ +# Othercide 1.3.0.5 +# BID: A8BA2A8F93AAE647 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DynamicResolutionManager$$Update Timing to be read from MAIN+0x72C6500 + - + type: bytes + main_offset: 0x2B0188C + value_type: uint32 + value: + - 0xB0023E28 + - 0xBD450101 + # Write default value + - + type: bytes + main_offset: 0x72C6500 + value_type: float + value: 41 +15FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 65.6666 +20FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 49 +25FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 39 +30FPS: + # Default is 41, but it sucks + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 32.3333 +35FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 27.5714 +40FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 24 +45FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 21.2222 +50FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 19 +55FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 17.1818 +60FPS: + - + type: write + address: [MAIN, 0x72C6500] + value_type: float + value: 15.5 diff --git a/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml b/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml new file mode 100644 index 0000000..7aacd2d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml @@ -0,0 +1,460 @@ +# Crysis Remastered 1.8.0 +# BID: 45CE2B6625A35771 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect Dynamic Resolution Timings to read always not from .text + - + type: bytes + main_offset: 0x27CE4B4 + value_type: uint32 + value: 0x1E204020 +# Redirect Dynamic Resolution Timings readings to MAIN+0x3DFAE00 + - + type: bytes + main_offset: 0x27CE450 + value_type: uint32 + value: + - 0x9000B16D + - 0xBD4E01A1 + - + type: bytes + main_offset: 0x27CE484 + value_type: uint32 + value: + - 0x9000B169 + - 0x91381129 + - + type: bytes + main_offset: 0x27CE490 + value_type: uint32 + value: + - 0x9000B16A + - 0x9138314A + - + type: bytes + main_offset: 0x27CE468 + value_type: uint32 + value: + - 0x9000B168 + - 0x91385108 +# Write default values + # MAIN + 0x2C11728 + - + type: bytes + main_offset: 0x3DFAE00 + value_type: float + value: 28.5 + # MAIN + 0x2C12B98 + - + type: bytes + main_offset: 0x3DFAE04 + value_type: float + value: [32, 33] + # MAIN + 0x2C13130 + - + type: bytes + main_offset: 0x3DFAE0C + value_type: float + value: [29.5, 32] + # MAIN + 0x2C12EF8 + - + type: bytes + main_offset: 0x3DFAE14 + value_type: float + value: [33.5, 36] +15FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 15 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 57 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [64, 64] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [59, 59] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [67, 67] + - + type: block + what: timing +20FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 20 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 42.75 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [48, 48] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [44.25, 44.25] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [50.25, 50.25] + - + type: block + what: timing +25FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 25 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 34.2 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [38.4, 38.4] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [35.4, 35.4] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [40.2, 40.2] + - + type: block + what: timing +30FPS: + # sys_MaxFPS (default value) + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 30 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 (default value) + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 28.5 + # MAIN + 0x2C12B98 (default value) + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [32, 33] + # MAIN + 0x2C13130 (default value) + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [29.5, 32] + # MAIN + 0x2C12EF8 (default value) + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [33.5, 36] +35FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 35 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 24.4286 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [27.4286, 27.4286] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [25.2857, 25.2857] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [28.7143, 28.7143] + - + type: block + what: timing +40FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 40 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 21.375 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [24, 24] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [22.125, 22.125] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [25.125, 25.125] + - + type: block + what: timing +45FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 45 + # Renderer thread delay (default value) + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.022 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 19 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [21.3333, 21.3333] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [19.6666, 19.6666] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [22.3333, 22.3333] + - + type: block + what: timing +50FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 50 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.015 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 17.1 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [19.2, 19.2] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [17.7, 17.7] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [20.1, 20.1] + - + type: block + what: timing +55FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 55 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.015 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 15.5455 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [17.4545, 17.4545] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [16.0909, 16.0909] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [18.2727, 18.2727] + - + type: block + what: timing +60FPS: + # sys_MaxFPS + - + type: write + address: [MAIN, 0x3CB4204] + value_type: int32 + value: 60 + # Renderer thread delay + - + type: write + address: [MAIN, 0x3CCF6A0] + value_type: float + value: 0.015 + # MAIN + 0x2C11728 + - + type: write + address: [MAIN, 0x3DFAE00] + value_type: float + value: 14.25 + # MAIN + 0x2C12B98 + - + type: write + address: [MAIN, 0x3DFAE04] + value_type: float + value: [16, 16] + # MAIN + 0x2C13130 + - + type: write + address: [MAIN, 0x3DFAE0C] + value_type: float + value: [14.75, 14.75] + # MAIN + 0x2C12EF8 + - + type: write + address: [MAIN, 0x3DFAE14] + value_type: float + value: [16.75, 16.75] diff --git a/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml b/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml new file mode 100644 index 0000000..3405fd3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml @@ -0,0 +1,159 @@ +# Bramble The Mountain King 1.0.7 +# BID: ACF3FF125C2A3E68 + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x7241888, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x726F108, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml b/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml new file mode 100644 index 0000000..ed318d1 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml @@ -0,0 +1,75 @@ +# Metro: Last Light Redux 1.0.0 +# BID: 85C362CC9790F0ED + +unsafeCheck: true + +15FPS: + # Dynamic resolution FPS factor (0.989 * FPS) + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 14.835 +20FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 19.78 +25FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 24.725 +30FPS: + # Dynamic resolution FPS factor (default) + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 29.67 +35FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 34.615 +40FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 39.56 +45FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 44.505 +50FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 49.45 +55FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 54.395 +60FPS: + # Dynamic resolution FPS factor + - + type: write + address: [MAIN, 0x17321D8] + value_type: float + value: 59.34 diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml new file mode 100644 index 0000000..c71e73c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml @@ -0,0 +1,88 @@ +# The Settlers: New Allies 1.0.0 +# BID: 254DF6A118587EA0 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect FPS Lock to float MAIN+B4DC000, frametime and DR target to float MAIN+B4DC004 + - + type: bytes + main_offset: 0x368BA0 + value_type: uint32 + value: + - 0x90058BA8 + - 0xBD4C0100 + - 0xBD4C0508 + - + type: bytes + main_offset: 0x32C5524 + value_type: uint32 + value: + - 0xF00410A0 + - 0xBD4C0400 + # Default values + - + type: bytes + main_offset: 0xB4DC000 + value_type: float + value: [30, 0.0333333333] +15FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [15, 0.0666666666] +20FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [20, 0.05] +25FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [25, 0.04] +30FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [30, 0.0333333333] +35FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [35, 0.028571] +40FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [40, 0.025] +45FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [45, 0.0222222222] +50FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [50, 0.02] +55FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [55, 0.0181818181] +60FPS: + - + type: write + address: [MAIN, 0xB4DC000] + value_type: float + value: [60, 0.0166666666] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml b/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml new file mode 100644 index 0000000..a9d3a77 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml @@ -0,0 +1,224 @@ +# Mythic Ocean 1.0.1 +# BID: 2284DFB25F387719 + +unsafeCheck: true + +15FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + # Default is 0x47, bUseFixedFrameRate |= 0x40 + # By writing 7 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + # bCanBlueprintsTickByDefault |= 1 + value: 7 + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [66.66, 66.66] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [33.33, 33.33] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [0, 0] +35FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [28.51, 28.51] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [22.22, 22.22] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [18.18, 18.18] + # t.MaxFPS + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x63CEE78, 0x7A4] + value_type: uint32 + value: 7 + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x63A23A8, 0] + value_type: float + value: [16.66, 16.66] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x63CF748, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml b/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml new file mode 100644 index 0000000..7a89d55 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml @@ -0,0 +1,159 @@ +# Darksiders III 1.0.1 +# BID: AF7114F019CE6E1D + +unsafeCheck: true + +15FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [66.6, 66.6] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [50, 50] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [40, 40] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # r.DynamicRes.FrameTimeBudget (default value) + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [33.3, 33.3] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [0, 0] +35FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [28.5, 28.5] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [25, 25] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [22.2, 22.2] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [20, 20] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [18.1, 18.1] + # t.MaxFPS + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # r.DynamicRes.FrameTimeBudget + - + type: write + address: [MAIN, 0x64F2160, 0] + value_type: float + value: [16.6, 16.6] + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x64E86B0, 0] + value_type: float + value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml new file mode 100644 index 0000000..480ddeb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml @@ -0,0 +1,75 @@ +# TT Isle of Man : Ride on the Edge 3 1.2.0 +# BID: 1DF30F9632347530 + +unsafeCheck: true + +15FPS: + # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 64.333333 +20FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 47.666666 +25FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 37.666666 +30FPS: + # OptimalFrameDuration_ms (default value) + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 31 +35FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 26.238095 +40FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 22.666666 +45FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 19.888888 +50FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 17.666666 +55FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 15.848484 +60FPS: + # OptimalFrameDuration_ms + - + type: write + address: [MAIN, 0x2CA8C3C] + value_type: float + value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml b/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml new file mode 100644 index 0000000..7abf4ca --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml @@ -0,0 +1,99 @@ +# Life is Strange 2 1.1.0 +# BID: BF0088C59D7E97C0 + +unsafeCheck: true + +15FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [15, 15] + - + type: block + what: timing +20FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [20, 20] + - + type: block + what: timing +25FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [25, 25] + - + type: block + what: timing +30FPS: + # t.MaxFPS (default value) + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [0, 0] +35FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [35, 35] + - + type: block + what: timing +40FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [40, 40] + - + type: block + what: timing +45FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [45, 45] + - + type: block + what: timing +50FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [50, 50] + - + type: block + what: timing +55FPS: + # t.MaxFPS + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [55, 55] + - + type: block + what: timing +60FPS: + # t.MaxFPS (we want to set above 60 so NVN will deal with lock without UE4 trying to do it) + - + type: write + address: [MAIN, 0x8082C68, 0] + value_type: float + value: [100, 100] diff --git a/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml b/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml new file mode 100644 index 0000000..f5bda07 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml @@ -0,0 +1,72 @@ +# Xenoblade Chronicles 1.1.2 +# BID: 92C78BB3DCBBC3F7 + +unsafeCheck: true + +# For 15-20 FPS use internal FPS lock, for 25-30 set default value +15FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [4, 4] + - + type: block + what: timing +20FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [3, 3] + - + type: block + what: timing +25FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [2, 2] +30FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [2, 2] +35FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] +40FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] +45FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] +50FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] +55FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] +60FPS: + - + type: write + address: [MAIN, 0x13BFDA0] + value_type: int32 + value: [1, 1] \ No newline at end of file diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf new file mode 100644 index 0000000..4c3b04f Binary files /dev/null and b/SaltySD/saltysd_core.elf differ diff --git a/atmosphere/config/override_config.ini b/atmosphere/config/override_config.ini new file mode 100644 index 0000000..254874a --- /dev/null +++ b/atmosphere/config/override_config.ini @@ -0,0 +1,18 @@ +[hbl_config] +; Program Specific Config +; Up to 8 program-specific configurations can be set. +; These use `program_id_#`, `override_address_space_#`, and `override_key_#` +; where # is in range [0,7]. +; program_id_0=010000000000100D +; override_address_space=39_bit +; override_key_0=!R +; override_any_app_key=R + +title_id=010000000000100D +override_any_app=true +path=atmosphere/hbl.nsp +override_key=R + +[default_config] +override_key=!L +cheat_enable_key=L \ No newline at end of file diff --git a/atmosphere/config/system_settings.ini b/atmosphere/config/system_settings.ini new file mode 100644 index 0000000..81b7470 --- /dev/null +++ b/atmosphere/config/system_settings.ini @@ -0,0 +1,127 @@ +[lm] +enable_sd_card_logging = u8!0x0 + +[eupld] +upload_enabled = u8!0x0 + +[atmosphere] +dmnt_cheats_enabled_by_default = u8!0x0 +dmnt_always_save_cheat_toggles = u8!0x1 +fatal_auto_reboot_interval = u64!0x0 +fsmitm_redirect_saves_to_sd = u8!0x1 + +[contents_delivery] +enable_debug_api = u8!0x1 + +[usb] +usb30_force_enabled = u8!0x1 + +[tc] +use_configurations_on_fwdbg = u8!0x1 +tskin_rate_table_console_on_fwdbg = str!"[[-1000000, 35000, 0, 0], [35000, 46000, 0, 51], [46000, 49000, 51, 90], [49000, 53000, 90, 128], [53000, 55000, 128, 153], [55000, 58000, 153, 255], [58000, 1000000, 255, 255]]" +tskin_rate_table_handheld_on_fwdbg = str!"[[-1000000, 35000, 0, 0], [35000, 46000, 0, 51], [46000, 51000, 51, 90], [51000, 55000, 90, 128], [55000, 57000, 128, 153], [57000, 60000, 153, 255], [60000, 1000000, 255, 255]]" +holdable_tskin = u32!0xEA60 +touchable_tskin = u32!0xEA60 + +[psm] +enough_power_threshold_mw = u32!0x3E80 + +[am.debug] +continuous_recording_fps = u32!60 +continuous_recording_video_bit_rate = u32!0x1312D00 +continuous_recording_key_frame_count = u32!15 + +[bgtc] +enable_halfawake = u32!0x0 +minimum_interval_normal = u32!0x7FFFFFFF +minimum_interval_save = u32!0x7FFFFFFF +battery_threshold_save = u32!0x64 +battery_threshold_stop = u32!0x64 + +[npns] +background_processing = u8!0x0 +sleep_periodic_interval = u32!0x7FFFFFFF +sleep_processing_timeout = u32!0x0 +sleep_max_try_count = u32!0x0 + +[ns.notification] +enable_download_task_list = u8!0x0 +enable_download_ticket = u8!0x0 +enable_network_update = u8!0x0 +enable_random_wait = u8!0x0 +enable_request_on_cold_boot = u8!0x0 +enable_send_rights_usage_status_request = u8!0x0 +enable_sync_elicense_request = u8!0x0 +enable_version_list = u8!0x0 +retry_interval_min = u32!0x7FFFFFFF +retry_interval_max = u32!0x7FFFFFFF +version_list_waiting_limit_bias = u32!0x7FFFFFFF +version_list_waiting_limit_min = u32!0x7FFFFFFF + +[account] +na_required_for_network_service = u8!0x0 +na_license_verification_enabled = u8!0x0 + +[account.daemon] +background_awaking_periodicity = u32!0x7FFFFFFF +initial_schedule_delay = u32!0x7FFFFFFF +profile_sync_interval = u32!0x7FFFFFFF +na_info_refresh_interval = u32!0x7FFFFFFF + +[capsrv] +enable_album_screenshot_filedata_verification = u8!0x0 +enable_album_movie_filehash_verification = u8!0x0 +enable_album_movie_filesign_verification = u8!0x0 + +[friends] +background_processing = u8!0x0 + +[notification.presenter] +snooze_interval_in_seconds = u32!0x7FFFFFFF +connection_retry_count = u32!0x0 +alarm_pattern_total_repeat_count = u32!0x0 +alarm_pattern_with_vibration_repeat_count = u32!0x0 + +[prepo] +transmission_interval_min = u32!0x7FFFFFFF +transmission_retry_interval_min = u32!0x7FFFFFFF +transmission_retry_interval_max = u32!0x7FFFFFFF +transmission_interval_in_sleep = u32!0x7FFFFFFF +statistics_save_interval_min = u32!0x7FFFFFFF +statistics_post_interval = u32!0x7FFFFFFF + +[olsc] +default_auto_upload_global_setting = u8!0x0 +default_auto_download_global_setting = u8!0x0 +autonomy_registration_interval_seconds = u32!0x7FFFFFFF +network_service_license_info_cache_expiration_seconds = u32!0x7FFFFFFF +postponed_transfer_task_processing_interval_seconds = u32!0x7FFFFFFF +retry_offset_seconds = u32!0x7FFFFFFF +network_trouble_detection_span_seconds = u32!0x7FFFFFFF +network_connection_polling_interval_seconds = u32!0x7FFFFFFF +is_save_data_backup_policy_check_required = u8!0x0 +is_global_transfer_task_autonomy_registration_enabled = u8!0x0 +is_on_event_transfer_task_registration_enabled = u8!0x0 +is_periodic_transfer_task_registration_enabled = u8!0x0 + +[ntc] +is_autonomic_correction_enabled = u8!0x0 +autonomic_correction_interval_seconds = u32!0x7FFFFFFF +autonomic_correction_failed_retry_interval_seconds = u32!0x7FFFFFFF +autonomic_correction_immediate_try_count_max = u32!0x0 +autonomic_correction_immediate_try_interval_milliseconds = u32!0x7FFFFFFF + +[systemupdate] +bgnup_retry_seconds = u32!0x7FFFFFFF + +[ns.rights] +skip_account_validation_on_rights_check = u8!0x1 +next_available_time_of_unexpected_error = u32!0x7FFFFFFF + +[pctl] +intermittent_task_interval_seconds = u32!0x7FFFFFFF + +[sprofile] +adjust_polling_interval_by_profile = u8!0x0 +polling_interval_sec_max = u32!0x7FFFFFFF +polling_interval_sec_min = u32!0x7FFFFFFF \ No newline at end of file diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp new file mode 100644 index 0000000..c3b12d5 Binary files /dev/null and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/contents/0000000000534C56/flags/boot2.flag b/atmosphere/contents/0000000000534C56/flags/boot2.flag new file mode 100644 index 0000000..e69de29 diff --git a/atmosphere/contents/0000000000534C56/toolbox.json b/atmosphere/contents/0000000000534C56/toolbox.json new file mode 100644 index 0000000..1cb1834 --- /dev/null +++ b/atmosphere/contents/0000000000534C56/toolbox.json @@ -0,0 +1,5 @@ +{ + "name": "SaltyNX", + "tid": "0000000000534C56", + "requires_reboot": true +} \ No newline at end of file diff --git a/atmosphere/contents/00FF0000636C6BFF/exefs.nsp b/atmosphere/contents/00FF0000636C6BFF/exefs.nsp new file mode 100644 index 0000000..2a235f7 Binary files /dev/null and b/atmosphere/contents/00FF0000636C6BFF/exefs.nsp differ diff --git a/atmosphere/contents/00FF0000636C6BFF/flags/boot2.flag b/atmosphere/contents/00FF0000636C6BFF/flags/boot2.flag new file mode 100644 index 0000000..e69de29 diff --git a/atmosphere/contents/420000000007E51A/exefs.nsp b/atmosphere/contents/420000000007E51A/exefs.nsp new file mode 100644 index 0000000..ce0fc1c Binary files /dev/null and b/atmosphere/contents/420000000007E51A/exefs.nsp differ diff --git a/atmosphere/contents/420000000007E51A/flags/boot2.flag b/atmosphere/contents/420000000007E51A/flags/boot2.flag new file mode 100644 index 0000000..e69de29 diff --git a/atmosphere/contents/420000000007E51A/toolbox.json b/atmosphere/contents/420000000007E51A/toolbox.json new file mode 100644 index 0000000..bd0d37f --- /dev/null +++ b/atmosphere/contents/420000000007E51A/toolbox.json @@ -0,0 +1,5 @@ +{ + "name" : "Tesla", + "tid" : "420000000007E51A", + "requires_reboot": false +} \ No newline at end of file diff --git a/atmosphere/exefs_patches/es_patches/02DCD930D0A7462451E9973AB2022D697C77614B.ips b/atmosphere/exefs_patches/es_patches/02DCD930D0A7462451E9973AB2022D697C77614B.ips new file mode 100644 index 0000000..726f38b Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/02DCD930D0A7462451E9973AB2022D697C77614B.ips differ diff --git a/atmosphere/exefs_patches/es_patches/03E4EB5556B98B327D1353E8AA2C7ADF2C544470.ips b/atmosphere/exefs_patches/es_patches/03E4EB5556B98B327D1353E8AA2C7ADF2C544470.ips new file mode 100644 index 0000000..207972a Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/03E4EB5556B98B327D1353E8AA2C7ADF2C544470.ips differ diff --git a/atmosphere/exefs_patches/es_patches/1114E9102F1EBCD1B0EAF19C927362CFCB8B5D2C.ips b/atmosphere/exefs_patches/es_patches/1114E9102F1EBCD1B0EAF19C927362CFCB8B5D2C.ips new file mode 100644 index 0000000..0b5fbe5 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/1114E9102F1EBCD1B0EAF19C927362CFCB8B5D2C.ips differ diff --git a/atmosphere/exefs_patches/es_patches/127904316C924326084288641825FE5DC259AF6B.ips b/atmosphere/exefs_patches/es_patches/127904316C924326084288641825FE5DC259AF6B.ips new file mode 100644 index 0000000..6c693c7 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/127904316C924326084288641825FE5DC259AF6B.ips differ diff --git a/atmosphere/exefs_patches/es_patches/34E95FF2929B5B767DCFD41D108AD927D2D7F5DC.ips b/atmosphere/exefs_patches/es_patches/34E95FF2929B5B767DCFD41D108AD927D2D7F5DC.ips new file mode 100644 index 0000000..fd3617c Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/34E95FF2929B5B767DCFD41D108AD927D2D7F5DC.ips differ diff --git a/atmosphere/exefs_patches/es_patches/39E7884F7DDEA9BE4FF9F7187898FACC466A080A.ips b/atmosphere/exefs_patches/es_patches/39E7884F7DDEA9BE4FF9F7187898FACC466A080A.ips new file mode 100644 index 0000000..58fedcf Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/39E7884F7DDEA9BE4FF9F7187898FACC466A080A.ips differ diff --git a/atmosphere/exefs_patches/es_patches/3B8BF56DBEC7225D2EE666B009C42C0DC4552010.ips b/atmosphere/exefs_patches/es_patches/3B8BF56DBEC7225D2EE666B009C42C0DC4552010.ips new file mode 100644 index 0000000..3913f32 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/3B8BF56DBEC7225D2EE666B009C42C0DC4552010.ips differ diff --git a/atmosphere/exefs_patches/es_patches/4FB9AFAED8A9093A3D88F6D61158B1C165F9444A.ips b/atmosphere/exefs_patches/es_patches/4FB9AFAED8A9093A3D88F6D61158B1C165F9444A.ips new file mode 100644 index 0000000..0f752a4 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/4FB9AFAED8A9093A3D88F6D61158B1C165F9444A.ips differ diff --git a/atmosphere/exefs_patches/es_patches/5AA09E1AF740A91D0F73ADFAE81A63E8AC0610D2.ips b/atmosphere/exefs_patches/es_patches/5AA09E1AF740A91D0F73ADFAE81A63E8AC0610D2.ips new file mode 100644 index 0000000..5ae3a99 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/5AA09E1AF740A91D0F73ADFAE81A63E8AC0610D2.ips differ diff --git a/atmosphere/exefs_patches/es_patches/621351EB04199CF0B7A899896C451F2FD1B7A1CE.ips b/atmosphere/exefs_patches/es_patches/621351EB04199CF0B7A899896C451F2FD1B7A1CE.ips new file mode 100644 index 0000000..70753a8 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/621351EB04199CF0B7A899896C451F2FD1B7A1CE.ips differ diff --git a/atmosphere/exefs_patches/es_patches/7135C20E752183914606CCE81293F24B738C3AEF.ips b/atmosphere/exefs_patches/es_patches/7135C20E752183914606CCE81293F24B738C3AEF.ips new file mode 100644 index 0000000..5c7696e Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/7135C20E752183914606CCE81293F24B738C3AEF.ips differ diff --git a/atmosphere/exefs_patches/es_patches/76935CA6235CA150D790D4DDF09CA3488AEF50D8.ips b/atmosphere/exefs_patches/es_patches/76935CA6235CA150D790D4DDF09CA3488AEF50D8.ips new file mode 100644 index 0000000..3867f44 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/76935CA6235CA150D790D4DDF09CA3488AEF50D8.ips differ diff --git a/atmosphere/exefs_patches/es_patches/98BB737D9780E9FE3117981A77A09FF6756DBC2E.ips b/atmosphere/exefs_patches/es_patches/98BB737D9780E9FE3117981A77A09FF6756DBC2E.ips new file mode 100644 index 0000000..de40cde Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/98BB737D9780E9FE3117981A77A09FF6756DBC2E.ips differ diff --git a/atmosphere/exefs_patches/es_patches/9C1B205852731D054B070529D320AD9649E7796C.ips b/atmosphere/exefs_patches/es_patches/9C1B205852731D054B070529D320AD9649E7796C.ips new file mode 100644 index 0000000..2622fb9 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/9C1B205852731D054B070529D320AD9649E7796C.ips differ diff --git a/atmosphere/exefs_patches/es_patches/A6E7D98BD335371E1B9A96F6241EA3E83B0C36F4.ips b/atmosphere/exefs_patches/es_patches/A6E7D98BD335371E1B9A96F6241EA3E83B0C36F4.ips new file mode 100644 index 0000000..7795b75 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/A6E7D98BD335371E1B9A96F6241EA3E83B0C36F4.ips differ diff --git a/atmosphere/exefs_patches/es_patches/C0BFC6518707AC975295A0B656A051DA885A9045.ips b/atmosphere/exefs_patches/es_patches/C0BFC6518707AC975295A0B656A051DA885A9045.ips new file mode 100644 index 0000000..7795b75 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/C0BFC6518707AC975295A0B656A051DA885A9045.ips differ diff --git a/atmosphere/exefs_patches/es_patches/CBF2D40A2210C4EE1137F80098DB776EAC7DDCC1.ips b/atmosphere/exefs_patches/es_patches/CBF2D40A2210C4EE1137F80098DB776EAC7DDCC1.ips new file mode 100644 index 0000000..413bf0d Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/CBF2D40A2210C4EE1137F80098DB776EAC7DDCC1.ips differ diff --git a/atmosphere/exefs_patches/es_patches/CF8FB4F82D3E2D56720E1EDB14AB06543343E042.ips b/atmosphere/exefs_patches/es_patches/CF8FB4F82D3E2D56720E1EDB14AB06543343E042.ips new file mode 100644 index 0000000..58fedcf Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/CF8FB4F82D3E2D56720E1EDB14AB06543343E042.ips differ diff --git a/atmosphere/exefs_patches/es_patches/D0ECC9483E636AE19FE3E314DB41CB18019977D7.ips b/atmosphere/exefs_patches/es_patches/D0ECC9483E636AE19FE3E314DB41CB18019977D7.ips new file mode 100644 index 0000000..c34eb38 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/D0ECC9483E636AE19FE3E314DB41CB18019977D7.ips differ diff --git a/atmosphere/exefs_patches/es_patches/D2D2430244D162C9FAABE8C89A58C6E3962160F1.ips b/atmosphere/exefs_patches/es_patches/D2D2430244D162C9FAABE8C89A58C6E3962160F1.ips new file mode 100644 index 0000000..3e552c4 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/D2D2430244D162C9FAABE8C89A58C6E3962160F1.ips differ diff --git a/atmosphere/exefs_patches/es_patches/E581B1898637E5BC40DBC4AB8F0C6324447E05D1.ips b/atmosphere/exefs_patches/es_patches/E581B1898637E5BC40DBC4AB8F0C6324447E05D1.ips new file mode 100644 index 0000000..413bf0d Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/E581B1898637E5BC40DBC4AB8F0C6324447E05D1.ips differ diff --git a/atmosphere/exefs_patches/es_patches/F48ABC3EF41A0555800127D172C9B8D2C653243A.ips b/atmosphere/exefs_patches/es_patches/F48ABC3EF41A0555800127D172C9B8D2C653243A.ips new file mode 100644 index 0000000..c1f1507 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/F48ABC3EF41A0555800127D172C9B8D2C653243A.ips differ diff --git a/atmosphere/exefs_patches/es_patches/F65FBA401BAC3CDDEA4917DE22E8B426B3A6C3AD.ips b/atmosphere/exefs_patches/es_patches/F65FBA401BAC3CDDEA4917DE22E8B426B3A6C3AD.ips new file mode 100644 index 0000000..5fc5911 Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/F65FBA401BAC3CDDEA4917DE22E8B426B3A6C3AD.ips differ diff --git a/atmosphere/exefs_patches/es_patches/F86D615F9FC6F0D16C3458BE58C64594DBDAB0DF.ips b/atmosphere/exefs_patches/es_patches/F86D615F9FC6F0D16C3458BE58C64594DBDAB0DF.ips new file mode 100644 index 0000000..f34a7ed Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/F86D615F9FC6F0D16C3458BE58C64594DBDAB0DF.ips differ diff --git a/atmosphere/exefs_patches/es_patches/F92CFF283777465AFBCC6E160C10EFE7AADC4D3C.ips b/atmosphere/exefs_patches/es_patches/F92CFF283777465AFBCC6E160C10EFE7AADC4D3C.ips new file mode 100644 index 0000000..f34a7ed Binary files /dev/null and b/atmosphere/exefs_patches/es_patches/F92CFF283777465AFBCC6E160C10EFE7AADC4D3C.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/38774C42DFCB8B9D7AA61550D6AF7D335472556C.ips b/atmosphere/exefs_patches/nfim_ctest/38774C42DFCB8B9D7AA61550D6AF7D335472556C.ips new file mode 100644 index 0000000..bb68a09 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/38774C42DFCB8B9D7AA61550D6AF7D335472556C.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/3AED90979B380C6415F975F5B784BEA2B4730E8C.ips b/atmosphere/exefs_patches/nfim_ctest/3AED90979B380C6415F975F5B784BEA2B4730E8C.ips new file mode 100644 index 0000000..097c09d Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/3AED90979B380C6415F975F5B784BEA2B4730E8C.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/43F10952AE80CFADC39A0BF59EA4E552EF4A4528.ips b/atmosphere/exefs_patches/nfim_ctest/43F10952AE80CFADC39A0BF59EA4E552EF4A4528.ips new file mode 100644 index 0000000..87d99d4 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/43F10952AE80CFADC39A0BF59EA4E552EF4A4528.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/440F71259BCA1E97EA3663CBD6EC9315951F9E96.ips b/atmosphere/exefs_patches/nfim_ctest/440F71259BCA1E97EA3663CBD6EC9315951F9E96.ips new file mode 100644 index 0000000..297d279 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/440F71259BCA1E97EA3663CBD6EC9315951F9E96.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/5835E2DADB4DD570DD811ABF521FA91AC3C7B717.ips b/atmosphere/exefs_patches/nfim_ctest/5835E2DADB4DD570DD811ABF521FA91AC3C7B717.ips new file mode 100644 index 0000000..a4dd6d4 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/5835E2DADB4DD570DD811ABF521FA91AC3C7B717.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/5DA461C7B6CAE6B88EDF4F914F7CBCF0943B10BB.ips b/atmosphere/exefs_patches/nfim_ctest/5DA461C7B6CAE6B88EDF4F914F7CBCF0943B10BB.ips new file mode 100644 index 0000000..3be281b Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/5DA461C7B6CAE6B88EDF4F914F7CBCF0943B10BB.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/69E25CDEEED5C6520AC2AC8E5EAE01CD8FC46E40.ips b/atmosphere/exefs_patches/nfim_ctest/69E25CDEEED5C6520AC2AC8E5EAE01CD8FC46E40.ips new file mode 100644 index 0000000..a26b00d Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/69E25CDEEED5C6520AC2AC8E5EAE01CD8FC46E40.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/6F02D68B1DCD2AFFBAED14B5933F81F3C327E537.ips b/atmosphere/exefs_patches/nfim_ctest/6F02D68B1DCD2AFFBAED14B5933F81F3C327E537.ips new file mode 100644 index 0000000..9251fc1 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/6F02D68B1DCD2AFFBAED14B5933F81F3C327E537.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/7A43F840337C28D453718843608EEFF78AFD460B.ips b/atmosphere/exefs_patches/nfim_ctest/7A43F840337C28D453718843608EEFF78AFD460B.ips new file mode 100644 index 0000000..3bf834d Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/7A43F840337C28D453718843608EEFF78AFD460B.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/7DF07326B6B50CA37F19C1C44F9458406C536B30.ips b/atmosphere/exefs_patches/nfim_ctest/7DF07326B6B50CA37F19C1C44F9458406C536B30.ips new file mode 100644 index 0000000..416cc89 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/7DF07326B6B50CA37F19C1C44F9458406C536B30.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/881206E6B5078EFC4E2C30D7B33E33AD266538C6.ips b/atmosphere/exefs_patches/nfim_ctest/881206E6B5078EFC4E2C30D7B33E33AD266538C6.ips new file mode 100644 index 0000000..a4dd6d4 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/881206E6B5078EFC4E2C30D7B33E33AD266538C6.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/8CB532EA199207191F04CE3DDECEC854C7CF07D6.ips b/atmosphere/exefs_patches/nfim_ctest/8CB532EA199207191F04CE3DDECEC854C7CF07D6.ips new file mode 100644 index 0000000..9251fc1 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/8CB532EA199207191F04CE3DDECEC854C7CF07D6.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/929014BFCFE462FD76B2BB3454FB304F63C73AC2.ips b/atmosphere/exefs_patches/nfim_ctest/929014BFCFE462FD76B2BB3454FB304F63C73AC2.ips new file mode 100644 index 0000000..882f5d6 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/929014BFCFE462FD76B2BB3454FB304F63C73AC2.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/9C72C47F0310F7C9F487047D8EB42DBB96882088.ips b/atmosphere/exefs_patches/nfim_ctest/9C72C47F0310F7C9F487047D8EB42DBB96882088.ips new file mode 100644 index 0000000..416cc89 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/9C72C47F0310F7C9F487047D8EB42DBB96882088.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/A188828ADF447425D97901462EBF732D2E29BC4E.ips b/atmosphere/exefs_patches/nfim_ctest/A188828ADF447425D97901462EBF732D2E29BC4E.ips new file mode 100644 index 0000000..27c5328 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/A188828ADF447425D97901462EBF732D2E29BC4E.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/A2C3AEE4E5A954908BEBAEDEA2010095E9E521B2.ips b/atmosphere/exefs_patches/nfim_ctest/A2C3AEE4E5A954908BEBAEDEA2010095E9E521B2.ips new file mode 100644 index 0000000..77865f2 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/A2C3AEE4E5A954908BEBAEDEA2010095E9E521B2.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/A85F50FBA10E06A3EBA3D3FACB9E075B218C7D6D.ips b/atmosphere/exefs_patches/nfim_ctest/A85F50FBA10E06A3EBA3D3FACB9E075B218C7D6D.ips new file mode 100644 index 0000000..a26b00d Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/A85F50FBA10E06A3EBA3D3FACB9E075B218C7D6D.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/AD32FB6D8F36668C586E538E32576A8D6A3931C0.ips b/atmosphere/exefs_patches/nfim_ctest/AD32FB6D8F36668C586E538E32576A8D6A3931C0.ips new file mode 100644 index 0000000..4f1bc29 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/AD32FB6D8F36668C586E538E32576A8D6A3931C0.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/B6966381A806655B718F1BF11DB5FF836E3085F7.ips b/atmosphere/exefs_patches/nfim_ctest/B6966381A806655B718F1BF11DB5FF836E3085F7.ips new file mode 100644 index 0000000..f8f37fb Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/B6966381A806655B718F1BF11DB5FF836E3085F7.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/BA91B5A61E423F51FB83B2C9E6C153CC5AE27DCB.ips b/atmosphere/exefs_patches/nfim_ctest/BA91B5A61E423F51FB83B2C9E6C153CC5AE27DCB.ips new file mode 100644 index 0000000..1c49ccb Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/BA91B5A61E423F51FB83B2C9E6C153CC5AE27DCB.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/D47D1506009B340829CD545B2A3F3AA7881FBADA.ips b/atmosphere/exefs_patches/nfim_ctest/D47D1506009B340829CD545B2A3F3AA7881FBADA.ips new file mode 100644 index 0000000..c204c64 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/D47D1506009B340829CD545B2A3F3AA7881FBADA.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/D82361E0D66DC01AFA3B5116532E5E1ED569C578.ips b/atmosphere/exefs_patches/nfim_ctest/D82361E0D66DC01AFA3B5116532E5E1ED569C578.ips new file mode 100644 index 0000000..9e8192a Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/D82361E0D66DC01AFA3B5116532E5E1ED569C578.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/E6BFDADD5C69E17D43B7C67E2B2EE8B2E50C8E1F.ips b/atmosphere/exefs_patches/nfim_ctest/E6BFDADD5C69E17D43B7C67E2B2EE8B2E50C8E1F.ips new file mode 100644 index 0000000..3a2d407 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/E6BFDADD5C69E17D43B7C67E2B2EE8B2E50C8E1F.ips differ diff --git a/atmosphere/exefs_patches/nfim_ctest/FD53CB863709DFFEC19C0889F61D4C424AFFD4ED.ips b/atmosphere/exefs_patches/nfim_ctest/FD53CB863709DFFEC19C0889F61D4C424AFFD4ED.ips new file mode 100644 index 0000000..64d4a51 Binary files /dev/null and b/atmosphere/exefs_patches/nfim_ctest/FD53CB863709DFFEC19C0889F61D4C424AFFD4ED.ips differ diff --git a/atmosphere/hbl.nsp b/atmosphere/hbl.nsp new file mode 100644 index 0000000..7b65382 Binary files /dev/null and b/atmosphere/hbl.nsp differ diff --git a/atmosphere/hosts/default.txt b/atmosphere/hosts/default.txt new file mode 100644 index 0000000..e69de29 diff --git a/atmosphere/hosts/domains.txt b/atmosphere/hosts/domains.txt new file mode 100644 index 0000000..1be93d4 --- /dev/null +++ b/atmosphere/hosts/domains.txt @@ -0,0 +1,46 @@ +127.0.0.1 adservice.google.com +127.0.0.1 clients1.google.com +127.0.0.1 clients.l.google.com +127.0.0.1 googleadapis.l.google.com +127.0.0.1 www-google-analytics.l.google.com +127.0.0.1 www-googletagmanager.l.google.com +127.0.0.1 analytic-google.com +127.0.0.1 www.analytic-google.com +127.0.0.1 ssl.google-analytics.com +127.0.0.1 googleadservices.com +127.0.0.1 www.googleadservices.com +127.0.0.1 pagead.googlesyndication.com +127.0.0.1 pagead1.googlesyndication.com +127.0.0.1 pagead2.googlesyndication.com +127.0.0.1 tpc.googlesyndication.com +127.0.0.1 www.googletagservices.com +127.0.0.1 manifest.googlevideo.com +127.0.0.1 innovid.com +127.0.0.1 s.innovid.com +127.0.0.1 dts.innovid.com +127.0.0.1 pixel.moatads.com +127.0.0.1 secure-ds.serving-sys.com +127.0.0.1 rtd.tubemogul.com +127.0.0.1 ad.youtube.com +127.0.0.1 ads.youtube.com +127.0.0.1 s.youtube.com +127.0.0.1 s.ytimg.com +127.0.0.1 2mdn.net +127.0.0.1 s0.2mdn.net +127.0.0.1 files.adform.net +127.0.0.1 doubleclick.net +127.0.0.1 ad.doubleclick.net +127.0.0.1 ads.doubleclick.net +127.0.0.1 ad-g.doubleclick.net +127.0.0.1 fls.doubleclick.net +127.0.0.1 g.doubleclick.net +127.0.0.1 googleads.g.doubleclick.net +127.0.0.1 googleads4.g.doubleclick.net +127.0.0.1 pubads.g.doubleclick.net +127.0.0.1 securepubads.g.doubleclick.net +127.0.0.1 stats.g.doubleclick.net +127.0.0.1 pagead.l.doubleclick.net +127.0.0.1 ad.mo.doubleclick.net +127.0.0.1 static.doubleclick.net +127.0.0.1 fwmrm.net +127.0.0.1 2975c.v.fwmrm.net diff --git a/atmosphere/kip_patches/fs_patches/02D5ABAAFD20C8B0633AA0DBAEE0377EF526CE6AD2AC6F2CAD7180CE69E74311.ips b/atmosphere/kip_patches/fs_patches/02D5ABAAFD20C8B0633AA0DBAEE0377EF526CE6AD2AC6F2CAD7180CE69E74311.ips new file mode 100644 index 0000000..95e7d69 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/02D5ABAAFD20C8B0633AA0DBAEE0377EF526CE6AD2AC6F2CAD7180CE69E74311.ips differ diff --git a/atmosphere/kip_patches/fs_patches/06E90719595A010C6246FF70946F10FB367A00BBD8B7D8D1F25CCE0B458D7E89.ips b/atmosphere/kip_patches/fs_patches/06E90719595A010C6246FF70946F10FB367A00BBD8B7D8D1F25CCE0B458D7E89.ips new file mode 100644 index 0000000..95e7d69 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/06E90719595A010C6246FF70946F10FB367A00BBD8B7D8D1F25CCE0B458D7E89.ips differ diff --git a/atmosphere/kip_patches/fs_patches/073099D7C6AD7D8983BC7ADD932BE3D1243193792E0920955DBC17F5794FDE28.ips b/atmosphere/kip_patches/fs_patches/073099D7C6AD7D8983BC7ADD932BE3D1243193792E0920955DBC17F5794FDE28.ips new file mode 100644 index 0000000..3705884 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/073099D7C6AD7D8983BC7ADD932BE3D1243193792E0920955DBC17F5794FDE28.ips differ diff --git a/atmosphere/kip_patches/fs_patches/0BA15BB304B505633B6DA6B2C6E991B6A06EBAFB3378DF02BF6B494075976F06.ips b/atmosphere/kip_patches/fs_patches/0BA15BB304B505633B6DA6B2C6E991B6A06EBAFB3378DF02BF6B494075976F06.ips new file mode 100644 index 0000000..2ccc899 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/0BA15BB304B505633B6DA6B2C6E991B6A06EBAFB3378DF02BF6B494075976F06.ips differ diff --git a/atmosphere/kip_patches/fs_patches/0D7005627B07767C0B963F9AFFDDE56628A27116CFC4D8B2AF42BDEEBF97205B.ips b/atmosphere/kip_patches/fs_patches/0D7005627B07767C0B963F9AFFDDE56628A27116CFC4D8B2AF42BDEEBF97205B.ips new file mode 100644 index 0000000..fc8ce6d Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/0D7005627B07767C0B963F9AFFDDE56628A27116CFC4D8B2AF42BDEEBF97205B.ips differ diff --git a/atmosphere/kip_patches/fs_patches/10B2D81605488599DF2242CB6BAC2DF1E2BCAB3BC19DC5CD63DB6FAEC0947097.ips b/atmosphere/kip_patches/fs_patches/10B2D81605488599DF2242CB6BAC2DF1E2BCAB3BC19DC5CD63DB6FAEC0947097.ips new file mode 100644 index 0000000..6bbf2af Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/10B2D81605488599DF2242CB6BAC2DF1E2BCAB3BC19DC5CD63DB6FAEC0947097.ips differ diff --git a/atmosphere/kip_patches/fs_patches/160D3E104EAD6176991B8AE7AFA2B78BC5879FC07BE88A4FC9E16812971BC161.ips b/atmosphere/kip_patches/fs_patches/160D3E104EAD6176991B8AE7AFA2B78BC5879FC07BE88A4FC9E16812971BC161.ips new file mode 100644 index 0000000..1f7195e Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/160D3E104EAD6176991B8AE7AFA2B78BC5879FC07BE88A4FC9E16812971BC161.ips differ diff --git a/atmosphere/kip_patches/fs_patches/27073BF0A1B8CE6108EEC562D654669ECC5AE576F42D2A9FF6424C623B98E8D8.ips b/atmosphere/kip_patches/fs_patches/27073BF0A1B8CE6108EEC562D654669ECC5AE576F42D2A9FF6424C623B98E8D8.ips new file mode 100644 index 0000000..ffd7a8f Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/27073BF0A1B8CE6108EEC562D654669ECC5AE576F42D2A9FF6424C623B98E8D8.ips differ diff --git a/atmosphere/kip_patches/fs_patches/2ADBE97E9B5F41779EC95FFE2699C93305D6A69D465CF597D67465CD69BACCE8.ips b/atmosphere/kip_patches/fs_patches/2ADBE97E9B5F41779EC95FFE2699C93305D6A69D465CF597D67465CD69BACCE8.ips new file mode 100644 index 0000000..21f130f Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/2ADBE97E9B5F41779EC95FFE2699C93305D6A69D465CF597D67465CD69BACCE8.ips differ diff --git a/atmosphere/kip_patches/fs_patches/2CCE659CEC536A8E4D91F3BE4B74BED302613F1E442581FD863708E39112DB50.ips b/atmosphere/kip_patches/fs_patches/2CCE659CEC536A8E4D91F3BE4B74BED302613F1E442581FD863708E39112DB50.ips new file mode 100644 index 0000000..1cafb03 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/2CCE659CEC536A8E4D91F3BE4B74BED302613F1E442581FD863708E39112DB50.ips differ diff --git a/atmosphere/kip_patches/fs_patches/330553F6B5FB55C4C2D7B736240276B3EAD664DA79826FA936F99803B6C28F3B.ips b/atmosphere/kip_patches/fs_patches/330553F6B5FB55C4C2D7B736240276B3EAD664DA79826FA936F99803B6C28F3B.ips new file mode 100644 index 0000000..8174d6c Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/330553F6B5FB55C4C2D7B736240276B3EAD664DA79826FA936F99803B6C28F3B.ips differ diff --git a/atmosphere/kip_patches/fs_patches/34C0D9ED6AD1873DCD02F1C12AFA20546D033EFB1D8EB9B7A8E5ABAB71F39F43.ips b/atmosphere/kip_patches/fs_patches/34C0D9ED6AD1873DCD02F1C12AFA20546D033EFB1D8EB9B7A8E5ABAB71F39F43.ips new file mode 100644 index 0000000..e1a8e20 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/34C0D9ED6AD1873DCD02F1C12AFA20546D033EFB1D8EB9B7A8E5ABAB71F39F43.ips differ diff --git a/atmosphere/kip_patches/fs_patches/39EE1F1E0EA7325DD105C1BABE90F306A5AA5DEC70024D4F9461F94C8E0206AE.ips b/atmosphere/kip_patches/fs_patches/39EE1F1E0EA7325DD105C1BABE90F306A5AA5DEC70024D4F9461F94C8E0206AE.ips new file mode 100644 index 0000000..0702dd5 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/39EE1F1E0EA7325DD105C1BABE90F306A5AA5DEC70024D4F9461F94C8E0206AE.ips differ diff --git a/atmosphere/kip_patches/fs_patches/3A574D436186191D1788EB2C0F076B11737132EBB1484CF906B6A8EB3B1BF459.ips b/atmosphere/kip_patches/fs_patches/3A574D436186191D1788EB2C0F076B11737132EBB1484CF906B6A8EB3B1BF459.ips new file mode 100644 index 0000000..e8e395d Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/3A574D436186191D1788EB2C0F076B11737132EBB1484CF906B6A8EB3B1BF459.ips differ diff --git a/atmosphere/kip_patches/fs_patches/3EEBD9B7BCD1B5E0BCC2007D6514F7A4845A1F42AAD795573FD2865DADE1C5E0.ips b/atmosphere/kip_patches/fs_patches/3EEBD9B7BCD1B5E0BCC2007D6514F7A4845A1F42AAD795573FD2865DADE1C5E0.ips new file mode 100644 index 0000000..4ac0afd Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/3EEBD9B7BCD1B5E0BCC2007D6514F7A4845A1F42AAD795573FD2865DADE1C5E0.ips differ diff --git a/atmosphere/kip_patches/fs_patches/468740761E193EB758794688F1D9F762CBA1185ADDAD4EC3C479EC8FBFEC31DD.ips b/atmosphere/kip_patches/fs_patches/468740761E193EB758794688F1D9F762CBA1185ADDAD4EC3C479EC8FBFEC31DD.ips new file mode 100644 index 0000000..6e97f16 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/468740761E193EB758794688F1D9F762CBA1185ADDAD4EC3C479EC8FBFEC31DD.ips differ diff --git a/atmosphere/kip_patches/fs_patches/51EBFA9CCF66C09EC796C069C6C6D03C01D504CC0B17F4FAA919446E7E9DB107.ips b/atmosphere/kip_patches/fs_patches/51EBFA9CCF66C09EC796C069C6C6D03C01D504CC0B17F4FAA919446E7E9DB107.ips new file mode 100644 index 0000000..5887b10 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/51EBFA9CCF66C09EC796C069C6C6D03C01D504CC0B17F4FAA919446E7E9DB107.ips differ diff --git a/atmosphere/kip_patches/fs_patches/549B0F8D6F72C4E9F3FD1F19EACE4A5A1DA2D5C393F74224F8BC09DE4AAA4217.ips b/atmosphere/kip_patches/fs_patches/549B0F8D6F72C4E9F3FD1F19EACE4A5A1DA2D5C393F74224F8BC09DE4AAA4217.ips new file mode 100644 index 0000000..95e7d69 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/549B0F8D6F72C4E9F3FD1F19EACE4A5A1DA2D5C393F74224F8BC09DE4AAA4217.ips differ diff --git a/atmosphere/kip_patches/fs_patches/56E856566C38D8BEA79A70FF6F9756804CFF57907E2EAC7BD8E9C1FC1C7B96CE.ips b/atmosphere/kip_patches/fs_patches/56E856566C38D8BEA79A70FF6F9756804CFF57907E2EAC7BD8E9C1FC1C7B96CE.ips new file mode 100644 index 0000000..e9163f0 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/56E856566C38D8BEA79A70FF6F9756804CFF57907E2EAC7BD8E9C1FC1C7B96CE.ips differ diff --git a/atmosphere/kip_patches/fs_patches/57397C063F10B6313F4D837653CCC371BE2158BF6DD889326648D5C83D50CECF.ips b/atmosphere/kip_patches/fs_patches/57397C063F10B6313F4D837653CCC371BE2158BF6DD889326648D5C83D50CECF.ips new file mode 100644 index 0000000..3705884 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/57397C063F10B6313F4D837653CCC371BE2158BF6DD889326648D5C83D50CECF.ips differ diff --git a/atmosphere/kip_patches/fs_patches/62C65EFD9ABF7C434275AA99BE0A0D9A222E89805044A6C04ADAB26D2AA1AA5E.ips b/atmosphere/kip_patches/fs_patches/62C65EFD9ABF7C434275AA99BE0A0D9A222E89805044A6C04ADAB26D2AA1AA5E.ips new file mode 100644 index 0000000..ccf4fe4 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/62C65EFD9ABF7C434275AA99BE0A0D9A222E89805044A6C04ADAB26D2AA1AA5E.ips differ diff --git a/atmosphere/kip_patches/fs_patches/6B09B67B29C020246DC34F5A04F5D3090215C46F37BD079442977A85B8243BA5.ips b/atmosphere/kip_patches/fs_patches/6B09B67B29C020246DC34F5A04F5D3090215C46F37BD079442977A85B8243BA5.ips new file mode 100644 index 0000000..ed441fe Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/6B09B67B29C020246DC34F5A04F5D3090215C46F37BD079442977A85B8243BA5.ips differ diff --git a/atmosphere/kip_patches/fs_patches/763827EE9C207E5BA99AE5BDC872DFCFB69D8F1261D80A60F3AC25AC9C90C230.ips b/atmosphere/kip_patches/fs_patches/763827EE9C207E5BA99AE5BDC872DFCFB69D8F1261D80A60F3AC25AC9C90C230.ips new file mode 100644 index 0000000..5887b10 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/763827EE9C207E5BA99AE5BDC872DFCFB69D8F1261D80A60F3AC25AC9C90C230.ips differ diff --git a/atmosphere/kip_patches/fs_patches/76F87402C9387C0F0A2FAB1B45CEBB93E3E9695C7CFD390F00509B1204101C24.ips b/atmosphere/kip_patches/fs_patches/76F87402C9387C0F0A2FAB1B45CEBB93E3E9695C7CFD390F00509B1204101C24.ips new file mode 100644 index 0000000..6bbf2af Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/76F87402C9387C0F0A2FAB1B45CEBB93E3E9695C7CFD390F00509B1204101C24.ips differ diff --git a/atmosphere/kip_patches/fs_patches/7C951376E5C12DF85FA6A9F46F6957A4B1271C1F8201B99735D8DF152E7913F1.ips b/atmosphere/kip_patches/fs_patches/7C951376E5C12DF85FA6A9F46F6957A4B1271C1F8201B99735D8DF152E7913F1.ips new file mode 100644 index 0000000..6e97f16 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/7C951376E5C12DF85FA6A9F46F6957A4B1271C1F8201B99735D8DF152E7913F1.ips differ diff --git a/atmosphere/kip_patches/fs_patches/7D200547178A836A24993B002AFD83D0B662AA7177E935C04C36EAC21BAC24AA.ips b/atmosphere/kip_patches/fs_patches/7D200547178A836A24993B002AFD83D0B662AA7177E935C04C36EAC21BAC24AA.ips new file mode 100644 index 0000000..5887b10 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/7D200547178A836A24993B002AFD83D0B662AA7177E935C04C36EAC21BAC24AA.ips differ diff --git a/atmosphere/kip_patches/fs_patches/8096AF7C6A35AA8271F3916995413B0B64CE03BD9BBFEB26F2B3E01C5427C69E.ips b/atmosphere/kip_patches/fs_patches/8096AF7C6A35AA8271F3916995413B0B64CE03BD9BBFEB26F2B3E01C5427C69E.ips new file mode 100644 index 0000000..95e7d69 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/8096AF7C6A35AA8271F3916995413B0B64CE03BD9BBFEB26F2B3E01C5427C69E.ips differ diff --git a/atmosphere/kip_patches/fs_patches/817EA2B0B702C1F37EC5E0A7A61F745440422037DAA3537CEF4E856C40273F78.ips b/atmosphere/kip_patches/fs_patches/817EA2B0B702C1F37EC5E0A7A61F745440422037DAA3537CEF4E856C40273F78.ips new file mode 100644 index 0000000..4ac0afd Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/817EA2B0B702C1F37EC5E0A7A61F745440422037DAA3537CEF4E856C40273F78.ips differ diff --git a/atmosphere/kip_patches/fs_patches/887AC150806C75CCC40DA0AA98CC09B3E468E6C78F315F927FBEDD91B16DE27A.ips b/atmosphere/kip_patches/fs_patches/887AC150806C75CCC40DA0AA98CC09B3E468E6C78F315F927FBEDD91B16DE27A.ips new file mode 100644 index 0000000..6e91643 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/887AC150806C75CCC40DA0AA98CC09B3E468E6C78F315F927FBEDD91B16DE27A.ips differ diff --git a/atmosphere/kip_patches/fs_patches/91BA65A21C1D50AEF6E6B535B491A36CD1B2DFB2DA2F0AB4A93F03097BB894E0.ips b/atmosphere/kip_patches/fs_patches/91BA65A21C1D50AEF6E6B535B491A36CD1B2DFB2DA2F0AB4A93F03097BB894E0.ips new file mode 100644 index 0000000..5887b10 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/91BA65A21C1D50AEF6E6B535B491A36CD1B2DFB2DA2F0AB4A93F03097BB894E0.ips differ diff --git a/atmosphere/kip_patches/fs_patches/981C57E7F02F70F7BCDE753181D901A62A2452B04F5C5FB86500A2172CC44641.ips b/atmosphere/kip_patches/fs_patches/981C57E7F02F70F7BCDE753181D901A62A2452B04F5C5FB86500A2172CC44641.ips new file mode 100644 index 0000000..268666e Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/981C57E7F02F70F7BCDE753181D901A62A2452B04F5C5FB86500A2172CC44641.ips differ diff --git a/atmosphere/kip_patches/fs_patches/A6F27AD9AC7C73AD419B63B23E785A0CD7AA9DC1A63C57D10049423DE7B77E2C.ips b/atmosphere/kip_patches/fs_patches/A6F27AD9AC7C73AD419B63B23E785A0CD7AA9DC1A63C57D10049423DE7B77E2C.ips new file mode 100644 index 0000000..edb246f Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/A6F27AD9AC7C73AD419B63B23E785A0CD7AA9DC1A63C57D10049423DE7B77E2C.ips differ diff --git a/atmosphere/kip_patches/fs_patches/A86DA5E87EF1097B23DAB5B4DBBAEFE780310AE643D319D6A7A149B9688651A5.ips b/atmosphere/kip_patches/fs_patches/A86DA5E87EF1097B23DAB5B4DBBAEFE780310AE643D319D6A7A149B9688651A5.ips new file mode 100644 index 0000000..268666e Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/A86DA5E87EF1097B23DAB5B4DBBAEFE780310AE643D319D6A7A149B9688651A5.ips differ diff --git a/atmosphere/kip_patches/fs_patches/A952B657ADF9C2BA1434BA9B8B86F3317D20659A8AC8510D8ECF4CE1BD7593E2.ips b/atmosphere/kip_patches/fs_patches/A952B657ADF9C2BA1434BA9B8B86F3317D20659A8AC8510D8ECF4CE1BD7593E2.ips new file mode 100644 index 0000000..1f7195e Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/A952B657ADF9C2BA1434BA9B8B86F3317D20659A8AC8510D8ECF4CE1BD7593E2.ips differ diff --git a/atmosphere/kip_patches/fs_patches/B2F5176B3548364D079A29B141A23B06AFFF5A98055576D5F337A621C0233CE3.ips b/atmosphere/kip_patches/fs_patches/B2F5176B3548364D079A29B141A23B06AFFF5A98055576D5F337A621C0233CE3.ips new file mode 100644 index 0000000..3613b6a Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/B2F5176B3548364D079A29B141A23B06AFFF5A98055576D5F337A621C0233CE3.ips differ diff --git a/atmosphere/kip_patches/fs_patches/B4CAE1F24965D92ED24EBE9E97F609C363834471BF18CA375CB6A1DEB77755EA.ips b/atmosphere/kip_patches/fs_patches/B4CAE1F24965D92ED24EBE9E97F609C363834471BF18CA375CB6A1DEB77755EA.ips new file mode 100644 index 0000000..580940b Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/B4CAE1F24965D92ED24EBE9E97F609C363834471BF18CA375CB6A1DEB77755EA.ips differ diff --git a/atmosphere/kip_patches/fs_patches/B5E7A64C6F5C4FE319C36FD7D642F75B0159771671F73082448ACE30BD6BAE89.ips b/atmosphere/kip_patches/fs_patches/B5E7A64C6F5C4FE319C36FD7D642F75B0159771671F73082448ACE30BD6BAE89.ips new file mode 100644 index 0000000..c383603 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/B5E7A64C6F5C4FE319C36FD7D642F75B0159771671F73082448ACE30BD6BAE89.ips differ diff --git a/atmosphere/kip_patches/fs_patches/C86762BE19A51FA0C737AE921A816846605A64739523B4894F847BBED59E31EA.ips b/atmosphere/kip_patches/fs_patches/C86762BE19A51FA0C737AE921A816846605A64739523B4894F847BBED59E31EA.ips new file mode 100644 index 0000000..17c889a Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/C86762BE19A51FA0C737AE921A816846605A64739523B4894F847BBED59E31EA.ips differ diff --git a/atmosphere/kip_patches/fs_patches/CD7BBE18D6130B28F62F19FA7945535B6829EFE64EF4AAF0DF8DA19885FE4A9A.ips b/atmosphere/kip_patches/fs_patches/CD7BBE18D6130B28F62F19FA7945535B6829EFE64EF4AAF0DF8DA19885FE4A9A.ips new file mode 100644 index 0000000..82d16af Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/CD7BBE18D6130B28F62F19FA7945535B6829EFE64EF4AAF0DF8DA19885FE4A9A.ips differ diff --git a/atmosphere/kip_patches/fs_patches/CE3ECBA2F2F062F575F8F360842B32B432340DD2C7590CDEFC03E51B844AE805.ips b/atmosphere/kip_patches/fs_patches/CE3ECBA2F2F062F575F8F360842B32B432340DD2C7590CDEFC03E51B844AE805.ips new file mode 100644 index 0000000..edb246f Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/CE3ECBA2F2F062F575F8F360842B32B432340DD2C7590CDEFC03E51B844AE805.ips differ diff --git a/atmosphere/kip_patches/fs_patches/CFAB450C2C539DA947D0A12A9DE10911FA539A348B7C3D64CE9BA74D9E0355DE.ips b/atmosphere/kip_patches/fs_patches/CFAB450C2C539DA947D0A12A9DE10911FA539A348B7C3D64CE9BA74D9E0355DE.ips new file mode 100644 index 0000000..cacea35 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/CFAB450C2C539DA947D0A12A9DE10911FA539A348B7C3D64CE9BA74D9E0355DE.ips differ diff --git a/atmosphere/kip_patches/fs_patches/D0D4491814B562AF61ABD52E4BF0989405AF741A5C7C033AB3EB0EC8680AD98F.ips b/atmosphere/kip_patches/fs_patches/D0D4491814B562AF61ABD52E4BF0989405AF741A5C7C033AB3EB0EC8680AD98F.ips new file mode 100644 index 0000000..31ce2bd Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/D0D4491814B562AF61ABD52E4BF0989405AF741A5C7C033AB3EB0EC8680AD98F.ips differ diff --git a/atmosphere/kip_patches/fs_patches/D488D1F29217355C22ABDA773FDEA582B13D475B74BCB02B998C66AB1B3E4309.ips b/atmosphere/kip_patches/fs_patches/D488D1F29217355C22ABDA773FDEA582B13D475B74BCB02B998C66AB1B3E4309.ips new file mode 100644 index 0000000..4bcc33a Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/D488D1F29217355C22ABDA773FDEA582B13D475B74BCB02B998C66AB1B3E4309.ips differ diff --git a/atmosphere/kip_patches/fs_patches/D5A5BF36640C49EA1D6BC5826772EEDFC11FD8626146B388E5E59322719B6AF7.ips b/atmosphere/kip_patches/fs_patches/D5A5BF36640C49EA1D6BC5826772EEDFC11FD8626146B388E5E59322719B6AF7.ips new file mode 100644 index 0000000..23a5db5 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/D5A5BF36640C49EA1D6BC5826772EEDFC11FD8626146B388E5E59322719B6AF7.ips differ diff --git a/atmosphere/kip_patches/fs_patches/DBD85FCACC193DA83051C664E6452D32FD4F7922E5E29A281695B578347F8161.ips b/atmosphere/kip_patches/fs_patches/DBD85FCACC193DA83051C664E6452D32FD4F7922E5E29A281695B578347F8161.ips new file mode 100644 index 0000000..fc8ce6d Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/DBD85FCACC193DA83051C664E6452D32FD4F7922E5E29A281695B578347F8161.ips differ diff --git a/atmosphere/kip_patches/fs_patches/DBD941C0C53C52CCF7202C84D8E0F78013A3684D8AB5D128096674A8F7755B3D.ips b/atmosphere/kip_patches/fs_patches/DBD941C0C53C52CCF7202C84D8E0F78013A3684D8AB5D128096674A8F7755B3D.ips new file mode 100644 index 0000000..580940b Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/DBD941C0C53C52CCF7202C84D8E0F78013A3684D8AB5D128096674A8F7755B3D.ips differ diff --git a/atmosphere/kip_patches/fs_patches/DC2A084996BB3C010035FCF196F940597E0B8EBFF2AC701F34F9997CCB531CDE.ips b/atmosphere/kip_patches/fs_patches/DC2A084996BB3C010035FCF196F940597E0B8EBFF2AC701F34F9997CCB531CDE.ips new file mode 100644 index 0000000..23a5db5 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/DC2A084996BB3C010035FCF196F940597E0B8EBFF2AC701F34F9997CCB531CDE.ips differ diff --git a/atmosphere/kip_patches/fs_patches/DE9FDDA4085DD5FE68DCB20B41095BB4010856AF280201552F38273B44CECD6F.ips b/atmosphere/kip_patches/fs_patches/DE9FDDA4085DD5FE68DCB20B41095BB4010856AF280201552F38273B44CECD6F.ips new file mode 100644 index 0000000..e0ccf1c Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/DE9FDDA4085DD5FE68DCB20B41095BB4010856AF280201552F38273B44CECD6F.ips differ diff --git a/atmosphere/kip_patches/fs_patches/E1E8D3D6A2FE0B102CC79F8310EEEF66E5D14BCA2ED73454455FD87C615EEDC0.ips b/atmosphere/kip_patches/fs_patches/E1E8D3D6A2FE0B102CC79F8310EEEF66E5D14BCA2ED73454455FD87C615EEDC0.ips new file mode 100644 index 0000000..17c889a Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/E1E8D3D6A2FE0B102CC79F8310EEEF66E5D14BCA2ED73454455FD87C615EEDC0.ips differ diff --git a/atmosphere/kip_patches/fs_patches/E399156E844EB0AA3CC5152979961C879F5E90696C1224A1BBE0FF1BCDBFD7DC.ips b/atmosphere/kip_patches/fs_patches/E399156E844EB0AA3CC5152979961C879F5E90696C1224A1BBE0FF1BCDBFD7DC.ips new file mode 100644 index 0000000..2ccc899 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/E399156E844EB0AA3CC5152979961C879F5E90696C1224A1BBE0FF1BCDBFD7DC.ips differ diff --git a/atmosphere/kip_patches/fs_patches/E76692DFAA0420E9FDD68E436316181814CBD72E915E153174332C6BEAA41FC3.ips b/atmosphere/kip_patches/fs_patches/E76692DFAA0420E9FDD68E436316181814CBD72E915E153174332C6BEAA41FC3.ips new file mode 100644 index 0000000..82d16af Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/E76692DFAA0420E9FDD68E436316181814CBD72E915E153174332C6BEAA41FC3.ips differ diff --git a/atmosphere/kip_patches/fs_patches/EE0F4BAC6D1FFC4BB5ADCBD12455B24E4EF924A3DB5F9158792F57FA11DA83A1.ips b/atmosphere/kip_patches/fs_patches/EE0F4BAC6D1FFC4BB5ADCBD12455B24E4EF924A3DB5F9158792F57FA11DA83A1.ips new file mode 100644 index 0000000..ffd7a8f Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/EE0F4BAC6D1FFC4BB5ADCBD12455B24E4EF924A3DB5F9158792F57FA11DA83A1.ips differ diff --git a/atmosphere/kip_patches/fs_patches/F196D144D04445B6E7497CB6405B7FC305B54F961024BF432575296E4D52BC99.ips b/atmosphere/kip_patches/fs_patches/F196D144D04445B6E7497CB6405B7FC305B54F961024BF432575296E4D52BC99.ips new file mode 100644 index 0000000..c383603 Binary files /dev/null and b/atmosphere/kip_patches/fs_patches/F196D144D04445B6E7497CB6405B7FC305B54F961024BF432575296E4D52BC99.ips differ diff --git a/atmosphere/kip_patches/loader_patches/0CDAA07AA6662015EDC1EE168E04582C551A52BACAFA4E8A5D34B88BA6B7BB6C.ips b/atmosphere/kip_patches/loader_patches/0CDAA07AA6662015EDC1EE168E04582C551A52BACAFA4E8A5D34B88BA6B7BB6C.ips new file mode 100644 index 0000000..7eb8b7a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/0CDAA07AA6662015EDC1EE168E04582C551A52BACAFA4E8A5D34B88BA6B7BB6C.ips differ diff --git a/atmosphere/kip_patches/loader_patches/0E41C033A98F85D2D746F918E6DB8C58B9F0B25B6A847F9271019D81B3AEC8C4.ips b/atmosphere/kip_patches/loader_patches/0E41C033A98F85D2D746F918E6DB8C58B9F0B25B6A847F9271019D81B3AEC8C4.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/0E41C033A98F85D2D746F918E6DB8C58B9F0B25B6A847F9271019D81B3AEC8C4.ips differ diff --git a/atmosphere/kip_patches/loader_patches/0EAF7E159D3BE0969637FFEBD413399DFEE366E615A290418E56838122135EB9.ips b/atmosphere/kip_patches/loader_patches/0EAF7E159D3BE0969637FFEBD413399DFEE366E615A290418E56838122135EB9.ips new file mode 100644 index 0000000..5cec686 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/0EAF7E159D3BE0969637FFEBD413399DFEE366E615A290418E56838122135EB9.ips differ diff --git a/atmosphere/kip_patches/loader_patches/0f3850b7ce489f6a8faee9ad301013f66c74e7c8f8d1b7038ab7fe8ba9d5ac24.ips b/atmosphere/kip_patches/loader_patches/0f3850b7ce489f6a8faee9ad301013f66c74e7c8f8d1b7038ab7fe8ba9d5ac24.ips new file mode 100644 index 0000000..48ebf1b Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/0f3850b7ce489f6a8faee9ad301013f66c74e7c8f8d1b7038ab7fe8ba9d5ac24.ips differ diff --git a/atmosphere/kip_patches/loader_patches/11733BF70FA36F44C3B83E94668EAF3C748E5EF0F4B986B59945F40BF4F3EE2C.ips b/atmosphere/kip_patches/loader_patches/11733BF70FA36F44C3B83E94668EAF3C748E5EF0F4B986B59945F40BF4F3EE2C.ips new file mode 100644 index 0000000..b667d78 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/11733BF70FA36F44C3B83E94668EAF3C748E5EF0F4B986B59945F40BF4F3EE2C.ips differ diff --git a/atmosphere/kip_patches/loader_patches/183CBD5BE392C1AECF14582AD25F755A4AB97A86213F0A8CE4E1C18DF5A79EE8.ips b/atmosphere/kip_patches/loader_patches/183CBD5BE392C1AECF14582AD25F755A4AB97A86213F0A8CE4E1C18DF5A79EE8.ips new file mode 100644 index 0000000..8cdc219 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/183CBD5BE392C1AECF14582AD25F755A4AB97A86213F0A8CE4E1C18DF5A79EE8.ips differ diff --git a/atmosphere/kip_patches/loader_patches/20EFF0183DA095635F99E8978A90C27C7D3F42E6504DF328F42ACC280EB05D1B.ips b/atmosphere/kip_patches/loader_patches/20EFF0183DA095635F99E8978A90C27C7D3F42E6504DF328F42ACC280EB05D1B.ips new file mode 100644 index 0000000..4d43b73 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/20EFF0183DA095635F99E8978A90C27C7D3F42E6504DF328F42ACC280EB05D1B.ips differ diff --git a/atmosphere/kip_patches/loader_patches/21339e8812a1fbdd4b097d10b9bfbfbf921b65e187739382fbccccecd64d93e0.ips b/atmosphere/kip_patches/loader_patches/21339e8812a1fbdd4b097d10b9bfbfbf921b65e187739382fbccccecd64d93e0.ips new file mode 100644 index 0000000..40d2e21 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/21339e8812a1fbdd4b097d10b9bfbfbf921b65e187739382fbccccecd64d93e0.ips differ diff --git a/atmosphere/kip_patches/loader_patches/24589247BF87BAD1C56EC1A5D85D2C1FC6A0B6B8485EBECF5F6E872DB0B1A6FE.ips b/atmosphere/kip_patches/loader_patches/24589247BF87BAD1C56EC1A5D85D2C1FC6A0B6B8485EBECF5F6E872DB0B1A6FE.ips new file mode 100644 index 0000000..4d43b73 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/24589247BF87BAD1C56EC1A5D85D2C1FC6A0B6B8485EBECF5F6E872DB0B1A6FE.ips differ diff --git a/atmosphere/kip_patches/loader_patches/299b246d5de84d97cbd0dc4be27789eb8bdf23d08a5af8d60220ae085dd3d9cc.ips b/atmosphere/kip_patches/loader_patches/299b246d5de84d97cbd0dc4be27789eb8bdf23d08a5af8d60220ae085dd3d9cc.ips new file mode 100644 index 0000000..40d2e21 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/299b246d5de84d97cbd0dc4be27789eb8bdf23d08a5af8d60220ae085dd3d9cc.ips differ diff --git a/atmosphere/kip_patches/loader_patches/29CA1C792CF3AB6357929DF0627170FF8EA1CC057DBE2E5C58ADD8A442BD0CA8.ips b/atmosphere/kip_patches/loader_patches/29CA1C792CF3AB6357929DF0627170FF8EA1CC057DBE2E5C58ADD8A442BD0CA8.ips new file mode 100644 index 0000000..8d783de Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/29CA1C792CF3AB6357929DF0627170FF8EA1CC057DBE2E5C58ADD8A442BD0CA8.ips differ diff --git a/atmosphere/kip_patches/loader_patches/368B15946BBCFCC3230D8DED8C420B6DB7A06F9EAFC9E07A265F90426723EC4F.ips b/atmosphere/kip_patches/loader_patches/368B15946BBCFCC3230D8DED8C420B6DB7A06F9EAFC9E07A265F90426723EC4F.ips new file mode 100644 index 0000000..cae01bc Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/368B15946BBCFCC3230D8DED8C420B6DB7A06F9EAFC9E07A265F90426723EC4F.ips differ diff --git a/atmosphere/kip_patches/loader_patches/384286127A10E36F98D5BC1E3A8454DF112572ECC342A366957270362700E787.ips b/atmosphere/kip_patches/loader_patches/384286127A10E36F98D5BC1E3A8454DF112572ECC342A366957270362700E787.ips new file mode 100644 index 0000000..4d43b73 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/384286127A10E36F98D5BC1E3A8454DF112572ECC342A366957270362700E787.ips differ diff --git a/atmosphere/kip_patches/loader_patches/39C8A75B9C85222193B724EC5DFEE0C68DF07ED0ACBC7B4A0F241A5DF6CC4B99.ips b/atmosphere/kip_patches/loader_patches/39C8A75B9C85222193B724EC5DFEE0C68DF07ED0ACBC7B4A0F241A5DF6CC4B99.ips new file mode 100644 index 0000000..f7e30e9 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/39C8A75B9C85222193B724EC5DFEE0C68DF07ED0ACBC7B4A0F241A5DF6CC4B99.ips differ diff --git a/atmosphere/kip_patches/loader_patches/3EF3ADCE3A853DB287C90B1AA00EC2BD30008CC3968FF0A78BFDCE7091D56C94.ips b/atmosphere/kip_patches/loader_patches/3EF3ADCE3A853DB287C90B1AA00EC2BD30008CC3968FF0A78BFDCE7091D56C94.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/3EF3ADCE3A853DB287C90B1AA00EC2BD30008CC3968FF0A78BFDCE7091D56C94.ips differ diff --git a/atmosphere/kip_patches/loader_patches/4A2DD3F1BE238FA3F56B603240611C63664793EFC3D57E4B42D3786ECEC5B1DF.ips b/atmosphere/kip_patches/loader_patches/4A2DD3F1BE238FA3F56B603240611C63664793EFC3D57E4B42D3786ECEC5B1DF.ips new file mode 100644 index 0000000..16ce98a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/4A2DD3F1BE238FA3F56B603240611C63664793EFC3D57E4B42D3786ECEC5B1DF.ips differ diff --git a/atmosphere/kip_patches/loader_patches/4AA57ABADF2922FB9E414AFB8E7BB9554548878EC4A0A11800B3FB4C53501424.ips b/atmosphere/kip_patches/loader_patches/4AA57ABADF2922FB9E414AFB8E7BB9554548878EC4A0A11800B3FB4C53501424.ips new file mode 100644 index 0000000..2c4ea99 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/4AA57ABADF2922FB9E414AFB8E7BB9554548878EC4A0A11800B3FB4C53501424.ips differ diff --git a/atmosphere/kip_patches/loader_patches/4CE5C4B154617D29796F5C231F707E6EE28C90608EFA7ABCCA5BE1F86A12E85B.ips b/atmosphere/kip_patches/loader_patches/4CE5C4B154617D29796F5C231F707E6EE28C90608EFA7ABCCA5BE1F86A12E85B.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/4CE5C4B154617D29796F5C231F707E6EE28C90608EFA7ABCCA5BE1F86A12E85B.ips differ diff --git a/atmosphere/kip_patches/loader_patches/4D9C6D6993BF5BF058843BE072C9819598865C79BF87674C63B6D248FA7A0BA4.ips b/atmosphere/kip_patches/loader_patches/4D9C6D6993BF5BF058843BE072C9819598865C79BF87674C63B6D248FA7A0BA4.ips new file mode 100644 index 0000000..d367ae1 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/4D9C6D6993BF5BF058843BE072C9819598865C79BF87674C63B6D248FA7A0BA4.ips differ diff --git a/atmosphere/kip_patches/loader_patches/5361CBE7071B08CC585D4ED5978302A16B65F6C021A8DE945BF06268535E209D.ips b/atmosphere/kip_patches/loader_patches/5361CBE7071B08CC585D4ED5978302A16B65F6C021A8DE945BF06268535E209D.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/5361CBE7071B08CC585D4ED5978302A16B65F6C021A8DE945BF06268535E209D.ips differ diff --git a/atmosphere/kip_patches/loader_patches/55B9D4F35EB7C68589C35D8A5752B31F02664020BF29D4F185168B2C4D713F9D.ips b/atmosphere/kip_patches/loader_patches/55B9D4F35EB7C68589C35D8A5752B31F02664020BF29D4F185168B2C4D713F9D.ips new file mode 100644 index 0000000..cae01bc Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/55B9D4F35EB7C68589C35D8A5752B31F02664020BF29D4F185168B2C4D713F9D.ips differ diff --git a/atmosphere/kip_patches/loader_patches/57F03DC120EE515C58482959AB4F76F2B5E56467A377D9576A8BDBE22E3CA2EA.ips b/atmosphere/kip_patches/loader_patches/57F03DC120EE515C58482959AB4F76F2B5E56467A377D9576A8BDBE22E3CA2EA.ips new file mode 100644 index 0000000..04a669d Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/57F03DC120EE515C58482959AB4F76F2B5E56467A377D9576A8BDBE22E3CA2EA.ips differ diff --git a/atmosphere/kip_patches/loader_patches/58F3B8A5D17DA70DE3AE4F7F5D511DF68A40CD5BC25485FB3F2C33363CA43601.ips b/atmosphere/kip_patches/loader_patches/58F3B8A5D17DA70DE3AE4F7F5D511DF68A40CD5BC25485FB3F2C33363CA43601.ips new file mode 100644 index 0000000..876d91f Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/58F3B8A5D17DA70DE3AE4F7F5D511DF68A40CD5BC25485FB3F2C33363CA43601.ips differ diff --git a/atmosphere/kip_patches/loader_patches/5D78D0A6456CD4E1F5CA0240C6A3B24D525C70FC0F9407851FD8EF81067F9386.ips b/atmosphere/kip_patches/loader_patches/5D78D0A6456CD4E1F5CA0240C6A3B24D525C70FC0F9407851FD8EF81067F9386.ips new file mode 100644 index 0000000..b667d78 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/5D78D0A6456CD4E1F5CA0240C6A3B24D525C70FC0F9407851FD8EF81067F9386.ips differ diff --git a/atmosphere/kip_patches/loader_patches/6DEC1E6A79DA5B2E506499AEFA921CC39846BC72F7B8DBE2DE24321110054564.ips b/atmosphere/kip_patches/loader_patches/6DEC1E6A79DA5B2E506499AEFA921CC39846BC72F7B8DBE2DE24321110054564.ips new file mode 100644 index 0000000..cae01bc Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/6DEC1E6A79DA5B2E506499AEFA921CC39846BC72F7B8DBE2DE24321110054564.ips differ diff --git a/atmosphere/kip_patches/loader_patches/6F6F028EBDCA8EAD0822CC4C8BC9B57D0946666C46CD78405827C23205631EC6.ips b/atmosphere/kip_patches/loader_patches/6F6F028EBDCA8EAD0822CC4C8BC9B57D0946666C46CD78405827C23205631EC6.ips new file mode 100644 index 0000000..0829b07 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/6F6F028EBDCA8EAD0822CC4C8BC9B57D0946666C46CD78405827C23205631EC6.ips differ diff --git a/atmosphere/kip_patches/loader_patches/72EC3AF6AFE4C27CC92608BE477A34CC8BB97F475AE6521353C40777DC3D3B40.ips b/atmosphere/kip_patches/loader_patches/72EC3AF6AFE4C27CC92608BE477A34CC8BB97F475AE6521353C40777DC3D3B40.ips new file mode 100644 index 0000000..7eb8b7a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/72EC3AF6AFE4C27CC92608BE477A34CC8BB97F475AE6521353C40777DC3D3B40.ips differ diff --git a/atmosphere/kip_patches/loader_patches/77034D19EC5EB64BE78089100C8A32C0E97D52EBD9073DBFDE33A1506AAA750A.ips b/atmosphere/kip_patches/loader_patches/77034D19EC5EB64BE78089100C8A32C0E97D52EBD9073DBFDE33A1506AAA750A.ips new file mode 100644 index 0000000..8cdc219 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/77034D19EC5EB64BE78089100C8A32C0E97D52EBD9073DBFDE33A1506AAA750A.ips differ diff --git a/atmosphere/kip_patches/loader_patches/7D100543BB7A975966B993F210CD8B6A1709B57131C893084C65C220C683456A.ips b/atmosphere/kip_patches/loader_patches/7D100543BB7A975966B993F210CD8B6A1709B57131C893084C65C220C683456A.ips new file mode 100644 index 0000000..b667d78 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/7D100543BB7A975966B993F210CD8B6A1709B57131C893084C65C220C683456A.ips differ diff --git a/atmosphere/kip_patches/loader_patches/81530982b7d79dbc8c8824c8f72a33edd8cfcf8e485a0d3bb000e1bddbffbfc3.ips b/atmosphere/kip_patches/loader_patches/81530982b7d79dbc8c8824c8f72a33edd8cfcf8e485a0d3bb000e1bddbffbfc3.ips new file mode 100644 index 0000000..48ebf1b Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/81530982b7d79dbc8c8824c8f72a33edd8cfcf8e485a0d3bb000e1bddbffbfc3.ips differ diff --git a/atmosphere/kip_patches/loader_patches/82CB02F144430435FEA3A54B744F1C0609C267A677C9CEBA7D04E53FF69FD8E8.ips b/atmosphere/kip_patches/loader_patches/82CB02F144430435FEA3A54B744F1C0609C267A677C9CEBA7D04E53FF69FD8E8.ips new file mode 100644 index 0000000..16ce98a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/82CB02F144430435FEA3A54B744F1C0609C267A677C9CEBA7D04E53FF69FD8E8.ips differ diff --git a/atmosphere/kip_patches/loader_patches/87d1baba23c9d81ee8b619ba9adafb628e4172a48c78026b71fc3c5695f4ec53.ips b/atmosphere/kip_patches/loader_patches/87d1baba23c9d81ee8b619ba9adafb628e4172a48c78026b71fc3c5695f4ec53.ips new file mode 100644 index 0000000..f9c306e Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/87d1baba23c9d81ee8b619ba9adafb628e4172a48c78026b71fc3c5695f4ec53.ips differ diff --git a/atmosphere/kip_patches/loader_patches/8CA78EAD6C6029367AAC65728E18FD367678CC2E79B6BFC97A2369B0D62323E2.ips b/atmosphere/kip_patches/loader_patches/8CA78EAD6C6029367AAC65728E18FD367678CC2E79B6BFC97A2369B0D62323E2.ips new file mode 100644 index 0000000..8cdc219 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/8CA78EAD6C6029367AAC65728E18FD367678CC2E79B6BFC97A2369B0D62323E2.ips differ diff --git a/atmosphere/kip_patches/loader_patches/8F6B6EF18268D6ABC39B73442D8AF2E0D97199443C06280A7E6505E730D26651.ips b/atmosphere/kip_patches/loader_patches/8F6B6EF18268D6ABC39B73442D8AF2E0D97199443C06280A7E6505E730D26651.ips new file mode 100644 index 0000000..876d91f Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/8F6B6EF18268D6ABC39B73442D8AF2E0D97199443C06280A7E6505E730D26651.ips differ diff --git a/atmosphere/kip_patches/loader_patches/9303CDB8094EFC3FA1DE7D0EEFE1DD9BE7FE0265A8FCA67C1758E42F24D318CF.ips b/atmosphere/kip_patches/loader_patches/9303CDB8094EFC3FA1DE7D0EEFE1DD9BE7FE0265A8FCA67C1758E42F24D318CF.ips new file mode 100644 index 0000000..16ce98a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/9303CDB8094EFC3FA1DE7D0EEFE1DD9BE7FE0265A8FCA67C1758E42F24D318CF.ips differ diff --git a/atmosphere/kip_patches/loader_patches/987521753F9B8CE98718E3C70FFEA1FDDFF58511A482F5387DE25FAD822C27C0.ips b/atmosphere/kip_patches/loader_patches/987521753F9B8CE98718E3C70FFEA1FDDFF58511A482F5387DE25FAD822C27C0.ips new file mode 100644 index 0000000..17d0f01 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/987521753F9B8CE98718E3C70FFEA1FDDFF58511A482F5387DE25FAD822C27C0.ips differ diff --git a/atmosphere/kip_patches/loader_patches/9B898AF251B01982753BF3661C57B120E622429CEEE5A890F4325666B89087B8.ips b/atmosphere/kip_patches/loader_patches/9B898AF251B01982753BF3661C57B120E622429CEEE5A890F4325666B89087B8.ips new file mode 100644 index 0000000..0b6e5d6 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/9B898AF251B01982753BF3661C57B120E622429CEEE5A890F4325666B89087B8.ips differ diff --git a/atmosphere/kip_patches/loader_patches/A24D79351011C238D7349A3D7D6FAE64D06D3F363146FCAD7AFAB0CADF83F8FB.ips b/atmosphere/kip_patches/loader_patches/A24D79351011C238D7349A3D7D6FAE64D06D3F363146FCAD7AFAB0CADF83F8FB.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/A24D79351011C238D7349A3D7D6FAE64D06D3F363146FCAD7AFAB0CADF83F8FB.ips differ diff --git a/atmosphere/kip_patches/loader_patches/A30045E6E8AB52978D22AA951DEB2380B09F1A45037F423195E800ED8C8E2A94.ips b/atmosphere/kip_patches/loader_patches/A30045E6E8AB52978D22AA951DEB2380B09F1A45037F423195E800ED8C8E2A94.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/A30045E6E8AB52978D22AA951DEB2380B09F1A45037F423195E800ED8C8E2A94.ips differ diff --git a/atmosphere/kip_patches/loader_patches/AAACFA5FF65047A72054CC7DF823DEE157CCAFA282CEB3019C6F1CC6444FD31D.ips b/atmosphere/kip_patches/loader_patches/AAACFA5FF65047A72054CC7DF823DEE157CCAFA282CEB3019C6F1CC6444FD31D.ips new file mode 100644 index 0000000..0b6e5d6 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/AAACFA5FF65047A72054CC7DF823DEE157CCAFA282CEB3019C6F1CC6444FD31D.ips differ diff --git a/atmosphere/kip_patches/loader_patches/ABCCC4A3D744BADC1C7765077779F720A20782D2530189EB981A854582EC14A1.ips b/atmosphere/kip_patches/loader_patches/ABCCC4A3D744BADC1C7765077779F720A20782D2530189EB981A854582EC14A1.ips new file mode 100644 index 0000000..595c203 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/ABCCC4A3D744BADC1C7765077779F720A20782D2530189EB981A854582EC14A1.ips differ diff --git a/atmosphere/kip_patches/loader_patches/AD2E2A97AC706B9A02D5670C6E1B16BC915C4FB182A754E79B1A76628C1CEFE0.ips b/atmosphere/kip_patches/loader_patches/AD2E2A97AC706B9A02D5670C6E1B16BC915C4FB182A754E79B1A76628C1CEFE0.ips new file mode 100644 index 0000000..45de2bb Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/AD2E2A97AC706B9A02D5670C6E1B16BC915C4FB182A754E79B1A76628C1CEFE0.ips differ diff --git a/atmosphere/kip_patches/loader_patches/BFD7A2BE8D4FEBD59924503FB88E183E08739FD70501652158FE11FD00F6565E.ips b/atmosphere/kip_patches/loader_patches/BFD7A2BE8D4FEBD59924503FB88E183E08739FD70501652158FE11FD00F6565E.ips new file mode 100644 index 0000000..0b6e5d6 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/BFD7A2BE8D4FEBD59924503FB88E183E08739FD70501652158FE11FD00F6565E.ips differ diff --git a/atmosphere/kip_patches/loader_patches/C6319D50A4830F7D7B15BA64943FB13433208A10EBDF2A59F80358438C7E81F5.ips b/atmosphere/kip_patches/loader_patches/C6319D50A4830F7D7B15BA64943FB13433208A10EBDF2A59F80358438C7E81F5.ips new file mode 100644 index 0000000..16ce98a Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/C6319D50A4830F7D7B15BA64943FB13433208A10EBDF2A59F80358438C7E81F5.ips differ diff --git a/atmosphere/kip_patches/loader_patches/CED1E857D8CBA3590C29B78B28DCD8CA64B6376D95673E9BA9A44CA775FEF7B6.ips b/atmosphere/kip_patches/loader_patches/CED1E857D8CBA3590C29B78B28DCD8CA64B6376D95673E9BA9A44CA775FEF7B6.ips new file mode 100644 index 0000000..5cec686 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/CED1E857D8CBA3590C29B78B28DCD8CA64B6376D95673E9BA9A44CA775FEF7B6.ips differ diff --git a/atmosphere/kip_patches/loader_patches/E2A0529B9BE58DFD67EC6F0105604B1AFEDE706138FBD3FF907E5AAFD595415F.ips b/atmosphere/kip_patches/loader_patches/E2A0529B9BE58DFD67EC6F0105604B1AFEDE706138FBD3FF907E5AAFD595415F.ips new file mode 100644 index 0000000..958f9a2 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/E2A0529B9BE58DFD67EC6F0105604B1AFEDE706138FBD3FF907E5AAFD595415F.ips differ diff --git a/atmosphere/kip_patches/loader_patches/F7EF8F813089AA47309A77459624D0B564B85AB962DA739993323A19E3C418E1.ips b/atmosphere/kip_patches/loader_patches/F7EF8F813089AA47309A77459624D0B564B85AB962DA739993323A19E3C418E1.ips new file mode 100644 index 0000000..cae01bc Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/F7EF8F813089AA47309A77459624D0B564B85AB962DA739993323A19E3C418E1.ips differ diff --git a/atmosphere/kip_patches/loader_patches/F9D7F2F90AF8F8EF86DD696C6984198C04A5598DAC310F31649B333612ECF76B.ips b/atmosphere/kip_patches/loader_patches/F9D7F2F90AF8F8EF86DD696C6984198C04A5598DAC310F31649B333612ECF76B.ips new file mode 100644 index 0000000..0b6e5d6 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/F9D7F2F90AF8F8EF86DD696C6984198C04A5598DAC310F31649B333612ECF76B.ips differ diff --git a/atmosphere/kip_patches/loader_patches/a03d932ddbf3512dda9878ce24aa42c11383b66d055670949e4744533d477e80.ips b/atmosphere/kip_patches/loader_patches/a03d932ddbf3512dda9878ce24aa42c11383b66d055670949e4744533d477e80.ips new file mode 100644 index 0000000..f9c306e Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/a03d932ddbf3512dda9878ce24aa42c11383b66d055670949e4744533d477e80.ips differ diff --git a/atmosphere/kip_patches/loader_patches/ade50a0149785ca115743386b109b8ebb95ed512aca4a33437fac1a257d2f0ce.ips b/atmosphere/kip_patches/loader_patches/ade50a0149785ca115743386b109b8ebb95ed512aca4a33437fac1a257d2f0ce.ips new file mode 100644 index 0000000..f9c306e Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/ade50a0149785ca115743386b109b8ebb95ed512aca4a33437fac1a257d2f0ce.ips differ diff --git a/atmosphere/kip_patches/loader_patches/eac30efb8b99ad10cdda37e19b064c0434c061f47cba9f7a146f47e3edd64d9e.ips b/atmosphere/kip_patches/loader_patches/eac30efb8b99ad10cdda37e19b064c0434c061f47cba9f7a146f47e3edd64d9e.ips new file mode 100644 index 0000000..9a614ec Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/eac30efb8b99ad10cdda37e19b064c0434c061f47cba9f7a146f47e3edd64d9e.ips differ diff --git a/atmosphere/kip_patches/loader_patches/fca59c745a07dd7b254281f6edd4aa4aa29ab3b57a33379cc697ec23c0ef4704.ips b/atmosphere/kip_patches/loader_patches/fca59c745a07dd7b254281f6edd4aa4aa29ab3b57a33379cc697ec23c0ef4704.ips new file mode 100644 index 0000000..d9f1974 Binary files /dev/null and b/atmosphere/kip_patches/loader_patches/fca59c745a07dd7b254281f6edd4aa4aa29ab3b57a33379cc697ec23c0ef4704.ips differ diff --git a/atmosphere/package3 b/atmosphere/package3 new file mode 100644 index 0000000..eeaa511 Binary files /dev/null and b/atmosphere/package3 differ diff --git a/atmosphere/reboot_payload.bin b/atmosphere/reboot_payload.bin new file mode 100644 index 0000000..970b350 Binary files /dev/null and b/atmosphere/reboot_payload.bin differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs new file mode 100644 index 0000000..446cf37 Binary files /dev/null and b/atmosphere/stratosphere.romfs differ diff --git a/boot.dat b/boot.dat new file mode 100644 index 0000000..03398ae Binary files /dev/null and b/boot.dat differ diff --git a/boot.ini b/boot.ini new file mode 100644 index 0000000..f354fc2 --- /dev/null +++ b/boot.ini @@ -0,0 +1,2 @@ +[payload] +file=payload.bin diff --git a/bootloader/hekate_ipl.ini b/bootloader/hekate_ipl.ini new file mode 100644 index 0000000..0c02f39 --- /dev/null +++ b/bootloader/hekate_ipl.ini @@ -0,0 +1,36 @@ +[config] +autoboot=1 +autoboot_list=0 +bootwait=3 +backlight=40 +noticker=0 +autohosoff=1 +autonogc=0 +updater2p=0 +bootprotect=0 +{} + +[Atmosphere] +fss0=atmosphere/package3 +cal0blank=1 +kip1patch=nosigchk +kip1=atmosphere/kips/* +logopath=bootloader/res/bootscreen.bmp +icon=bootloader/res/atmo_cfw.bmp +{} + +[Safe Mode] +fss0=atmosphere/package3 +cal0blank=1 +kip1patch=nosigchk +logopath=bootloader/res/bootscreen.bmp +icon=bootloader/res/atmo_sm.bmp +{} + +[Full Stock] +fss0=atmosphere/package3 +emummc_force_disable=1 +cal0blank=0 +stock=1 +icon=bootloader/res/stock.bmp +{} diff --git a/bootloader/nyx.ini b/bootloader/nyx.ini new file mode 100644 index 0000000..7b9845b --- /dev/null +++ b/bootloader/nyx.ini @@ -0,0 +1,11 @@ +[config] +themebg=0 +themecolor=202 +entries5col=0 +timeoff=27812028 +homescreen=0 +verification=1 +umsemmcrw=0 +jcdisable=0 +jcforceright=0 +bpmpclock=2 diff --git a/bootloader/patches.ini b/bootloader/patches.ini new file mode 100644 index 0000000..dab5baa --- /dev/null +++ b/bootloader/patches.ini @@ -0,0 +1,666 @@ +# UTF-8 +# A KIP section is [kip1_name:sha256_hex_8bytes] +# A patchset is .patch_name=kip_section_dec:offset_hex_0x:length_hex_0x:src_data_hex,dst_data_hex +# _dec: 1 char decimal | _hex_0x: max u32 prefixed with 0x | _hex: hex array. +# Kip1 section decimals: TEXT: 0, RODATA: 1, DATA: 2. + +#FS 1.0.0 +[FS:DE9FDDA4085DD5FE] +.nosigchk=0:0x19468:0x4:08010094,E0031F2A +.nosigchk=0:0x194A0:0x4:BA090094,E0031F2A +.nosigchk=0:0x3A79C:0x4:E0060036,1F2003D5 +.nocmac=0:0x45C78:0x16:29010C0AEA179F1A1F0104F129010A0A,1F2003D5EA179F1A1F0104F11F2003D5 +.nocmac=0:0x46488:0x8:29010D0A29010F0A,1F2003D51F2003D5 +.nocmac=0:0x46498:0x8:29010B0A8B094039,1F2003D58B094039 +.nocmac=0:0x464A8:0x8:1F0104F129010A0A,1F0104F11F2003D5 +.nosigchk=0:0x31108:0x4:F5250094,E0031F2A + +#FS 2.0.0 +[FS:CD7BBE18D6130B28] +.nosigchk=0:0x15D5C:0x4:0A010094,E0031F2A +.nosigchk=0:0x15DF4:0x4:BC0A0094,E0031F2A +.nosigchk=0:0x3F720:0x4:00060036,1F2003D5 +.nocmac=0:0x4E744:0x4:29010C0A,1F2003D5 +.nocmac=0:0x4E750:0x4:29010A0A,1F2003D5 +.nocmac=0:0x4EF50:0x8:29010D0A29010F0A,1F2003D51F2003D5 +.nocmac=0:0x4EF5C:0x4:29010B0A,1F2003D5 +.nocmac=0:0x4EF70:0x4:29010A0A,1F2003D5 +.nosigchk=0:0x32B30:0x4:45330094,E0031F2A + +#FS 2.0.0-ExFAT +[FS:E76692DFAA0420E9] +.nosigchk=0:0x15D5C:0x4:0A010094,E0031F2A +.nosigchk=0:0x15DF4:0x4:BC0A0094,E0031F2A +.nosigchk=0:0x3F720:0x4:00060036,1F2003D5 +.nocmac=0:0x4E744:0x4:29010C0A,1F2003D5 +.nocmac=0:0x4E750:0x4:29010A0A,1F2003D5 +.nocmac=0:0x4EF50:0x8:29010D0A29010F0A,1F2003D51F2003D5 +.nocmac=0:0x4EF5C:0x4:29010B0A,1F2003D5 +.nocmac=0:0x4EF70:0x4:29010A0A,1F2003D5 +.nosigchk=0:0x32B30:0x4:45330094,E0031F2A + +#FS 2.1.0 +[FS:0D7005627B07767C] +.nosigchk=0:0x15ECC:0x4:0A010094,E0031F2A +.nosigchk=0:0x15F64:0x4:DF0A0094,E0031F2A +.nosigchk=0:0x3FAF8:0x4:00060036,1F2003D5 +.nocmac=0:0x4EB24:0x4:29010C0A,1F2003D5 +.nocmac=0:0x4EB30:0x4:29010A0A,1F2003D5 +.nocmac=0:0x4F330:0x8:29010D0A29010F0A,1F2003D51F2003D5 +.nocmac=0:0x4F33C:0x4:29010B0A,1F2003D5 +.nocmac=0:0x4F350:0x4:29010A0A,1F2003D5 +.nosigchk=0:0x32F08:0x4:45330094,E0031F2A + +#FS 2.1.0-ExFAT +[FS:DBD85FCACC193DA8] +.nosigchk=0:0x15ECC:0x4:0A010094,E0031F2A +.nosigchk=0:0x15F64:0x4:DF0A0094,E0031F2A +.nosigchk=0:0x3FAF8:0x4:00060036,1F2003D5 +.nocmac=0:0x4EB24:0x4:29010C0A,1F2003D5 +.nocmac=0:0x4EB30:0x4:29010A0A,1F2003D5 +.nocmac=0:0x4F330:0x8:29010D0A29010F0A,1F2003D51F2003D5 +.nocmac=0:0x4F33C:0x4:29010B0A,1F2003D5 +.nocmac=0:0x4F350:0x4:29010A0A,1F2003D5 +.nosigchk=0:0x32F08:0x4:45330094,E0031F2A + +#FS 3.0.0 +[FS:A86DA5E87EF1097B] +.nosigchk=0:0x18D8C:0x4:0A010094,E0031F2A +.nosigchk=0:0x18E24:0x4:520C0094,E0031F2A +.nosigchk=0:0x49EC8:0x4:40040036,1F2003D5 +.nocmac=0:0x5B1D8:0x4:800A0036,1F2003D5 +.nocmac=0:0x5B6D4:0x4:00020036,1F2003D5 +.nocmac=0:0x5F72C:0x4:80140036,1F2003D5 +.nocmac=0:0x5FF40:0x4:00080036,1F2003D5 +.nocmac=0:0x600B8:0x4:E0040036,1F2003D5 +.nosigchk=0:0x373BC:0x4:274B0094,E0031F2A + +#FS 3.0.0-ExFAT +[FS:981C57E7F02F70F7] +.nosigchk=0:0x18D8C:0x4:0A010094,E0031F2A +.nosigchk=0:0x18E24:0x4:520C0094,E0031F2A +.nosigchk=0:0x49EC8:0x4:40040036,1F2003D5 +.nocmac=0:0x5B1D8:0x4:800A0036,1F2003D5 +.nocmac=0:0x5B6D4:0x4:00020036,1F2003D5 +.nocmac=0:0x5F72C:0x4:80140036,1F2003D5 +.nocmac=0:0x5FF40:0x4:00080036,1F2003D5 +.nocmac=0:0x600B8:0x4:E0040036,1F2003D5 +.nosigchk=0:0x373BC:0x4:274B0094,E0031F2A + +#FS 3.0.1 +[FS:57397C063F10B631] +.nosigchk=0:0x18DF8:0x4:0A010094,E0031F2A +.nosigchk=0:0x18E90:0x4:520C0094,E0031F2A +.nosigchk=0:0x49F34:0x4:E0030036,1F2003D5 +.nocmac=0:0x5B294:0x4:800A0036,1F2003D5 +.nocmac=0:0x5B790:0x4:00020036,1F2003D5 +.nocmac=0:0x5F7E8:0x4:80140036,1F2003D5 +.nocmac=0:0x5FFFC:0x4:00080036,1F2003D5 +.nocmac=0:0x60174:0x4:E0040036,1F2003D5 +.nosigchk=0:0x37428:0x4:274B0094,E0031F2A + +#FS 3.0.1-ExFAT +[FS:073099D7C6AD7D89] +.nosigchk=0:0x18DF8:0x4:0A010094,E0031F2A +.nosigchk=0:0x18E90:0x4:520C0094,E0031F2A +.nosigchk=0:0x49F34:0x4:E0030036,1F2003D5 +.nocmac=0:0x5B294:0x4:800A0036,1F2003D5 +.nocmac=0:0x5B790:0x4:00020036,1F2003D5 +.nocmac=0:0x5F7E8:0x4:80140036,1F2003D5 +.nocmac=0:0x5FFFC:0x4:00080036,1F2003D5 +.nocmac=0:0x60174:0x4:E0040036,1F2003D5 +.nosigchk=0:0x37428:0x4:274B0094,E0031F2A + +#FS 4.0.1 +[FS:06E90719595A010C] +.nosigchk=0:0x1C464:0x4:46EEFF97,E0031F2A +.nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A +.nosigchk=0:0x57934:0x4:E0020036,1F2003D5 +.nocmac=0:0x6C540:0x4:C00A0036,1F2003D5 +.nocmac=0:0x6CA54:0x4:40030036,1F2003D5 +.nocmac=0:0x715B0:0x4:A00C0036,1F2003D5 +.nocmac=0:0x71DCC:0x4:A0040036,1F2003D5 +.nocmac=0:0x76300:0x4:00050036,1F2003D5 +.nosigchk=0:0x1E0DC:0x4:72E60094,E0031F2A + +#FS 4.0.1-ExFAT +[FS:549B0F8D6F72C4E9] +.nosigchk=0:0x1C464:0x4:46EEFF97,E0031F2A +.nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A +.nosigchk=0:0x57934:0x4:E0020036,1F2003D5 +.nocmac=0:0x6C540:0x4:C00A0036,1F2003D5 +.nocmac=0:0x6CA54:0x4:40030036,1F2003D5 +.nocmac=0:0x715B0:0x4:A00C0036,1F2003D5 +.nocmac=0:0x71DCC:0x4:A0040036,1F2003D5 +.nocmac=0:0x76300:0x4:00050036,1F2003D5 +.nosigchk=0:0x1E0DC:0x4:72E60094,E0031F2A + +#FS 4.1.0 +[FS:8096AF7C6A35AA82] +.nosigchk=0:0x1C464:0x4:46EEFF97,E0031F2A +.nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A +.nosigchk=0:0x57934:0x4:E0020036,1F2003D5 +.nocmac=0:0x6C540:0x4:C00A0036,1F2003D5 +.nocmac=0:0x6CA54:0x4:40030036,1F2003D5 +.nocmac=0:0x715B0:0x4:A00C0036,1F2003D5 +.nocmac=0:0x71DCC:0x4:A0040036,1F2003D5 +.nocmac=0:0x76300:0x4:00050036,1F2003D5 +.nosigchk=0:0x1E0DC:0x4:72E60094,E0031F2A + +#FS 4.1.0-ExFAT +[FS:02D5ABAAFD20C8B0] +.nosigchk=0:0x1C464:0x4:46EEFF97,E0031F2A +.nosigchk=0:0x1C4FC:0x4:3C2F0094,E0031F2A +.nosigchk=0:0x57934:0x4:E0020036,1F2003D5 +.nocmac=0:0x6C540:0x4:C00A0036,1F2003D5 +.nocmac=0:0x6CA54:0x4:40030036,1F2003D5 +.nocmac=0:0x715B0:0x4:A00C0036,1F2003D5 +.nocmac=0:0x71DCC:0x4:A0040036,1F2003D5 +.nocmac=0:0x76300:0x4:00050036,1F2003D5 +.nosigchk=0:0x1E0DC:0x4:72E60094,E0031F2A + +#FS 5.0.0 +[FS:A6F27AD9AC7C73AD] +.nosigchk=0:0x22D68:0x4:9AE3FF97,E0031F2A +.nosigchk=0:0x22DDC:0x4:7D3E0094,E0031F2A +.nosigchk=0:0x7D490:0x4:40030036,1F2003D5 +.nocmac=0:0x8F478:0x4:800A0036,1F2003D5 +.nocmac=0:0x8F988:0x4:A0030036,1F2003D5 +.nocmac=0:0x94F94:0x4:600C0036,1F2003D5 +.nocmac=0:0x958DC:0x4:60060036,1F2003D5 +.nocmac=0:0x95A1C:0x4:20070036,1F2003D5 +.nocmac=0:0x9C6C8:0x4:C0050036,1F2003D5 +.nocmac=0:0x9C7F4:0x4:C0060036,1F2003D5 +.nosigchk=0:0x258C4:0x4:575F0194,E0031F2A + +#FS 5.0.0-ExFAT +[FS:CE3ECBA2F2F062F5] +.nosigchk=0:0x22D68:0x4:9AE3FF97,E0031F2A +.nosigchk=0:0x22DDC:0x4:7D3E0094,E0031F2A +.nosigchk=0:0x7D490:0x4:40030036,1F2003D5 +.nocmac=0:0x8F478:0x4:800A0036,1F2003D5 +.nocmac=0:0x8F988:0x4:A0030036,1F2003D5 +.nocmac=0:0x94F94:0x4:600C0036,1F2003D5 +.nocmac=0:0x958DC:0x4:60060036,1F2003D5 +.nocmac=0:0x95A1C:0x4:20070036,1F2003D5 +.nocmac=0:0x9C6C8:0x4:C0050036,1F2003D5 +.nocmac=0:0x9C7F4:0x4:C0060036,1F2003D5 +.nosigchk=0:0x258C4:0x4:575F0194,E0031F2A + +#FS 5.1.0 +[FS:76F87402C9387C0F] +.nosigchk=0:0x22D98:0x4:9AE3FF97,E0031F2A +.nosigchk=0:0x22E0C:0x4:853E0094,E0031F2A +.nosigchk=0:0x7D860:0x4:40030036,1F2003D5 +.nocmac=0:0x8F848:0x4:800A0036,1F2003D5 +.nocmac=0:0x8FD58:0x4:A0030036,1F2003D5 +.nocmac=0:0x95364:0x4:600C0036,1F2003D5 +.nocmac=0:0x95CAC:0x4:60060036,1F2003D5 +.nocmac=0:0x95DEC:0x4:20070036,1F2003D5 +.nocmac=0:0x9CA98:0x4:C0050036,1F2003D5 +.nocmac=0:0x9CBC4:0x4:C0060036,1F2003D5 +.nosigchk=0:0x258F4:0x4:3F600194,E0031F2A + +#FS 5.1.0-ExFAT +[FS:10B2D81605488599] +.nosigchk=0:0x22D98:0x4:9AE3FF97,E0031F2A +.nosigchk=0:0x22E0C:0x4:853E0094,E0031F2A +.nosigchk=0:0x7D860:0x4:40030036,1F2003D5 +.nocmac=0:0x8F848:0x4:800A0036,1F2003D5 +.nocmac=0:0x8FD58:0x4:A0030036,1F2003D5 +.nocmac=0:0x95364:0x4:600C0036,1F2003D5 +.nocmac=0:0x95CAC:0x4:60060036,1F2003D5 +.nocmac=0:0x95DEC:0x4:20070036,1F2003D5 +.nocmac=0:0x9CA98:0x4:C0050036,1F2003D5 +.nocmac=0:0x9CBC4:0x4:C0060036,1F2003D5 +.nosigchk=0:0x258F4:0x4:3F600194,E0031F2A + +#FS 6.0.0 +[FS:3A574D436186191D] +.nosigchk=0:0x71234:0x4:07DFFF97,E0031F2A +.nosigchk=0:0x712A8:0x4:8E3E0094,E0031F2A +.nosigchk=0:0xEB08C:0x4:C0030036,1F2003D5 +.nocmac=0:0x1000F4:0x4:200A0036,1F2003D5 +.nocmac=0:0x1005F8:0x4:A0030036,1F2003D5 +.nocmac=0:0x108234:0x4:60140036,1F2003D5 +.nocmac=0:0x108B9C:0x4:60060036,1F2003D5 +.nocmac=0:0x108CDC:0x4:20070036,1F2003D5 +.nocmac=0:0x10FA28:0x4:C0050036,1F2003D5 +.nocmac=0:0x10FB54:0x4:C0060036,1F2003D5 +.nosigchk=0:0x76084:0x4:73D40194,E0031F2A + +#FS 6.0.0-ExFAT +[FS:330553F6B5FB55C4] +.nosigchk=0:0x7C934:0x4:07DFFF97,E0031F2A +.nosigchk=0:0x7C9A8:0x4:8E3E0094,E0031F2A +.nosigchk=0:0xF678C:0x4:C0030036,1F2003D5 +.nocmac=0:0x10B7F4:0x4:200A0036,1F2003D5 +.nocmac=0:0x10BCF8:0x4:A0030036,1F2003D5 +.nocmac=0:0x113934:0x4:60140036,1F2003D5 +.nocmac=0:0x11429C:0x4:60060036,1F2003D5 +.nocmac=0:0x1143DC:0x4:20070036,1F2003D5 +.nocmac=0:0x11B128:0x4:C0050036,1F2003D5 +.nocmac=0:0x11B254:0x4:C0060036,1F2003D5 +.nosigchk=0:0x81784:0x4:73D40194,E0031F2A + +#FS 7.0.0 +[FS:2ADBE97E9B5F4177] +.nosigchk=0:0x749F4:0x4:33D7FF97,E0031F2A +.nosigchk=0:0x74A2C:0x4:31430094,E0031F2A +.nosigchk=0:0xF25E4:0x4:C0030036,1F2003D5 +.nosigchk=0:0x7A868:0x4:C6DF0194,E0031F2A + +#FS 7.0.0-ExFAT +[FS:2CCE659CEC536A8E] +.nosigchk=0:0x7FFA4:0x4:33D7FF97,E0031F2A +.nosigchk=0:0x7FFDC:0x4:31430094,E0031F2A +.nosigchk=0:0xFDB94:0x4:C0030036,1F2003D5 +.nosigchk=0:0x85E18:0x4:C6DF0194,E0031F2A + +#FS 8.0.0 +[FS:B2F5176B3548364D] +.nosigchk=0:0x762D4:0x4:BBD6FF97,E0031F2A +.nosigchk=0:0x7630C:0x4:51440094,E0031F2A +.nosigchk=0:0xF49A4:0x4:C0030036,1F2003D5 +.nosigchk=0:0x7C3C8:0x4:DEE10194,E0031F2A + +#FS 8.0.0-ExFAT +[FS:DBD941C0C53C52CC] +.nosigchk=0:0x81884:0x4:BBD6FF97,E0031F2A +.nosigchk=0:0x818BC:0x4:51440094,E0031F2A +.nosigchk=0:0xFFF54:0x4:C0030036,1F2003D5 +.nosigchk=0:0x87978:0x4:DEE10194,E0031F2A + +#FS 8.1.0 +[FS:6B09B67B29C02024] +.nosigchk=0:0x762D4:0x4:BBD6FF97,E0031F2A +.nosigchk=0:0x7630C:0x4:51440094,E0031F2A +.nosigchk=0:0xF49A4:0x4:C0030036,1F2003D5 +.nosigchk=0:0x7C3C8:0x4:DEE10194,E0031F2A + +#FS 8.1.0-ExFAT +[FS:B4CAE1F24965D92E] +.nosigchk=0:0x81884:0x4:BBD6FF97,E0031F2A +.nosigchk=0:0x818BC:0x4:51440094,E0031F2A +.nosigchk=0:0xFFF54:0x4:C0030036,1F2003D5 +.nosigchk=0:0x87978:0x4:DEE10194,E0031F2A + +#FS 9.0.0 +[FS:468740761E193EB7] +.nosigchk=0:0x61E54:0x4:23D7FF97,E0031F2A +.nosigchk=0:0x61E8C:0x4:4D310094,E0031F2A +.nosigchk=0:0xCA040:0x4:40040036,1F2003D5 +.nosigchk=0:0x678DC:0x4:518A0194,E0031F2A + +#FS 9.0.0-ExFAT +[FS:7C951376E5C12DF8] +.nosigchk=0:0x61E54:0x4:23D7FF97,E0031F2A +.nosigchk=0:0x61E8C:0x4:4D310094,E0031F2A +.nosigchk=0:0xCA040:0x4:40040036,1F2003D5 +.nosigchk=0:0x678DC:0x4:518A0194,E0031F2A + +#FS 9.1.0 +[FS:B5E7A64C6F5C4FE3] +.nosigchk=0:0x61E64:0x4:1FD7FF97,E0031F2A +.nosigchk=0:0x61E9C:0x4:4D310094,E0031F2A +.nosigchk=0:0xCA050:0x4:40040036,1F2003D5 +.nosigchk=0:0x678EC:0x4:518A0194,E0031F2A + +#FS 9.1.0-ExFAT +[FS:F196D144D04445B6] +.nosigchk=0:0x61E64:0x4:1FD7FF97,E0031F2A +.nosigchk=0:0x61E9C:0x4:4D310094,E0031F2A +.nosigchk=0:0xCA050:0x4:40040036,1F2003D5 +.nosigchk=0:0x678EC:0x4:518A0194,E0031F2A + +#FS 10.0.0 +[FS:3EEBD9B7BCD1B5E0] +.nosigchk=0:0xDC020:0x4:40040036,1F2003D5 +.nosigchk=0:0x773BC:0x4:85930194,E0031F2A + +#FS 10.0.0-ExFAT +[FS:817EA2B0B702C1F3] +.nosigchk=0:0xDC020:0x4:40040036,1F2003D5 +.nosigchk=0:0x773BC:0x4:85930194,E0031F2A + +#FS 10.2.0 +[FS:A952B657ADF9C2BA] +.nosigchk=0:0xDC480:0x4:40040036,1F2003D5 +.nosigchk=0:0x773BC:0x4:9D940194,E0031F2A + +#FS 10.2.0-ExFAT +[FS:160D3E104EAD6176] +.nosigchk=0:0xDC480:0x4:40040036,1F2003D5 +.nosigchk=0:0x773BC:0x4:9D940194,E0031F2A + +#FS 11.0.0 +[FS:E399156E844EB0AA] +.nosigchk=0:0xE2F14:0x4:E0030036,1F2003D5 +.nosigchk=0:0x79278:0x4:DCA70194,E0031F2A + +#FS 11.0.0-ExFAT +[FS:0BA15BB304B50563] +.nosigchk=0:0xE2F14:0x4:E0030036,1F2003D5 +.nosigchk=0:0x79278:0x4:DCA70194,E0031F2A + +#FS 12.0.0 +[FS:DC2A084996BB3C01] +.nosigchk=0:0xEBD28:0x4:800A0036,1F2003D5 +.nosigchk=0:0x79F20:0x4:31C80194,E0031F2A + +#FS 12.0.0-ExFAT +[FS:D5A5BF36640C49EA] +.nosigchk=0:0xEBD28:0x4:800A0036,1F2003D5 +.nosigchk=0:0x79F20:0x4:31C80194,E0031F2A + +#FS 12.0.3 +[FS:C86762BE19A51FA0] +.nosigchk=0:0xEBE38:0x4:800A0036,1F2003D5 +.nosigchk=0:0x7A030:0x4:31C80194,E0031F2A + +#FS 12.0.3-ExFAT +[FS:E1E8D3D6A2FE0B10] +.nosigchk=0:0xEBE38:0x4:800A0036,1F2003D5 +.nosigchk=0:0x7A030:0x4:31C80194,E0031F2A + +#FS 13.0.0 +[FS:7D200547178A836A] +.nosigchk=0:0xEF320:0x4:200B0036,1F2003D5 +.nosigchk=0:0x7AEC8:0x4:CAD10194,E0031F2A + +#FS 13.0.0-ExFAT +[FS:51EBFA9CCF66C09E] +.nosigchk=0:0xEF320:0x4:200B0036,1F2003D5 +.nosigchk=0:0x7AEC8:0x4:CAD10194,E0031F2A + +#FS 13.1.0 +[FS:91BA65A21C1D50AE] +.nosigchk=0:0xEF320:0x4:200B0036,1F2003D5 +.nosigchk=0:0x7AEC8:0x4:CAD10194,E0031F2A + +#FS 13.1.0-ExFAT +[FS:763827EE9C207E5B] +.nosigchk=0:0xEF320:0x4:200B0036,1F2003D5 +.nosigchk=0:0x7AEC8:0x4:CAD10194,E0031F2A + +#FS 14.0.0 +[FS:887AC150806C75CC] +.nosigchk=0:0x1281CC:0x4:A0070036,1F2003D5 +.nosigchk=0:0x79C00:0x4:4DBA0294,E0031F2A + +#FS 14.0.0-ExFAT +[FS:D488D1F29217355C] +.nosigchk=0:0x13354C:0x4:A0070036,1F2003D5 +.nosigchk=0:0x79C00:0x4:2DE70294,E0031F2A + +#FS 15.0.0 +[FS:D0D4491814B562AF] +.nosigchk=0:0x6EBA4:0x4:5CC90294,E0031F2A +.nosigchk=0:0x120DEC:0x4:A0040036,1F2003D5 + +#FS 15.0.0-ExFAT +[FS:34C0D9ED6AD1873D] +.nosigchk=0:0x6EBA4:0x4:40F50294,E0031F2A +.nosigchk=0:0x12BD7C:0x4:A0040036,1F2003D5 + +#FS 16.0.0 +[FS:56E856566C38D8BE] +.nosigchk=0:0x6F704:0x4:B1650394,E0031F2A +.nosigchk=0:0x148B2C:0x4:60040036,1F2003D5 + +#FS 16.0.0-ExFAT +[FS:CFAB450C2C539DA9] +.nosigchk=0:0x6F704:0x4:E9900394,E0031F2A +.nosigchk=0:0x15380C:0x4:60040036,1F2003D5 + +#FS 16.0.3 +[FS:39EE1F1E0EA7325D] +.nosigchk=0:0x6F754:0x4:B1650394,E0031F2A +.nosigchk=0:0x148B7C:0x4:60040036,1F2003D5 + +#FS 16.0.3-ExFAT +[FS:62C65EFD9ABF7C43] +.nosigchk=0:0x6F754:0x4:E9900394,E0031F2A +.nosigchk=0:0x15385C:0x4:60040036,1F2003D5 + +#FS 16.1.0 +[FS:39EE1F1E0EA7325D] +.nosigchk=0:0x6F754:0x4:B1650394,E0031F2A +.nosigchk=0:0x148B7C:0x4:60040036,1F2003D5 + +#FS 16.1.0-ExFAT +[FS:62C65EFD9ABF7C43] +.nosigchk=0:0x6F754:0x4:E9900394,E0031F2A +.nosigchk=0:0x15385C:0x4:60040036,1F2003D5 + +#FS 17.0.0-FAT #FAT - SDKVersion:17.5.0.0 +[FS:27073BF0A1B8CE61] +.nosigchk=0:0x73B04:0x4:64600394,E0031F2A +.nosigchk=0:0x24154:0x4:40100036,1F2003D5 + +#FS 17.0.0-ExFAT #ExFAT - SDKVersion:17.5.0.0 +[FS:EE0F4BAC6D1FFC4B] +.nosigchk=0:0x73B04:0x4:FC8B0394,E0031F2A +.nosigchk=0:0x24154:0x4:40100036,1F2003D5 + + +#Loader Atmosphere-0.11.0 +[Loader:72EC3AF6AFE4C27C] +.nosigchk=0:0x1E94:0x4:00E44539,20008052 +.nosigchk=0:0x6169:0x2:2800,FC03 + +#Loader Atmosphere-0.11.1 +[Loader:0CDAA07AA6662015] +.nosigchk=0:0x1E94:0x4:00E44539,20008052 +.nosigchk=0:0x6169:0x2:2800,FC03 + +#Loader Atmosphere-0.12.0 +[Loader:57F03DC120EE515C] +.nosigchk=0:0x1CF4:0x4:00E84539,20008052 +.nosigchk=0:0x5FD9:0x2:2800,FC03 + +#Loader Atmosphere-0.13.0 +[Loader:987521753F9B8CE9] +.nosigchk=0:0xB74:0x4:00E45039,20008052 +.nosigchk=0:0x6FDC:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.14.0 +[Loader:4D9C6D6993BF5BF0] +.nosigchk=0:0x1B24:0x4:00A85839,20008052 +.nosigchk=0:0x67CC:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.14.1 +[Loader:29CA1C792CF3AB63] +.nosigchk=0:0x1B24:0x4:00A85839,20008052 +.nosigchk=0:0x67CC:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.14.2 +[Loader:24589247BF87BAD1] +.nosigchk=0:0x1B54:0x4:20A81839,20008052 +.nosigchk=0:0x686C:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.14.3 +[Loader:384286127A10E36F] +.nosigchk=0:0x1B54:0x4:20A81839,20008052 +.nosigchk=0:0x686C:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.14.4 +[Loader:20EFF0183DA09563] +.nosigchk=0:0x1B54:0x4:20A81839,20008052 +.nosigchk=0:0x686C:0x4:48010054,1F2003D5 + +#Loader Atmosphere-0.15.0 +[Loader:FCA59C745A07DD7B] +.nosigchk=0:0x679A:0x1:01,00 + +#Loader Atmosphere-0.16.0pre +[Loader:0F3850B7CE489F6A] +.nosigchk=0:0x6D9A:0x1:01,00 + +#Loader Atmosphere-0.16.0-p2 +[Loader:81530982B7D79DBC] +.nosigchk=0:0x6D9A:0x1:01,00 + +#Loader Atmosphere-0.16.1 +[Loader:EAC30EFB8B99AD10] +.nosigchk=0:0x6DEA:0x1:01,00 + +#Loader Atmosphere-0.16.2 +[Loader:299B246D5DE84D97] +.nosigchk=0:0x6DDA:0x1:01,00 + +#Loader Atmosphere-0.17.0 +[Loader:21339E8812A1FBDD] +.nosigchk=0:0x6DDA:0x1:01,00 + +#Loader Atmosphere-0.17.1 +[Loader:39C8A75B9C852221] +.nosigchk=0:0x692A:0x1:01,00 + +#Loader Atmosphere-0.18.0 +[Loader:A03D932DDBF3512D] +.nosigchk=0:0x58BA:0x1:01,00 + +#Loader Atmosphere-0.18.0p2 +[Loader:87D1BABA23C9D81E] +.nosigchk=0:0x58BA:0x1:01,00 + +#Loader Atmosphere-0.18.1 +[Loader:ADE50A0149785CA1] +.nosigchk=0:0x58BA:0x1:01,00 + +#Loader Atmosphere-0.19.0 +[Loader:58F3B8A5D17DA70D] +.nosigchk=0:0x59CA:0x1:01,00 + +#Loader Atmosphere-0.19.1 +[Loader:8F6B6EF18268D6AB] +.nosigchk=0:0x59CA:0x1:01,00 + +#Loader Atmosphere-0.19.2 +[Loader:3EF3ADCE3A853DB2] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-0.19.3 +[Loader:A30045E6E8AB5297] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-0.19.4 +[Loader:4CE5C4B154617D29] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-0.19.5 +[Loader:0E41C033A98F85D2] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-0.20.0 +[Loader:AD2E2A97AC706B9A] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-0.20.1 +[Loader:5361CBE7071B08CC] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-1.0.0 +[Loader:A24D79351011C238] +.nosigchk=0:0x59DA:0x1:01,00 + +#Loader Atmosphere-1.1.0 +[Loader:0EAF7E159D3BE096] +.nosigchk=0:0x59EA:0x1:01,00 + +#Loader Atmosphere-1.1.1 +[Loader:CED1E857D8CBA359] +.nosigchk=0:0x59EA:0x1:01,00 + +#Loader Atmosphere-1.2.0-pre-f7f83b474 +[Loader:6F6F028EBDCA8EAD] +.nosigchk=0:0x5AE6:0x1:01,00 + +#Loader Atmosphere-1.2.0-pre-692247b26 +[Loader:77034D19EC5EB64B] +.nosigchk=0:0x5AF6:0x1:01,00 + +#Loader Atmosphere-1.2.1 +[Loader:183CBD5BE392C1AE] +.nosigchk=0:0x5AF6:0x1:01,00 + +#Loader Atmosphere-1.2.2 +[Loader:8CA78EAD6C602936] +.nosigchk=0:0x5AF6:0x1:01,00 + +#Loader Atmosphere-1.2.3 +[Loader:55B9D4F35EB7C685] +.nosigchk=0:0x5AB6:0x1:01,00 + +#Loader Atmosphere-1.2.4 +[Loader:368B15946BBCFCC3] +.nosigchk=0:0x5AB6:0x1:01,00 + +#Loader Atmosphere-1.2.5 +[Loader:6DEC1E6A79DA5B2E] +.nosigchk=0:0x5AB6:0x1:01,00 + +#Loader Atmosphere-1.2.6 +[Loader:F7EF8F813089AA47] +.nosigchk=0:0x5AB6:0x1:01,00 + +#Loader Atmosphere-1.3.0 +[Loader:ABCCC4A3D744BADC] +.nosigchk=0:0x5D16:0x1:01,00 + +#Loader Atmosphere-1.3.0 [Silent Update: -ase-b69fa1357] +[Loader:ABCCC4A3D744BADC] +.nosigchk=0:0x5D16:0x1:01,00 + +#Loader Atmosphere-1.3.1 +[Loader:E2A0529B9BE58DFD] +.nosigchk=0:0x5DE6:0x1:01,00 + +#Loader Atmosphere-1.3.2 +[Loader:4AA57ABADF2922FB] +.nosigchk=0:0x5FC6:0x1:01,00 + +#Loader Atmosphere-1.4.0-pre-36a3361 +[Loader:C6319D50A4830F7D] +.nosigchk=0:0x5F76:0x1:01,00 + +#Loader Atmosphere-1.4.0 +[Loader:5D78D0A6456CD4E1] +.nosigchk=0:0x5F66:0x1:01,00 + +#Loader Atmosphere-1.4.1 +[Loader:7D100543BB7A9759] +.nosigchk=0:0x5F66:0x1:01,00 + +#Loader Atmosphere-1.4.1-pre-7a69f2f06 +[Loader:11733BF70FA36F44] +.nosigchk=0:0x5F66:0x1:01,00 + +#Loader Atmosphere-1.5.0-prerelease +[Loader:4A2DD3F1BE238FA3] +.nosigchk=0:0x5F76:0x1:01,00 + +#Loader Atmosphere-1.5.1 +[Loader:9303CDB8094EFC3F] +.nosigchk=0:0x5F76:0x1:01,00 + +#Loader Atmosphere-1.5.2 +[Loader:82CB02F144430435] +.nosigchk=0:0x5F76:0x1:01,00 + +#Loader Atmosphere-1.5.3 +[Loader:F9D7F2F90AF8F8EF] +.nosigchk=0:0x5F7E:0x1:01,00 + +#Loader Atmosphere-1.5.4-prerelease +[Loader:BFD7A2BE8D4FEBD5] +.nosigchk=0:0x5F7E:0x1:01,00 + +#Loader Atmosphere-1.5.5 +[Loader:AAACFA5FF65047A7] +.nosigchk=0:0x5F7E:0x1:01,00 + +#Loader Atmosphere-1.6.1-prerelease +[Loader:9B898AF251B01982] +.nosigchk=0:0x5F7E:0x1:01,00 diff --git a/bootloader/res/atmo_cfw.bmp b/bootloader/res/atmo_cfw.bmp new file mode 100644 index 0000000..08f02ee Binary files /dev/null and b/bootloader/res/atmo_cfw.bmp differ diff --git a/bootloader/res/atmo_sm.bmp b/bootloader/res/atmo_sm.bmp new file mode 100644 index 0000000..194ae41 Binary files /dev/null and b/bootloader/res/atmo_sm.bmp differ diff --git a/bootloader/res/bootscreen.bmp b/bootloader/res/bootscreen.bmp new file mode 100644 index 0000000..6ef913e Binary files /dev/null and b/bootloader/res/bootscreen.bmp differ diff --git a/bootloader/res/stock.bmp b/bootloader/res/stock.bmp new file mode 100644 index 0000000..073142e Binary files /dev/null and b/bootloader/res/stock.bmp differ diff --git a/bootloader/sys/emummc.kipm b/bootloader/sys/emummc.kipm new file mode 100644 index 0000000..941808a Binary files /dev/null and b/bootloader/sys/emummc.kipm differ diff --git a/bootloader/sys/l4t/bpmpfw.bin b/bootloader/sys/l4t/bpmpfw.bin new file mode 100644 index 0000000..dc1efb7 Binary files /dev/null and b/bootloader/sys/l4t/bpmpfw.bin differ diff --git a/bootloader/sys/l4t/bpmpfw_b01.bin b/bootloader/sys/l4t/bpmpfw_b01.bin new file mode 100644 index 0000000..123cc9f Binary files /dev/null and b/bootloader/sys/l4t/bpmpfw_b01.bin differ diff --git a/bootloader/sys/l4t/mtc_tbl_b01.bin b/bootloader/sys/l4t/mtc_tbl_b01.bin new file mode 100644 index 0000000..8fd1005 Binary files /dev/null and b/bootloader/sys/l4t/mtc_tbl_b01.bin differ diff --git a/bootloader/sys/l4t/sc7entry.bin b/bootloader/sys/l4t/sc7entry.bin new file mode 100644 index 0000000..2cd6ad5 Binary files /dev/null and b/bootloader/sys/l4t/sc7entry.bin differ diff --git a/bootloader/sys/l4t/sc7exit.bin b/bootloader/sys/l4t/sc7exit.bin new file mode 100644 index 0000000..0e5c9f0 Binary files /dev/null and b/bootloader/sys/l4t/sc7exit.bin differ diff --git a/bootloader/sys/l4t/sc7exit_b01.bin b/bootloader/sys/l4t/sc7exit_b01.bin new file mode 100644 index 0000000..c6e3dbc Binary files /dev/null and b/bootloader/sys/l4t/sc7exit_b01.bin differ diff --git a/bootloader/sys/libsys_lp0.bso b/bootloader/sys/libsys_lp0.bso new file mode 100644 index 0000000..9989c69 Binary files /dev/null and b/bootloader/sys/libsys_lp0.bso differ diff --git a/bootloader/sys/libsys_minerva.bso b/bootloader/sys/libsys_minerva.bso new file mode 100644 index 0000000..044c463 Binary files /dev/null and b/bootloader/sys/libsys_minerva.bso differ diff --git a/bootloader/sys/nyx.bin b/bootloader/sys/nyx.bin new file mode 100644 index 0000000..a6ac5ce Binary files /dev/null and b/bootloader/sys/nyx.bin differ diff --git a/bootloader/sys/res.pak b/bootloader/sys/res.pak new file mode 100644 index 0000000..09f8dfd Binary files /dev/null and b/bootloader/sys/res.pak differ diff --git a/bootloader/sys/thk.bin b/bootloader/sys/thk.bin new file mode 100644 index 0000000..b27cdaf Binary files /dev/null and b/bootloader/sys/thk.bin differ diff --git a/bootloader/update.bin b/bootloader/update.bin new file mode 100644 index 0000000..970b350 Binary files /dev/null and b/bootloader/update.bin differ diff --git a/config/aio-switch-updater/custom_packs.json b/config/aio-switch-updater/custom_packs.json new file mode 100644 index 0000000..f72d685 --- /dev/null +++ b/config/aio-switch-updater/custom_packs.json @@ -0,0 +1,9 @@ +{ + "ams": { + "[PACK] Ultra 1.5": "https://github.com/Ultra-NX/Ultra/releases/latest/download/Ultra.zip" + }, + "misc": { + "Brick Code": "https://github.com/Ultra-NX/Ultra-Resources/raw/main/brick.zip", + "Refresh AIO": "https://github.com/Ultra-NX/Ultra-Resources/raw/main/aio/config.zip" + } +} \ No newline at end of file diff --git a/config/aio-switch-updater/hide_tabs.json b/config/aio-switch-updater/hide_tabs.json new file mode 100644 index 0000000..c314aa5 --- /dev/null +++ b/config/aio-switch-updater/hide_tabs.json @@ -0,0 +1,18 @@ +{ + "about": false, + "atmosphere": true, + "cfw": true, + "firmwares": false, + "cheats": false, + "custom": false, + "outdatedtitles": false, + "jccolor": false, + "pccolor": false, + "downloadpayload": false, + "rebootpayload": false, + "netsettings": false, + "browser": false, + "move": false, + "cleanup": false, + "language": false +} \ No newline at end of file diff --git a/config/aio-switch-updater/preserve.txt b/config/aio-switch-updater/preserve.txt new file mode 100644 index 0000000..a3b9594 --- /dev/null +++ b/config/aio-switch-updater/preserve.txt @@ -0,0 +1,5 @@ +/switch/DBI/ +/bootloader/nyx.ini +/config/tesla/ +/config/ultrapaw/ +/atmosphere/config/system_settings.ini \ No newline at end of file diff --git a/config/tesla/config.ini b/config/tesla/config.ini new file mode 100644 index 0000000..0e73a91 --- /dev/null +++ b/config/tesla/config.ini @@ -0,0 +1,3 @@ +[tesla] +key_combo = L+R+DUP +;Keys: A,B,X,Y,LS,RS,L,R,ZL,ZR,PLUS,MINUS,DLEFT,DUP,DRIGHT,DDOWN,SL,SR // key_combo=L+DDOWN+RS diff --git a/config/ultrapaw/lang/de.json b/config/ultrapaw/lang/de.json new file mode 100644 index 0000000..691e215 --- /dev/null +++ b/config/ultrapaw/lang/de.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Nicht verfügbar", + "OVERLAYS": "Overlays", + "OVERLAY": "Overlay", + "HIDDEN_OVERLAYS": "Versteckte Overlays", + "PACKAGES": "Pakete", + "PACKAGE": "Paket", + "HIDDEN_PACKAGES": "Versteckte Pakete", + "HIDDEN": "Versteckt", + "HIDE": "Verbergen", + "COMMANDS": "Befehle", + "SETTINGS": "Einstellungen", + "MAIN_SETTINGS": "Haupt-Einstellungen", + "VERSION_SETTINGS": "Versionseinstellungen", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Sprache", + "ROOT_PACKAGE": "Stamm-Paket", + "SORT_PRIORITY": "Sortierpriorität", + "FAILED_TO_OPEN": "Fehler beim Öffnen der Datei", + "CLEAN_LABELS": "Saubere Beschriftungen", + "OVERLAY_LABELS": "Overlay-Beschriftungen", + "PACKAGE_LABELS": "Paket-Beschriftungen", + "ON": "Ein", + "OFF": "Aus", + "PACKAGE_INFO": "Paketinformation", + "VERSION": "Version", + "CREATOR": "Ersteller", + "ABOUT": "Über", + "OK": "OK", + "BACK": "Zurück", + "REBOOT": "Neustart", + "SHUTDOWN": "Herunterfahren", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/en.json b/config/ultrapaw/lang/en.json new file mode 100644 index 0000000..39f35de --- /dev/null +++ b/config/ultrapaw/lang/en.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Not available", + "OVERLAYS": "Overlays", + "OVERLAY": "Overlay", + "HIDDEN_OVERLAYS": "Hidden Overlays", + "PACKAGES": "Packages", + "PACKAGE": "Package", + "HIDDEN_PACKAGES": "Hidden Packages", + "HIDDEN": "Hidden", + "HIDE": "Hide", + "COMMANDS": "Commands", + "SETTINGS": "Settings", + "MAIN_SETTINGS": "Main Settings", + "VERSION_SETTINGS": "Version Settings", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Language", + "ROOT_PACKAGE": "Root Package", + "SORT_PRIORITY": "Sort Priority", + "FAILED_TO_OPEN": "Failed to open file", + "CLEAN_LABELS": "Clean Labels", + "OVERLAY_LABELS": "Overlay Labels", + "PACKAGE_LABELS": "Package Labels", + "ON": "On", + "OFF": "Off", + "PACKAGE_INFO": "Package Info", + "VERSION": "Version", + "CREATOR": "Creator(s)", + "ABOUT": "About", + "OK": "OK", + "BACK": "Back", + "REBOOT": "Reboot", + "SHUTDOWN": "Shutdown", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/es.json b/config/ultrapaw/lang/es.json new file mode 100644 index 0000000..2db2686 --- /dev/null +++ b/config/ultrapaw/lang/es.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "No disponible", + "OVERLAYS": "Superposiciones", + "OVERLAY": "Superposición", + "HIDDEN_OVERLAYS": "Superposiciones Ocultas", + "PACKAGES": "Paquetes", + "PACKAGE": "Paquete", + "HIDDEN_PACKAGES": "Paquetes Ocultos", + "HIDDEN": "Oculto", + "HIDE": "Ocultar", + "COMMANDS": "Comandos", + "SETTINGS": "Configuración", + "MAIN_SETTINGS": "Configuración Principal", + "VERSION_SETTINGS": "Configuración de Versión", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Idioma", + "ROOT_PACKAGE": "Paquete Raíz", + "SORT_PRIORITY": "Prioridad de Orden", + "FAILED_TO_OPEN": "No se pudo abrir el archivo", + "CLEAN_LABELS": "Etiquetas Limpias", + "OVERLAY_LABELS": "Etiquetas de Superposición", + "PACKAGE_LABELS": "Etiquetas de Paquete", + "ON": "Encendido", + "OFF": "Apagado", + "PACKAGE_INFO": "Información del Paquete", + "VERSION": "Versión", + "CREATOR": "Creador(es)", + "ABOUT": "Acerca de", + "OK": "Aceptar", + "BACK": "Atrás", + "REBOOT": "Reiniciar", + "SHUTDOWN": "Apagar", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/fr.json b/config/ultrapaw/lang/fr.json new file mode 100644 index 0000000..6fc4c2b --- /dev/null +++ b/config/ultrapaw/lang/fr.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Sélection non disponible", + "OVERLAYS": "Superpositions", + "OVERLAY": "Superposition", + "HIDDEN_OVERLAYS": "Superpositions Cachées", + "PACKAGES": "Paquets", + "PACKAGE": "Paquet", + "HIDDEN_PACKAGES": "Paquets Cachés", + "HIDDEN": "Caché", + "HIDE": "Cacher", + "COMMANDS": "Commandes", + "SETTINGS": "Paramètres", + "MAIN_SETTINGS": "Paramètres Principaux", + "VERSION_SETTINGS": "Paramètres de Version", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Langue", + "ROOT_PACKAGE": "Paquet Racine", + "SORT_PRIORITY": "Priorité de Tri", + "FAILED_TO_OPEN": "Échec de l'ouverture du fichier", + "CLEAN_LABELS": "Étiquettes Propres", + "OVERLAY_LABELS": "Étiquettes d'Overlay", + "PACKAGE_LABELS": "Étiquettes de Paquet", + "ON": "Activer", + "OFF": "Désactiver", + "PACKAGE_INFO": "Informations sur le Paquet", + "VERSION": "Version", + "CREATOR": "Créateur(s)", + "ABOUT": "À propos", + "OK": "OK", + "BACK": "Retour", + "REBOOT": "Redémarrer", + "SHUTDOWN": "Arrêter", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/it.json b/config/ultrapaw/lang/it.json new file mode 100644 index 0000000..1a4d334 --- /dev/null +++ b/config/ultrapaw/lang/it.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Selezione non disponibile", + "OVERLAYS": "Sovrapposizioni", + "OVERLAY": "Sovrapposizione", + "HIDDEN_OVERLAYS": "Sovrapposizioni nascoste", + "PACKAGES": "Pacchetti", + "PACKAGE": "Pacchetto", + "HIDDEN_PACKAGES": "Pacchetti nascosti", + "HIDDEN": "Nascosto", + "HIDE": "Nascondi", + "COMMANDS": "Comandi", + "SETTINGS": "Impostazioni", + "MAIN_SETTINGS": "Impostazioni principali", + "VERSION_SETTINGS": "Impostazioni versione", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Lingua", + "ROOT_PACKAGE": "Pacchetto principale", + "SORT_PRIORITY": "Priorità di ordinamento", + "FAILED_TO_OPEN": "Apertura del file non riuscita", + "CLEAN_LABELS": "Etichette pulite", + "OVERLAY_LABELS": "Etichette sovrapposte", + "PACKAGE_LABELS": "Etichette del pacchetto", + "ON": "Acceso", + "OFF": "Spento", + "PACKAGE_INFO": "Informazioni sul pacchetto", + "VERSION": "Versione", + "CREATOR": "Creatore(i)", + "ABOUT": "Informazioni", + "OK": "OK", + "BACK": "Indietro", + "REBOOT": "Riavvia", + "SHUTDOWN": "Spegni", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/ja.json b/config/ultrapaw/lang/ja.json new file mode 100644 index 0000000..9b6e8f9 --- /dev/null +++ b/config/ultrapaw/lang/ja.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "利用不可", + "OVERLAYS": "オーバーレイ", + "OVERLAY": "オーバーレイ", + "HIDDEN_OVERLAYS": "非表示のオーバーレイ", + "PACKAGES": "パッケージ", + "PACKAGE": "パッケージ", + "HIDDEN_PACKAGES": "非表示のパッケージ", + "HIDDEN": "非表示", + "HIDE": "非表示", + "COMMANDS": "コマンド", + "SETTINGS": "設定", + "MAIN_SETTINGS": "メイン設定", + "VERSION_SETTINGS": "バージョン設定", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "言語", + "ROOT_PACKAGE": "ルートパッケージ", + "SORT_PRIORITY": "並べ替え優先度", + "FAILED_TO_OPEN": "ファイルを開けませんでした", + "CLEAN_LABELS": "クリーン ラベル", + "OVERLAY_LABELS": "オーバーレイ ラベル", + "PACKAGE_LABELS": "パッケージ ラベル", + "ON": "オン", + "OFF": "オフ", + "PACKAGE_INFO": "パッケージ情報", + "VERSION": "バージョン", + "CREATOR": "作成者", + "ABOUT": "情報", + "OK": "OK", + "BACK": "戻る", + "REBOOT": "再起動", + "SHUTDOWN": "シャットダウン", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/kr.json b/config/ultrapaw/lang/kr.json new file mode 100644 index 0000000..9c696f4 --- /dev/null +++ b/config/ultrapaw/lang/kr.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "사용할 수 없음", + "OVERLAYS": "오버레이", + "OVERLAY": "오버레이", + "HIDDEN_OVERLAYS": "숨겨진 오버레이", + "PACKAGES": "패키지", + "PACKAGE": "패키지", + "HIDDEN_PACKAGES": "숨겨진 패키지", + "HIDDEN": "숨김", + "HIDE": "숨기기", + "COMMANDS": "명령어", + "SETTINGS": "설정", + "MAIN_SETTINGS": "메인 설정", + "VERSION_SETTINGS": "버전 설정", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "언어", + "ROOT_PACKAGE": "루트 패키지", + "SORT_PRIORITY": "우선순위 정렬", + "FAILED_TO_OPEN": "파일 열기 실패", + "CLEAN_LABELS": "정리된 라벨", + "OVERLAY_LABELS": "오버레이 라벨", + "PACKAGE_LABELS": "패키지 라벨", + "ON": "켜짐", + "OFF": "끔", + "PACKAGE_INFO": "패키지 정보", + "VERSION": "버전", + "CREATOR": "만든이(들)", + "ABOUT": "소개", + "OK": "확인", + "BACK": "뒤로", + "REBOOT": "다시 시작", + "SHUTDOWN": "종료", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/nl.json b/config/ultrapaw/lang/nl.json new file mode 100644 index 0000000..f9a52ba --- /dev/null +++ b/config/ultrapaw/lang/nl.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Niet beschikbaar", + "OVERLAYS": "Overlays", + "OVERLAY": "Overlay", + "HIDDEN_OVERLAYS": "Verborgen overlays", + "PACKAGES": "Pakketten", + "PACKAGE": "Pakket", + "HIDDEN_PACKAGES": "Verborgen pakketten", + "HIDDEN": "Verborgen", + "HIDE": "Verbergen", + "COMMANDS": "Opdrachten", + "SETTINGS": "Instellingen", + "MAIN_SETTINGS": "Hoofdinstellingen", + "VERSION_SETTINGS": "Versie-instellingen", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Taal", + "ROOT_PACKAGE": "Hoofdpakket", + "SORT_PRIORITY": "Sorteer prioriteit", + "FAILED_TO_OPEN": "Kon bestand niet openen", + "CLEAN_LABELS": "Schone Labels", + "OVERLAY_LABELS": "Overlay Labels", + "PACKAGE_LABELS": "Pakket Labels", + "ON": "Aan", + "OFF": "Uit", + "PACKAGE_INFO": "Pakketinformatie", + "VERSION": "Versie", + "CREATOR": "Maker(s)", + "ABOUT": "Over", + "OK": "OK", + "BACK": "Terug", + "REBOOT": "Herstarten", + "SHUTDOWN": "Afsluiten", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/pt.json b/config/ultrapaw/lang/pt.json new file mode 100644 index 0000000..f9a52ba --- /dev/null +++ b/config/ultrapaw/lang/pt.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Niet beschikbaar", + "OVERLAYS": "Overlays", + "OVERLAY": "Overlay", + "HIDDEN_OVERLAYS": "Verborgen overlays", + "PACKAGES": "Pakketten", + "PACKAGE": "Pakket", + "HIDDEN_PACKAGES": "Verborgen pakketten", + "HIDDEN": "Verborgen", + "HIDE": "Verbergen", + "COMMANDS": "Opdrachten", + "SETTINGS": "Instellingen", + "MAIN_SETTINGS": "Hoofdinstellingen", + "VERSION_SETTINGS": "Versie-instellingen", + "KEY_COMBO": "Key Combo", + "LANGUAGE": "Taal", + "ROOT_PACKAGE": "Hoofdpakket", + "SORT_PRIORITY": "Sorteer prioriteit", + "FAILED_TO_OPEN": "Kon bestand niet openen", + "CLEAN_LABELS": "Schone Labels", + "OVERLAY_LABELS": "Overlay Labels", + "PACKAGE_LABELS": "Pakket Labels", + "ON": "Aan", + "OFF": "Uit", + "PACKAGE_INFO": "Pakketinformatie", + "VERSION": "Versie", + "CREATOR": "Maker(s)", + "ABOUT": "Over", + "OK": "OK", + "BACK": "Terug", + "REBOOT": "Herstarten", + "SHUTDOWN": "Afsluiten", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday", + "JANUARY": "January", + "FEBRUARY": "February", + "MARCH": "March", + "APRIL": "April", + "MAY": "May", + "JUNE": "June", + "JULY": "July", + "AUGUST": "August", + "SEPTEMBER": "September", + "OCTOBER": "October", + "NOVEMBER": "November", + "DECEMBER": "December", + "SUN": "Sun", + "MON": "Mon", + "TUE": "Tue", + "WED": "Wed", + "THU": "Thu", + "FRI": "Fri", + "SAT": "Sat", + "JAN": "Jan", + "FEB": "Feb", + "MAR": "Mar", + "APR": "Apr", + "MAY_ABBR": "May", + "JUN": "Jun", + "JUL": "Jul", + "AUG": "Aug", + "SEP": "Sep", + "OCT": "Oct", + "NOV": "Nov", + "DEC": "Dec" +} diff --git a/config/ultrapaw/lang/ru.json b/config/ultrapaw/lang/ru.json new file mode 100644 index 0000000..a8be6d7 --- /dev/null +++ b/config/ultrapaw/lang/ru.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "Недоступно", + "OVERLAYS": "Оверлеи", + "OVERLAY": "Оверлей", + "HIDDEN_OVERLAYS": "Скрытые оверлеи", + "PACKAGES": "Пакеты", + "PACKAGE": "Пакет", + "HIDDEN_PACKAGES": "Скрытые пакеты", + "HIDDEN": "Скрыто", + "HIDE": "Скрыть", + "COMMANDS": "Команды", + "SETTINGS": "Настройки", + "MAIN_SETTINGS": "Главные настройки", + "VERSION_SETTINGS": "Настройки версии", + "KEY_COMBO": "Комбинация клавиш", + "LANGUAGE": "Язык", + "ROOT_PACKAGE": "Корневой пакет", + "SORT_PRIORITY": "Приоритет сортировки", + "FAILED_TO_OPEN": "Не удалось открыть файл", + "CLEAN_LABELS": "Чистые метки", + "OVERLAY_LABELS": "Метки оверлеев", + "PACKAGE_LABELS": "Метки пакетов", + "ON": "Включено", + "OFF": "Выключено", + "PACKAGE_INFO": "Информация о пакете", + "VERSION": "Версия", + "CREATOR": "Автор", + "ABOUT": "О программе", + "OK": "ОК", + "BACK": "Назад", + "REBOOT": "Перезагрузка", + "SHUTDOWN": "Выключение", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "Воскресенье", + "MONDAY": "Понедельник", + "TUESDAY": "Вторник", + "WEDNESDAY": "Среда", + "THURSDAY": "Четверг", + "FRIDAY": "Пятница", + "SATURDAY": "Суббота", + "JANUARY": "Январь", + "FEBRUARY": "Февраль", + "MARCH": "Март", + "APRIL": "Апрель", + "MAY": "Май", + "JUNE": "Июнь", + "JULY": "Июль", + "AUGUST": "Август", + "SEPTEMBER": "Сентябрь", + "OCTOBER": "Октябрь", + "NOVEMBER": "Ноябрь", + "DECEMBER": "Декабрь", + "SUN": "Вс", + "MON": "Пн", + "TUE": "Вт", + "WED": "Ср", + "THU": "Чт", + "FRI": "Пт", + "SAT": "Сб", + "JAN": "Янв", + "FEB": "Фев", + "MAR": "Мар", + "APR": "Апр", + "MAY_ABBR": "Май", + "JUN": "Июн", + "JUL": "Июл", + "AUG": "Авг", + "SEP": "Сен", + "OCT": "Окт", + "NOV": "Ноя", + "DEC": "Дек" +} diff --git a/config/ultrapaw/lang/zh-cn.json b/config/ultrapaw/lang/zh-cn.json new file mode 100644 index 0000000..ce6c21b --- /dev/null +++ b/config/ultrapaw/lang/zh-cn.json @@ -0,0 +1,73 @@ +{ + "UNAVAILABLE_SELECTION": "沒有可選擇的文件", + "OVERLAYS": "插件列表", + "OVERLAY": "插件", + "HIDDEN_OVERLAYS": "不常用的插件", + "PACKAGES": "多款插件包", + "PACKAGE": "插件包", + "HIDDEN_PACKAGES": "不常用的插件包", + "HIDDEN": "已隱藏", + "HIDE": "隱藏", + "COMMANDS": "系統控制", + "SETTINGS": "其他設置", + "MAIN_SETTINGS": "主要設置", + "VERSION_SETTINGS": "版本代号的设置", + "KEY_COMBO": "究极手按钮配置", + "LANGUAGE": "語言", + "ROOT_PACKAGE": "插件包初始頁", + "SORT_PRIORITY": "優先級順序", + "FAILED_TO_OPEN": "未能打开文件夹", + "CLEAN_LABELS": "刪除插件代号", + "OVERLAY_LABELS": "插件代号", + "PACKAGE_LABELS": "插件包代号", + "ON": "啓用", + "OFF": "停用", + "PACKAGE_INFO": "插件包信息", + "VERSION": "版本号", + "CREATOR": "作者", + "ABOUT": "關於", + "OK": "確定", + "BACK": "返回", + "REBOOT": "重启机器", + "SHUTDOWN": "关闭机器", + "GAP_1": " ", + "GAP_2": " ", + "SUNDAY": "周日", + "MONDAY": "周一", + "TUESDAY": "周二", + "WEDNESDAY": "周三", + "THURSDAY": "周四", + "FRIDAY": "周五", + "SATURDAY": "周六", + "JANUARY": "1月", + "FEBRUARY": "2月", + "MARCH": "3月", + "APRIL": "4月", + "MAY": "5月", + "JUNE": "6月", + "JULY": "7月", + "AUGUST": "8月", + "SEPTEMBER": "9月", + "OCTOBER": "10月", + "NOVEMBER": "11月", + "DECEMBER": "12月", + "SUN": "周日", + "MON": "周一", + "TUE": "周二", + "WED": "周三", + "THU": "周四", + "FRI": "周五", + "SAT": "周六", + "JAN": "1月", + "FEB": "2月", + "MAR": "3月", + "APR": "4月", + "MAY_ABBR": "5月", + "JUN": "6月", + "JUL": "7月", + "AUG": "8月", + "SEP": "9月", + "OCT": "10月", + "NOV": "11月", + "DEC": "12月" +} diff --git a/config/ultrapaw/overlays.ini b/config/ultrapaw/overlays.ini new file mode 100644 index 0000000..aa0b937 --- /dev/null +++ b/config/ultrapaw/overlays.ini @@ -0,0 +1,14 @@ +[Ultra.ovl] +priority = 0 +star = false +hide = false + +[Status-Monitor-Overlay.ovl] +priority = 1 +star = false +hide = false + +[FPSLocker.ovl] +priority = 2 +star = false +hide = false diff --git a/config/ultrapaw/packages.ini b/config/ultrapaw/packages.ini new file mode 100644 index 0000000..6ca286b --- /dev/null +++ b/config/ultrapaw/packages.ini @@ -0,0 +1,9 @@ +[Brick] +priority = 0 +star = false +hide = false + +[Ultra Tuner] +priority = 1 +star = false +hide = false diff --git a/config/ultrapaw/ultra.ini b/config/ultrapaw/ultra.ini new file mode 100644 index 0000000..a8c5509 --- /dev/null +++ b/config/ultrapaw/ultra.ini @@ -0,0 +1,7 @@ + +[Tuner] +OC = stock +Fan_Curves = Ultra Quiet +Background_Services = Off + + diff --git a/exosphere.ini b/exosphere.ini new file mode 100644 index 0000000..0cf5dbb --- /dev/null +++ b/exosphere.ini @@ -0,0 +1,51 @@ +# Key: debugmode, default: 1. +# Desc: Controls whether kernel is debug mode. +# Disabling this may break Atmosphere's debugger in a future release. + +# Key: debugmode_user, default: 0. +# Desc: Controls whether userland is debug mode. + +# Key: disable_user_exception_handlers, default: 0. +# Desc: Controls whether user exception handlers are executed on error. +# NOTE: This will cause atmosphere to not fail gracefully. +# Support may not be provided to users tho disable these. +# If you do not know what you are doing, leave them on. + +# Key: enable_user_pmu_access, default: 0. +# Desc: Controls whether userland has access to the PMU registers. +# NOTE: It is unknown what effects this has on official code. + +# Key: blank_prodinfo_sysmmc, default: 0. +# Desc: Controls whether PRODINFO should be blanked in sysmmc. +# This will cause the system to see dummied out keys and +# serial number information. +# NOTE: This is not known to be safe, as data may be +# cached elsewhere in the system. Usage is not encouraged. + +# Key: blank_prodinfo_emummc, default: 0. +# Desc: Controls whether PRODINFO should be blanked in emummc. +# NOTE: This is not known to be safe, as data may be +# cached elsewhere in the system. Usage is not encouraged. + +# Key: allow_writing_to_cal_sysmmc, default: 0. +# Desc: Controls whether PRODINFO can be written by homebrew in sysmmc. +# NOTE: Usage of this setting is strongly discouraged without +# a safe backup elsewhere. Turning this on will also cause Atmosphere +# to ensure a safe backup of calibration data is stored in unused +# mmc space, encrypted to prevent detection. This backup can be used +# to prevent unrecoverable edits in emergencies. + +# Key: log_port, default: 0. +# Desc: Controls what uart port exosphere will set up for logging. +# NOTE: 0 = UART-A, 1 = UART-B, 2 = UART-C, 3 = UART-D + +# Key: log_baud_rate, default: 115200 +# Desc: Controls the baud rate exosphere will set up for logging. +# NOTE: 0 is treated as equivalent to 115200. + +# Key: log_inverted, default: 0. +# Desc: Controls whether the logging uart port is inverted. + +[exosphere] +blank_prodinfo_sysmmc=1 +blank_prodinfo_emummc=1 \ No newline at end of file diff --git a/fix atributes.bat b/fix atributes.bat new file mode 100644 index 0000000..bb6be46 --- /dev/null +++ b/fix atributes.bat @@ -0,0 +1 @@ +attrib /s /d -a \ No newline at end of file diff --git a/hbmenu.nro b/hbmenu.nro new file mode 100644 index 0000000..2777415 Binary files /dev/null and b/hbmenu.nro differ diff --git a/payload.bin b/payload.bin new file mode 100644 index 0000000..970b350 Binary files /dev/null and b/payload.bin differ diff --git a/switch/.overlays/FPSLocker.ovl b/switch/.overlays/FPSLocker.ovl new file mode 100644 index 0000000..32ccb6a Binary files /dev/null and b/switch/.overlays/FPSLocker.ovl differ diff --git a/switch/.overlays/InfoNX-ovl.ovl b/switch/.overlays/InfoNX-ovl.ovl new file mode 100644 index 0000000..78b5576 Binary files /dev/null and b/switch/.overlays/InfoNX-ovl.ovl differ diff --git a/switch/.overlays/ReverseNX-RT-ovl.ovl b/switch/.overlays/ReverseNX-RT-ovl.ovl new file mode 100644 index 0000000..dc71590 Binary files /dev/null and b/switch/.overlays/ReverseNX-RT-ovl.ovl differ diff --git a/switch/.overlays/Status-Monitor-Overlay.ovl b/switch/.overlays/Status-Monitor-Overlay.ovl new file mode 100644 index 0000000..ebccd3f Binary files /dev/null and b/switch/.overlays/Status-Monitor-Overlay.ovl differ diff --git a/switch/.overlays/Ultra.ovl b/switch/.overlays/Ultra.ovl new file mode 100644 index 0000000..ed7dd48 Binary files /dev/null and b/switch/.overlays/Ultra.ovl differ diff --git a/switch/.overlays/ovlEdiZon.ovl b/switch/.overlays/ovlEdiZon.ovl new file mode 100644 index 0000000..a78e659 Binary files /dev/null and b/switch/.overlays/ovlEdiZon.ovl differ diff --git a/switch/.overlays/ovlSysmodules.ovl b/switch/.overlays/ovlSysmodules.ovl new file mode 100644 index 0000000..0c4bd9c Binary files /dev/null and b/switch/.overlays/ovlSysmodules.ovl differ diff --git a/switch/.overlays/ovlmenu.ovl b/switch/.overlays/ovlmenu.ovl new file mode 100644 index 0000000..552686b Binary files /dev/null and b/switch/.overlays/ovlmenu.ovl differ diff --git a/switch/.packages/Ultra Tuner b/switch/.packages/Ultra Tuner new file mode 160000 index 0000000..a85e8d9 --- /dev/null +++ b/switch/.packages/Ultra Tuner @@ -0,0 +1 @@ +Subproject commit a85e8d9a6528685bb01424084b8e5a25c66726c2 diff --git a/switch/DBI/DBI.nro b/switch/DBI/DBI.nro new file mode 100644 index 0000000..9f94e42 Binary files /dev/null and b/switch/DBI/DBI.nro differ diff --git a/switch/aio-switch-updater/aio-switch-updater.nro b/switch/aio-switch-updater/aio-switch-updater.nro new file mode 100644 index 0000000..8077be7 Binary files /dev/null and b/switch/aio-switch-updater/aio-switch-updater.nro differ