mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2026-01-09 15:43:14 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a270126d52 | ||
|
|
5a107e599e | ||
|
|
a7853bf3ac | ||
|
|
164babb735 | ||
|
|
aaa9c7c28d | ||
|
|
2e2398427c | ||
|
|
ef2146f5c4 | ||
|
|
f44fffe49a | ||
|
|
c37dd270f8 |
@ -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 сервер, работающий на фоне.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
@ -1,8 +1,6 @@
|
||||
# WRC Generations 1.2.2
|
||||
# BID: B8BE1CFAE53CAEBE
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||
-
|
||||
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -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]]
|
||||
]
|
||||
@ -1,8 +1,6 @@
|
||||
# Sniper Elite 4 1.0.3
|
||||
# BID: 4EEA2970DF38ECE1
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
|
||||
@ -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()]
|
||||
]
|
||||
@ -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
|
||||
@ -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)
|
||||
-
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# ウィッチャー3 ワイルドハント コンプリートエディション 4.04b
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
# Zombie Army 4: Dead War 1.1.1
|
||||
# BID: 12024D08CCFD25EB
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
|
||||
@ -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]
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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))"
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# 《巫師 3:狂獵》-完全版 4.04b
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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"]
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -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]
|
||||
]
|
||||
@ -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]]
|
||||
]
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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]]
|
||||
]
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -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]
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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]]
|
||||
]
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -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
|
||||
@ -1,8 +1,6 @@
|
||||
# DOOM 1.4
|
||||
# DOOM `West` 1.4
|
||||
# BID: 2847991952B3D7AB
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# rs_460Threshold (default is 0.285)
|
||||
-
|
||||
|
||||
@ -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]
|
||||
]
|
||||
@ -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]]
|
||||
]
|
||||
@ -1,8 +1,6 @@
|
||||
# Star Overdrive 1.0.10
|
||||
# BID: 6D05923E7005E182
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
|
||||
@ -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"]
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -0,0 +1,55 @@
|
||||
# トライン5:ぜんまい仕掛けの陰謀(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]]
|
||||
]
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -1,8 +1,6 @@
|
||||
# V-Rally 4 1.2.0
|
||||
# BID: EB8A679B5DDD0060
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||
-
|
||||
|
||||
@ -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
|
||||
@ -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"
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -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
|
||||
@ -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))"
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
-
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
# The Dark Pictures Anthology: Man of Medan 1.0.1
|
||||
# BID: 2C7A626BA5F25D5F
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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]
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
Loading…
x
Reference in New Issue
Block a user