Compare commits

..

No commits in common. "main" and "2.3-R4" have entirely different histories.
main ... 2.3-R4

219 changed files with 125 additions and 3555 deletions

View File

@ -8,14 +8,13 @@
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
### [Ultra 2.4](https://github.com/Ultra-NX/UltraNX/releases) Поддерживает HOS 20.0.1 и все ревизии консолей
### [Ultra 2.3](https://github.com/Ultra-NX/Ultra/releases/latest/) Поддерживает HOS 19.0.1 и все ревизии консолей
## Особенности Ultra
* Предварительно настроенный OC Switchcraft (Преемник OC-Suite) с пресетами.
* По умолчанию уже есть андервольт, который заметно снижает потребление консоли, и небольшой разгон памяти, который сделает игры плавнее.
* Лучший кастомизатор разгона для Свитч - [Ultra-Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Ultra-Tuner), позволяющий настраивать разгон прямо с консоли. Был первым, и остается неповторимым.
* Сборка максимально легкая и не нагруженная. В ней нет лишнего, минимум необходимый для разгона и комфортного использования.
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через [Ultra Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
@ -24,7 +23,7 @@
* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила.
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей:
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему. Так же исправлена работа старых форвардеров (важно для хоумбрю игр/эмуляторов).
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловю систему.
* Форки SaltyNX и FPSLocker, с поддержкой изменения частоты обновления экрана и с поддержкой OLED.
* Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными.
* Форк Status Monitor с отображением текущих вольтажей и уникальными модулями Микро Оверлея, пресеты которых можно менять через Ultra Tuner.
@ -40,12 +39,11 @@
1. **Установленные пейлоады**:
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Программа для снятия ключей консоли.
* [Lockpick_RCM](https://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837) - Программа для снятия ключей консоли.
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
1. **Установленные Homebrew**
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Современное Хоумбрю Меню, аналог nx-hbmenu
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов.
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - Программа для обновления системного ПО.
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Ultra Tuner](https://github.com/Ultra-NX/UltraNX/wiki/Tuner-RU#ultra-tuner) есть выбор из EN-RU-PTBR-ZHCN.
@ -64,20 +62,20 @@
- [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх.
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов.
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - Оверлей для управления ReverseNX.
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Оверлей для включения и отключения установленных системных модулей.
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей.
1. **Доступные для скачивания через [Ultra Tuner](https://github.com/Ultra-NX/UltraNX/wiki/Tuner-RU#ultra-tuner)**
* Homebrews:
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Здесь можно скачать DBI с нужным языком, или обновить имеющийся.
* [Linkalho](https://gbatemp.net/download/linkalho.38822) - Программа для привязки аккаунта.
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP.
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Клиент Moonlight, позволяет транслировать на консоль игры с PC.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. Старая версия, которая многим нравится больше новой.
* Overlays:
* [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Форк Status Monitor для UltraNX, поддерживает много пресетов Micro-оверлея, и обладает рядом уникальных фишек.

View File

@ -6,14 +6,13 @@
#
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
### [Ultra 2.4](https://github.com/Ultra-NX/UltraNX/releases) Supports HOS 20.0.1 and all console revisions
### [Ultra 2.3](https://github.com/Ultra-NX/Ultra/releases/latest/) Supports HOS 19.0.1 and all console revisions
## Features of Ultra
* Pre-configured OC Switchcraft (Successor to OC-Suite) with presets.
* By default, there's already an undervolt that noticeably reduces the console's consumption, and a slight memory overclock that will make games smoother.
* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique.
* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use.
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the Ultra Tuner.
@ -36,12 +35,11 @@
1. **Installed Payloads**:
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Program for dumping console keys.
* [Lockpick_RCM](https://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837/) - Program for dumping console keys.
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system.
1. **Installed Homebrew**
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Modern Homebrew Menu, analogous to nx-hbmenu
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Program to update Ultra to the current version, as well as to download cheats.
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - A program for updating OS.
* [DBI](https://github.com/rashevskyv/dbi) - The best file manager, save manager and program installer on the console. If you need a different localization - Updater has a choice of EN-RU-PTBR-ZHCN.
@ -60,20 +58,20 @@
- [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games.
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats.
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - ReverseNX control overlay.
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Overlay for enabling and disabling installed system modules.
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Overlay for enabling and disabling installed system modules.
1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
* Homebrews:
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Here you can download a DBI with the desired language, or update an existing one.
* [Linkalho](https://gbatemp.net/download/linkalho.38822/) - Account linking program.
* [Tinfoil](https://tinfoil.io) - Installer and game store.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator.
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Moonlight client, allows to stream games from PC.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one.
* Overlays:
* [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Status Monitor fork for UltraNX, supports many Micro-overlay presets, and has a number of unique features.

View File

@ -49,8 +49,4 @@ X0100964012528000
;Donkey Kong Country: Tropical Freeze
;Crash at second level
X0100C1F0051B6000
;Death Road to Canada
;1.0.8 crash
X0100423009358000
X0100C1F0051B6000

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
# SONIC FORCES 1.1.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
unsafeCheck: true
@ -11,27 +12,10 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
# FPS target (FPS * 2)
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET
value: "FPS_TARGET * 2"

View File

@ -1,6 +1,7 @@
# SONIC FORCES 1.1.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
unsafeCheck: true
@ -11,27 +12,10 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
# FPS target (FPS * 2)
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET
value: "FPS_TARGET * 2"

View File

@ -1,27 +0,0 @@
# Goat Simulator 3 1.0.7.6
# BID: 8D4FD57DB7D63120
unsafeCheck: false
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x99DD468, 0]
value_type: float
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9A03290, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x920DB48, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Session: Skate Sim 1.1.4
# BID: F327FFD8C2E85895
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7247868, 0]
value_type: float
value: ["FRAMETIME_TARGET", "FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7275438, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6A7A668, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# GUNDAM BREAKER 4 1.12.0
# BID: 0FF5CF27929E07F9
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0xA080D48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xA0AE7E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x98B2D28, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# GUNDAM BREAKER 4 1.11.0
# BID: E82F8A34CCC706E7
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0xA03AD48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xA0687E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x986C958, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,30 +0,0 @@
# S.T.A.L.K.E.R.: Clear Sky 1.0.3
# BID: C7E4E6F4167C8E3A
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17D4774]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F18E8]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A5F36C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17D4750]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View File

@ -4,40 +4,25 @@
unsafeCheck: true
MASTER_WRITE:
# Remove FPS Lock
-
type: bytes
main_offset: 0x4835A4
value_type: uint32
value: 0xD503201F
ALL_FPS:
# Switch game to 60 FPS mode
-
type: write
address: [MAIN, 0xF0043C]
value_type: uint32
value: 1
# FPS Target
-
type: evaluate_write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint32
value: "19200000 / FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xED96A8, 0x28]
value_type: uint32
value: "1920000 / FPS_TARGET"
value_type: uint64
value: "(FRAMETIME_TARGET / 2) * 19200"
# FPS 2D Game Speed Target
-
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: "1 / FPS_TARGET"
value: "0.5 / FPS_TARGET"
# FPS 3D Game Speed Target
-
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: "1 / FPS_TARGET"
value: "0.5 / FPS_TARGET"
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Expeditions: A Mudrunner Game 1.14.0.0
# BID: 08C88691FFA5407C
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x36AEF00
-
type: bytes
main_offset: 0x1718A64
value_type: uint32
value:
- 0xD000FCAC # adrp x12, #0x36AE000
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
# default value
-
type: bytes
main_offset: 0x36AEF00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x36AEF00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -1,27 +0,0 @@
# Expeditions: A Mudrunner Game 1.16.0.0
# BID: 3DCE80782561A0CA
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x36B4F00
-
type: bytes
main_offset: 0x171E454
value_type: uint32
value:
- 0xD000FCAC # adrp x12, #0x36B4000
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
# default value
-
type: bytes
main_offset: 0x36B4F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x36B4F00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -1,27 +0,0 @@
# Expeditions: A Mudrunner Game 1.13.0.0
# BID: ED20E42E41B58D88
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x3628F00
-
type: bytes
main_offset: 0x16AFA80
value_type: uint32
value:
- 0xB000FBCC # adrp x12, #0x3628000
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
# default value
-
type: bytes
main_offset: 0x3628F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x3628F00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -1,12 +0,0 @@
# ABYSS SEEKER――What Do You See Deep in Abyss 1.1.0.012
# BID: C17F9C48EEFAB9DF
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x7B48F40, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,12 +0,0 @@
# ABYSS SEEKER――What Do You See Deep in Abyss 1.2.0.020
# BID: FE67FB035271B5E4
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x7B62100, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,60 +0,0 @@
# Amnesia Collection 1.3.0
# BID: F6FB99E54347E740
# Double buffer is hardcoded line by line, it's hard to make it triple
unsafeCheck: true
MASTER_WRITE:
# Redirect FPS Lock and Dynamic Resolution target values to MAIN + 0x21036F00
-
type: bytes
main_offset: 0x13281C
value_type: uint32
value:
- 0x90107828 # ADRP X8, 0x21036000
- 0xF9478108 # LDR X8, [X8, 0xF00]
-
type: bytes
main_offset: 0x3E324C
value_type: uint32
value:
- 0xF0106288 # ADRP X8, 0x21036000
- 0xF9478108 # LDR X8, [X8, 0xF00]
# NOP updating Dynamic Resolution target value
-
type: bytes
main_offset: 0x2D94E8
value_type: uint32
value:
- 0xB0106AE9 # ADRP X9, 0x21036000
- 0xB94F0929 # LDR W9, [X9, 0xF08]
-
type: bytes
main_offset: 0x597C5C
value_type: uint32
value:
- 0xF01054E9 # ADRP X9, 0x21036000
- 0xB94F0929 # LDR W9, [X9, 0xF08]
# Default values
-
type: bytes
main_offset: 0x21036F00
value_type: double
value: 0.03333333333333333
-
type: bytes
main_offset: 0x21036F08
value_type: float
value: 33.333333333333
ALL_FPS:
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0x21036F00]
value_type: double
value: "1 / FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x21036F08]
value_type: float
value: FRAMETIME_TARGET

View File

@ -1,21 +0,0 @@
# Big Helmet Heroes 1.0.3
# BID: 2CF926BBD5D1AB4D
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7012260, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5BB0718, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,356 +0,0 @@
# Xenoblade Chronicles X: Definitive Edition 1.0.2
# BID: 2A720C7CE5C84905
unsafeCheck: true
MASTER_WRITE:
# Dynamic speed mod for stuff like UI, lipsync, grass and rain
## Redirect nvnQueuePresentTexture call to code cave at MAIN+0x1735050
-
type: bytes
main_offset: 0x95EED8
value_type: uint32
value: 0x1437585E
## Code Cave (save floats for speed factor to MAIN+0x47BE268, frametime as FPS in MAIN+0x47BE26C, frametime in s in MAIN+0x47BE270)
-
type: bytes
main_offset: 0x1735050
value_type: uint32
value:
- 0xD63F0100
- 0x97FFF52B
- 0xB0018448
- 0xF9413107
- 0xF9013100
- 0xB5000047
- 0x17C8A79D
- 0xCB070000
- 0x97FFF528
- 0xB0018448
- 0xB9430101
- 0xEB00003F
- 0x5400004B
- 0xAA0103E0
- 0xD2881541
- 0xF2A07F21
- 0xEB00003F
- 0x5400004C
- 0xAA0103E0
- 0x9E630000
- 0xD00005A0
- 0xFD46AC01
- 0x1E611800
- 0xD2807D00
- 0x9E630001
- 0x1E601821
- 0xB0018440
- 0x1E624021
- 0xBD026C01
- 0x1E27D002
- 0x1E211842
- 0xBD026802
- 0xD2807D01
- 0x9E630021
- 0x1E611801
- 0x1E624021
- 0xBD027001
- 0x17C8A77E
## Default values for code cave
-
type: bytes
main_offset: 0x47BE268
value_type: float
value: [1.0, 30.0, 0.033333333333]
-
type: bytes
main_offset: 0x47BE300
value_type: uint32
value: 33333333
## Function 1 to speed factor // Usage unknown
-
type: bytes
main_offset: 0x286968
value_type: uint32
value:
- 0x900229D5
- 0xF9470D00
- 0xBD426AAA
## Function 3 to speed factor // Usage unknown
-
type: bytes
main_offset: 0xA16F00
value_type: uint32
value:
- 0x9001ED40
- 0xBD426808
## Function 4 to FPS // UI Speed
-
type: bytes
main_offset: 0xA1F060
value_type: uint32
value:
- 0xF001ECE0
- 0x1E270100
- 0xBD426C00
## Function 5 to FPS // Usage unknown
-
type: bytes
main_offset: 0x2672DC
value_type: uint32
value:
- 0xF0022A20
- 0x1E270100
- 0x7940D268
- 0xBD426C05
## Function 6 to FPS
-
type: bytes
main_offset: 0x26DB70
value_type: uint32
value:
- 0xB0022A80
- 0xBD426C00
- 0x1E390000
- 0x528000C9
- 0x1AC90808
## Function 7 to Frametime in s // Gameplay + cutscene speed
-
type: bytes
main_offset: 0x1E2924
value_type: uint32
value: 0x90022EE9
-
type: bytes
main_offset: 0x1E2938
value_type: uint32
value: 0xBD427120
# Adjust various elements related to fighting
-
type: bytes
main_offset: 0x1E8F48
value_type: uint32
value: 0x1455308B
## Code cave
-
type: bytes
main_offset: 0x1735174
value_type: uint32
value:
- 0xB0018449
- 0xBD426920
- 0x17AACF74
## Fix gun speed
-
type: bytes
main_offset: 0x30FACC
value_type: uint32
value: 0xD503201F
# Redirect DR Target to MAIN+0x47BEF00
-
type: bytes
main_offset: 0x13A90B4
value_type: uint32
value:
- 0xB001A0A8
- 0xBD4F0100
## Default value
-
type: bytes
main_offset: 0x47BEF00
value_type: float
value: 0.01666666666
# Adjust camera speed rotation dynamically
## Code cave
-
type: bytes
main_offset: 0x1735108
value_type: uint32
value:
- 0xB0018448
- 0xBD426908
- 0x1E200900
- 0x1E202008
- 0x540000AA
- 0x1E214000
- 0x1E21C000
- 0x1E214000
- 0xD65F03C0
- 0x1E21C000
- 0xD65F03C0
## Connect function 1
-
type: bytes
main_offset: 0x1E17A0
value_type: uint32
value: 0x94554E5A
## Connect function 2
-
type: bytes
main_offset: 0x1E17B0
value_type: uint32
value: 0xAD7D03A1
-
type: bytes
main_offset: 0x1E17BC
value_type: uint32
value: 0x94554E53
# Force 1s sleep to synchronize audio if cutscene detected
## Use function responsible for writing type 4 of cutscene
-
type: bytes
main_offset: 0x2FB0D8
value_type: uint32
value: 0x1450E820
### Code cave
-
type: bytes
main_offset: 0x1735158
value_type: uint32
value:
- 0x52800094
- 0xD00045C0
- 0xB90AF414
- 0xD2994000
- 0xF2A77340
- 0x97FFF3D9
- 0x17AF17DB
# Adjust Field Action gauge bar speed
-
type: bytes
main_offset: 0xE5E00
value_type: uint32
value:
- 0xB00236C0
- 0xF000E369
- 0xBD426808
## Fix for FN Site
-
type: bytes
main_offset: 0xE5858
value_type: uint32
value: 0x14593E24
### Code cave
-
type: bytes
main_offset: 0x17350E8
value_type: uint32
value:
- 0xBD40D260
- 0xB0018440
- 0xBD426801
- 0x1E210800
- 0x17A6C1D9
# Fix long jump when not running
-
type: bytes
main_offset: 0x23EF70
value_type: uint32
value: 0x1453D863
## Code cave
-
type: bytes
main_offset: 0x17350FC
value_type: uint32
value:
- 0x1E27D00B
- 0x1E2B296B
- 0x17AC279C
# Adjust QTE Speed
## Code cave
-
type: bytes
main_offset: 0x1735134
value_type: uint32
value:
- 0xB0018454
- 0xBD426A81
- 0x1400001B
-
type: bytes
main_offset: 0x17351A8
value_type: uint32
value:
- 0xBD412262
- 0x1E210841
- 0x17BA4435
## Connect function
-
type: bytes
main_offset: 0x5C6280
value_type: uint32
value: 0x1445BBAD
# Adjust Overdrive counter, Follow Ball speed
## Code cave
-
type: bytes
main_offset: 0x1735180
value_type: uint32
value:
- 0xB0018440
- 0xBD427000
- 0xD65F03C0
## Connect function
-
type: bytes
main_offset: 0x67354
value_type: uint32
value: 0x945B36AB
# Fix fog speed
-
type: bytes
main_offset: 0x296AE0
value_type: uint32
value:
- 0x90022948
- 0xBD426902
- 0x945279B3
## Code cave
-
type: bytes
main_offset: 0x17351B4
value_type: uint32
value:
- 0x1E21C042
- 0x1F020020
- 0xD65F03C0
ALL_FPS:
# FPS Target
-
type: evaluate_write
address: [MAIN, 0x47BE300]
value_type: uint32
value: "FRAMETIME_TARGET * 1000000"
# FPS Lock
# ref: 00 01 00 b9 2a 01 00 b9 c0 03 5f d6
-
type: write
address: [MAIN, 0x1D943A0]
value_type: int32
value: [1, 1]
# DR Target
-
type: evaluate_write
address: [MAIN, 0x47BEF00]
value_type: float
value: "1 / FPS_TARGET"
# Lock game to 30 FPS when complex/prerendered cutscene is played
## Adjusts DR target
-
type: compare
compare_address: [MAIN, 0x1FEFAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 2
address: [MAIN, 0x47BEF00]
value_type: float
value: 0.03333333333
## Force OS to run at 60 Hz with interval 2
-
type: compare
compare_address: [MAIN, 0x1FEFAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 2
address: [MAIN]
value_type: refresh_rate
value: 30

View File

@ -1,356 +0,0 @@
# Xenoblade Chronicles X: Definitive Edition 1.0.1
# BID: 3F2425864CF22684
unsafeCheck: true
MASTER_WRITE:
# Dynamic speed mod for stuff like UI, lipsync, grass and rain
## Redirect nvnQueuePresentTexture call to code cave at MAIN+0x1744D90
-
type: bytes
main_offset: 0x96ECD8
value_type: uint32
value: 0x1437582E
## Code Cave (save floats for speed factor to MAIN+0x47CD268, frametime as FPS in MAIN+0x47CD26C, frametime in s in MAIN+0x47CD270)
-
type: bytes
main_offset: 0x1744D90
value_type: uint32
value:
- 0xD63F0100
- 0x97FFF52B
- 0xB0018448
- 0xF9413107
- 0xF9013100
- 0xB5000047
- 0x17C8A7CD
- 0xCB070000
- 0x97FFF528
- 0xB0018448
- 0xB9430101
- 0xEB00003F
- 0x5400004B
- 0xAA0103E0
- 0xD2881541
- 0xF2A07F21
- 0xEB00003F
- 0x5400004C
- 0xAA0103E0
- 0x9E630000
- 0xD00005A0
- 0xFD469C01
- 0x1E611800
- 0xD2807D00
- 0x9E630001
- 0x1E601821
- 0xB0018440
- 0x1E624021
- 0xBD026C01
- 0x1E27D002
- 0x1E211842
- 0xBD026802
- 0xD2807D01
- 0x9E630021
- 0x1E611801
- 0x1E624021
- 0xBD027001
- 0x17C8A7AE
## Default values for code cave
-
type: bytes
main_offset: 0x47CD268
value_type: float
value: [1.0, 30.0, 0.033333333333]
-
type: bytes
main_offset: 0x47CD300
value_type: uint32
value: 33333333
## Function 1 to speed factor // Usage unknown
-
type: bytes
main_offset: 0x2864C8
value_type: uint32
value:
- 0xF0022A35
- 0xF9470D00
- 0xBD426AAA
## Function 3 to speed factor // Usage unknown
-
type: bytes
main_offset: 0xA26D00
value_type: uint32
value:
- 0xF001ED20
- 0xBD426808
## Function 4 to FPS // UI Speed
-
type: bytes
main_offset: 0xA2EE60
value_type: uint32
value:
- 0xF001ECE0
- 0x1E270100
- 0xBD426C00
## Function 5 to FPS // Usage unknown
-
type: bytes
main_offset: 0x266E3C
value_type: uint32
value:
- 0xF0022B20
- 0x1E270100
- 0x7940D268
- 0xBD426C05
## Function 6 to FPS
-
type: bytes
main_offset: 0x26D6D0
value_type: uint32
value:
- 0x90022B00
- 0xBD426C00
- 0x1E390000
- 0x528000C9
- 0x1AC90808
## Function 7 to Frametime in s // Gameplay + cutscene speed
-
type: bytes
main_offset: 0x1E24E4
value_type: uint32
value: 0xF0022F49
-
type: bytes
main_offset: 0x1E24F8
value_type: uint32
value: 0xBD427120
# Adjust various elements related to fighting
-
type: bytes
main_offset: 0x1E8B08
value_type: uint32
value: 0x145570EB
## Code cave
-
type: bytes
main_offset: 0x1744EB4
value_type: uint32
value:
- 0xB0018449
- 0xBD426920
- 0x17AA8F14
## Fix gun speed
-
type: bytes
main_offset: 0x30F62C
value_type: uint32
value: 0xD503201F
# Redirect DR Target to MAIN+0x47CDF00
-
type: bytes
main_offset: 0x13B8DF4
value_type: uint32
value:
- 0xB001A0A8
- 0xBD4F0100
## Default value
-
type: bytes
main_offset: 0x47CDF00
value_type: float
value: 0.01666666666
# Adjust camera speed rotation dynamically
## Code cave
-
type: bytes
main_offset: 0x1744E48
value_type: uint32
value:
- 0xB0018448
- 0xBD426908
- 0x1E200900
- 0x1E202008
- 0x540000AA
- 0x1E214000
- 0x1E21C000
- 0x1E214000
- 0xD65F03C0
- 0x1E21C000
- 0xD65F03C0
## Connect function 1
-
type: bytes
main_offset: 0x1E1360
value_type: uint32
value: 0x94558EBA
## Connect function 2
-
type: bytes
main_offset: 0x1E1370
value_type: uint32
value: 0xAD7D03A1
-
type: bytes
main_offset: 0x1E137C
value_type: uint32
value: 0x94558EB3
# Force 1s sleep to synchronize audio if cutscene detected
## Use function responsible for writing type of cutscene to write its ID if it's 8 or 16 (or 0 for any other) to MAIN+0x47CDFFF
-
type: bytes
main_offset: 0x2FAC38
value_type: uint32
value: 0x14512898
### Code cave
-
type: bytes
main_offset: 0x1744E98
value_type: uint32
value:
- 0x52800094
- 0xD00045C0
- 0xB90AF414
- 0xD2994000
- 0xF2A77340
- 0x97FFF3D9
- 0x17AED763
# Adjust Field Action gauge bar speed
-
type: bytes
main_offset: 0xE5B00
value_type: uint32
value:
- 0x90023740
- 0xD000E3E9
- 0xBD426808
## Fix for FN Site
-
type: bytes
main_offset: 0xE5558
value_type: uint32
value: 0x14597E34
### Code cave
-
type: bytes
main_offset: 0x1744E28
value_type: uint32
value:
- 0xBD40D260
- 0xB0018440
- 0xBD426801
- 0x1E210800
- 0x17A681C9
# Fix long jump when not running
-
type: bytes
main_offset: 0x23EAD0
value_type: uint32
value: 0x145418DB
## Code cave
-
type: bytes
main_offset: 0x1744E3C
value_type: uint32
value:
- 0x1E27D00B
- 0x1E2B296B
- 0x17ABE724
# Adjust QTE Speed
## Code cave
-
type: bytes
main_offset: 0x1744E74
value_type: uint32
value:
- 0xB0018454
- 0xBD426A81
- 0x1400001B
-
type: bytes
main_offset: 0x1744EE8
value_type: uint32
value:
- 0xBD412262
- 0x1E210841
- 0x17BA0261
## Connect function
-
type: bytes
main_offset: 0x5C5870
value_type: uint32
value: 0x1445FD81
# Adjust Overdrive counter, Follow Ball speed
## Code cave
-
type: bytes
main_offset: 0x1744EC0
value_type: uint32
value:
- 0xB0018440
- 0xBD427000
- 0xD65F03C0
## Connect function
-
type: bytes
main_offset: 0x67354
value_type: uint32
value: 0x945B76DB
# Fix fog speed
-
type: bytes
main_offset: 0x296640
value_type: uint32
value:
- 0xF00229A8
- 0xBD426902
- 0x9452BA2B
## Code cave
-
type: bytes
main_offset: 0x1744EF4
value_type: uint32
value:
- 0x1E21C042
- 0x1F020020
- 0xD65F03C0
ALL_FPS:
# FPS Target
-
type: evaluate_write
address: [MAIN, 0x47CD300]
value_type: uint32
value: "FRAMETIME_TARGET * 1000000"
# FPS Lock
# ref: 00 01 00 b9 2a 01 00 b9 c0 03 5f d6
-
type: write
address: [MAIN, 0x1DA33A0]
value_type: int32
value: [1, 1]
# DR Target
-
type: evaluate_write
address: [MAIN, 0x47CDF00]
value_type: float
value: "1 / FPS_TARGET"
# Lock game to 30 FPS when complex/prerendered cutscene is played
## Adjusts DR target
-
type: compare
compare_address: [MAIN, 0x1FFEAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 1
address: [MAIN, 0x47CDF00]
value_type: float
value: 0.03333333333
## Force OS to run at 60 Hz with interval 2
-
type: compare
compare_address: [MAIN, 0x1FFEAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 1
address: [MAIN]
value_type: refresh_rate
value: 30

View File

@ -1,27 +0,0 @@
# Star Overdrive 1.0.5
# BID: C0D9B410A09A4ADD
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x674B6E8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x77312F0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x776B850, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,30 +0,0 @@
# S.T.A.L.K.E.R.: Shadow Of Chornobyl 1.0.3
# BID: F7D1E815E44D0A56
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x165F4EC]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x167B9F0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x18E7ACC]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x165F2F0]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View File

@ -0,0 +1,27 @@
# Immortals Fenyx Rising 1.3.4
# BID: 70F3F6751D73C644
unsafeCheck: true
MASTER_WRITE:
# Game switches resolution to 13/15 of normal resolution when moving camera with right stick and game cannot handle target FPS
# Redirect reading DR time target to MAIN + 0xA7E4F00
-
type: bytes
main_offset: 0x15A9F10
value_type: uint32
value:
- 0xF00491C8
- 0xBD4F0101
# Default value
-
type: bytes
main_offset: 0xA7E4F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0xA7E4F00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -16,12 +16,6 @@ ALL_FPS:
address: [MAIN, 0x7451B78, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6C85418, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,38 +0,0 @@
# REYNATIS (US/EU) 1.0.8
# BID: 11D6D6158B566A74
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x391CEEC
value_type: uint32
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
- 0xB0021794 # adrp x20, #0x7c0d000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x391cf54
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x391CF54
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C0DF00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C0DF00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

View File

@ -1,38 +0,0 @@
# REYNATIS (US/EU) 1.0.10
# BID: 5F765D2CC4CDEF1C
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C22F00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x38E7ECC
value_type: uint32
value:
- 0xF00219D4 # adrp x20, #0x7c22000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x38e7f34
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x38E7F34
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C22F00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C22F00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

View File

@ -1,38 +0,0 @@
# REYNATIS (US/EU) 1.0.9
# BID: C59C89CCDF382602
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x391CEEC
value_type: uint32
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
- 0xB0021794 # adrp x20, #0x7c0d000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x391cf54
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x391CF54
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C0DF00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C0DF00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

View File

@ -1,7 +1,7 @@
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.50
# BID: 20503FA77FA416B7
unsafeCheck: false
unsafeCheck: true
ALL_FPS:
# Disable bUseFixedFrameRate in cutscenes to unlock framerate

View File

@ -1,7 +1,7 @@
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.51
# BID: 389E38618E93A5E0
unsafeCheck: false
unsafeCheck: true
ALL_FPS:
# Disable bUseFixedFrameRate in cutscenes to unlock framerate
@ -32,4 +32,4 @@ ALL_FPS:
type: write
address: [MAIN, 0x88C2C08, 0]
value_type: int32
value: [0, 0]
value: [0, 0]

View File

@ -1,35 +0,0 @@
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.52
# BID: 72F6F8B54276185C
unsafeCheck: true
ALL_FPS:
# Disable bUseFixedFrameRate in cutscenes to unlock framerate
-
type: write
address: [MAIN, 0x945A538, 0x810]
value_type: uint32
# Default is 0x47 in cutscenes, bUseFixedFrameRate |= 0x40
# By writing 7 we are making sure that other flags are maintained:
# bAllowMultiThreadedAnimationUpdate |= 4
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
# bCanBlueprintsTickByDefault |= 1
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x9425478, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x945ADE8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x88C6FD8, 0]
value_type: int32
value: [0, 0]

View File

@ -1,36 +0,0 @@
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.1.0
# BID: 153DB27728D41305
unsafeCheck: false
MASTER_WRITE:
# Redirect DR to MAIN + 0x2F11FF0
# REF: A9 24 89 52 49 A2 A7 72
-
type: bytes
main_offset: 0x10B09B4
value_type: uint32
value:
- 0xB000F309 # adrp x9, 0x2f11000
- 0xBD4FF121 # ldr s1, [x9, 0xff0]
- 0xD503201F # nop
## Default value
-
type: bytes
main_offset: 0x2F11FF0
value_type: float
value: 0.035714
ALL_FPS:
# Disable FPS Lock
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
-
type: write
address: [MAIN, 0x2ED8D10, 0xE0, 0x284]
value_type: uint8
value: 0
# DR Target
-
type: evaluate_write
address: [MAIN, 0x2F11FF0]
value_type: float
value: "1.01 / FPS_TARGET"

View File

@ -1,13 +0,0 @@
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.0.2
# BID: 5E43788065113530
unsafeCheck: false
ALL_FPS:
# Disable FPS Lock
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
-
type: write
address: [MAIN, 0x2E8DCF0, 0xE0, 0x284]
value_type: uint8
value: 0

View File

@ -1,13 +0,0 @@
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.0.1
# BID: A947DDE7826A3562
unsafeCheck: false
ALL_FPS:
# Disable FPS Lock
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
-
type: write
address: [MAIN, 0x2E8AB00, 0xE0, 0x284]
value_type: uint8
value: 0

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.76.8f16
# BID: 2213810D247A7293
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE36A68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.78.24C5
# BID: 641E15F899C4A057
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE66A68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.78.9aa6
# BID: 7E587D3ADCFD66BC
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE6FA68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.75.dd04
# BID: AF76EBEDE6A89F89
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE25A68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.77.4815
# BID: B8264CDBC1CBFFCF
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE3CA68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.76.fc6a
# BID: C953D6F477604662
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE3BA68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.79.b056
# BID: EB8D70AB59D8A4C2
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE71A68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# EA SPORTS FC 25 1.78.f2e9
# BID: F51888C0188BFA18
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE6FA68, 8]
value_type: double
value: FPS_TARGET

View File

@ -1,27 +0,0 @@
# Bravely Default II Asia 1.0.0
# BID: B5B9C7BB8D9716F6
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x72AEE90, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x73050F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x69AA5C0, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Funko Fusion 2.6.2
# BID: BDB53001D5CAD0AE
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x752BA68, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8507078, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8534F60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,75 +0,0 @@
# WARRIORS: Abyss 1.2.1
# BID: 293D73083149473E
unsafeCheck: true
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: bytes
main_offset: 0x6BD270
value_type: uint32
value:
- 0xB0004521 # ADRP X1, 0xF62000
- 0xBD44D821 # LDR S1, [X1, 0x4D8]
# Redirect DR Targets to MAIN+0x13F3F00
-
type: bytes
main_offset: 0x6BD314
value_type: uint32
value:
- 0xD00069A9 # ADRP X9, 0x13F3000
- 0xBD4F0121 # LDR S1, [X9, 0xF00]
-
type: bytes
main_offset: 0x6BD324
value_type: uint32
value:
- 0xD00069A9 # ADRP X9, 0x13F3000
- 0xBD4F0521 # LDR S1, [X9, 0xF04]
# Default values
-
type: bytes
main_offset: 0x13F3F00
value_type: float
value: [50, 40]
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, 0xF624E4]
value_type: uint32
value: "120 / FPS_LOCK_TARGET"
# Prevent from setting it as 0, otherwise game crashes
-
type: evaluate_compare
compare_address: [MAIN, 0xF624E4]
compare_type: "=="
compare_value_type: uint32
compare_value: 0
address: [MAIN, 0xF624E4]
value_type: uint32
value: 1
# Others
-
type: evaluate_write
address: [MAIN, 0xF624D8]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xF624DC]
value_type: uint32
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xF624E0]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x13F3F00]
value_type: float
value: ["1.5 * FRAMETIME_TARGET", "1.2 * FRAMETIME_TARGET"]

View File

@ -1,75 +0,0 @@
# WARRIORS: Abyss 1.1.0
# BID: 50C9028B61A0BB7F
unsafeCheck: true
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: bytes
main_offset: 0x6400D0
value_type: uint32
value:
- 0x90004441 # ADRP X1, 0xEC8000
- 0xBD44C021 # LDR S1, [X1, 0x4C0]
# Redirect DR Targets to MAIN+0x1359F00
-
type: bytes
main_offset: 0x640174
value_type: uint32
value:
- 0xB00068C9 # ADRP X9, 0x1359000
- 0xBD4F0121 # LDR S1, [X9, 0xF00]
-
type: bytes
main_offset: 0x640184
value_type: uint32
value:
- 0xB00068C9 # ADRP X9, 0x1359000
- 0xBD4F0521 # LDR S1, [X9, 0xF04]
# Default values
-
type: bytes
main_offset: 0x1359F00
value_type: float
value: [50, 40]
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, 0xEC84CC]
value_type: uint32
value: "120 / FPS_LOCK_TARGET"
# Prevent from setting it as 0, otherwise game crashes
-
type: evaluate_compare
compare_address: [MAIN, 0xEC84CC]
compare_type: "=="
compare_value_type: uint32
compare_value: 0
address: [MAIN, 0xEC84CC]
value_type: uint32
value: 1
# Others
-
type: evaluate_write
address: [MAIN, 0xEC84C0]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xEC84C4]
value_type: uint32
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xEC84C8]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x1359F00]
value_type: float
value: ["1.5 * FRAMETIME_TARGET", "1.2 * FRAMETIME_TARGET"]

