Moved to extracting Patches after Install/Update with custom Homebrew app

This commit is contained in:
niklascfw 2026-03-06 22:14:59 +01:00
parent 1a7d3537ac
commit 0e913076c2
No known key found for this signature in database
1070 changed files with 0 additions and 29740 deletions

Binary file not shown.

View file

@ -1,27 +0,0 @@
# Horizon Chase 2 1.6.6
# BID: D60A7F43A98034BE
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x833A760, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8B27A30, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8B02598, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Horizon Chase 2 1.6.9
# BID: E13F632FC2A66EEB
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x8349850, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8B36A30, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8B11598, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Horizon Chase 2 1.6.3
# BID: F80EEC237D0963EE
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x8325D00, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8B13A30, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.DynamicRes.FrameTimeBudget = 0.978 * (1000/FPS)
-
type: evaluate_write
address: [MAIN, 0x8AEE598, 0]
value_type: float
value: ["TruncDec(0.978 * FRAMETIME_TARGET, 1)", "TruncDec(0.978 * FRAMETIME_TARGET, 1)"]
-
type: block
what: timing

View file

@ -1,12 +0,0 @@
# TT Isle of Man 2 1.0.1
# BID: 02F2E5C8CBF5A92F
unsafeCheck: true
ALL_FPS:
# OptimalFrameDuration_ms = 0.96 * (1000/FPS)
-
type: evaluate_write
address: [MAIN, 0x2153CFC]
value_type: float
value: "0.96 * FRAMETIME_TARGET"

View file

@ -1,16 +0,0 @@
# Rad Rodgers: Radical Edition 1.2.0
# BID: 78885A1CA987C04C
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Gori: Cuddly Carnage 1.0.6
# BID: 1146A5AA87A93969
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6A02E68, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6A3C938, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6245AA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# Gori: Cuddly Carnage 1.0.7
# BID: A21FFE97D09DCE4E
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6A02E68, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6A3C938, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6245AA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Gori: Cuddly Carnage 1.0.5
# BID: EEE598377C0A5966
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x69FDE68, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6A37938, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6240AA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,33 +0,0 @@
# Jujutsu Kaisen Cursed Clash US 1.3.0
# BID: 2E7487767D0CA0EE
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x81A5A48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x81E8F50, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x752A248, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x81E87A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing

View file

@ -1,33 +0,0 @@
# 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

View file

@ -1,33 +0,0 @@
# Jujutsu Kaisen Cursed Clash US 1.4.0
# BID: 7C724F497564C027
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8458A48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x849BF50, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x77DD548, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x849B7A8, 0x9C4]
address_unsafe: true
value_type: uint32
value: 7
-
type: block
what: timing

View file

@ -1,33 +0,0 @@
# Jujutsu Kaisen Cursed Clash US 1.1.0
# BID: 95761555A341B190
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8036A48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8079F50, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x73BB0C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80797A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing

View file

@ -1,10 +0,0 @@
# Agatha Christie - Hercule Poirot: The First Cases 1.0.3/1.0.3.1
# BID: 1570FE23108B93C4
ALL_FPS:
# fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: "FRAMETIME_TARGET / 1000"

View file

@ -1,88 +0,0 @@
# Batman - The Telltale Series 1.0.4
# BID: A3A998AF3252D110
DECLARATIONS:
-
type: code
name: tripleBuffer
instructions: [
[stp, x29, x30, [sp, -16], "!"],
[mov, x29, sp],
[ldr, x0, [x26, 0x10]],
[cbz, x0, :goto1],
[adrp, x8, 0x1758000],
[ldr, x8, [x8, 0x90]],
[ldr, x8, [x8]],
[blr, x8],
[b, :goto2],
:goto1, [mov, w0, 0xc0],
[bl, 0x735480],
[str, x0, [x26, 0x10]],
:goto2, [ldr, x22, [x27]],
[adrp, x27, 0x1757000],
[ldr, x21, [x25]],
[ldr, x27, [x27, 0xf38]],
[adrp, x23, 0x1758000],
[ldr, x8, [x27]],
[ldr, x23, [x23, 0xa70]],
[mov, x0, x23],
[blr, x8],
[mov, x2, x0],
[mov, x0, x21],
[mov, x1, x22],
[bl, 0x1a90],
[mov, x21, x0],
[ldr, x0, [x25]],
[bl, 0x1ad0],
[ldr, x8, [x28]],
[mov, x1, x0],
[mov, x0, x23],
[mov, x2, x21],
[blr, x8],
[ldr, x0, [x26, 0x10]],
[ldr, x8, [x24]],
[mov, x1, x23],
[blr, x8],
[adrp, x22, 0x1758000],
[ldp, x29, x30, [sp], 16],
[ret]
]
MASTER_WRITE:
# Remove double buffer
-
type: asm_a64
main_offset: 0x6440
instructions: [
[mov, w2, 3],
[madd, x1, x8, x2, x9]
]
-
type: bytes
main_offset: 0xC5A6D8
value_type: uint32
value: 0x188CC50
-
type: bytes
main_offset: 0x1758A90
value_type: uint32
value: 0x188CC50
-
type: asm_a64
main_offset: 0x5EE8
instructions: [
[bl, _tripleBuffer()]
]
-
type: asm_a64
main_offset: 0x5FC0
instructions: [
[mov, w1, 3]
]
-
type: asm_a64
main_offset: 0x5F8C
instructions: [
[mov, x2, 0x1950000]
]

