Compare commits

..

9 Commits

Author SHA1 Message Date
redraz
a270126d52 modified: README.md 2025-12-10 06:54:51 +03:00
redraz
5a107e599e Plus 2025-12-10 06:54:18 +03:00
redraz
a7853bf3ac Ultra 2.7|R2 2025-12-09 08:14:28 +03:00
redraz
164babb735 Upd 2025-12-05 08:48:58 +03:00
redraz
aaa9c7c28d Fix 2025-12-03 06:31:18 +03:00
redraz
2e2398427c Ultra 2.7|R1 2025-12-02 18:33:48 +03:00
redraz
ef2146f5c4 modified: README.md 2025-11-25 20:50:28 +03:00
redraz
f44fffe49a modified: README.md 2025-11-25 20:27:07 +03:00
redraz
c37dd270f8 modified: README.md 2025-11-18 17:16:55 +03:00
254 changed files with 6752 additions and 890 deletions

View File

@ -8,9 +8,7 @@
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
### [UltraNX 2.6|R3](https://github.com/Ultra-NX/UltraNX/releases/tag/2.6-R3) Поддерживает все HOS до 20.5.0 включительно
### [UltraNX 2.7|Pre1](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R1) Поддерживает все HOS до 21.0.0 включительно. Не полноценный релиз!
### [UltraNX 2.7|R2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R2) Поддерживает все HOS до 21.1.0 включительно
@ -93,7 +91,7 @@
* [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Пакет патчей для FPSLocker, позволяет обновить все патчи сразу, вместо скачивания по одному через оверлей FPSLocker'а. В Ультре по умолчанию всегда последние патчи, так что достаточно своевременно обновлять сборку.
* [DVR Patches](https://github.com/exelix11/dvr-patches) - Патчи SysDVR, работают и без системного модуля, активируя фоновую запись в играх, где это изначально запрещено.
* [Mod Alchemist](https://github.com/ppkantorski/Mod-Alchemist) - Пакет для скачивания, установки и управления модами для игр.
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
* [sys-ftpd](https://github.com/ELY3M/sys-ftpd) - FTP сервер, работающий на фоне.

View File

@ -6,9 +6,7 @@
#
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
### [UltraNX 2.6|R3](https://github.com/Ultra-NX/UltraNX/releases/tag/2.6-R3) Supports all HOS up to and including 20.5.0
### [UltraNX 2.7|Pre1](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R1) Supports all HOS up to and including 21.0.0. Not a full-fledged release!
### [UltraNX 2.7|R2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R2) Supports all HOS up to and including 21.1.0
@ -89,7 +87,7 @@
* [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - The patch package for FPSLocker allows you to update all patches at once, instead of downloading one at a time through the FPSLocker overlay. UltraNX always has the latest patches by default, so it's enough to update the CFW in a timely manner.
* [DVR Patches](https://github.com/exelix11/dvr-patches) - SysDVR patches, work without the system module, activating background recording in games where it is initially prohibited.
* [Mod Alchemist](https://github.com/ppkantorski/Mod-Alchemist) - A package for downloading, installing, and managing mods for games.
* [sys-ftpd](https://github.com/cathery/sys-ftpd) - FTP server running in background.
* [sys-ftpd](https://github.com/ELY3M/sys-ftpd) - FTP server running in background.

View File

@ -1,8 +1,6 @@
# Gori: Cuddly Carnage 1.0.7
# BID: A21FFE97D09DCE4E
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
@ -24,4 +22,4 @@ ALL_FPS:
value: [0, 0]
-
type: block
what: timing
what: timing

View File

@ -0,0 +1,75 @@
# 無双アビス 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,8 +1,6 @@
# WRC Generations 1.2.2
# BID: B8BE1CFAE53CAEBE
unsafeCheck: true
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-

View File

@ -1,9 +1,7 @@
# Gal*Gun Returns 1.0.4
# ぎゃる☆がん りたーんず 1.0.4
# BID: 7E65E5BC3564BE46
# Buffers are hardcoded into fixed size class, so it's hard to get triple buffer
unsafeCheck: true
ALL_FPS:
# FPS Target + FPS Lock
-

View File

@ -0,0 +1,26 @@
# 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,8 +1,6 @@
# Sniper Elite 4 1.0.3
# BID: 4EEA2970DF38ECE1
unsafeCheck: true
ALL_FPS:
# Dynamic Resolution frame time target
-

View File

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

@ -0,0 +1,11 @@
# 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,8 +1,6 @@
# The Elder Scrolls V: Skyrim 1.1.392.3925134
# BID: 4F7995092FAA5DC0
unsafeCheck: true
ALL_FPS:
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
-

View File

@ -1,8 +1,6 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# ウィッチャー3 ワイルドハント コンプリートエディション 4.04b
# BID: 4BC4A8A814FD46A4
unsafeCheck: true
ALL_FPS:
# DRGameTargetFrameTimeInMs
-

View File

@ -1,8 +1,6 @@
# Zombie Army 4: Dead War 1.1.1
# BID: 12024D08CCFD25EB
unsafeCheck: true
ALL_FPS:
# Dynamic Resolution FPS Target
-

View File

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

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

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

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

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

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

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

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

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

@ -0,0 +1,19 @@
# 옥토패스 트래블러 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

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

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

@ -2,8 +2,6 @@
# BID: 3D4E3A9252AA6C63
# There are small issues with animations in cutscenes at higher framerates
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A
-

View File

@ -1,8 +1,6 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# 《巫師 3狂獵》完全版 4.04b
# BID: 4BC4A8A814FD46A4
unsafeCheck: true
ALL_FPS:
# DRGameTargetFrameTimeInMs
-

View File

@ -0,0 +1,19 @@
# 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,8 +1,6 @@
# HOT WHEELS UNLEASHED 2 1.0.11
# BID: FE78C7B94C4E791A
unsafeCheck: true
ALL_FPS:
# r.VSync
-
@ -24,4 +22,4 @@ ALL_FPS:
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
what: timing

View File

@ -0,0 +1,25 @@
# Anime vs Evil: Apocalypse 1.0
# BID: D2EADA78AA71283E
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8DA64D0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x7DE4978, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8DE1840, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# スター・オーバードライブ 1.0.10
# BID: 6D05923E7005E182
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x674C6E8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x77322F0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x776C850, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,17 @@
# Bendy and the Dark Revival 1.6.3s
# BID: 2C2D599E55912C6C
ALL_FPS:
# PSH.DynamicResolution.DynamicResolutionController_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x396F660, 0xB8, 0]
address_unsafe: true
value_type: double
value: [FPS_TARGET, FRAMETIME_TARGET]
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x3D42700, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -0,0 +1,19 @@
# World At War: Cobra 1.0.0
# BID: 7DE262BD1732DBFB
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

@ -0,0 +1,19 @@
# 셜록 홈즈 어웨이큰드 1.0.1
# BID: A1E1EFBA68B846A9
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7D81968, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x75811D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Rune Factory: Guardians of Azuma US 1.1.1
# BID: F678FD2BB197125B
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8F68D40, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8FA2470, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7F816E8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,12 @@
# Hellpoint 1.0.2.0
# BID: 3776E7BBC7C01E43
ALL_FPS:
# Manager<DynamicResolutionManager>_TypeInfo
# Using different scales than original (0.78, 1.14) because they seem to not be good for targeting 60 FPS
-
type: evaluate_write
address: [MAIN, 0x5357390, 0xB8, 0, 0x20, 0x20]
address_unsafe: true
value_type: float
value: ["0.6 * FRAMETIME_TARGET", "0.84 * FRAMETIME_TARGET"]

View File

@ -0,0 +1,10 @@
# Zombie Army 4: Dead War `Asia` 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

@ -0,0 +1,19 @@
# Caligula Overdose/カリギュラ オーバードーズ 1.01
# BID: A953B35A45BEA33D
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal
-
type: evaluate_write
address: [MAIN, 0x5CF2530, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5D170A8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# King's Bounty II 1.7
# BID: 5EAF1BB0E2B89AF4
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x93CF440, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x8874BA0, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x93FB7B0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,38 @@
# 鬼滅の刃 ヒノカミ血風譚 1.53
# BID: 14C878ECCA9D7CB5
ALL_FPS:
# Disable bUseFixedFrameRate to unlock framerate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
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
# Disable CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,26 @@
# The Beast Inside 1.2.0
# BID: EB58D577539E9151
ALL_FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x64AD448, 0x7A4]
address_unsafe: true
value_type: uint32
value: 7
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x64ADD48, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5CE8100, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,16 @@
# The Elder Scrolls V: Skyrim JPN 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

@ -0,0 +1,19 @@
# Storm Lancers 1.0.1.72
# BID: 99519C9259122E4F
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7ED0D60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6EB2F28, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,36 @@
# Tennis World Tour 2 1.3.0
# BID: D1B29E1ABDCD955E
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 0.03333333333
evaluate: "1 / FPS_TARGET"
-
type: code
name: tripleBuffer
instructions: [
[mov, w9, 3],
[str, w9, [x8, 0x1A0]],
[mov, w8, w9],
[ret]
]
MASTER_WRITE:
-
type: asm_a64
main_offset: 0x726338
instructions: [
[bl, _tripleBuffer()]
]
# 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: 0x1896448
instructions: [
[adrp, x12, $dr_target],
[ldr, s17, [x12, $dr_target]],
[nop]
]

View File

@ -0,0 +1,20 @@
# Expeditions: A Mudrunner Game 1.19.0.0
# BID: 0F7616E6F5EE08CE
# REF: 01 04 0C 5E 00 10 2E 1E
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 33.333333
evaluate: FRAMETIME_TARGET
MASTER_WRITE:
# Redirect DR frametime target
-
type: asm_a64
main_offset: 0x177D4A4
instructions: [
[adrp, x13, $dr_target],
[ldr, s2, [x13, $dr_target]]
]

View File

@ -0,0 +1,42 @@
# 魂斗羅 ローグ コープス 1.3.0
# BID: 4CCD2F6D331DD104
DECLARATIONS:
-
type: variable
name: dr_factor
value_type: float
default_value: 1000000
evaluate: "30000000 / FPS_TARGET"
-
type: code
name: fpsTarget
instructions: [
[adrp, x8, 0xd94000],
[ldr, w8, [x8, 0x628]],
[ret]
]
MASTER_WRITE:
# Read FPS target from code cave
-
type: asm_a64
main_offset: 0x2004
instructions: [
[bl, _fpsTarget()]
]
# Redirect DR time factor
-
type: asm_a64
main_offset: 0x2140
instructions: [
[adrp, x8, $dr_factor],
[ldr, s9, [x8, $dr_factor]]
]
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0xD94628]
value_type: uint32
value: FPS_TARGET

View File

@ -0,0 +1,19 @@
# Moto Racer 4 1.0.3
# BID: 31F61EC3A4FEFDF7
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x52ADD30, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5B3BAB8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Five Nights at Freddy's: Help Wanted 2 0.3
# BID: DE7B50B9FEF89856
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x686AE48, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7036778, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x705C0F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Five Nights at Freddy's: Help Wanted 2 0.1-0.2
# BID: F7EB23F0D8E5A933
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x53F45F8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x5BC3628, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5BF1308, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,21 @@
# スノーランナー 1.0.42
# BID: 8C7A99CBD1AEA208
# Just search for 0x42055555 in case of REF not working
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 33.333333
evaluate: FRAMETIME_TARGET
MASTER_WRITE:
# Redirect DR frametime target
## REF: 01 04 0C 5E 00 10 2E 1E
-
type: asm_a64
main_offset: 0x1944154
instructions: [
[adrp, x10, $dr_target],
[ldr, s2, [x10, $dr_target]]
]

View File

@ -0,0 +1,25 @@
# DreamWorks All-Star Kart Racing 0.1.0.11740
# BID: 3C3A2E68DBD1BBEC
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7F0F6B8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x7740598, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7F3D368, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,19 @@
# 真・女神轉生Ⅴ HK 1.0.2
# BID: 019FBFE7738EA314
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x75F81D0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7621D70, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,8 +1,6 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# The Witcher 3: Wild Hunt - Complete Edition 4.04b
# BID: D27FD8A515077F34
unsafeCheck: true
ALL_FPS:
# DRGameTargetFrameTimeInMs
-

View File

@ -0,0 +1,11 @@
# Wobbly Life 1.0.0.3
# BID: B174F363C2823CBE
ALL_FPS:
# DynamicResolutionManager_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x84A6F58, 0xB8, 8]
address_unsafe: true
value_type: double
value: [FPS_TARGET, FRAMETIME_TARGET]

View File

@ -1,4 +1,4 @@
# Dusk Diver 2 1.0.1
# Dusk Diver 2 `US` 1.0.1
# BID: 217C9ECF258C0312
ALL_FPS:
@ -29,4 +29,3 @@ ALL_FPS:
-
type: block
what: timing

View File

@ -0,0 +1,40 @@
# Wasteland 2: Director's Cut 1.0.1
# BID: 77009C1234634A4E
DECLARATIONS:
# Dynamic resolution is botched because it relies on whole frame rendering loop time,
# which means we cannot set min to 60 FPS because otherwise it will never get back to higher resolutions
-
type: variable
name: dr_fps_min
value_type: float
default_value: 20
evaluate: "0.9 * FPS_TARGET"
-
type: variable
name: dr_fps_max
value_type: float
default_value: 33
evaluate: "FPS_TARGET"
-
type: code
name: getDrFpsTargetMin
instructions: [
[adrp, x20, $dr_fps_min],
[ldr, s1, [x20, $dr_fps_min]],
[ret]
]
MASTER_WRITE:
-
type: asm_a64
main_offset: 0x36EE98
instructions: [
[bl, _getDrFpsTargetMin()]
]
-
type: asm_a64
main_offset: 0x36EEF4
instructions: [
[adrp, x8, $dr_fps_max],
[ldr, s1, [x8, $dr_fps_max]]
]

View File

@ -0,0 +1,25 @@
# American Arcadia 1.0.3
# BID: 2CE51030AF9800A5
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (default is 34.5)
-
type: evaluate_write
address: [MAIN, 0x76908F0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x66B5390, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x76BE650, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Nickelodeon Kart Racers 3: Slime Speedway 0.3.2.15969
# BID: EF2694EA89E001DB
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7F32158, 0]
value_type: float
value: [FRAMETIME_TARGET, FRAMETIME_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7764D78, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7F5FD48, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,8 +1,6 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# The Witcher 3: Wild Hunt - Complete Edition 4.04b
# BID: 4BC4A8A814FD46A4
unsafeCheck: true
ALL_FPS:
# DRGameTargetFrameTimeInMs
-

View File

@ -0,0 +1,25 @@
# ウィッチャー3 ワイルドハント 4.04b
# BID: D27FD8A515077F34
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,8 +1,6 @@
# DOOM 1.4
# DOOM `West` 1.4
# BID: 2847991952B3D7AB
unsafeCheck: true
ALL_FPS:
# rs_460Threshold (default is 0.285)
-

View File

@ -0,0 +1,36 @@
# 모두의 골프 월드 / 全民高爾夫 環球之旅 1.1.3
# BID: A179DD4F4BFB3A04
# Changed frametime target value math formula because default one sucks at 60 FPS target
DECLARATIONS:
-
type: variable
name: dr_frametime_max
value_type: double
default_value: 40
evaluate: "0.9 * FRAMETIME_TARGET"
-
type: variable
name: dr_frametime_min
value_type: double
default_value: 33.3333333333
evaluate: "(0.9 * FRAMETIME_TARGET) - 6"
MASTER_WRITE:
# REF: DynamicResolution::Compute()
-
type: asm_a64
main_offset: 0x3925918
instructions: [
[adrp, x10, $dr_frametime_max],
[ldr, d1, [x10, $dr_frametime_max]],
[nop]
]
-
type: asm_a64
main_offset: 0x39259EC
instructions: [
[adrp, x10, $dr_frametime_min],
[ldr, d1, [x10, $dr_frametime_min]],
[nop],
[nop]
]

View File

@ -0,0 +1,35 @@
# AO Tennis 2 1.7.0
# BID: 01EB7A6DE827BFD9
DECLARATIONS:
-
type: variable
name: dr_target
value_type: float
default_value: 0.03333333333
evaluate: "1 / FPS_TARGET"
-
type: code
name: tripleBuffer
instructions: [
[mov, w9, 3],
[str, w9, [x21, 0x1A0]],
[mov, w8, w9],
[ret]
]
MASTER_WRITE:
-
type: asm_a64
main_offset: 0x3DBAFC
instructions: [
[bl, _tripleBuffer()]
]
# Redirect Dynamic Resolution target
# REF: EC AF 40 B9 EB 07 9F 1A, first adrp + ldr below
-
type: asm_a64
main_offset: 0x131922C
instructions: [
[adrp, x12, $dr_target],
[ldr, s18, [x12, $dr_target]]
]

View File

@ -1,8 +1,6 @@
# Star Overdrive 1.0.10
# BID: 6D05923E7005E182
unsafeCheck: true
ALL_FPS:
# r.VSync
-

View File

@ -0,0 +1,16 @@
# Hob: The Definitive Edition 1.1.3
# BID: 4E7978E35F9D7490
ALL_FPS:
# r_dynamicResGPUTimeDrop
-
type: evaluate_write
address: [MAIN, 0x2F8A248]
value_type: float
value: ["0.96 * FRAMETIME_TARGET", "0.96 * FRAMETIME_TARGET"]
# r_dynamicResGPUTimeRaise
-
type: evaluate_write
address: [MAIN, 0x2F8A268]
value_type: float
value: ["0.84 * FRAMETIME_TARGET", "0.84 * FRAMETIME_TARGET"]

View File

@ -0,0 +1,38 @@
# 귀멸의 칼날 히노카미 혈풍담 1.53
# BID: 14C878ECCA9D7CB5
ALL_FPS:
# Disable bUseFixedFrameRate to unlock framerate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
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
# Disable CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Disney Epic Mickey: Rebrushed 1.0.4
# BID: D334BC060F1FA3AE
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6E35A58, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6E636F8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6666668, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,55 @@
# トラインぜんまい仕掛けの陰謀Trine 5: A Clockwork Conspiracy 1.0.5
# BID: 8322528255D2CC63
# To update dynamic resolution offsets look at fb::renderer::ResolutionScaler::update
DECLARATIONS:
-
type: variable
name: dr_target_max
value_type: double
default_value: 34
evaluate: "1.02 * FRAMETIME_TARGET"
-
type: variable
name: dr_target_min
value_type: double
default_value: 32
evaluate: "0.96 * FRAMETIME_TARGET"
MASTER_WRITE:
# Change double buffer to triple buffer
-
type: asm_a64
main_offset: 0x138A024
instructions: [
[mov, w8, 3]
]
# Allow changing dynamic resolution timings
# Max
-
type: asm_a64
main_offset: 0x25992CC
instructions: [
[adrp, x8, $dr_target_max],
[adrp, x22, 0x5ddf000],
[ldr, d2, [x8, $dr_target_max]]
]
# Min - changed address to MAIN + 0x7D05208
-
type: asm_a64
main_offset: 0x2599344
instructions: [
[adrp, x10, $dr_target_min],
[ldr, d5, [x10, $dr_target_min]]
]
-
type: asm_a64
main_offset: 0x2599380
instructions: [
[adrp, x10, $dr_target_min]
]
-
type: asm_a64
main_offset: 0x2599390
instructions: [
[ldr, d6, [x10, $dr_target_min]]
]

View File

@ -0,0 +1,19 @@
# Octopath Traveler 0 1.0.2
# BID: FEABC8D141EECCA5
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6C5A6E8, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7C7C8E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,19 @@
# VARIOUS DAYLIFE 1.0.1
# BID: A2DDF741D0E37D15
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x60D56A0, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x68986B0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Upin & Ipin Universe 1.0.2
# BID: 301E4A1FB0BA1575
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x9302098, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x933D5C0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x831EEE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Upin & Ipin Universe 1.0.1
# BID: A15393F630A9767F
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x986C098, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x98A8790, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8886110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Funko Fusion 3.4.1
# BID: 4CD22960CFB56AB4
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x7C58A68, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8C34078, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8C61F60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,10 @@
# World's End Club 1.0.6
# BID: F00EFE6846627B4A
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x6AC31C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -0,0 +1,32 @@
# Made in Abyss: Binary Star Falling into Darkness 1.0.3
# BID: DFC7E8979528DE44
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x657D2C8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6D2E330, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.DynamicRes.TargetedGPUHeadRoomPercentage
# Because game is using 5.0 while default is 10.0 and with their value reaching target FPS above 30 is hard
-
type: write
address: [MAIN, 0x6D2E348, 0]
value_type: float
value: [10.0, 10.0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6D58E68, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,8 +1,6 @@
# V-Rally 4 1.2.0
# BID: EB8A679B5DDD0060
unsafeCheck: true
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-

View File

@ -0,0 +1,10 @@
# Tamagotchi Plaza 1.0.6
# BID: E73AB32BD1B16098
ALL_FPS:
# UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x68B81F8, 0xB8, 0]
value_type: int32
value: -1

View File

@ -0,0 +1,10 @@
# パックマンワールド2 リ・パック 1.0.3
# BID: B70D6561B718C8E0
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x87DE838, 0x58]
value_type: uint32
value: "2352000 * FPS_TARGET"

View File

@ -0,0 +1,19 @@
# Little Nightmares III 1.0.4
# BID: 911284C45A26DD34
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7CB0E48, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x74BC210, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,27 @@
# ウムランギジェネレーション 1.6.6.0
# BID: 372AB37327DB2C31
DECLARATIONS:
-
type: variable
name: fps_lock
value_type: float
default_value: 0.03333333333
evaluate: "1 / FPS_TARGET"
MASTER_WRITE:
# Read FPS Lock from MAIN+0x49FCFF0
## REF: 81 1a 40 bd 02 10 2e 1e
## REF: FPSTarget.<>d__6::MoveNext()
-
type: asm_a64
main_offset: 0x2DF1E60
instructions: [
[adrp, x8, $fps_lock],
[ldr, s1, [x8, $fps_lock]],
[nop]
]
ALL_FPS:
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Formula Legends 1.0.7
# BID: 349E9751D50B3B88
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x839AF68, 0]
value_type: float
value: [FRAMETIME_TARGET, FRAMETIME_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x73B6EE8, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x83D6780, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Formula Legends 1.0.8
# BID: C26EE97D7ECDE83B
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x83C8F68, 0]
value_type: float
value: [FRAMETIME_TARGET, FRAMETIME_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x73E4EE8, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8404780, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,8 +1,6 @@
# The Caligula Effect: Overdose 1.01
# BID: A953B35A45BEA33D
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal
-

View File

@ -0,0 +1,25 @@
# Double Dragon Revive N1.10
# BID: DBD5C9EC799E65A9
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x82DAE98, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x92B8D48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x92E6A58, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,10 @@
# WRCジェネレーションズ 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

@ -0,0 +1,25 @@
# Wizard of Legend 2 1.1.0b
# BID: F8FA82D6A1BFE328
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x85D8B28, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x75EE990, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x86132B8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,19 @@
# 真・女神転生Ⅴ 1.0.2
# BID: 019FBFE7738EA314
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x75F81D0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7621D70, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Tails Noir 1.0.1
# BID: EAAB46ED1E4989C0
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6E018F8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6E2F4C8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6633B08, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,19 @@
# ウルトラエージ 2.0.4
# BID: CA77083E259D87A2
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7984A48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x79B22F8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,8 +1,6 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# The Witcher 3: Wild Hunt - Complete Edition 4.04b
# BID: 4BC4A8A814FD46A4
unsafeCheck: true
ALL_FPS:
# DRGameTargetFrameTimeInMs
-

View File

@ -1,8 +1,6 @@
# The Dark Pictures Anthology: Man of Medan 1.0.1
# BID: 2C7A626BA5F25D5F
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-

View File

@ -0,0 +1,25 @@
# Lynked: Banner of the Spark 1.2.3
# BID: 98C2DD2B041D3CCC
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7EB5348, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7EE3028, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x76E6488, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,26 @@
# Labirynth Of The Demon King 5.233.V1SEP3
# BID: 9BA2F2849F9D9FDF
ALL_FPS:
# Disable FixedFrameRate
-
type: write
address: [MAIN, 0x582FF08, 0x7A4]
address_unsafe: true
value_type: uint32
value: 7
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5830828, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5631E58, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# SWORD ART ONLINE Fractured Daydream EUR 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

@ -0,0 +1,25 @@
# 모비드: 분노의 군주 1.02
# BID: 55DFB4A664D8B596
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x5DAC3D8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x657FEE8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x65AD888, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,10 @@
# Project Nightmares Case 36: Henrietta Kedward 1.0.3
# BID: 72AE4B77322A5B1B
ALL_FPS:
# DynamicResolution_TypeInfo
-
type: evaluate_write
address: [MAIN, 0x475AB98, 0xB8, 0]
value_type: double
value: [FPS_TARGET, FRAMETIME_TARGET]

View File

@ -0,0 +1,25 @@
# Taxi Driver - The Simulation 1.0.0
# BID: 2972E95EEFF95144
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6437618, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x64645B0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x586A018, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,25 @@
# Super Street: Racer 1.0.1
# BID: 8E82D24A9B7504FB
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6B6E560, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2", "TruncDec(FRAMETIME_TARGET, 2)"]
# r.VSync
-
type: write
address: [MAIN, 0x632F270, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6B930B8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,21 @@
# The Hundred Line -Last Defense Academy- US 1.1.2
# BID: D1D3FFB94AB458B4
# Last found function with REF: FD 7B BE A9 F3 0B 00 F9 FD 03 00 91 E0 03 01 2A stores some code related to playing above 60 FPS. Look at it if someone will have an issue playing above 60 FPS.
unsafeCheck: true
ALL_FPS:
# FPS Lock
# REF: 1B 41 00 00
-
type: evaluate_write
address: [MAIN, 0xC95D10]
value_type: uint32
value: FRAMETIME_TARGET * 1000
# Unknown value, but set in the same function as FPS lock, so it may be important
# REF: 3C 00 00 00 01 00 00 00 00 00 00 00
-
type: evaluate_write
address: [MAIN, 0xC95CDC]
value_type: uint32
value: FPS_TARGET

View File

@ -0,0 +1,10 @@
# Nice Day for Fishing 1.0.7
# BID: 1A371F609F4B6172
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x4D2C6C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

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