Ultra 2.2|R3

This commit is contained in:
redraz 2024-08-09 20:52:50 +03:00
parent fc203edb0f
commit 093c181ec1
60 changed files with 1029 additions and 1091 deletions
SaltySD
plugins/FPSLocker/patches
010000B01A452000/010085401A454000
010017A0128C4000
01001D00186E8000
01001E3017A10000
0100272013014000
01002FC012548000
01003EB01C2F0000
010040401D564000
010040C01D248000
0100416004C00000
0100459009A2A000
010047401EA8E000
01004A600EC0A000
010051C0134F8000
010055B01AA08000
010056B015FE8000
01005FD017E60000
010066F01A0E0000
01006F301AE9C000
01006F401D934000
010072E01CE0E000
010078D000F88000
0100853015E86000
010085401A454000
01008E101E868000
01008F600F2D0000
010097F018538000
0100A3501946E000
0100B8901AE88000
0100B8E016F76000
0100BD10190C0000
0100BDB01A0E6000
0100CEE01D23C000
0100D4A00B284000
0100D9601A994000
0100E3401D660000
0100F7E00C70E000
0100F8F00C4F2000
0100FBD00F5F6000
0100FBD013AB6000
saltysd_core.elf
atmosphere
config
contents/0000000000534C56
kips
package3
config/status-monitor
switch

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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"

@ -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

@ -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"

@ -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

@ -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

@ -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

@ -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

@ -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]

@ -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

@ -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

@ -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]

@ -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]

@ -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

@ -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"]

@ -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

@ -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

@ -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

@ -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

@ -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]

@ -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]

@ -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]

@ -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

@ -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

@ -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"

@ -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

@ -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

@ -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

@ -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

@ -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"

@ -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"

@ -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]

@ -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

@ -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"]

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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]
-

@ -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

@ -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

@ -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

@ -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"]

@ -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

@ -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

Binary file not shown.

@ -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]

Binary file not shown.

Binary file not shown.

@ -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
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

Binary file not shown.

@ -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'