View file

@ -1,27 +0,0 @@
# BPM: Bullets Per Minute 0.1
# BID: 331E3DFBDF650226
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,75 +0,0 @@
# 無双アビス 1.4.2
# BID: 2D22A87AE49C75AA
DECLARATIONS:
-
type: variable
name: dr_target1
value_type: float
default_value: 50
evaluate: "1.5 * FRAMETIME_TARGET"
-
type: variable
name: dr_target2
value_type: float
default_value: 40
evaluate: "1.2 * FRAMETIME_TARGET"
MASTER_WRITE:
# REF: 09 49 A8 52 21 01 27 1E 00 20 21 1E
# Use FPS Target instead of vsync value for Dynamic Resolution max delta
-
type: asm_a64
main_offset: 0x6E3B50
instructions: [
[adrp, x1, 0x1021000],
[ldr, s1, [x1, 0xe10]]
]
# Redirect DR Targets
-
type: asm_a64
main_offset: 0x6E3BF4
instructions: [
[adrp, x9, $dr_target1],
[ldr, s1, [x9, $dr_target1]]
]
-
type: asm_a64
main_offset: 0x6E3C04
instructions: [
[adrp, x9, $dr_target2],
[ldr, s1, [x9, $dr_target2]]
]
ALL_FPS:
# REF: 00 00 F0 42 78 00 00 00 00 00 F0 42 04 00 00 00
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0x1021E1C]
value_type: uint32
value: "120 / FPS_LOCK_TARGET"
# Prevent from setting it as 0, otherwise game crashes
-
type: evaluate_compare
compare_address: [MAIN, 0x1021E1C]
compare_type: "=="
compare_value_type: uint32
compare_value: 0
address: [MAIN, 0x1021E1C]
value_type: uint32
value: 1
# Others
-
type: evaluate_write
address: [MAIN, 0x1021E10]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x1021E14]
value_type: uint32
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x1021E18]
value_type: float
value: "FPS_TARGET"

View file

@ -1,75 +0,0 @@
# 無双アビス 1.5.0
# BID: A9DEA3043D6E0060
DECLARATIONS:
-
type: variable
name: dr_target1
value_type: float
default_value: 50
evaluate: "1.5 * FRAMETIME_TARGET"
-
type: variable
name: dr_target2
value_type: float
default_value: 40
evaluate: "1.2 * FRAMETIME_TARGET"
MASTER_WRITE:
# REF: 09 49 A8 52 21 01 27 1E 00 20 21 1E
# Use FPS Target instead of vsync value for Dynamic Resolution max delta
-
type: asm_a64
main_offset: 0x8B69C0
instructions: [
[adrp, x1, 0x11F3000],
[ldr, s1, [x1, 0xE10]]
]
# Redirect DR Targets
-
type: asm_a64
main_offset: 0x8B6A64
instructions: [
[adrp, x9, $dr_target1],
[ldr, s1, [x9, $dr_target1]]
]
-
type: asm_a64
main_offset: 0x8B6A74
instructions: [
[adrp, x9, $dr_target2],
[ldr, s1, [x9, $dr_target2]]
]
ALL_FPS:
# REF: 00 00 F0 42 78 00 00 00 00 00 F0 42 04 00 00 00
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0x11F3E1C]
value_type: uint32
value: "120 / FPS_LOCK_TARGET"
# Prevent from setting it as 0, otherwise game crashes
-
type: evaluate_compare
compare_address: [MAIN, 0x11F3E1C]
compare_type: "=="
compare_value_type: uint32
compare_value: 0
address: [MAIN, 0x11F3E1C]
value_type: uint32
value: 1
# Others
-
type: evaluate_write
address: [MAIN, 0x11F3E10]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x11F3E14]
value_type: uint32
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x11F3E18]
value_type: float
value: "FPS_TARGET"