View File

@ -1,27 +0,0 @@
# Ghostbusters: Spirits Unleashed Ecto Edition 1.11.0
# BID: 49F6F257348A42A1
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0xBBFBF70, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xBC21B48, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xB42B9B8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,21 +0,0 @@
# Cassette Beasts 1.8.0
# BID: B5DCAAA828DA5034
unsafeCheck: true
ALL_FPS:
# physics/common/physics_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x24]
value_type: int32
value: FPS_TARGET
# debug/settings/fps/force_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x30]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

View File

@ -1,24 +0,0 @@
# Sword of the Necromancer: Resurrection 1.0.4
# BID: 7C37B073B19F3CCF
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7577E00, 0]
value_type: float
value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x75AC298, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6DD3CB8, 0]
value_type: int32
value: [0, 0]

View File

@ -1,24 +0,0 @@
# Sword of the Necromancer: Resurrection 1.0.3
# BID: B70551B5A2D0F15F
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7573E00, 0]
value_type: float
value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x75A8298, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6DCFCB8, 0]
value_type: int32
value: [0, 0]

View File

@ -1,27 +0,0 @@
# The Plucky Squire 1.0.8
# BID: 892E6C4FE0D850B5
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6C06668, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6C34348, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6436CE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# The Plucky Squire 1.0.7
# BID: AFDEB128252898AC
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6C04668, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6C32348, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6434CE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# The Plucky Squire 1.0.6
# BID: FD3AC4FFB1B769D5
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x63A7538, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: evaluate_write
address: [MAIN, 0x6B76668, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6BA4328, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,4 +1,4 @@
# DRAGON QUEST XI S: Echoes of an Elusive Age - Definitive Edition 1.0.3/1.0.4
# DRAGON QUEST XI S: Echoes of an Elusive Age - Definitive Edition 1.0.3
# BID: 1719AABFA5EAE42B
unsafeCheck: true
@ -34,12 +34,6 @@ ALL_FPS:
address: [MAIN, 0x8501C48, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7879500, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,21 +0,0 @@
# Mario & Luigi: Brothership 1.0.1
# BID: BF0607AC795B593A
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x651F708, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6D1A498, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -16,12 +16,6 @@ ALL_FPS:
address: [MAIN, 0x73050F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x69AA5C0, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,21 +0,0 @@
# Grounded 1.12
# BID: F50C38B64DE532F7
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8E50418, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8E76560, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# F1 Manager 2024 1.11
# BID: 85F60F87D19B5270
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7FE9A28, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8023AA0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7826AA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,48 +0,0 @@
# Amber Isle 1.0.2
# BID: D36459588F85315D
unsafeCheck: true
MASTER_WRITE:
# Redirect all hardcoded doubles in DynamicResolutionHandler::Update to MAIN+0x9093F00
-
type: bytes
main_offset: 0x21FE24C
value_type: uint32
value:
- 0xB00374A8 # adrp x8, #0x9093000
- 0xFD478100 # ldr d0, [x8, #0xf00]
-
type: bytes
main_offset: 0x21FE1F0
value_type: uint32
value:
- 0xB00374A8 # adrp x8, #0x9093000
- 0xFD478101 # ldr d1, [x8, #0xf00]
-
type: bytes
main_offset: 0x21FE360
value_type: uint32
value:
- 0xB00374A8 # adrp x8, #0x9093000
- 0xFD478100 # ldr d0, [x8, #0xf00]
- 0x1E614000 # fneg d0, d0
-
type: bytes
main_offset: 0x21FE5E4
value_type: uint32
value:
- 0xB00374A8 # adrp x8, #0x9093000
- 0xFD478100 # ldr d0, [x8, #0xf00]
# default value
-
type: bytes
main_offset: 0x9093F00
value_type: double
value: 25.333333333333336
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x9093F00]
value_type: double
value: "FRAMETIME_TARGET * 0.76"

View File

@ -1,27 +0,0 @@
# LEGO Horizon Adventures 1.4.0
# BID: C6F56735E3837278
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x914A990, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0xA119148, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xA153AF0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,47 +0,0 @@
# DRAGON BALL XENOVERSE 2 FOR NINTENDO SWITCH 1.23.03
# BID: 8263E738648A23E3
# Double buffer is hardcoded in class, getting triple buffer is hard.
# Some graphical effects like aura have wrong speed outside of 15, 20, 30 and 60 FPS
unsafeCheck: false
ALL_FPS:
# Search those in Edizon by searching for 1/60 in title menu, then 1/30 when FPS lock is applied.
# FPS Lock
-
type: write
address: [MAIN, 0x4AE9D78, 0x698]
value_type: float
value: 0.0
# Unknown
-
type: write
address: [MAIN, 0x4AE9D78, 0x6A4]
value_type: float
value: 0.0
# Game Battle Speed Factor
-
type: evaluate_write
address: [MAIN, 0x4AE9D78, 0x6B0]
value_type: uint32
value: VSYNC_TARGET
# Cutscenes Speed Factor
-
type: evaluate_write
address: [MAIN, 0x4AE9D78, 0x6B4]
value_type: uint32
value: VSYNC_TARGET
# Target Speed
# REF: E9 03 00 32 09 01 00 39 C0 03 5F D6, first result, LDR instruction
-
type: evaluate_write
address: [MAIN, 0x24151D0]
value_type: float
value: "(1 / FPS_TARGET) * VSYNC_TARGET"
# Dynamic Resolution FPS Target
# REF: 16 4E A8 52 F7 03 60 B2, first ADRP + LDR above it
-
type: evaluate_write
address: [MAIN, 0x23F53C0, 0x1844]
value_type: float
value: "FPS_TARGET"

View File

@ -1,24 +0,0 @@
# Achilles Legends Untold 1.0.1
# BID: BDDD7E8FA07C8C75
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6967B08, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6995508, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6199738, 0]
value_type: int32
value: [0, 0]

View File

@ -1,27 +0,0 @@
# Bang-On Balls: Chronicles 1.0.5
# BID: 36C7E946E6C11C8E
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6DA4F38, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7574618, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x75A22D8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -10,12 +10,6 @@ ALL_FPS:
address: [MAIN, 0xB4E7838, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xAD15960, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.6.0
# BID: 252A2FD2AD6A13FE
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4722FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x1F3A018
value_type: uint32
value:
- 0x90013F49 # adrp x9, #0x4722000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4722FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4722FF0]
value_type: float
value: FPS_TARGET

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.5.2
# BID: 63C5A645F3E5985A
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4B90FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x2037260
value_type: uint32
value:
- 0xB0015AC9 # adrp x9, #0x4b90000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4B90FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4B90FF0]
value_type: float
value: FPS_TARGET

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.5.0
# BID: 909C5FD598A092B1
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4B8AFF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x2032F20
value_type: uint32
value:
- 0x90015AC9 # adrp x9, #0x4b8a000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4B8AFF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4B8AFF0]
value_type: float
value: FPS_TARGET

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.5.5
# BID: BC6CA2DEA3306522
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4B92FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x20391B0
value_type: uint32
value:
- 0xB0015AC9 # adrp x9, #0x4b92000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4B92FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4B92FF0]
value_type: float
value: FPS_TARGET

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.6.4
# BID: E152A4B27D349B17
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4728FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x1F3FD58
value_type: uint32
value:
- 0xB0013F49 # adrp x9, #0x4728000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4728FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4728FF0]
value_type: float
value: FPS_TARGET

View File

@ -1,28 +0,0 @@
# No Man's Sky 5.5.8
# BID: FB1995474546F7C0
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4B90FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x201C7F8
value_type: uint32
value:
- 0x90015BA9 # adrp x9, #0x4b90000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4B90FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4B90FF0]
value_type: float
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# Cuisineer 2.0.27
# BID: ACD959FBAECADE00
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x525D5A0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,56 +0,0 @@
# SAMURAI WARRIORS 5 JAP / 戦国無双5 1.03
# BID: 9B7A3AC5AF1A3B0D
unsafeCheck: true
# Block updating FPS Lock
MASTER_WRITE:
-
type: bytes
main_offset: 0x1240DFC
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1240E10
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1240E1C
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1240E24
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1240E2C
value_type: uint32
value: 0xBD41F100
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x1E761E0]
value_type: int32
value: VSYNC_TARGET
-
type: evaluate_write
address: [MAIN, 0x1E761E4]
value_type: float
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1E761E8]
value_type: int32
value: [VSYNC_TARGET, FPS_LOCK_TARGET]
-
type: evaluate_write
address: [MAIN, 0x1E761F0]
value_type: float
value: FPS_TARGET
-
type: block
what: timing

