diff --git a/SaltySD/plugins/FPSLocker/patches/010000B01A452000/010085401A454000/2F33996FD9C81253.yaml b/SaltySD/plugins/FPSLocker/patches/010000B01A452000/010085401A454000/2F33996FD9C81253.yaml new file mode 100644 index 0000000..f719876 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010000B01A452000/010085401A454000/2F33996FD9C81253.yaml @@ -0,0 +1,33 @@ +# Jujutsu Kaisen Cursed Clash US 1.2.0 +# BID: 2F33996FD9C81253 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8069A48, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x80ACF50, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x73EE7C8, 0] + value_type: uint32 + value: [0, 0] + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x80AC7A8, 0x9C4] + value_type: uint32 + value: 7 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml b/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml index 462341e..1d6e079 100644 --- a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml @@ -19,7 +19,7 @@ ALL_FPS: value: VSYNC_TARGET # UI Speed - - type: write + type: evaluate_write address: [MAIN, 0x2AEF6D0, 2554] value_type: uint8 value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/6133D5CC14F51B7A.yaml b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/6133D5CC14F51B7A.yaml new file mode 100644 index 0000000..971e031 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/6133D5CC14F51B7A.yaml @@ -0,0 +1,27 @@ +# Astor: Blade of the Monolith 1.0.2 +# BID: 6133D5CC14F51B7A + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x61F0828, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x69BEAD8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x69EC478, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml index 38e2137..a011d18 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml @@ -1,4 +1,4 @@ -# Astor: Blade of the Monolith 1.0.0 +# Astor: Blade of the Monolith 1.0.0 / 1.0.1 # BID: C26E93197DEB4004 unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml index 9a08961..ce1d165 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml @@ -1,4 +1,4 @@ -# Farming Simulator 23 Nintendo Switch Edition 1.5.0.0 +# Farming Simulator 23 Nintendo Switch Edition 1.6.0.0 # BID: 17F37A56B17DD9CC unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/0100272013014000/D1D421137AAE1A5E.yaml b/SaltySD/plugins/FPSLocker/patches/0100272013014000/D1D421137AAE1A5E.yaml new file mode 100644 index 0000000..3fc307c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100272013014000/D1D421137AAE1A5E.yaml @@ -0,0 +1,18 @@ +# Airhead 1.0.0 +# BID: D1D421137AAE1A5E + +unsafeCheck: true + +ALL_FPS: + # maxFixedDeltaTime, ref: UnityEngine.Time::get_timeScale + - + type: write + address: [MAIN, 0x49617C0, 0x100] + value_type: float + value: 0.0666666666 + # fixedDeltaTime + - + type: evaluate_write + address: [MAIN, 0x49617C0, 0x48] + value_type: float + value: "1 / FPS_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/2F33996FD9C81253.yaml b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/2F33996FD9C81253.yaml new file mode 100644 index 0000000..2da2f2a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/2F33996FD9C81253.yaml @@ -0,0 +1,33 @@ +# Jujutsu Kaisen Cursed Clash JP 1.2.0 +# BID: 2F33996FD9C81253 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8069A48, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x80ACF50, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x73EE7C8, 0] + value_type: uint32 + value: [0, 0] + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x80AC7A8, 0x9C4] + value_type: uint32 + value: 7 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/F1E096F78DFB8263.yaml b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/F1E096F78DFB8263.yaml new file mode 100644 index 0000000..57a7382 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/F1E096F78DFB8263.yaml @@ -0,0 +1,39 @@ +# MEGATON MUSASHI W: WIRED 3.1.1 +# BID: F1E096F78DFB8263 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC8CBF00 + # only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it) + - + type: bytes + main_offset: 0x78910F8 + value_type: uint32 + value: + - 0xD00281C8 + - 0xB94F0108 + # Default handheld value + - + type: bytes + main_offset: 0xC8CBF00 + value_type: uint32 + value: 600000 +ALL_FPS: + # fixedDeltaTime = 1/FPS + - + type: evaluate_write + address: [MAIN, 0xC84AD20, 0x48] + value_type: float + value: "1 / FPS_TARGET" + - # maximumDeltaTime = 1/15 (with this setting game will slow down below 15 FPS instead of 30 FPS) + type: write + address: [MAIN, 0xC84AD20, 0x100] + value_type: float + value: 0.0666666666 + # Dynamic Resolution Timing = (0.9375/FPS) * 19200000 + - + type: evaluate_write + address: [MAIN, 0xC8CBF00] + value_type: uint32 + value: "(0.9375 / FPS_TARGET) * 19200000" diff --git a/SaltySD/plugins/FPSLocker/patches/010040401D564000/1053EA8AD2A50F15.yaml b/SaltySD/plugins/FPSLocker/patches/010040401D564000/1053EA8AD2A50F15.yaml new file mode 100644 index 0000000..5225bc6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010040401D564000/1053EA8AD2A50F15.yaml @@ -0,0 +1,27 @@ +# MotoGP 24 1.0.5 +# BID: 1053EA8AD2A50F15 + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x93E6288, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x9414770, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x8C137F8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010040C01D248000/43D0D0D68A22E370.yaml b/SaltySD/plugins/FPSLocker/patches/010040C01D248000/43D0D0D68A22E370.yaml new file mode 100644 index 0000000..e57c089 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010040C01D248000/43D0D0D68A22E370.yaml @@ -0,0 +1,13 @@ +# The Legend of Heroes: Trails through Daybreak 1.0.1 +# BID: 43D0D0D68A22E370 +# Thanks to Stevens for figuring out how FPS Lock is applied + +unsafeCheck: true + +ALL_FPS: + # REF: 68 EA 50 B9 E0 03 1F 2A 7F B2 00 F9 + - + type: evaluate_write + address: [MAIN, 0x548B80, 0x34] + value_type: uint32 + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100416004C00000/2847991952B3D7AB.yaml b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/2847991952B3D7AB.yaml new file mode 100644 index 0000000..b1c126a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/2847991952B3D7AB.yaml @@ -0,0 +1,36 @@ +# DOOM 1.4 +# BID: 2847991952B3D7AB + +unsafeCheck: true + +ALL_FPS: + # rs_460Threshold (default is 0.285) + - + type: write + address: [MAIN, 0x594152C] + value_type: float + value: 1 + # rs_raiseMilliseconds + - + type: evaluate_write + address: [MAIN, 0x59419EC] + value_type: float + value: "0.966 * FRAMETIME_TARGET" + # rs_dropMilliseconds + - + type: evaluate_write + address: [MAIN, 0x5941954] + value_type: float + value: "0.99 * FRAMETIME_TARGET" + # com_adaptiveTickMaxHz (default is 30) + - + type: evaluate_write + address: [MAIN, 0x66BAF50] + value_type: int32 + value: FPS_TARGET + # com_adaptiveTickMinHz (default is 30) + - + type: write + address: [MAIN, 0x66BAEB8] + value_type: int32 + value: 15 diff --git a/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2 (2).yaml b/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2 (2).yaml deleted file mode 100644 index 3728afd..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2 (2).yaml +++ /dev/null @@ -1,28 +0,0 @@ -# GRIP 1.0.8 -# BID: ACF717E72EA920C2 - -unsafeCheck: true - -MASTER_WRITE: - # Remove double buffer (nvn.NumBufferedFrames) - - - type: bytes - main_offset: 0x4F3245C - value_type: uint32 - value: 3 -ALL_FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: evaluate_write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml b/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml index 5650194..3728afd 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml @@ -10,7 +10,7 @@ MASTER_WRITE: main_offset: 0x4F3245C value_type: uint32 value: 3 -15FPS: +ALL_FPS: # r.VSync - type: write @@ -19,148 +19,10 @@ MASTER_WRITE: value: [0, 0] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x58ECCE8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x5042FC8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x58ECCE8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010047401EA8E000/928AF9461536F5E3.yaml b/SaltySD/plugins/FPSLocker/patches/010047401EA8E000/928AF9461536F5E3.yaml new file mode 100644 index 0000000..093e645 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010047401EA8E000/928AF9461536F5E3.yaml @@ -0,0 +1,27 @@ +# Deliver Us The Moon 1.0.0 +# BID: 928AF9461536F5E3 + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x6F09528, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6F37248, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6739698, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004A600EC0A000/70F3F6751D73C644.yaml b/SaltySD/plugins/FPSLocker/patches/01004A600EC0A000/70F3F6751D73C644.yaml new file mode 100644 index 0000000..82e2d90 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004A600EC0A000/70F3F6751D73C644.yaml @@ -0,0 +1,27 @@ +# Immortals Fenyx Rising 1.3.4 +# BID: 70F3F6751D73C644 + +unsafeCheck: true + +MASTER_WRITE: + # Game switches resolution to 13/15 of normal resolution when moving camera with right stick and game cannot handle target FPS + # Redirect reading DR time target to MAIN + 0xA7E4F00 + - + type: bytes + main_offset: 0x15A9F10 + value_type: uint32 + value: + - 0xF00491C8 + - 0xBD4F0101 + # Default value + - + type: bytes + main_offset: 0xA7E4F00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0xA7E4F00] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/389E38618E93A5E0.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/389E38618E93A5E0.yaml new file mode 100644 index 0000000..65f751e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/389E38618E93A5E0.yaml @@ -0,0 +1,35 @@ +# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.51 +# BID: 389E38618E93A5E0 + +unsafeCheck: true + +ALL_FPS: + # Disable bUseFixedFrameRate in cutscenes to unlock framerate + - + type: write + address: [MAIN, 0x9456538, 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 + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x9421478, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x9456DE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x88C2C08, 0] + value_type: int32 + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml index 9296ae5..f3c4478 100644 --- a/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.VSync - type: write @@ -12,148 +12,10 @@ unsafeCheck: true value: [0, 0] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7D33D38, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x7538918, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D33D38, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C (2).yaml b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/E196E389FD9E0364.yaml similarity index 83% rename from SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C (2).yaml rename to SaltySD/plugins/FPSLocker/patches/010055B01AA08000/E196E389FD9E0364.yaml index f3c4478..b63e37a 100644 --- a/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C (2).yaml +++ b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/E196E389FD9E0364.yaml @@ -1,5 +1,5 @@ -# CRYMACHINA 1.0.8 -# BID: 4CBD150A248DA39C +# CRYMACHINA 1.2.0 +# BID: E196E389FD9E0364 unsafeCheck: true @@ -18,4 +18,4 @@ ALL_FPS: value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block - what: timing + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010056B015FE8000/E43525F22282A477.yaml b/SaltySD/plugins/FPSLocker/patches/010056B015FE8000/E43525F22282A477.yaml new file mode 100644 index 0000000..734488e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010056B015FE8000/E43525F22282A477.yaml @@ -0,0 +1,47 @@ +# NieR:Automata The End of YoRHa Edition US/EU 1.0.2 +# BID: E43525F22282A477 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR timings to MAIN + 0x2BE6F00, [Bad, Optimal, Good] + - + type: bytes + main_offset: 0x9BF3E4 + value_type: uint32 + value: + - 0xF001112C + - 0xBD4F0183 + - + type: bytes + main_offset: 0x9BF434 + value_type: uint32 + value: + - 0xF001112C + - 0xB94F058C + - + type: bytes + main_offset: 0x9BF484 + value_type: uint32 + value: + - 0x1E20CC83 + - 0xF001112C + - 0xBD4F0580 + - 0xD503201F + - + type: bytes + main_offset: 0x9BF4A8 + value_type: uint32 + value: 0xBD4F0980 + # Default values + - + type: bytes + main_offset: 0x2BE6F00 + value_type: float + value: [45, 32.01, 30] +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x2BE6F00] + value_type: float + value: ["1.35 * FRAMETIME_TARGET", "0.9603 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/3E961285846C72A5.yaml b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/3E961285846C72A5.yaml new file mode 100644 index 0000000..6903b51 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/3E961285846C72A5.yaml @@ -0,0 +1,38 @@ +# Warhammer 40,000: Boltgun 1.0.0.7 +# BID: 3E961285846C72A5 + +unsafeCheck: false + +ALL_FPS: + # Disable bUseFixedFrameRate to unlock framerate + - + type: write + address: [MAIN, 0x63A69F8, 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: evaluate_write + address: [MAIN, 0x6379638, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x63A7318, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x5BA9B78, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/B8630C6EE3A22FE8.yaml b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/B8630C6EE3A22FE8.yaml new file mode 100644 index 0000000..36e5535 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/B8630C6EE3A22FE8.yaml @@ -0,0 +1,32 @@ +# Warhammer 40,000: Boltgun 1.0.0.6 +# BID: B8630C6EE3A22FE8 + +unsafeCheck: false + +ALL_FPS: + # Disable bUseFixedFrameRate to unlock framerate + - + type: write + address: [MAIN, 0x63A69F8, 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: evaluate_write + address: [MAIN, 0x6379638, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x63A7318, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1 (2).yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1 (2).yaml deleted file mode 100644 index 5644d85..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1 (2).yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Cassette Beasts 1.6.3 -# BID: 58C1B2EA8257D5F1 - -unsafeCheck: true - -ALL_FPS: - # physics/common/physics_fps - - - type: evaluate_write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: FPS_LOCK_TARGET - # debug/settings/fps/force_fps - - - type: evaluate_write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: FPS_LOCK_TARGET - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml index 040928f..5644d85 100644 --- a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml @@ -1,159 +1,21 @@ -# Casette Beasts 1.6.3 +# Cassette Beasts 1.6.3 # BID: 58C1B2EA8257D5F1 unsafeCheck: true -15FPS: +ALL_FPS: # physics/common/physics_fps - - type: write + type: evaluate_write address: [MAIN, 0x33E4B78, 0x24] value_type: int32 - value: 15 + value: FPS_LOCK_TARGET # debug/settings/fps/force_fps - - type: write + type: evaluate_write address: [MAIN, 0x33E4B78, 0x30] value_type: int32 - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 20 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 25 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # physics/common/physics_fps (default value) - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 30 - # debug/settings/fps/force_fps (default value is 30) - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 0 -35FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 35 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 40 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 45 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 50 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 55 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x24] - value_type: int32 - value: 60 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E4B78, 0x30] - value_type: int32 - value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml index 963ea61..0d7de91 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x8DE73D8, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x8E0D520, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DE73D8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8E0D520, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/F0AE53338D63199E.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/F0AE53338D63199E.yaml deleted file mode 100644 index 3ac48d6..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/F0AE53338D63199E.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Grounded 1.02 -# BID: F0AE53338D63199E - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [66.6, 66.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DB73D8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DDD528, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml b/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml index a4e9402..d522365 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml @@ -3,13 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6495898, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -19,141 +19,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x5C99348, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/42350FCC758887D1.yaml b/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/42350FCC758887D1.yaml new file mode 100644 index 0000000..81eb566 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/42350FCC758887D1.yaml @@ -0,0 +1,27 @@ +# F1 Manager 2024 1.4 +# BID: 42350FCC758887D1 + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x7FA9A28, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7FE3AA0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x77E6AA8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/645C3BE90D4ED3D5.yaml b/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/645C3BE90D4ED3D5.yaml new file mode 100644 index 0000000..a2c44ff --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010072E01CE0E000/645C3BE90D4ED3D5.yaml @@ -0,0 +1,27 @@ +# F1 Manager 2024 1.3 +# BID: 645C3BE90D4ED3D5 + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x7FA8A28, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7FE2AA0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x77E5AA8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010078D000F88000/56405C9D6C8C0A6A.yaml b/SaltySD/plugins/FPSLocker/patches/010078D000F88000/56405C9D6C8C0A6A.yaml new file mode 100644 index 0000000..7bf45f5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010078D000F88000/56405C9D6C8C0A6A.yaml @@ -0,0 +1,47 @@ +# DRAGON BALL XENOVERSE 2 FOR NINTENDO SWITCH 1.22.02 +# BID: 56405C9D6C8C0A6A +# Double buffer is hardcoded in class, getting triple buffer is hard. +# Some graphical effects like aura have wrong speed outside of 15, 20, 30 and 60 FPS + +unsafeCheck: false + +ALL_FPS: + # Search those in Edizon by searching for 1/60 in title menu, then 1/30 when FPS lock is applied. + # FPS Lock + - + type: write + address: [MAIN, 0x4AD6D78, 0x698] + value_type: float + value: 0.0 + # Unknown + - + type: write + address: [MAIN, 0x4AD6D78, 0x6A4] + value_type: float + value: 0.0 + # Game Battle Speed Factor + - + type: evaluate_write + address: [MAIN, 0x4AD6D78, 0x6B0] + value_type: uint32 + value: VSYNC_TARGET + # Cutscenes Speed Factor + - + type: evaluate_write + address: [MAIN, 0x4AD6D78, 0x6B4] + value_type: uint32 + value: VSYNC_TARGET + # Target Speed + # REF: E9 03 00 32 09 01 00 39 C0 03 5F D6, first result, LDR instruction + - + type: evaluate_write + address: [MAIN, 0x2402190] + value_type: float + value: "(1 / FPS_TARGET) / VSYNC_TARGET" + # Dynamic Resolution FPS Target + # REF: 62 18 22 1E 61 2A 43 BD 41 08 21 1E 00 20 21 1E, is divided by rodata 60 + - + type: evaluate_write + address: [MAIN, 0x24044B0, 0x754] + value_type: float + value: "FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/F9C32ECFD8646E3A.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/F9C32ECFD8646E3A.yaml new file mode 100644 index 0000000..062a504 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/F9C32ECFD8646E3A.yaml @@ -0,0 +1,32 @@ +# No Man's Sky 5.0.2 +# BID: F9C32ECFD8646E3A + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x484FF00 + - + type: bytes + main_offset: 0x1ED9498 + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1ED94A4 + value_type: uint32 + value: + - 0xD0014BB2 + - 0xB9400408 + - 0xBD4F0240 + # default value + - + type: bytes + main_offset: 0x484FF00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x484FF00] + value_type: float + value: FRAMETIME_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010085401A454000/2F33996FD9C81253.yaml b/SaltySD/plugins/FPSLocker/patches/010085401A454000/2F33996FD9C81253.yaml new file mode 100644 index 0000000..2c557e4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010085401A454000/2F33996FD9C81253.yaml @@ -0,0 +1,33 @@ +# Jujutsu Kaisen Cursed Clash EUR 1.2.0 +# BID: 2F33996FD9C81253 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8069A48, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x80ACF50, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x73EE7C8, 0] + value_type: uint32 + value: [0, 0] + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x80AC7A8, 0x9C4] + value_type: uint32 + value: 7 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E (2).yaml b/SaltySD/plugins/FPSLocker/patches/01008E101E868000/42AD50169E847BA2.yaml similarity index 57% rename from SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E (2).yaml rename to SaltySD/plugins/FPSLocker/patches/01008E101E868000/42AD50169E847BA2.yaml index 06314f7..14ce64d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E (2).yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008E101E868000/42AD50169E847BA2.yaml @@ -1,21 +1,21 @@ -# OCTOPATH TRAVELER II 1.1.1 -# BID: 0D9649011312F62E +# Bum Simulator 1.0.2 +# BID: 42AD50169E847BA2 -unsafeCheck: true +unsafeCheck: false ALL_FPS: # t.MaxFPS - type: evaluate_write - address: [MAIN, 0x76FEF68, 0] + address: [MAIN, 0x5C858B8, 0] value_type: float value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write - address: [MAIN, 0x6F017E8, 0] + address: [MAIN, 0x5489068, 0] value_type: uint32 value: [0, 0] - type: block - what: timing + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008F600F2D0000/EB57CF3434044523.yaml b/SaltySD/plugins/FPSLocker/patches/01008F600F2D0000/EB57CF3434044523.yaml new file mode 100644 index 0000000..63d0f67 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008F600F2D0000/EB57CF3434044523.yaml @@ -0,0 +1,28 @@ +# Remothered Tormented Fathers 1.3.0 +# BID: EB57CF3434044523 +# Game stores textures inside fixed size class, so it's hard to get triple buffer + +unsafeCheck: false + +ALL_FPS: + # Disable bUseFixedFrameRate and bSmoothFrameRate + - + type: write + address: [MAIN, 0x54C75F0, 0x770] + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x54C7F70, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x4C641D0, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010097F018538000/37CBC5751D80E70E.yaml b/SaltySD/plugins/FPSLocker/patches/010097F018538000/37CBC5751D80E70E.yaml new file mode 100644 index 0000000..3b57cdc --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097F018538000/37CBC5751D80E70E.yaml @@ -0,0 +1,12 @@ +# DAVE THE DIVER 1.0.2.843 +# BID: 37CBC5751D80E70E + +unsafeCheck: true + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + - + type: evaluate_write + address: [MAIN, 0x9510480, 0x48] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/010097F018538000/AE7422A20BC9C3B0.yaml b/SaltySD/plugins/FPSLocker/patches/010097F018538000/AE7422A20BC9C3B0.yaml new file mode 100644 index 0000000..fa88af5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097F018538000/AE7422A20BC9C3B0.yaml @@ -0,0 +1,13 @@ +# DAVE THE DIVER 1.0.2.828 +# BID: AE7422A20BC9C3B0 + +unsafeCheck: true + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + # Required for different refresh rates to not jitter + - + type: evaluate_write + address: [MAIN, 0x9505680, 0x48] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml index 8a7aaa9..06314f7 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml @@ -3,13 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x76FEF68, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -19,141 +19,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76FEF68, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6F017E8, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B8901AE88000/8AF36A929664A94D.yaml b/SaltySD/plugins/FPSLocker/patches/0100B8901AE88000/8AF36A929664A94D.yaml new file mode 100644 index 0000000..3f4b134 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B8901AE88000/8AF36A929664A94D.yaml @@ -0,0 +1,27 @@ +# Daydream: Forgotten Sorrow 1.0.1 +# BID: 8AF36A929664A94D + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x6E47F38, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6E758C8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6679D08, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B8E016F76000/992787E2B5425994.yaml b/SaltySD/plugins/FPSLocker/patches/0100B8E016F76000/992787E2B5425994.yaml new file mode 100644 index 0000000..75e7227 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B8E016F76000/992787E2B5425994.yaml @@ -0,0 +1,47 @@ +# NieR:Automata The End of YoRHa Edition AS 1.0.2 +# BID: 992787E2B5425994 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR timings to MAIN + 0x2BE8F00, [Bad, Optimal, Good] + - + type: bytes + main_offset: 0x9C07A4 + value_type: uint32 + value: + - 0x9001114C + - 0xBD4F0183 + - + type: bytes + main_offset: 0x9C07F4 + value_type: uint32 + value: + - 0x9001114C + - 0xB94F058C + - + type: bytes + main_offset: 0x9C0844 + value_type: uint32 + value: + - 0x1E20CC83 + - 0x9001114C + - 0xBD4F0580 + - 0xD503201F + - + type: bytes + main_offset: 0x9C0868 + value_type: uint32 + value: 0xBD4F0980 + # Default values + - + type: bytes + main_offset: 0x2BE8F00 + value_type: float + value: [45, 32.01, 30] +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x2BE8F00] + value_type: float + value: ["1.35 * FRAMETIME_TARGET", "0.9603 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100BD10190C0000/45C15AE4450708FD.yaml b/SaltySD/plugins/FPSLocker/patches/0100BD10190C0000/45C15AE4450708FD.yaml new file mode 100644 index 0000000..aed39fa --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BD10190C0000/45C15AE4450708FD.yaml @@ -0,0 +1,27 @@ +# AEW Fight Forever 1.10.0 +# BID: 45C15AE4450708FD + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8C307B8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8C5E608, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x8460EF8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml new file mode 100644 index 0000000..430cbdf --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.5a.9115 +# BID: 217A5C011269C81E + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDF1E20, 8] + value_type: double + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/2600C6B1C5049FAE.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/2600C6B1C5049FAE.yaml new file mode 100644 index 0000000..022cc41 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/2600C6B1C5049FAE.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.5a.d31 +# BID: 2600C6B1C5049FAE + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDF1E20, 8] + value_type: double + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F5BE87C9F0715C3D.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F5BE87C9F0715C3D.yaml new file mode 100644 index 0000000..5243e38 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F5BE87C9F0715C3D.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.5a.63d1 +# BID: F5BE87C9F0715C3D + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDF1E20, 8] + value_type: double + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F7EA5CACC75067D4.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F7EA5CACC75067D4.yaml new file mode 100644 index 0000000..d29376b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/F7EA5CACC75067D4.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.59.6eaf +# BID: F7EA5CACC75067D4 + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDEFE20, 8] + value_type: double + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100CEE01D23C000/76B6E5E830A43D97.yaml b/SaltySD/plugins/FPSLocker/patches/0100CEE01D23C000/76B6E5E830A43D97.yaml new file mode 100644 index 0000000..1601e82 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CEE01D23C000/76B6E5E830A43D97.yaml @@ -0,0 +1,27 @@ +# Tchia 1.1 +# BID: 76B6E5E830A43D97 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x7084348, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x70B16B8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x68EABE0, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/44E0F3E8F4996F55.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/44E0F3E8F4996F55.yaml new file mode 100644 index 0000000..37696ac --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/44E0F3E8F4996F55.yaml @@ -0,0 +1,21 @@ +# ARK: Survival Evolved 2.0.14 +# BID: 44E0F3E8F4996F55 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal + - + type: evaluate_write + address: [MAIN, 0x7ABB198, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7AE93C8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D (2).yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/DE62C644228E63CC.yaml similarity index 61% rename from SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D (2).yaml rename to SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/DE62C644228E63CC.yaml index 0d7de91..4e3f7db 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D (2).yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/DE62C644228E63CC.yaml @@ -1,19 +1,19 @@ -# Grounded 1.05 -# BID: 6C91A8A476E70C5D +# ARK: Survival Evolved 2.0.12 +# BID: DE62C644228E63CC unsafeCheck: true ALL_FPS: - # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal - type: evaluate_write - address: [MAIN, 0x8DE73D8, 0] + address: [MAIN, 0x7ABA198, 0] value_type: float value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] # t.MaxFPS - type: evaluate_write - address: [MAIN, 0x8E0D520, 0] + address: [MAIN, 0x7AE83C8, 0] value_type: float value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - diff --git a/SaltySD/plugins/FPSLocker/patches/0100D9601A994000/28ED06F94D767478.yaml b/SaltySD/plugins/FPSLocker/patches/0100D9601A994000/28ED06F94D767478.yaml new file mode 100644 index 0000000..4cf5b22 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D9601A994000/28ED06F94D767478.yaml @@ -0,0 +1,27 @@ +# ONE PIECE ODYSSEY Deluxe Edition US/EU/JP 1.0.0 +# BID: 28ED06F94D767478 + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x7F82CC0, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7728420, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7FA6300, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870 (2).yaml b/SaltySD/plugins/FPSLocker/patches/0100E3401D660000/FDBEE885A65A2B92.yaml similarity index 62% rename from SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870 (2).yaml rename to SaltySD/plugins/FPSLocker/patches/0100E3401D660000/FDBEE885A65A2B92.yaml index d522365..ee2901e 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870 (2).yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E3401D660000/FDBEE885A65A2B92.yaml @@ -1,21 +1,21 @@ -# Twilight Survivors 0.22.2 -# BID: 8AA7D10343CB3870 +# ACE COMBATâ„¢7 SKIES UNKNOWN DELUXE EDITION 1.0.0 US/EU +# BID: FDBEE885A65A2B92 unsafeCheck: true ALL_FPS: - # t.MaxFPS - - - type: evaluate_write - address: [MAIN, 0x6495898, 0] - value_type: float - value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write - address: [MAIN, 0x5C99348, 0] + address: [MAIN, 0x70B99A0, 0] value_type: uint32 value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7939A30, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/2980E59C32A0E147.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/2980E59C32A0E147.yaml new file mode 100644 index 0000000..707cb07 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/2980E59C32A0E147.yaml @@ -0,0 +1,27 @@ +# Hogwarts Legacy 1.0.4 +# BID: 2980E59C32A0E147 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget = 1000/FPS cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0xA42B688, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xA45F3A0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x9C0DEC0, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100F8F00C4F2000/BC714E2D7D32AB41.yaml b/SaltySD/plugins/FPSLocker/patches/0100F8F00C4F2000/BC714E2D7D32AB41.yaml new file mode 100644 index 0000000..668edd3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F8F00C4F2000/BC714E2D7D32AB41.yaml @@ -0,0 +1,13 @@ +# DC Super Hero Girls: Teen Power 1.0.1 +# BID: BC714E2D7D32AB41 +# Game stores textures inside fixed size class, so it's hard to get triple buffer + +unsafeCheck: false + +ALL_FPS: + # Max time delta + - + type: evaluate_write + address: [MAIN, 0x1225EC8, 0x1C] + value_type: float + value: ["(1 / FPS_TARGET) - 0.0001"] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD00F5F6000/5EFAB20F5C1F0F68.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD00F5F6000/5EFAB20F5C1F0F68.yaml new file mode 100644 index 0000000..ff30cac --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FBD00F5F6000/5EFAB20F5C1F0F68.yaml @@ -0,0 +1,28 @@ +# Remothered: Broken Porcelain 2.0.0 +# BID: 5EFAB20F5C1F0F68 +# Game stores textures inside fixed size class, so it's hard to get triple buffer + +unsafeCheck: false + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimals + - + type: evaluate_write + address: [MAIN, 0x58210E8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x584D710, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x4CB8880, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/1B45F85E3DE5615D.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/1B45F85E3DE5615D.yaml new file mode 100644 index 0000000..d160236 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/1B45F85E3DE5615D.yaml @@ -0,0 +1,27 @@ +# SnowRunner 1.0.32 +# BID: 1B45F85E3DE5615D +# Just search for 0x42055555 + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x2FD1F00 + - + type: bytes + main_offset: 0x18A0424 + value_type: uint32 + value: + - 0xB000B98A + - 0xBD4F0142 + # default value + - + type: bytes + main_offset: 0x2FD1F00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x2FD1F00] + value_type: float + value: FRAMETIME_TARGET \ No newline at end of file diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf index 0b81bc2..d4475f5 100644 Binary files a/SaltySD/saltysd_core.elf and b/SaltySD/saltysd_core.elf differ diff --git a/atmosphere/config/system_settings.ini b/atmosphere/config/system_settings.ini index 93c67d0..a1a8113 100644 --- a/atmosphere/config/system_settings.ini +++ b/atmosphere/config/system_settings.ini @@ -8,9 +8,6 @@ enable_external_bluetooth_db=u8!0x1 enable_debug_api=u8!0x1 [usb] -; Enable USB 3.0 superspeed for homebrew -; 0 = USB 3.0 support is system default (usually disabled), 1 = USB 3.0 support is enabled. -; Note: Enabling USB 3.0 support may disable access to 5GHz Wi-Fi networks. usb30_force_enabled=u8!0x1 [tc] diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index 22116d8..2e96492 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/kips/loader.kip b/atmosphere/kips/loader.kip index 97ce8c6..d255bb3 100644 Binary files a/atmosphere/kips/loader.kip and b/atmosphere/kips/loader.kip differ diff --git a/atmosphere/package3 b/atmosphere/package3 index 91c0fef..bcbdc6f 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/config/status-monitor/config.ini b/config/status-monitor/config.ini index 6c52a4b..a2e234e 100644 --- a/config/status-monitor/config.ini +++ b/config/status-monitor/config.ini @@ -18,7 +18,7 @@ handheld_font_size=15 docked_font_size=15 real_freqs=true real_volts=true -show=CPU+GPU+RAM+TEMP+FAN+DRAW+FPS +show=CPU+GPU+RAM+TEMP+FAN+DRAW+FPS+RES replace_MB_with_RAM_load=true background_color=#1117 cat_color=#CDEF @@ -57,4 +57,12 @@ border_color=#F77F dashed_line_color=#8888 main_line_color=#FFFF rounded_line_color=#0C0F -perfect_line_color=#F0FF \ No newline at end of file +perfect_line_color=#F0FF + +[game_resolutions] +refresh_rate=10 +layer_width_align=left +layer_height_align=top +background_color=#1117 +cat_color=#FFFF +text_color=#FFFF \ No newline at end of file diff --git a/switch/.overlays/Status-Monitor-Overlay.ovl b/switch/.overlays/Status-Monitor-Overlay.ovl index cc90632..fd7c2c9 100644 Binary files a/switch/.overlays/Status-Monitor-Overlay.ovl and b/switch/.overlays/Status-Monitor-Overlay.ovl differ diff --git a/switch/.packages/boot_package.ini b/switch/.packages/boot_package.ini index 7941edd..dce8b8c 100644 --- a/switch/.packages/boot_package.ini +++ b/switch/.packages/boot_package.ini @@ -57,7 +57,6 @@ del '/SaltySD/plugins/NX-FPS.elf' del '/SaltySD/plugins/ReverseNX-RT.elf' -del '/switch/DBI/.DBI.nro.star' del '/switch/kefir-updater/' del '/switch/mhz.nro' del '/switch/MicroMemBench.nro'