View file

@ -1,10 +0,0 @@
# WRC Generations 1.2.2
# BID: B8BE1CFAE53CAEBE
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-
type: evaluate_write
address: [MAIN, 0x2D5A83C]
value_type: float
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"

View file

@ -1,20 +0,0 @@
# ぎゃる☆がん りたーんず 1.0.4
# BID: 7E65E5BC3564BE46
# Buffers are hardcoded into fixed size class, so it's hard to get triple buffer
ALL_FPS:
# FPS Target + FPS Lock
-
type: evaluate_write
address: [MAIN, 0x16CE8A8, 0x20]
value_type: float
value: "60 / FPS_TARGET"
# Lipsync fix
-
type: evaluate_write
address: [MAIN, 0x1BA0A1C]
value_type: uint32
value: FPS_TARGET
-
type: block
what: timing

View file

@ -1,28 +0,0 @@
# TRANSFORMERS: EARTHSPARK - Expedition 1.0.5
# BID: F87BEAF2C5CE13E3
# Game is using double frontbuffer and single backbuffer, everything is hardcoded
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,26 +0,0 @@
# Borderlands: The Pre-Sequel Ultimate Edition 1.0.1
# BID: 090B1F7F7AF35D00
DECLARATIONS:
-
type: variable
name: dr_frametime_max
value_type: float
default_value: 33.3
evaluate: "0.999 * FRAMETIME_TARGET"
-
type: variable
name: dr_frametime_min
value_type: float
default_value: 29.97
evaluate: "0.8991 * FRAMETIME_TARGET"
MASTER_WRITE:
-
type: asm_a64
main_offset: 0xEA60B8
instructions: [
[adrp, x9, $dr_frametime_max],
[ldr, s11, [x9, $dr_frametime_max]],
[adrp, x9, $dr_frametime_min],
[ldr, s12, [x9, $dr_frametime_min]]
]

View file

@ -1,10 +0,0 @@
# Sniper Elite 4 1.0.3
# BID: 4EEA2970DF38ECE1
ALL_FPS:
# Dynamic Resolution frame time target
-
type: evaluate_write
address: [MAIN, 0x2D7A974]
value_type: float
value: "0.969 * FRAMETIME_TARGET"

View file

@ -1,36 +0,0 @@
# Tiebreak+: Official Game of the ATP and WTA 1.1.0
# BID: 2A5244CCB17B44AC
unsafeCheck: true
MASTER_WRITE:
# Triple buffer
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
-
type: bytes
main_offset: 0x1A81E6C
value_type: uint32
value: 3
# Redirect Dynamic Resolution target reading to MAIN + 0x30C2F00
# REF: 0C 9A 88 52 0C 6B A7 72
-
type: bytes
main_offset: 0x147AA94
value_type: uint32
value:
- 0x9000E248 # ADRP X8, 0x30C2000
- 0xBD4F0103 # LDR S3, [X8, 0xF00]
- 0xD503201F # NOP
## Default values
-
type: bytes
main_offset: 0x30C2F00
value_type: float
value: 0.03333333333
ALL_FPS:
# Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x30C2F00]
value_type: float
value: "0.8 / FPS_TARGET"

View file

@ -1,36 +0,0 @@
# Tiebreak+: Official Game of the ATP and WTA 1.2.0
# BID: 5BCA5C20C8F8A9B4
unsafeCheck: true
MASTER_WRITE:
# Triple buffer
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
-
type: bytes
main_offset: 0x1A82EAC
value_type: uint32
value: 3
# Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00
# REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E
-
type: bytes
main_offset: 0x147B474
value_type: uint32
value:
- 0x9000E248 # ADRP X8, 0x30C3000
- 0xBD4F0103 # LDR S3, [X8, 0xF00]
- 0xD503201F # NOP
## Default values
-
type: bytes
main_offset: 0x30C3F00
value_type: float
value: 0.03333333333
ALL_FPS:
# Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x30C3F00]
value_type: float
value: "0.8 / FPS_TARGET"

View file