View File

@ -1,12 +0,0 @@
# PowerWash Simulator 1.10.0
# BID: 30997D8F7566EBB5
unsafeCheck: false
ALL_FPS:
# FuturLab.SingletonMonoBehaviour<FrameRateLimiter>_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit)
-
type: evaluate_write
address: [MAIN, 0x6043ED0, 0xB8, 0, 0x28]
value_type: int32
value: FPS_LOCK_TARGET

View File

@ -1,21 +0,0 @@
# The Hundred Line -Last Defense Academy- 1.0.3
# BID: 7816CA5FECA60315
# 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, 0xC8BC78]
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, 0xC8BC44]
value_type: uint32
value: FPS_TARGET

View File

@ -1,12 +0,0 @@
# DAVE THE DIVER 1.0.4.1034
# BID: 456BDB6160D317A3
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x98DF500, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,12 +0,0 @@
# DAVE THE DIVER 1.0.3.978
# BID: 500A59C7C5A7C1E8
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x97367C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,12 +0,0 @@
# DAVE THE DIVER 1.0.4.1029
# BID: 757760621154BA5A
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x98E8280, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -1,27 +0,0 @@
# Borderlands 3 1.0.3
# BID: AFDEB128252898AC
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0xDD56640, 0]
value_type: float
value: ["0.969 * FRAMETIME_TARGET", "0.969 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xDD857C0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xD0C52B8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,28 +0,0 @@
# Shining Resonance Refrain 1.0.1
# BID: 069E3EFC16365FFD
# Possible values to tweak if something happens: 0xFC0DE0 = 1.0, 0xFC0DD4 = 1.0, 0xFC0DD0 = 1.0, 0xFC0DCC = 1.0, 0xFC0DD8 - UI speed factor, don't change because it's dynamic
unsafeCheck: true
MASTER_WRITE:
# Triple buffer
# REF: 28 60 81 52 E8 37 00 B9 E8 03 1F 32
-
type: bytes
main_offset: 0x3AE35C
value_type: uint32
value: 0x52800068
ALL_FPS:
# Disable FPS Lock
# REF: C8 46 90 52 first ADRP + LDR + LDR above it
-
type: write
address: [MAIN, 0xFC0DC8]
value_type: uint32
value: 0
# Lipsync fix
-
type: evaluate_write
address: [MAIN, 0xFC0DDC]
value_type: float
value: "30.0 / FPS_TARGET"

View File

@ -1,27 +0,0 @@
# Nikoderiko: The Magical World 1.0.3
# BID: 1218D04A7C77F2DA
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x64F6968, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6524628, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5D25C08, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Nikoderiko: The Magical World 1.0.2
# BID: 6CFA2609A2D00FA5
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x64D9928, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x65075E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5D08BF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,80 +0,0 @@
# Another Crab's Treasure 1.1.100.1
# BID: B24C86A2B02DE960
unsafeCheck: true
MASTER_WRITE:
# Redirect updating various deltas to read frametime target from UnityEngine.Application::targetFrameRate, REF: 08 10 91 52 08 A1 A7 72
-
type: bytes
main_offset: 0x18B2F18
value_type: uint32
value: # 08 EA 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xF001EF48 # adrp x8, 0x569d000
- 0xB94BF908 # ldr w8, [x8, #0xbf8]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
-
type: bytes
main_offset: 0x18B6C30
value_type: uint32
value: # E8 E9 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xF001EF28 # adrp x8, 0x569d000
- 0xB94BF908 # ldr w8, [x8, #0xbf8]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
# Redirect Dynamic Resolution GPU Timing target in DynamicResolutionScaler::Update to MAIN+0x5B14F08
-
type: bytes
main_offset: 0x1B018E4
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x1B01964
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 60 2A 40 BD 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xBD402A60 # ldr s0, [x19, #0x28]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x1B019D8
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
# Default values
-
type: bytes
main_offset: 0x569DBF8
value_type: uint32
value: 30
-
type: bytes
main_offset: 0x5B14F08
value_type: double
value: 28.57142857142857
ALL_FPS:
# UnityEngine.Application::targetFrameRate
-
type: evaluate_write
address: [MAIN, 0x569DBF8]
value_type: uint32
value: FPS_TARGET
# GPU Timing Target
-
type: evaluate_write
address: [MAIN, 0x5B14F08]
value_type: double
value: "1000 / (FPS_TARGET + 5)"

View File

@ -1,21 +0,0 @@
# Life is Strange: Double Exposure 1.0.3
# BID: BBEA8745A7893750
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6948E90, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x79562D8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,21 +0,0 @@
# Garden Witch Life 1.0.5
# BID: 13824B290C931FE5
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x863C140, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7644978, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Boti: Byteland Overclocked 1.0.1
# BID: E8EA74BE6221F2E4
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x72C9718, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8286DC8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x82BF6D0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Boti: Byteland Overclocked 1.0.2
# BID: 567A8410AE613885
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x72D4718, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8291E38, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x82CB9E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Boti: Byteland Overclocked 1.0.3
# BID: 8A942A9E838E5083
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x72D4718, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8291E38, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x82CB9E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,27 +0,0 @@
# Boti: Byteland Overclocked 1.0.0
# BID: CCBDDB69038F76FC
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x72C6718, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8283E38, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x82BE2B0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -1,43 +0,0 @@
# FAIRY TAIL 2 1.4.2
# BID: 007EA5E2E2541C6F
unsafeCheck: false
MASTER_WRITE:
# Redirect Dynamic Resolution target to MAIN+0x2C53F00
# REF: 6A C8 82 52
-
type: bytes
main_offset: 0x138238C
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F014A # LDR W10, [X10, 0xF00]
-
type: bytes
main_offset: 0x13823A8
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F054A # LDR W10, [X10, 0xF04]
# Default values
-
type: bytes
main_offset: 0x2C53F00
value_type: float
value: [0.043478, 0.037037]
ALL_FPS:
# FPS Lock
# REF: 1F 00 00 71 C8 03 80 52, first ADRP+ADD above it
-
type: evaluate_write
address: [MAIN, 0x2C0B558, 0x170, 0x18C]
value_type: int32
value: FPS_LOCK_TARGET
# Dynamic Resolution Target
# Game proritizes resolution over framerate, I changed it to prefer framerate
-
type: evaluate_write
address: [MAIN, 0x2C53F00]
value_type: float
value: ["1 / FPS_TARGET", "1 / (FPS_TARGET + 5)"]

View File

@ -1,43 +0,0 @@
# FAIRY TAIL 2 1.4.1
# BID: A588F7BB864AAD5F
unsafeCheck: false
MASTER_WRITE:
# Redirect Dynamic Resolution target to MAIN+0x2C53F00
# REF: 6AC88252
-
type: bytes
main_offset: 0x138238C
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F014A # LDR W10, [X10, 0xF00]
-
type: bytes
main_offset: 0x13823A8
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F054A # LDR W10, [X10, 0xF04]
# Default values
-
type: bytes
main_offset: 0x2C53F00
value_type: float
value: [0.043478, 0.037037]
ALL_FPS:
# FPS Lock
# REF: 1F 00 00 71 C8 03 80 52, first ADRP+ADD above it
-
type: evaluate_write
address: [MAIN, 0x2C0B558, 0x170, 0x18C]
value_type: int32
value: FPS_LOCK_TARGET
# Dynamic Resolution Target
# Game proritizes resolution over framerate, I changed it to prefer framerate
-
type: evaluate_write
address: [MAIN, 0x2C53F00]
value_type: float
value: ["1 / FPS_TARGET", "1 / (FPS_TARGET + 5)"]

View File

@ -1,54 +0,0 @@
# PROJECT ZERO: MAIDEN OF BLACK WATER 1.0.4
# FATAL FRAME: MAIDEN OF BLACK WATER 1.0.4
# BID: B38D51E0391187EC
unsafeCheck: true
MASTER_WRITE:
# Redirect min delta to MAIN + 0x1BC4FF0
# REF: 00 D9 21 7E 28 19 20 1E
-
type: bytes
main_offset: 0x39ABF8
value_type: uint32
value:
- 0xD000C15B # ADRP X27, 0x1BC4000
- 0xBD4FF368 # LDR S8, [X27, 0xFF0]
# Redirect FPS Lock to MAIN + 0x1BC4FF4
# REF: 69 AA 40 B9 0A 40 99 52
-
type: bytes
main_offset: 0x39B2D8
value_type: uint32
value:
- 0xB000C149 # ADRP X9, 0x1BC4000
- 0xB94FF529 # LDR W9, [X9, 0xFF4]
- 0xD503201F # NOP
- 0xD503201F # NOP
# Default values
-
type: bytes
main_offset: 0x1BC4FF0
value_type: float
value: 0.0333333333
-
type: bytes
main_offset: 0x1BC4FF4
value_type: uint32
value: 33333333
ALL_FPS:
# Min delta
-
type: evaluate_write
address: [MAIN, 0x1BC4FF0]
value_type: float
value: "1 / FPS_TARGET"
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0x1BC4FF4]
value_type: uint32
value: "1000000000 / FPS_TARGET"
-
type: block
what: timing

View File

@ -1,4 +1,4 @@
# Triangle Strategy 1.1.0/1.1.1
# Triangle Strategy 1.1.0
# BID: 9CB4490E8A718BAE
unsafeCheck: true
@ -16,12 +16,6 @@ ALL_FPS:
address: [MAIN, 0x74A1408, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6CA6928, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

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