@ -1,28 +0,0 @@
# Tiebreak+: Official Game of the ATP and WTA 1.4.0
# BID: 612E3D607D2A13BB
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 0.03333333333
evaluate: "0.8 / FPS_TARGET" # we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
MASTER_WRITE:
# Triple buffer
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
-
type: bytes
main_offset: 0x1A8B39C
value_type: uint32
value: 3
# Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00
# REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E
-
type: asm_a64
main_offset: 0x1483084
instructions: [
[adrp, x8, $dr_target],
[ldr, s3, [x8, $dr_target]],
[nop]
]

View file

@ -1,28 +0,0 @@
# Tiebreak+: Official Game of the ATP and WTA 1.3.0
# BID: 88CC45A195E0BDA8
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 0.03333333333
evaluate: "0.8 / FPS_TARGET" # we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
MASTER_WRITE:
# Triple buffer
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
-
type: bytes
main_offset: 0x1A82F0C
value_type: uint32
value: 3
# Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00
# REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E
-
type: asm_a64
main_offset: 0x147BE04
instructions: [
[adrp, x8, $dr_target],
[ldr, s3, [x8, $dr_target]],
[nop]
]

View file

@ -1,46 +0,0 @@
# Life is Strange: Before the Storm Remastered 1.0
# BID: 30B812AB1BA3D447
DECLARATIONS:
-
type: variable
name: dr_frametime_max
value_type: float
default_value: 30
evaluate: "0.9 * FRAMETIME_TARGET"
-
type: variable
name: dr_frametime_min
value_type: float
default_value: 25
evaluate: "0.75 * FRAMETIME_TARGET"
-
type: code
name: getDrFrametimeMax
instructions: [
[adrp, x8, $dr_frametime_max],
[ldr, s1, [x8, $dr_frametime_max]],
[ret]
]
-
type: code
name: getDrFrametimeMin
instructions: [
[adrp, x8, $dr_frametime_min],
[ldr, s1, [x8, $dr_frametime_min]],
[ret]
]
MASTER_WRITE:
# REF: 60 2e 40 bd 01 d0 27 1e 00 20 21 1e
-
type: asm_a64
main_offset: 0x14FD210
instructions: [
[bl, _getDrFrametimeMax()]
]
-
type: asm_a64
main_offset: 0x14FD23C
instructions: [
[bl, _getDrFrametimeMin()]
]

View file

@ -1,30 +0,0 @@
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.1
# BID: 823FE359B4A99A4D
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17DD77C]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17FA8A0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A6490C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17DD758]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

View file

@ -1,30 +0,0 @@
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.3
# BID: AD4CBC4878008E1E
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F9784]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x18168A0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A8490C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17F9760]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View file

@ -1,30 +0,0 @@
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.2
# BID: BBA39C65C1CC6463
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F9784]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x18168A0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A8490C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17F9760]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

View file

@ -1,11 +0,0 @@
# Tomb Raider: Definitive Edition 1.0.1
# BID: 2A4A71E176DAA356
ALL_FPS:
# Dynamic Resolution Frametime Target
# REF: E9 F3 00 B2 A9 40 A8 F2 A9 40 E8 F2
-
type: evaluate_write
address: [MAIN, 0x1C2BB00]
value_type: float
value: FRAMETIME_TARGET

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.2.2
# BID: 012A8C2C413E79B8
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8F57748, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8F92210, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8791EC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.2.1
# BID: 26C1E658E9B5B612
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8F41748, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8F7C210, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x877BEC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# ソードアート・オンライン フラクチュアード デイドリーム 1.5.2.0
# BID: 2EEE840599DC7021
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8676768, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x86B12E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7EB0F88, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.4.1.1
# BID: 33614E4F6B3267B3
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x90A0758, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x90DB2B0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x88DAF88, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.1.3
# BID: 3889588A60E1F399
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8EA4728, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8EDF1F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x86DEEC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream 1.1.1
# BID: 3AAA28C9CB8367B9
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8E90728, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8ECB1F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x86CAEC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.2.0
# BID: 46094C03E2EC668B
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8F3C748, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8F77210, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8776EC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.1.2
# BID: 520620FBA0B196A3
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8E95728, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8ED01F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x86CFEC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.3.0
# BID: C2F2C4B700B30598
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8FD6748, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9011290, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8810F08, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.5.0.0
# BID: CA61076D0CE6670D
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x866F768, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x86AA2E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7EA9F88, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,18 +0,0 @@
# The Elder Scrolls V: Skyrim 1.1.404.0
# BID: 0C0CAC3FCF0F0BEB
ALL_FPS:
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
# REF: 21 0C 02 1F 01 FC 00 BD, third ldr below
-
type: evaluate_write
address: [MAIN, 0x3357FB0]
value_type: float
value: "0.99 * FRAMETIME_TARGET"
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
# REF: 21 0C 02 1F 01 FC 00 BD, first ldr below
-
type: evaluate_write
address: [MAIN, 0x3357FC8]
value_type: float
value: "0.9 * FRAMETIME_TARGET"

View file

@ -1,16 +0,0 @@
# The Elder Scrolls V: Skyrim 1.1.392.3925134
# BID: 4F7995092FAA5DC0
ALL_FPS:
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
-
type: evaluate_write
address: [MAIN, 0x3356FC8]
value_type: float
value: "0.9 * FRAMETIME_TARGET"
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
-
type: evaluate_write
address: [MAIN, 0x3356FB0]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

View file

@ -1,26 +0,0 @@
# Breathedge 1.0.2
# BID: B26DE1669B729335
ALL_FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x55CB668, 0x7F0]
address_unsafe: true
value_type: uint32
value: 7
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x55CBDE0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x4E6A7B8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,24 +0,0 @@
# Chernobylite 1.1
# BID: 2D2065AEBF94F9AE
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x641EAB8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x644C838, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5C83700, 0]
value_type: int32
value: [0, 0]

View file

@ -1,25 +0,0 @@
# Chernobylite 1.2
# BID: 657F40EEBD955F31
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x641EAB8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x644C838, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5C83700, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# Tony Hawk's Pro Skater 3 + 4 1.06
# BID: 505069EBC0B82A6F
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x77EC4B8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x781A6A0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7014598, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,25 +0,0 @@
# Tony Hawk's Pro Skater 3 + 4 1.07
# BID: 52DA46C0166A8643
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x77F8148, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7826330, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7020598, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Tony Hawk's Pro Skater 3 + 4 1.05
# BID: 65A9705A4BB35AA2
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x77DD4B8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x780B6A0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7006068, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Tony Hawk's Pro Skater 3 + 4 1.0.3
# BID: A31FE9B8AF1156D4
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x77CF4B8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x77FD6A0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6FF83C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,11 +0,0 @@
# DreadOut Remastered Collection 1.0.2
# BID: 725731C74E4CA6A9
ALL_FPS:
# REF: DynamicResolution::.cctor
-
type: evaluate_write
address: [MAIN, 0x3E01640, 0, 0xB8, 8]
address_unsafe: true
value_type: double
value: [FPS_TARGET, FRAMETIME_TARGET]

View file

@ -1,25 +0,0 @@
# ウィッチャー3 ワイルドハント コンプリートエディション 4.04b
# BID: 4BC4A8A814FD46A4
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

View file

@ -1,21 +0,0 @@
# Vampyr 0.4
# BID: E417100FFEEFD1DE
unsafeCheck: true
ALL_FPS:
# r.DynResTargetFPS
-
type: evaluate_write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [FPS_TARGET, FPS_TARGET]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,10 +0,0 @@
# Zombie Army 4: Dead War 1.1.1
# BID: 12024D08CCFD25EB
ALL_FPS:
# Dynamic Resolution FPS Target
-
type: evaluate_write
address: [MAIN, 0x179EF64]
value_type: float
value: FPS_TARGET

View file

@ -1,16 +0,0 @@
# Lumo 2 1.0.0.0
# BID: 5C2942CCDF0AA6EA
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6BB0EE8, 0]
value_type: uint32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7BC68D0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]

View file

@ -1,14 +0,0 @@
# The LEGO NINJAGO Movie Video Game 1.0.3
# BID: 346959B36CD9F14D
ALL_FPS:
# Block to 30 FPS when prerendered cutscene is played
# REF: LegoCutscenes::s_fmvCutsceneAudioInstance
-
type: compare
compare_address: [MAIN, 0x44C3468]
compare_type: "!="
compare_value_type: uint64
compare_value: 0
value_type: refresh_rate
value: 30

View file

@ -1,25 +0,0 @@
# Five Nights at Freddy's: Secret of the Mimic 1.0.0
# BID: 196339C0BADE07C3
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x64D8628, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x64FE0E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5D0C1D0, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,18 +0,0 @@
# Fate/Samurai Remnant `JPN` 1.3.2
# BID: 6C46135714ABB870
# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8
MASTER_WRITE:
-
type: asm_a64
main_offset: 0x5DB12C
instructions: [
[mov, w25, 3]
]
ALL_FPS:
# interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72
-
type: evaluate_write
address: [MAIN, 0x3412388]
value_type: int32
value: VSYNC_TARGET

View file

@ -1,10 +0,0 @@
# Beholder 2 1.0.3
# BID: 5D3FE9C0FAA44B4C
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x4275238, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View file

@ -1,25 +0,0 @@
# リマザード:ブロークン ポーセリン 2.0.0
# BID: 5EFAB20F5C1F0F68
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

View file

@ -1,25 +0,0 @@
# Remothered: Broken Porcelain 修道院:破碎的瓷器 2.0.0
# BID: 5EFAB20F5C1F0F68
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

View file

@ -1,15 +0,0 @@
# OCTOPATH TRAVELER 歧路旅人 1.0.5
# BID: 9E6B0D0023F9DB3B
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x50B5698, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,19 +0,0 @@
# PROGRESS ORDERS 1.0.3
# BID: 33E7D684796F363B
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x7B26958, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8B1E280, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,11 +0,0 @@
# Atelier Resleriana: The Red Alchemist & the White Guardian 1.2a
# BID: 6ACDAEE7DDC5E503
ALL_FPS:
# MagicaCloth2.MagicaManager_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x777A550, 0xB8, 0, 0x10, 0x20, 0x10]
address_unsafe: true
value_type: uint32
value: "FPS_TARGET + 5"

View file

@ -1,11 +0,0 @@
# Atelier Resleriana: The Red Alchemist & the White Guardian 1.4
# BID: 8593E6008F5A883D
ALL_FPS:
# MagicaCloth2.MagicaManager_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x778EF80, 0xB8, 0, 0x10, 0x20, 0x10]
address_unsafe: true
value_type: uint32
value: "FPS_TARGET + 5"

View file

@ -1,11 +0,0 @@
# Atelier Resleriana: The Red Alchemist & the White Guardian 1.3
# BID: F140F141FDC4C331
ALL_FPS:
# MagicaCloth2.MagicaManager_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x7760D60, 0xB8, 0, 0x10, 0x20, 0x10]
address_unsafe: true
value_type: uint32
value: "FPS_TARGET + 5"

View file

@ -1,10 +0,0 @@
# 60 Parsecs! 1.0.10
# BID: 12F93E2DBBCFA54F
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x393D5F8, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View file

@ -1,19 +0,0 @@
# Troublemaker 1.0.2
# BID: 336E56D09501A52E
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5E26958, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x562A778, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,10 +0,0 @@
# The Walking Dead: Destinies 1.3.0.8
# BID: 3D3FEFC161B49AB8
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x666C420, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View file

@ -1,11 +0,0 @@
# The Forest Quartet 4.0.2
# BID: 47A022F858BA09B1
ALL_FPS:
# DynamicResolution_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x4B320A0, 0xB8, 0]
address_unsafe: true
value_type: double
value: ["0.96 * FRAMETIME_TARGET", "(0.96 * FRAMETIME_TARGET) - 0.75"]

View file

@ -1,21 +0,0 @@
# Raji: An Ancient Epic 1.0.4
# BID: 8A39E660F956BB00
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,37 +0,0 @@
# Remnant: From The Ashes 1.0.1
# BID: 49CF6B0B0A62F9E2
ALL_FPS:
# r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93)
-
type: evaluate_write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
# r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87)
-
type: evaluate_write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: ["0.87 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"]
# r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945)
-
type: evaluate_write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"]
# r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93)
-
type: evaluate_write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,39 +0,0 @@
# SONIC FORCES 1.1.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
unsafeCheck: true
MASTER_WRITE:
# Remove double buffer
-
type: asm_a64
main_offset: 0xAD40FC
instructions: [
[mov, w8, 3]
]
# Block switching back to 30 FPS mode on loading screens
-
type: asm_a64
main_offset: 0x6173B0
instructions: [
[nop]
]
ALL_FPS:
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET

View file

@ -1,10 +0,0 @@
# Figment 1.6.0
# BID: 6401F57C7D6D3728
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x450C7C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View file

@ -1,31 +0,0 @@
# Dusk Diver 酉閃町 -ダスクダイバー ユウセンチョウ- 1.0.6
# BID: FAD1AF4EDC6DB267
ALL_FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
address: [MAIN, 0x5379338, 0x780]
address_unsafe: true
value_type: uint32
# Default is 0x67, bSmoothFrameRate |= 0x20, bUseFixedFrameRate |= 0x40
# By writing 7 we are making sure that other flags are maintained:
# bAllowMultiThreadedAnimationUpdate |= 4
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
# bCanBlueprintsTickByDefault |= 1
value: 7
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: evaluate_write
address: [MAIN, 0x5354210, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x537A880, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,41 +0,0 @@
# SONIC FORCES 1.1.0/1.2.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
MASTER_WRITE:
# Remove double buffer
## REF: E8 37 00 B9 E8 03 1F 32
-
type: asm_a64
main_offset: 0xAD40FC
instructions: [
[mov, w8, 3]
]
# Block switching back to 30 FPS mode on loading screens
## REF: 08 10 40 F9 48 00 00 B4, replace STR
-
type: asm_a64
main_offset: 0x6173B0
instructions: [
[nop]
]
ALL_FPS:
# Switch to 60 FPS Mode
## REF: 7F 7E 07 A9 6A A2 01 A9, ADRP + LDR below
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
## REF: 00 1D 40 BD 01 D0 37 1E, ADRP + LDR above it
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET

View file

@ -1,19 +0,0 @@
# 옥토패스 트래블러 0 1.0.2
# BID: 6070FC72448EE560
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6C5C6E8, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7C7E8E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,19 +0,0 @@
# Combat Forces 1.0.0
# BID: 81C9C793B5370E9B
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x604AC78, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6843A78, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,21 +0,0 @@
# Master Detective Archives: RAIN CODE 1.4.0 US
# BID: B9E42653FB44EF2B
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,21 +0,0 @@
# Mortal Shell 1.2.0
# BID: 6D9F6C7B79F5197F
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,10 +0,0 @@
# V-Rally 4 JPN 1.2.0
# BID: EB8A679B5DDD0060
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-
type: evaluate_write
address: [MAIN, 0x20A0E44]
value_type: float
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"

View file

@ -1,12 +0,0 @@
# From Space 1.3.480
# BID: 9806FB67CE24E904
unsafeCheck: true
ALL_FPS:
# UnityEngine.Application::targetFrameRate (to adjust Dynamic Resolution)
-
type: evaluate_write
address: [MAIN, 0x6F3F760]
value_type: int32
value: FPS_TARGET

View file

@ -1,83 +0,0 @@
# WARRIORS OROCHI 4 1.0.13
# BID: 5C9CCD358BE85FC9
# Credits to Hazerou for figuring out the offset
# Main offset stores address to start of .bss of NRO
## REF: 02 00 00 00 3C 00 00 00
unsafeCheck: true
ALL_FPS:
# Without DLC Ultimate Edition installed
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "=="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x934A8]
value_type: uint32
value: [VSYNC_TARGET, FPS_TARGET]
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "=="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x934A0]
value_type: float
value: FPS_TARGET
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "=="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x9349C]
value_type: uint32
value: [VSYNC_TARGET, FPS_TARGET]
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "=="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x93494]
value_type: float
value: FPS_TARGET
# With DLC Ultimate Edition installed
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "!="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x93200]
value_type: uint32
value: [VSYNC_TARGET, FPS_TARGET]
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "!="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x931F8]
value_type: float
value: FPS_TARGET
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "!="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x931F4]
value_type: uint32
value: [VSYNC_TARGET, FPS_TARGET]
-
type: evaluate_compare
compare_value_type: uint64
compare_type: "!="
compare_value: 0xE2CFDAC9EAC20398
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
address: [MAIN, 0x3AF80, -0x931EC]
value_type: float
value: FPS_TARGET

View file

@ -1,25 +0,0 @@
# The Witcher 3: Wild Hunt - The Complete Edition `Cartridge only 2` 4.04a-4.04b
# BID: 4BC4A8A814FD46A4
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

View file

@ -1,23 +0,0 @@
# Jojo's Bizarre Adventure: All-Star Battle R 2.3.3
# BID: 3D4E3A9252AA6C63
# There are small issues with animations in cutscenes at higher framerates
ALL_FPS:
# Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A
-
type: evaluate_write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: VSYNC_TARGET
# Game Speed, pointer ref: F3 03 00 AA 20 00 80 52 F4 03 01 AA
-
type: evaluate_write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: VSYNC_TARGET
# UI Speed
-
type: evaluate_write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: FPS_TARGET

View file

@ -1,21 +0,0 @@
# Grand Theft Auto: Vice City - Definitive Edition 1.0.7
# BID: 56EEFA704373BDB3
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: evaluate_write
address: [MAIN, 0x7565298, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Grand Theft Auto: Vice City - Definitive Edition 1.0.8
# BID: 9151E53EE514B03A
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (Default is 36.5 ms)
-
type: evaluate_write
address: [MAIN, 0x7608988, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x762D640, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6E7AA00, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,31 +0,0 @@
# Bakery Simulator 1.1.0
# BID: 31A37D73E22F1059
ALL_FPS:
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
address: [MAIN, 0x5F9B6A8, 0x7A4]
address_unsafe: true
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.VSync
-
type: write
address: [MAIN, 0x57A0B58, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5F9BFC8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,27 +0,0 @@
# Gigantosaurus: Dino Kart 1.1.0
# BID: 512FB8C2D12C4F36
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6D186C8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x6581EB0, 0]
value_type: uint32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6D45C58, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,21 +0,0 @@
# Gigantosaurus: Dino Kart 1.0.0
# BID: 5F7A2866D8E20BBA
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,21 +0,0 @@
# Ship Graveyard Simulator 1.0.0
# BID: 63B72CD5F2A90020
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,13 +0,0 @@
# Cel Damage HD 1.0.0
# BID: 03B058B1F6BE7195
# Credit to Hazerou for finding offset
# His note: 60 FPS may cause some Graphical Glitches like huge shadow and flashing light/colors appearing out of nowhere.
unsafeCheck: true
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x32EE1C]
value_type: float
value: ["1/FPS_TARGET", "FPS_TARGET"]

View file

@ -1,25 +0,0 @@
# 《巫師 3狂獵》完全版 4.04b
# BID: 4BC4A8A814FD46A4
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

View file

@ -1,58 +0,0 @@
# 삼국지8 REMAKE 1.0.8
# BID: 3BA6C7665F67A711
# Cursor speed is tied to framerate
DECLARATIONS:
# DON'T PUT ANYTHING BETWEEN - START
-
type: variable
name: fps_lock
value_type: uint32
default_value: 30
evaluate: FPS_LOCK_TARGET
-
type: variable
name: fps_lock2
value_type: uint32
default_value: 60
evaluate: FPS_LOCK_TARGET
-
type: variable
name: game_speed
value_type: float
default_value: 0.0333333333
evaluate: "1/FPS_TARGET"
-
type: variable
name: game_speed2
value_type: float
default_value: 0.0166666666
# DON'T PUT ANYTHING BETWEEN - END
-
type: code
name: fpsLock
instructions: [
[adrp, x8, $fps_lock],
[ldr, w8, [x8, $fps_lock]],
[ret]
]
MASTER_WRITE:
# Redirect FPS Lock, REF: A8 EA 00 B9 08 00 40 B9, LDR W8, [X0]
-
type: asm_a64
main_offset: 0x1F902CC
instructions: [
[bl, _fpsLock()]
]
# Redirect game speed, REF: 08 31 9F 9A 20 79 68 BC 68 6E 41 B9
-
type: asm_a64
main_offset: 0x88B320
instructions: [
[adrp, x8, $game_speed],
[ldr, s0, [x8, $game_speed]]
]
ALL_FPS:
-
type: block
what: timing

View file

@ -1,12 +0,0 @@
# WRC9 1.2.0
# BID: 66B2DEA98B5CDF65
unsafeCheck: true
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-
type: evaluate_write
address: [MAIN, 0x27C4B0C]
value_type: float
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"

View file

@ -1,11 +0,0 @@
# Fate/EXTELLA LINK 1.0.2
# BID: 97FC79E063E26C9B
MASTER_WRITE:
# Remove double buffer
-
type: asm_a64
main_offset: 0x6B41E4
instructions: [
[mov, x8, 0x300000003]
]

View file

@ -1,27 +0,0 @@
# Bright Memory: Infinite Gold Edition 1.3
# BID: DD425ECC07C305DF
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View file

@ -1,19 +0,0 @@
# CRYMACHINA 慟哭奇機 / 크라이마키나 1.2.0
# BID: E196E389FD9E0364
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x7538918, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7D33D38, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View file

@ -1,10 +0,0 @@
# Escape Academy: The Complete Edition 3.0.6.2
# BID: 9E365FE9EC3A52D3
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x54AFB80, 0x48]
value_type: float
value: "1 / FPS_TARGET"

Some files were not shown because too many files have changed in this diff Show more