Ultra 2.2 Release 1

This commit is contained in:
redraz 2024-07-02 12:50:28 +03:00
parent 309c2e7b4f
commit ad232cfee7
469 changed files with 3105 additions and 52468 deletions
README.mdREADME_ENG.md
SaltySD/plugins/FPSLocker/patches
0100001019F6E000
010000400F582000
010000600CD54000
010000B01A452000
010000F012936000
0100011005D92000
0100040016EE2000
0100041018810000
010005001A8CA000
010007B010FCC000
01000A10041EA000
01000BB00E9D2000
01000BD00CE64000
01000BF0152FA000
010010A01BBF4000
010010B00DDA2000
010010F01418E000
0100111004460000
01001270012B6000
0100149019460000
0100154019A7C000
010015F018C3C000
010016A00AEC0000
010017A0128C4000
0100182014022000
010018601E9E0000
01001890167FE000
010018C01B106000
010019C00E9CC000
01001A0011798000
01001A700C832000
01001A9018560000
01001BE01908C000
01001C400E9D8000
01001C700873E000
01001CF0190C2000
01001D00186E8000
01001E3017A10000
01001F3018880000
010020B016EF4000
010023001969A000
010025A01CD86000
01002620102C6000
010027400CDC6000
010028D00BA1A000
010029B0118E8000
010029F01BA3E000
01002A501869E000
01002B00111A2000
01002B7013440000
01002BE016054000
01002C0015644000
01002C101C1AA000
01002C400E526000
01002FC012548000
01002FD01A24C000
0100300012F2A000
0100309016E7A000
0100321017CC0000
010032C00AC58000
0100367016DF0000
010036E00FB20000
010038900DFE0000
010039400E8D6000
01003980174BC000
010039B015CB6000
01003AE01AA76000

@ -6,7 +6,9 @@
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
### [Ultra 2.2](https://github.com/Ultra-NX/Ultra-Resources/releases/download/Test/Ultra.zip) Поддерживает HOS 18.1.0 и все ревизии консолей
### [Ultra 2.2](https://github.com/Ultra-NX/Ultra/releases/latest) Поддерживает HOS 18.1.0 и все ревизии консолей
## Особенности Ultra
@ -19,19 +21,27 @@
* Регулярные обновления, и активное коммьюнити.
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
## Состав Ultra
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch.
1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое.
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultra Paw (форка Ultrahand), позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
1. **`OC-Switchcraft`**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
1. **[OC-Switchcraft](https://discord.com/channels/854839758815363072/1173171845139288114/1253645315429371978)**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
1. **Установленные пейлоады**:
* [Lockpick_RCM](https://sigmapatches.su) - Программа для снятия ключей консоли.
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
1. **Установленные Homebrew**
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов.
* [Daybreak](https://codeberg.org/rashevskyv/kefir) - Программа для обновления системного ПО.
* [DBI](https://github.com/rashevskyv/dbi) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater) есть выбор из EN-RU-PTBR-ZHCN.
1. **Установленные модули**
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины. Не совместим с 32-х битными играми (список на гитхабе проекта).
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
@ -39,22 +49,47 @@
* [sys-patch](https://sigmapatches.su) - Патчит систему на работу неподписанного софта вместо сигпатчей.
* [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner.
- **`Ultra-Overlay`**, мод [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках.
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater.
- [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater.
- [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/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей.
1. **Доступные для скачивания через [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
* [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
*
* Homebrews:
* [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта.
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
*
* Overlays:
* [MasterVolume](https://github.com/averne/MasterVolume) - Регулировка глобальной громкости, позволяет поднять громкость выше максимума. Использовать аккуратно!
* [Fizeau](https://github.com/averne/Fizeau) - Модуль для изменения цветового профиля экрана.
* [sys-tune](https://github.com/HookedBehemoth/sys-tune) - Оверлей-музыкальный плеер, работает в фоне.
*
* Other:
* [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Патчи для FPSLocker, что бы не качать отдельно патч для каждой игры через оверлей.
* [DVR Patches](https://github.com/exelix11/dvr-patches) - Патчи SysDVR, работают и без системного модуля, активируя фоновую запись в играх, где это изначально запрещено.
* [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - Хоумбрю-музыкальный плеер, который работает через системный модуль, и может сворачиваться, работая в фоне.
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
* [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
1. **Содержимое [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)**
*
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [SysDVR-conf](https://github.com/exelix11/SysDVR) - Программа для установки/удаления dvr патчей для игр. Патчи включают возможность записи в тех играх, где она отключена, но ломают некоторые другие игры, например "Ведьмак 3".
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
* [sys-con](https://github.com/cathery/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
* [Mission Control](https://codeberg.org/rashevskyv/kefir) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - Оверлей с максимально подробным отображением статистики системы, напоминает Afterburner на PC.
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
* [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
## Лицензии
@ -68,6 +103,9 @@
[CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE)
* [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay)
## Благодарности
* Meha
@ -79,6 +117,8 @@
* 4PDA
#### А так же - отдельная благодарность администрации и участникам Ultra Group
## Поддержка
Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен.

@ -6,7 +6,9 @@
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
### [Ultra 2.2](https://github.com/Ultra-NX/Ultra-Resources/releases/download/Test/Ultra.zip) Supports HOS 18.1.0 and all console revisions
### [Ultra 2.2](https://github.com/Ultra-NX/Ultra/releases/latest) Supports HOS 18.1.0 and all console revisions
## Features of Ultra
@ -18,19 +20,27 @@
* Custom Ultra Monitor with FPS and system metrics.
* Regular updates, and an active community.
## Composition of Ultra
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, custom firmware for the Nintendo Switch.
1. **[Hekate](https://github.com/CTCaer/hekate)** - Custom Nintendo Switch graphical bootloader, firmware patcher, toolkit and more.
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Package for Ultra Paw (fork of Ultrahand), which allows you to fine-tune the OC parameters for your console. In case of unstable overclocking, or if you want to increase the performance of your console, Ultra Tuner is your indispensable assistant.
1. **`OC-Switchcraft`**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - The overclocked atmosphere loader by B3711, allows you to squeeze the power of the Xbox One out of the N.Switch. Updated in time to support new Atmosphere features.
1. **[OC-Switchcraft](https://discord.com/channels/854839758815363072/1173171845139288114/1253645315429371978)**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - The overclocked atmosphere loader by B3711, allows you to squeeze the power of the Xbox One out of the N.Switch. Updated in time to support new Atmosphere features.
1. **Installed Payloads**:
* [Lockpick_RCM](https://sigmapatches.su) - Program for dumping console keys.
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system.
1. **Installed Homebrew**
* [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://codeberg.org/rashevskyv/kefir) - 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.
1. **Installed Modules**
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins. Not compatible with 32-bit games (list on the project's github).
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Module responsible for overclocking CPU, memory and GPU - for better performance. I change versions from different authors from time to time. Original authors: Meha/hanai3Bi, lineon, p-sam.
@ -38,22 +48,45 @@
* [sys-patch](https://sigmapatches.su) - Patches the system to run unsigned software instead of sigpatches.
* [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Special overlay-menu for interacting with the system: overclocking, controlling modes via ReverseNX, enabling cheats, etc. Also allows to use your own packages, for example, Ultra Tuner.
- **`Ultra-Overlay`**, a mod of [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources.
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater.
- [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater.
- [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/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)**
* [Linkalho](https://github.com/rdmrocha/linkalho) - Account linking program.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
* Homebrews:
* [Linkalho](https://github.com/rdmrocha/linkalho) - 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.
* [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.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
* Overlays:
* [MasterVolume](https://github.com/averne/MasterVolume) - Global volume control, allows you to raise the volume above the maximum. Use with care!
* [Fizeau](https://github.com/averne/Fizeau) - Module for changing the screen color profile.
* [sys-tune](https://github.com/HookedBehemoth/sys-tune) - Overlay music player, works in background.
* Other:
* [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Patches for FPSLocker, so you don't have to download a separate patch for each game through the overlay.
* [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.
* [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - A homebrew music player that runs through the system module, and can minimize while running in the background.
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth.
* [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background.
1. **Contents of the [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)**
*
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
* [SysDVR-conf](https://github.com/exelix11/SysDVR) - A program to install/uninstall dvr patches for games. Patches enable recording in games where it is disabled, but break some other games like "The Witcher 3".
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background.
* [sys-con](https://github.com/cathery/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
* [Mission Control](https://codeberg.org/rashevskyv/kefir) - A module that allows you to connect almost any gamepads to the console via bluetooth.
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - An overlay with the most detailed display of system statistics, similar to Afterburner on PC.
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
* [Tinfoil](https://tinfoil.io) - Installer and game store.
* [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.
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth.
* [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
## License
@ -67,6 +100,8 @@ Listed below are the licenses of those programs that have been modified specific
[CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE)
* [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay)
## Credits
* Meha
@ -78,6 +113,8 @@ Listed below are the licenses of those programs that have been modified specific
* 4PDA
#### And also - a special thanks to the administration and members of Ultra Group
## Support
If you like the project and you have a desire to support me with a penny - I will be very grateful.

@ -1,213 +0,0 @@
# Horizon Chase 2 1.5.5
# BID: 1C95A999050892E0
unsafeCheck: true
15FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [15, 15]
# r.DynamicRes.FrameTimeBudget = 0.978 * (1000/FPS)
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [65.2, 65.2]
20FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [20, 20]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [48.9, 48.9]
25FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [25, 25]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [39.12, 39.12]
-
type: block
what: timing
30FPS:
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (by default it's 16.3)
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [32.6, 32.6]
35FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [35, 35]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [27.942, 27.942]
-
type: block
what: timing
40FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [40, 40]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [24.45, 24.45]
-
type: block
what: timing
45FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [45, 45]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [21.733, 21.733]
-
type: block
what: timing
50FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [50, 50]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [19.56, 19.56]
-
type: block
what: timing
55FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [55, 55]
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [17.781, 17.781]
-
type: block
what: timing
60FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F91398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x778C8A8, 0]
value_type: float
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x775ECE8, 0]
value_type: float
value: [16.3, 16.3]

@ -1,153 +0,0 @@
# Horizon Chase 2 1.5.2
# BID: 3CE4DB955A23026E
unsafeCheck: true
15FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [15, 15]
20FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [20, 20]
25FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [0, 0]
35FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8C398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77878A8, 0]
value_type: float
value: [0, 0]

@ -1,153 +0,0 @@
# Horizon Chase 2 1.5.4
# BID: 95B2E97C5D16385A
unsafeCheck: true
15FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [15, 15]
20FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [20, 20]
25FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [0, 0]
35FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6F8D398, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77888A8, 0]
value_type: float
value: [0, 0]

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

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# OptimalFrameDuration_ms = 0.96 * (1000/FPS)
-
type: write
type: evaluate_write
address: [MAIN, 0x2153CFC]
value_type: float
value: 64
20FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 48
25FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 38.4
30FPS:
# OptimalFrameDuration_ms (default value)
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 32
35FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 27.42
40FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 24
45FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 21.333333
50FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 19.2
55FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 17.454545
60FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2153CFC]
value_type: float
value: 16
value: "0.96 * FRAMETIME_TARGET"

@ -3,97 +3,13 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [0, 0]
35FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# t.MaxFPS (100 to ensure than NVN itself will handle 60 FPS while not enabling SmoothedFrameRateRange)
-
type: write
address: [MAIN, 0x579C208, 0]
value_type: float
value: [100, 100]

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

@ -1,279 +0,0 @@
# Jujutsu Kaisen Cursed Clash US 1.0.2
# BID: EA01C4BA969E8159
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 60)
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [0, 0]
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# fixedDeltaTime
-
type: write
type: evaluate_write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0333333333
20FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0333333333
25FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0333333333
30FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0333333333
35FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
40FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
45FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
50FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
55FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
60FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x4B3E500, 0x48]
value_type: float
value: 0.0166666666
value: "FRAMETIME_TARGET / 1000"

@ -79,70 +79,7 @@ MASTER_WRITE:
main_offset: 0x5F8C
value_type: uint32
value: 0xD2A032A2
15FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
20FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
25FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
30FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
35FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
40FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
45FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
50FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
55FPS:
# dummy
-
type: write
address: [MAIN, 0x188CF00]
value_type: uint8
value: 0
60FPS:
ALL_FPS:
# dummy
-
type: write

@ -3,105 +3,20 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [15, 15]
# t.VSync (default value) - game really struggles to get 60 FPS with this turned on
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [1, 1]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [20, 20]
# t.VSync (default value)
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [1, 1]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [25, 25]
# t.VSync (default value)
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [1, 1]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [0, 0]
# t.VSync (default value)
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [1, 1]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [35, 35]
# t.VSync
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
@ -110,110 +25,3 @@ unsafeCheck: true
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [40, 40]
# t.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [45, 45]
# t.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [50, 50]
# t.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [55, 55]
# t.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69B8C78, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69AEE10, 0]
value_type: float
value: [60, 60]
# t.VSync
-
type: write
address: [MAIN, 0x6220790, 0]
value_type: int32
value: [0, 0]

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-
type: write
type: evaluate_write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 64.333333
20FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 47.666666
25FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 37.666666
30FPS:
# OptimalFrameDuration_ms (default value)
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 31
35FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 26.238095
40FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 22.666666
45FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 19.888888
50FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 17.666666
55FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 15.848484
60FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x2D5A83C]
value_type: float
value: 14.333333
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"

@ -1,22 +1,22 @@
# TRANSFORMERS: EARTHSPARK - Expedition 1.0.5
# BID: F87BEAF2C5CE13E3
# Game is using double buffer, everything is hardcoded
# Game is using double frontbuffer and single backbuffer, everything is hardcoded
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -26,195 +26,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B9BDD8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6BD58A8, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x63DCAE8, 0]
value_type: uint32
value: [0, 0]

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
# Dynamic Resolution frame time target = (32.3/(1000/30)) * (1000/FPS)
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 64.6
20FPS:
ALL_FPS:
# Dynamic Resolution frame time target
-
type: write
type: evaluate_write
address: [MAIN, 0x2D7A974]
value_type: float
value: 48.45
25FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 38.76
30FPS:
# Dynamic Resolution frame time target (default value)
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 32.3
35FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 27.68
40FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 24.225
45FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 21.53
50FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 19.38
55FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 17.61
60FPS:
# Dynamic Resolution frame time target
-
type: write
address: [MAIN, 0x2D7A974]
value_type: float
value: 16.15
value: "0.969 * FRAMETIME_TARGET"

@ -3,133 +3,16 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
-
type: write
type: evaluate_write
address: [MAIN, 0x3356FC8]
value_type: float
value: 60
value: "0.9 * FRAMETIME_TARGET"
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
-
type: write
type: evaluate_write
address: [MAIN, 0x3356FB0]
value_type: float
value: 66
20FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 45
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 49.5
25FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 36
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 39.6
30FPS:
# Dynamic Resolution Frame Time Min (default value)
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 30
# Dynamic Resolution Frame Time Max (default value)
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 33
35FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 25.71
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 28.28
40FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 22.5
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 24.75
45FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 20
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 22
50FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 18
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 19.8
55FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 16.36
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 18
60FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x3356FC8]
value_type: float
value: 15
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x3356FB0]
value_type: float
value: 16.5
value: "0.99 * FRAMETIME_TARGET"

@ -1,135 +0,0 @@
# The Elder Scrolls V: Skyrim 1.1.177.3285177
# BID: 771BDFB65F8D0AF7
unsafeCheck: true
15FPS:
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 60
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 66
20FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 45
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 49.5
25FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 36
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 39.6
30FPS:
# Dynamic Resolution Frame Time Min (default value)
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 30
# Dynamic Resolution Frame Time Max (default value)
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 33
35FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 25.71
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 28.28
40FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 22.5
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 24.75
45FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 20
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 22
50FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 18
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 19.8
55FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 16.36
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 18
60FPS:
# Dynamic Resolution Frame Time Min
-
type: write
address: [MAIN, 0x33178C8]
value_type: float
value: 15
# Dynamic Resolution Frame Time Max
-
type: write
address: [MAIN, 0x33178B0]
value_type: float
value: 16.5

@ -1,224 +0,0 @@
# The Witcher 3 3.7
# BID: 4FFB62F1CD9E17F8
unsafeCheck: false
15FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 63
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 63
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
-
type: block
what: timing

@ -3,222 +3,25 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
value: FPS_LOCK_TARGET
-
type: block
what: timing

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynResTargetFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [15, 15]
value: [FPS_TARGET, FPS_TARGET]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynResTargetFPS (default value)
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [30, 30]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [35, 35]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [45, 45]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [55, 55]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynResTargetFPS
-
type: write
address: [MAIN, 0x71A31F8, 0]
value_type: int32
value: [60, 60]
# t.MaxFPS
-
type: write
address: [MAIN, 0x71B2BD0, 0]
value_type: float
value: [0, 0]

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Dynamic Resolution FPS Target
-
type: write
type: evaluate_write
address: [MAIN, 0x179EF64]
value_type: float
value: 15
20FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 20
25FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 25
30FPS:
# Dynamic Resolution FPS Target (default value)
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 30
35FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 35
40FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 40
45FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 45
50FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 50
55FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 55
60FPS:
# Dynamic Resolution FPS Target
-
type: write
address: [MAIN, 0x179EF64]
value_type: float
value: 60
value: FPS_TARGET

@ -3,73 +3,10 @@
unsafeCheck: false
15FPS:
# DynamicResolution_TypeInfo (MAX = 0.96 * (1000/FPS), MIN = 0.9375 * (1000/FPS)), min range 0.75
ALL_FPS:
# DynamicResolution_TypeInfo
-
type: write
type: evaluate_write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [64, 62.5]
20FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [48, 46.875]
25FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [38.4, 37.5]
30FPS:
# DynamicResolution_TypeInfo (default values)
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [32, 31.25]
35FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [27.43, 26.68]
40FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [24, 23.25]
45FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [21.33, 20.58]
50FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [19.2, 18.45]
55FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [17.45, 16.7]
60FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4B320A0, 0xB8, 0]
value_type: double
value: [16, 15.25]
value: ["0.96 * FRAMETIME_TARGET", "(0.96 * FRAMETIME_TARGET) - 0.75"]

@ -1,75 +0,0 @@
# The Forest Quartet 4.0.1
# BID: C66F68F53A4A7053
unsafeCheck: false
15FPS:
# DynamicResolution_TypeInfo (MAX = 0.96 * (1000/FPS), MIN = 0.9375 * (1000/FPS)), min range 0.75
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [64, 62.5]
20FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [48, 46.875]
25FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [38.4, 37.5]
30FPS:
# DynamicResolution_TypeInfo (default values)
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [32, 31.25]
35FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [27.43, 26.68]
40FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [24, 23.25]
45FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [21.33, 20.58]
50FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [19.2, 18.45]
55FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [17.45, 16.7]
60FPS:
# DynamicResolution_TypeInfo
-
type: write
address: [MAIN, 0x4A87920, 0xB8, 0]
value_type: double
value: [16, 15.25]

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B461B8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6B3C330, 0]
value_type: float
value: [0, 0]

@ -3,337 +3,37 @@
unsafeCheck: false
15FPS:
ALL_FPS:
# r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93)
-
type: write
type: evaluate_write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [62, 62]
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
# r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87)
-
type: write
type: evaluate_write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [58, 58]
value: ["0.87 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"]
# r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945)
-
type: write
type: evaluate_write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [63, 63]
value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"]
# r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93)
-
type: write
type: evaluate_write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [62, 62]
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [46.5, 46.5]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [43.5, 43.5]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [47.25, 47.25]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [46.25, 46.25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [37.2, 37.2]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [34.2, 34.2]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [37.8, 37.8]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [37.2, 37.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.MaxGPUTime (default value)
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [31, 31]
# r.DynamicRes.MinGPUTime (default value)
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [29, 29]
# r.DynamicRes.MaxGPUTimeStill (default value)
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [31.5, 31.5]
# r.DynamicRes.MinGPUTimeStill (default value)
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [31, 31]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [26.57, 26.57]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [24.85, 24.85]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [27, 27]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [26.57, 26.57]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [23.25, 23.25]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [21.75, 21.75]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [23.625, 23.625]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [23.25, 23.25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [20.66, 20.66]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [19.33, 19.33]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [21, 21]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [20.66, 20.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [18.6, 18.6]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [17.4, 17.4]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [18.9, 18.9]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [18.6, 18.6]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [16.9, 16.9]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [15.81, 15.81]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [17.18, 17.18]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [16.9, 16.9]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.MaxGPUTime
-
type: write
address: [MAIN, 0x7E23AF0, 0]
value_type: float
value: [15.5, 15.5]
# r.DynamicRes.MinGPUTime
-
type: write
address: [MAIN, 0x7E23B08, 0]
value_type: float
value: [14.5, 14.5]
# r.DynamicRes.MaxGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B20, 0]
value_type: float
value: [15.75, 15.75]
# r.DynamicRes.MinGPUTimeStill
-
type: write
address: [MAIN, 0x7E23B38, 0]
value_type: float
value: [15.5, 15.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7E46698, 0]
value_type: float
value: [0, 0]

@ -12,73 +12,10 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
15FPS:
ALL_FPS:
# FPS target (FPS * 2)
-
type: write
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 30
20FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 40
25FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 50
30FPS:
# FPS target (default value)
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 60
35FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 70
40FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 80
45FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 90
50FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 100
55FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 110
60FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 120
value: "FPS_TARGET * 2"

@ -12,73 +12,10 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
15FPS:
ALL_FPS:
# FPS target (FPS * 2)
-
type: write
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 30
20FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 40
25FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 50
30FPS:
# FPS target (default value)
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 60
35FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 70
40FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 80
45FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 90
50FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 100
55FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 110
60FPS:
# FPS target
-
type: write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: 120
value: "FPS_TARGET * 2"

@ -3,13 +3,13 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -19,141 +19,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# t.MaxFPS (default value at first game boot, with next boot it's 30)
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [0, 0]
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# t.MaxFPS
-
type: write
address: [MAIN, 0x8001888, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x7806CC8, 0]
value_type: uint32
value: [0, 0]

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default is 1000)
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [0, 0]

@ -1,159 +0,0 @@
# Mortal Shell 1.0.1
# BID: BE2D1A84420113EC
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [15, 15]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6ACCBD8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6AEF760, 0]
value_type: float
value: [0, 0]

@ -1,135 +0,0 @@
# From Space 1.0.357
# BID: 593BD545295A65FB
unsafeCheck: true
15FPS:
# vSyncCount (we are resetting it to 0 so game will calculate Dynamic Resolution for specified FPS target)
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 15
20FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 20
25FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 25
30FPS:
# vSyncCount (default value)
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 2
# targetFrameRate (default value)
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 0
35FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 35
40FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 40
45FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 45
50FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 50
55FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 0
# targetFrameRate
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 55
60FPS:
# vSyncCount
-
type: write
address: [MAIN, 0x68A9828, 0x210, 0x68]
value_type: int32
value: 1
# targetFrameRate (default value)
-
type: write
address: [MAIN, 0x6483A70]
value_type: int32
value: 0

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# UnityEngine.Application::targetFrameRate (to adjust Dynamic Resolution)
-
type: write
type: evaluate_write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 15
20FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 20
25FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 25
30FPS:
# UnityEngine.Application::targetFrameRate (default value)
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 30
35FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 35
40FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 40
45FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 45
50FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 50
55FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 55
60FPS:
# UnityEngine.Application::targetFrameRate
-
type: write
address: [MAIN, 0x6F3F760]
value_type: int32
value: 60
value: FPS_TARGET

@ -4,63 +4,9 @@
unsafeCheck: true
15FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 2
20FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 2
25FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 2
30FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 2
35FPS:
ALL_FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1
40FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1
45FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1
50FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1
55FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1
60FPS:
-
type: write
address: [MAIN, 0x3AF80, -0x931F4]
value_type: int32
value: 1

@ -4,199 +4,25 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A
-
type: write
type: evaluate_write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 4
value: VSYNC_TARGET
# Game Speed, pointer ref: F3 03 00 AA 20 00 80 52 F4 03 01 AA
-
type: write
type: evaluate_write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 4
value: VSYNC_TARGET
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 15
value: FPS_TARGET
-
type: block
what: timing
20FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 3
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 3
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 20
-
type: block
what: timing
25FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 2
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 2
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 25
30FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 2
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 2
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 30
35FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 35
40FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 40
45FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 45
50FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 50
55FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 55
60FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEDA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AEF6D0, 2554]
value_type: uint8
value: 60

@ -1,199 +0,0 @@
# Jojo's Bizarre Adventure: All-Star Battle R 2.3.0
# BID: B2FA8FF1240615F1
# There are small issues with animations in cutscenes at higher framerates
# REF: 28 1C 00 12 89 07 80 52 2A 09 C8 1A
unsafeCheck: true
15FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 4
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 4
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 15
-
type: block
what: timing
20FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 3
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 3
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 20
-
type: block
what: timing
25FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 2
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 2
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 25
30FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 2
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 2
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 30
35FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 35
40FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 40
45FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 45
50FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 50
55FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 55
60FPS:
# Internal FPS Lock
-
type: write
address: [MAIN, 0x2AEEA08, 704]
value_type: uint32
value: 1
# Game Speed
-
type: write
address: [MAIN, 0x2AF06D0, 1360]
value_type: uint32
value: 1
# UI Speed
-
type: write
address: [MAIN, 0x2AF06D0, 2554]
value_type: uint8
value: 60

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: write
type: evaluate_write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [66.6, 66.6]
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value is 36.5, obviously we don't want it)
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [33.3, 33.3]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [30, 30]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [28.5, 28.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [22.2, 22.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [18.1, 18.1]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7565298, 0]
value_type: float
value: [16.6, 16.6]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7589FE0, 0]
value_type: float
value: [0, 0]

@ -0,0 +1,32 @@
# Bakery Simulator 1.1.0
# BID: 31A37D73E22F1059
unsafeCheck: false
ALL_FPS:
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
address: [MAIN, 0x5F9B6A8, 0x7A4]
value_type: uint32
# Default is 0x47, bUseFixedFrameRate |= 0x40
# By writing 7 we are making sure that other flags are maintained:
# bAllowMultiThreadedAnimationUpdate |= 4
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
# bCanBlueprintsTickByDefault |= 1
value: 7
# r.VSync
-
type: write
address: [MAIN, 0x57A0B58, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5F9BFC8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

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

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default is 30)
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6D196C8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6D46C58, 0]
value_type: float
value: [0, 0]

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7D46658, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7D73FF8, 0]
value_type: float
value: [0, 0]

@ -1,224 +0,0 @@
# The Witcher 3 3.7
# BID: 4FFB62F1CD9E17F8
unsafeCheck: false
15FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 63
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 63
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
-
type: block
what: timing

@ -3,222 +3,25 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
value: FPS_LOCK_TARGET
-
type: block
what: timing

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
-
type: write
type: evaluate_write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 64.333333
20FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 47.666666
25FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 37.666666
30FPS:
# OptimalFrameDuration_ms (default value)
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 31
35FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 26.238095
40FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 22.666666
45FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 19.888888
50FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 17.666666
55FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 15.848484
60FPS:
# OptimalFrameDuration_ms
-
type: write
address: [MAIN, 0x27C4B0C]
value_type: float
value: 14.333333
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"

@ -10,64 +10,10 @@ MASTER_WRITE:
main_offset: 0x6B41E4
value_type: uint32
value: 0xB20007E8
15FPS:
ALL_FPS:
# DUMMY
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
20FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
25FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
30FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
35FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
40FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
45FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
50FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
55FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0
60FPS:
-
type: write
address: [MAIN, 0x4740500]
value_type: uint8
value: 0

@ -1,159 +0,0 @@
# Bright Memory: Infinite Gold Edition 1.2
# BID: 323631B628A32D84
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [15, 15]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x69CE1D8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x69FBA78, 0]
value_type: float
value: [0, 0]

@ -3,19 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -25,195 +25,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 30)
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [0, 0]
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6B031D8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6B30A78, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x63376C8, 0]
value_type: uint32
value: [0, 0]

@ -1,164 +0,0 @@
# Hot Wheels Unleashed 2 1.0.1
# BID: 012294C1E2D28A79
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [15, 15]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xAC83268, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xACB1730, 0]
value_type: float
value: [0, 0]

@ -1,224 +0,0 @@
# Hot Wheels Unleashed 2 1.0.5
# BID: 3973FB8AC2750BE4
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB4BC090, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB560E08, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0xACA1CA8, 0]
value_type: uint32
value: [0, 0]

@ -1,224 +0,0 @@
# Hot Wheels Unleashed 2 1.0.6
# BID: 53E622E32DB8780F
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB51D278, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB54B740, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0xAD49CF8, 0]
value_type: uint32
value: [0, 0]

@ -0,0 +1,32 @@
# Hot Wheels Unleashed 2 1.0.9
# BID: C95F34910CE1CDC0
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A78, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -1,224 +0,0 @@
# Hot Wheels Unleashed 2 1.0.7
# BID: DF0F7D04FC02C9BB
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xB58F090, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xB633E08, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0xAD75A98, 0]
value_type: uint32
value: [0, 0]

@ -1,224 +0,0 @@
# Hot Wheels Unleashed 2 1.0.4
# BID: EBD417A7EB6B5486
# It is recommended to disable FSR. When FSR is enabled,
# Dynamic Resolution is also disabled and it has worse performance
# at higher FPS, and quality wise it compares to dynamic resolution
# set to lowest res
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xADC3278, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xADF1740, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0xA5F0238, 0]
value_type: uint32
value: [0, 0]

@ -3,185 +3,17 @@
unsafeCheck: true
15FPS:
ALL_FPS:
-
type: write
type: evaluate_write
address: [MAIN, 0x1D15228]
value_type: int32
value: [15, 2]
value: [FPS_LOCK_TARGET, "1"]
-
type: write
type: evaluate_write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 15
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 1
-
type: block
what: timing
20FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [20, 2]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 20
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 1
-
type: block
what: timing
25FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [25, 2]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 25
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 1
-
type: block
what: timing
30FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [30, 2]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 30
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 1
35FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [35, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 35
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
-
type: block
what: timing
40FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [40, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 40
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
-
type: block
what: timing
45FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [45, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 45
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
-
type: block
what: timing
50FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [50, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 50
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
-
type: block
what: timing
55FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [55, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 55
-
type: write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
-
type: block
what: timing
60FPS:
-
type: write
address: [MAIN, 0x1D15228]
value_type: int32
value: [60, 1]
-
type: write
address: [MAIN, 0x1D28CB8]
value_type: float
value: 60
value: FPS_TARGET
-
type: write
address: [MAIN, 0x2A88DC0]

@ -10,64 +10,10 @@ MASTER_WRITE:
main_offset: 0xEA22EC
value_type: uint32
value: 0xB20007E8
15FPS:
ALL_FPS:
# DUMMY
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
20FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
25FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
30FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
35FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
40FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
45FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
50FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
55FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0
60FPS:
-
type: write
address: [MAIN, 0xA7FA900]
value_type: uint8
value: 0

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x680CAB8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x683A358, 0]
value_type: float
value: [0, 0]

@ -0,0 +1,27 @@
# Astor: Blade of the Monolith 1.0.0
# BID: C26E93197DEB4004
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x61EE768, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x69BCAD8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x69EA478, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -1,91 +0,0 @@
# Farming Simulator 23 Nintendo Switch Edition 1.4.0.1
# BID: 0204E8D91F22A2D1
unsafeCheck: true
15FPS:
# Internal FPS lock
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 15
-
type: block
what: timing
20FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
# default value
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 30
35FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
-
type: write
address: [MAIN, 0xFAD5AC]
value_type: float
value: 60

@ -3,89 +3,13 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Internal FPS lock
-
type: write
type: evaluate_write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 15
value: FPS_LOCK_TARGET
-
type: block
what: timing
20FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
# default value
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 30
35FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
-
type: write
address: [MAIN, 0xFAD7AC]
value_type: float
value: 60

@ -1,91 +0,0 @@
# Farming Simulator 23 Nintendo Switch Edition 1.1.0.0
# BID: 1C38F0E269ED4438
unsafeCheck: true
15FPS:
# Internal FPS lock
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 15
-
type: block
what: timing
20FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
# default value
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 30
35FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
-
type: write
address: [MAIN, 0xFAC7AC]
value_type: float
value: 60

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [28.57, 28.57]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x71331A8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7160D78, 0]
value_type: float
value: [0, 0]

@ -4,273 +4,30 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: write
type: evaluate_write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0666666666
value: "1 / FPS_TARGET"
- # maximumParticleDeltaTime = 1/FPS
type: write
type: evaluate_write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0666666666
value: "1 / FPS_TARGET"
- # maximumDeltaTime = 6 * (1/FPS)
type: write
type: evaluate_write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.4
value: "(1 / FPS_TARGET) * 6"
- # DS.Tech.Networking.Clock_TypeInfo = 1/FPS
type: write
type: evaluate_write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0666666666
value: "1 / FPS_TARGET"
- # DS.Tech.Networking.ClientInterpolator_TypeInfo => every 15 FPS jump += 1
type: write
type: evaluate_write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 1
20FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.05
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.05
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.3
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.05
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 1
25FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.04
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.04
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.24
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.04
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 1
30FPS:
# fixedDeltaTime (default value)
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0333333333
- # maximumParticleDeltaTime (default value)
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0333333333
- # maximumDeltaTime (default value)
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.2
- # DS.Tech.Networking.Clock_TypeInfo (default value)
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0333333333
- # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value)
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 2
35FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0285714
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0285714
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.17142857142
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0285714
- # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value)
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 2
40FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.025
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.025
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.15
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.025
- # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value)
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 2
45FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0222222222
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0222222222
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.1333333333
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0222222222
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 3
50FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.02
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.02
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.12
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.02
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 3
55FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0181818181
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0181818181
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.109090909
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0181818181
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 3
60FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x52BD280, 0x48]
value_type: float
value: 0.0166666666
- # maximumParticleDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x104]
value_type: float
value: 0.0166666666
- # maximumDeltaTime
type: write
address: [MAIN, 0x52BD280, 0x100]
value_type: float
value: 0.1
- # DS.Tech.Networking.Clock_TypeInfo
type: write
address: [MAIN, 0x4EABAE0, 0xB8, 0]
value_type: float
value: 0.0166666666
- # DS.Tech.Networking.ClientInterpolator_TypeInfo
type: write
address: [MAIN, 0x4EABA98, 0xB8, 0]
value_type: int32
value: 4
value: "FPS_TARGET / 15"

@ -1,153 +0,0 @@
# Session: Skate Sim 1.1.2
# BID: BF4126341134BFC7
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget = 1000/FPS
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [66.66666666, 66.66666666]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [33.33333333, 33.33333333]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [28.5714, 28.5714]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [22.22222222, 22.22222222]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [18.18181818, 18.18181818]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [16.66666666, 16.66666666]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]

@ -3,19 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget = 0.81 * (1000/FPS)
-
type: write
type: evaluate_write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [54, 54]
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -25,195 +25,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [40.5, 40.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [32.4, 32.4]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [27, 27]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [23.142, 23.142]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [20.25, 20.25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [18, 18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [16.2, 16.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [14.727, 14.727]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7249868, 0]
value_type: float
value: [13.5, 13.5]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7277438, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x6A7D0C8, 0]
value_type: uint32
value: [0, 0]

@ -3,19 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -25,195 +25,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6C25F58, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6C538E8, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x64578D8, 0]
value_type: uint32
value: [0, 0]

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Dynamic resolution FPS factor
-
type: write
type: evaluate_write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 15
20FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 20
25FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 25
30FPS:
# Dynamic resolution FPS factor (default)
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 30
35FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 35
40FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 40
45FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 45
50FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 50
55FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 55
60FPS:
# Dynamic resolution FPS factor
-
type: write
address: [MAIN, 0x212C138, 0]
value_type: float
value: 60
value: FPS_TARGET

@ -1,7 +1,7 @@
# Divinity Original Sin 2 1.0.10
# BID: 4979B200D53BB282
# Game is using double buffer, buffers are not allocated in loop.
# So it's not possible to get stable FPS lock between 30 and 60.
# So it's not possible to get stable FPS lock between 30 and 60 without changing refresh rate.
unsafeCheck: true
@ -20,73 +20,10 @@ MASTER_WRITE:
main_offset: 0x32C6D00
value_type: double
value: 1000000
15FPS:
ALL_FPS:
# GPU Frametime divider = (30/FPS) * 1000000
-
type: write
type: evaluate_write
address: [MAIN, 0x32C6D00]
value_type: double
value: 2000000
20FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 1500000
25FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 1200000
30FPS:
# GPU Frametime divider (default value)
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 1000000
35FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 857142
40FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 750000
45FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 666666
50FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 600000
55FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 545454
60FPS:
# GPU Frametime divider
-
type: write
address: [MAIN, 0x32C6D00]
value_type: double
value: 500000
value: "(30 / FPS_TARGET) * 1000000"

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: write
type: evaluate_write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [66.6, 66.6]
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [33.3, 33.3]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [28.5, 28.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [22.2, 22.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [18.1, 18.1]
# t.MaxFPS
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5228DC0, 0]
value_type: float
value: [16.6, 16.6]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x524F940, 0]
value_type: float
value: [0, 0]

@ -4,217 +4,25 @@
unsafeCheck: true
15FPS:
# FPS Target = (19200*(1000/(FPS*2)))
ALL_FPS:
# FPS Target
-
type: write
type: evaluate_write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 640000
# FPS 2D Game Speed Target = (1/(FPS*2))
value: "(FRAMETIME_TARGET / 2) * 19200"
# FPS 2D Game Speed Target
-
type: write
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.03333333
# FPS 3D Game Speed Target = (1/(FPS*2))
value: "0.5 / FPS_TARGET"
# FPS 3D Game Speed Target
-
type: write
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.03333333
value: "0.5 / FPS_TARGET"
-
type: block
what: timing
20FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 480000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.025
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.025
-
type: block
what: timing
25FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 384000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.02
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.02
-
type: block
what: timing
30FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 320000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.01666666
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.01666666
35FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 274286
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.01428571
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.01428571
-
type: block
what: timing
40FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 240000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.0125
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.0125
-
type: block
what: timing
45FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 213334
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.01111111
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.01111111
-
type: block
what: timing
50FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 192000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.01
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.01
-
type: block
what: timing
55FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 174546
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.00909091
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.00909091
-
type: block
what: timing
60FPS:
# FPS Target
-
type: write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: 160000
# FPS 2D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: 0.00833333
# FPS 3D Game Speed Target
-
type: write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: 0.00833333

@ -0,0 +1,27 @@
# Xuan Yuan Sword 7 1.0.0
# BID: F8EA898027152437
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x649CE60, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6C3C9F8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6C5FB20, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default is 30)
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8A9A438, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x8AC7808, 0]
value_type: float
value: [0, 0]

@ -5,137 +5,17 @@
unsafeCheck: true
15FPS:
ALL_FPS:
-
type: write
type: evaluate_write
address: [MAIN, 0x269E150]
value_type: int32
value: [15, 2, 15]
value: [FPS_TARGET, VSYNC_TARGET, FPS_TARGET]
-
type: write
type: evaluate_write
address: [MAIN, 0x269E15C]
value_type: float
value: 15
value: FPS_LOCK_TARGET
-
type: block
what: timing
20FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [20, 2, 20]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [25, 2, 25]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [30, 2, 30]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 30
35FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [35, 1, 35]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [40, 1, 40]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [45, 1, 45]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [50, 1, 50]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [55, 1, 55]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
-
type: write
address: [MAIN, 0x269E150]
value_type: int32
value: [60, 1, 60]
-
type: write
address: [MAIN, 0x269E15C]
value_type: float
value: 60

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0xA158F08, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0xA1884D8, 0]
value_type: float
value: [0, 0]

@ -3,19 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -25,195 +25,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [0, 0]
# r.VSync (default is 1)
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x7ABD908, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x7AEB4D8, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x72F0BD8, 0]
value_type: uint32
value: [0, 0]

@ -4,7 +4,7 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
@ -18,208 +18,16 @@ unsafeCheck: true
value: 7
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: write
type: evaluate_write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [66.6, 66.6]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [33.3, 33.3]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [0, 0]
35FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [28.5, 28.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [22.2, 22.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [18.1, 18.1]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x5F32908, 0x7B8]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x5F086C0, 0]
value_type: float
value: [16.6, 16.6]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x5F331D8, 0]
value_type: float
value: [0, 0]

@ -0,0 +1,27 @@
# Expeditions: A Mudrunner Game 1.5.0.0
# BID: 0542802E014A7312
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x3574A00
-
type: bytes
main_offset: 0x16589A0
value_type: uint32
value:
- 0x9000F8EC
- 0xB94A018C
# default value
-
type: bytes
main_offset: 0x3574A00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x3574A00]
value_type: float
value: FRAMETIME_TARGET

@ -1,82 +0,0 @@
# Expeditions: A Mudrunner Game 1.3.0.0
# BID: 2D32512D25F74760
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x356AA00
-
type: bytes
main_offset: 0x1650D90
value_type: uint32
value:
- 0xD000F8CC
- 0xB94A018C
# default value
-
type: bytes
main_offset: 0x356AA00
value_type: float
value: 33.3333333333
15FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 66.6666666666
20FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 50
25FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 40
30FPS:
# default value
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 33.3333333333
35FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 28.5714
40FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 25
45FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 22.2222222222
50FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 20
55FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 18.1818181818
60FPS:
-
type: write
address: [MAIN, 0x356AA00]
value_type: float
value: 16.6666666666

@ -1,82 +0,0 @@
# Expeditions: A Mudrunner Game 1.2.0.0
# BID: 2DF3FBBCB5B00404
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x355DA00
-
type: bytes
main_offset: 0x1645470
value_type: uint32
value:
- 0x9000F8CC
- 0xB94A018C
# default value
-
type: bytes
main_offset: 0x355DA00
value_type: float
value: 33.3333333333
15FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 66.6666666666
20FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 50
25FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 40
30FPS:
# default value
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 33.3333333333
35FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 28.5714
40FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 25
45FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 22.2222222222
50FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 20
55FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 18.1818181818
60FPS:
-
type: write
address: [MAIN, 0x355DA00]
value_type: float
value: 16.6666666666

@ -0,0 +1,27 @@
# Expeditions: A Mudrunner Game 1.6.0.0
# BID: 8D76B30C877FED66
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x3574A00
-
type: bytes
main_offset: 0x16589E0
value_type: uint32
value:
- 0x9000F8EC
- 0xB94A018C
# default value
-
type: bytes
main_offset: 0x3574A00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x3574A00]
value_type: float
value: FRAMETIME_TARGET

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
type: evaluate_write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [66.66, 66.66]
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default is 30)
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x6AFA6C8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x6B28058, 0]
value_type: float
value: [0, 0]

@ -1,159 +0,0 @@
# Gigantosaurus The Game 1.0.0
# BID: EF7B49570430043E
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [15, 15]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default is 30)
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [0, 0]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x52F20E8, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x531C300, 0]
value_type: float
value: [0, 0]

@ -1,279 +0,0 @@
# Jujutsu Kaisen Cursed Clash JP 1.0.1
# BID: 372BF1E32FC51836
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 60)
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [0, 0]
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8013A48, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8056F50, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x73980C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80567A8, 0x9C4]
value_type: uint32
value: 7

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

@ -1,279 +0,0 @@
# Jujutsu Kaisen Cursed Clash JP 1.0.2
# BID: EA01C4BA969E8159
unsafeCheck: true
15FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [66.66, 66.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [15, 15]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [33.33, 33.33]
# t.MaxFPS (default value is 60)
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [0, 0]
# r.VSync (default value is 1)
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [28.51, 28.51]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [22.22, 22.22]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [18.18, 18.18]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x8014A48, 0]
value_type: float
value: [16.66, 16.66]
# t.MaxFPS
-
type: write
address: [MAIN, 0x8057F50, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0x73990C8, 0]
value_type: uint32
value: [0, 0]
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x80577A8, 0x9C4]
value_type: uint32
value: 7

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# fixedDeltaTime
-
type: write
type: evaluate_write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0333333333
20FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0333333333
25FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0333333333
30FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0333333333
35FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
40FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
45FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
50FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
55FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
60FPS:
# fixedDeltaTime
-
type: write
address: [MAIN, 0x6421720, 0x48]
value_type: float
value: 0.0166666666
value: "FRAMETIME_TARGET / 1000"

@ -3,73 +3,10 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
20FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
25FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
30FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo (originally it's 2, but setting it with NX-FPS interval also to 2 causes bigger input lag)
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
35FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
40FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
45FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
50FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
55FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1
60FPS:
# _UnityEngine.Rendering.OnDemandRendering_TypeInfo
-
type: write
address: [MAIN, 0x481B2F8, 0xB8, 0]
value_type: int32
value: 1

@ -3,7 +3,7 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Disable bUseFixedFrameRate to unlock framerate
-
type: write
@ -23,10 +23,10 @@ unsafeCheck: true
value: 0
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
@ -36,249 +36,3 @@ unsafeCheck: true
-
type: block
what: timing
20FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [20, 20]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
25FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [25, 25]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
30FPS:
# Disable bUseFixedFrameRate (default is 0x47)
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep (by default it's 1)
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [0, 0]
# r.VSync (by default it's 1)
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
35FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [35, 35]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
40FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [40, 40]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
45FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [45, 45]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
50FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [50, 50]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
55FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [55, 55]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing
60FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0xB314540, 0x7F8]
value_type: uint32
value: 7
# CustomTimeStep
-
type: write
address: [MAIN, 0xB314540, 0x810]
value_type: uint8
value: 0
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0xB314830, 0]
value_type: float
value: [0, 0]
# r.VSync
-
type: write
address: [MAIN, 0xAB49110, 0]
value_type: uint32
value: [0, 0]

@ -1,84 +0,0 @@
# Hammerwatch Anniversary Edition 1.0.2
# BID: 62B999CF9D465F00
unsafeCheck: true
MASTER_WRITE:
# Rewrite "v_fps_limit 30" to 62
-
type: bytes
main_offset: 0x805BEC
value_type: uint16
value: 0x3236
# Change egl Interval to lock game by default to 30 FPS
-
type: bytes
main_offset: 0x1461F8
value_type: uint32
value: 0x52800041
-
type: bytes
main_offset: 0x146220
value_type: uint32
value: 0x52800041
15FPS:
# DUMMY
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
20FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
25FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
30FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
35FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
40FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
45FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
50FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
55FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0
60FPS:
-
type: write
address: [MAIN, 0x179C0E0]
value_type: uint8
value: 0

@ -0,0 +1,30 @@
# Hammerwatch Anniversary Edition 1.0.3
# BID: D147CAEF2BC74574
unsafeCheck: true
MASTER_WRITE:
# Rewrite "v_fps_limit 30" to 62
-
type: bytes
main_offset: 0xE028B5
value_type: uint16
value: 0x3236
# Change egl Interval to lock game by default to 30 FPS
-
type: bytes
main_offset: 0x141580
value_type: uint32
value: 0x52800041
-
type: bytes
main_offset: 0x1415A8
value_type: uint32
value: 0x52800041
ALL_FPS:
# DUMMY
-
type: write
address: [MAIN, 0x15ABF3C0]
value_type: uint8
value: 0

@ -3,97 +3,13 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# FPS Lock
-
type: write
type: evaluate_write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 15
value: FPS_LOCK_TARGET
-
type: block
what: timing
20FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 30
35FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
# FPS Lock
-
type: write
address: [MAIN, 0x24924D8, 0x504C]
value_type: float
value: 60

@ -0,0 +1,30 @@
# Hammerwatch 2 1.0.4
# BID: 38896FEC1B4ADB1C
unsafeCheck: true
MASTER_WRITE:
# Rewrite "v_fps_limit 30" to 62
-
type: bytes
main_offset: 0x7C7597
value_type: uint16
value: 0x3236
# Change egl Interval to lock game by default to 30 FPS
-
type: bytes
main_offset: 0x135D10
value_type: uint32
value: 0x52800041
-
type: bytes
main_offset: 0x135D38
value_type: uint32
value: 0x52800041
ALL_FPS:
# DUMMY
-
type: write
address: [MAIN, 0x161BCF8]
value_type: uint8
value: 0

@ -1,84 +0,0 @@
# Hammerwatch 2 1.0.2
# BID: 77DDECED11491422
unsafeCheck: true
MASTER_WRITE:
# Rewrite "v_fps_limit 30" to 62
-
type: bytes
main_offset: 0x805B29
value_type: uint16
value: 0x3236
# Change egl Interval to lock game by default to 30 FPS
-
type: bytes
main_offset: 0x1461C8
value_type: uint32
value: 0x52800041
-
type: bytes
main_offset: 0x1461F0
value_type: uint32
value: 0x52800041
15FPS:
# DUMMY
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
20FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
25FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
30FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
35FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
40FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
45FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
50FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
55FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0
60FPS:
-
type: write
address: [MAIN, 0x17F2AC8]
value_type: uint8
value: 0

@ -3,100 +3,13 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# FPS lock
-
type: write
type: evaluate_write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 15
value: FPS_LOCK_TARGET
-
type: block
what: timing
20FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 20
-
type: block
what: timing
25FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 25
-
type: block
what: timing
30FPS:
# FPS lock (default)
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 30
-
type: block
what: timing
35FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 35
-
type: block
what: timing
40FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 40
-
type: block
what: timing
45FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 45
-
type: block
what: timing
50FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 50
-
type: block
what: timing
55FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 55
-
type: block
what: timing
60FPS:
# FPS lock
-
type: write
address: [MAIN, 0xCF90F8, 0x4C]
value_type: float
value: 60

@ -3,157 +3,19 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945)
-
type: write
type: evaluate_write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [63, 63]
value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [47.2, 47.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [37.8, 37.8]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [33.3, 33.3]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [30, 30]
35FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [27, 27]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [23.6, 23.6]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [21, 21]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [18.9, 18.9]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [17.1, 17.1]
# t.MaxFPS
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x532B3A0, 0]
value_type: float
value: [16.6, 16.6]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x5350858, 0]
value_type: float
value: [0, 0]

@ -1,224 +0,0 @@
# The Witcher 3 3.7
# BID: 4FFB62F1CD9E17F8
unsafeCheck: true
15FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 63
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 63
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA8F4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x4FDA924]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x4C983EC]
value_type: int32
value: 60
-
type: block
what: timing

@ -3,222 +3,25 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# DRGameTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312B4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# DRCinematicTargetFrameTimeInMs
-
type: write
type: evaluate_write
address: [MAIN, 0x41312E4]
value_type: float
value: 63
value: "0.945 * FRAMETIME_TARGET"
# LimitFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 15
-
type: block
what: timing
20FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 47.25
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 47.25
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 20
-
type: block
what: timing
25FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 37.8
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 37.8
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 25
-
type: block
what: timing
30FPS:
# DRGameTargetFrameTimeInMs (original value)
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 31.5
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 31.5
# LimitFPS (original value)
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
35FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 27
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 27
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 35
-
type: block
what: timing
40FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 23.625
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 23.625
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 40
-
type: block
what: timing
45FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 21
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 21
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 45
-
type: block
what: timing
50FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 18.9
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 18.9
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 50
-
type: block
what: timing
55FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 17.1818181818
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 17.1818181818
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 55
-
type: block
what: timing
60FPS:
# DRGameTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312B4]
value_type: float
value: 15.75
# DRCinematicTargetFrameTimeInMs
-
type: write
address: [MAIN, 0x41312E4]
value_type: float
value: 15.75
# LimitFPS
-
type: write
address: [MAIN, 0x411DCFC]
value_type: int32
value: 60
value: FPS_LOCK_TARGET
-
type: block
what: timing

@ -3,7 +3,7 @@
unsafeCheck: true
15FPS:
ALL_FPS:
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
@ -17,208 +17,16 @@ unsafeCheck: true
value: 7
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: write
type: evaluate_write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [66.6, 66.6]
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: write
type: evaluate_write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [15, 15]
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing
20FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [50, 50]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [20, 20]
-
type: block
what: timing
25FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [40, 40]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [25, 25]
-
type: block
what: timing
30FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget (default value)
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [33.3, 33.3]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [0, 0]
35FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [28.5, 28.5]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [35, 35]
-
type: block
what: timing
40FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [25, 25]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [40, 40]
-
type: block
what: timing
45FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [22.2, 22.2]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [45, 45]
-
type: block
what: timing
50FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [20, 20]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [50, 50]
-
type: block
what: timing
55FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [18.1, 18.1]
# t.MaxFPS
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [55, 55]
-
type: block
what: timing
60FPS:
# Disable bSmoothFrameRate and bUseFixedFrameRate
-
type: write
address: [MAIN, 0x77C7098, 0x7A4]
value_type: uint32
value: 7
# r.DynamicRes.FrameTimeBudget
-
type: write
address: [MAIN, 0x779A0E8, 0]
value_type: float
value: [16.6, 16.6]
# t.MaxFPS (default value)
-
type: write
address: [MAIN, 0x77C79B8, 0]
value_type: float
value: [0, 0]

@ -40,63 +40,9 @@ MASTER_WRITE:
main_offset: 0x3BE1200
value_type: double
value: [31, 29]
15FPS:
ALL_FPS:
-
type: write
type: evaluate_write
address: [MAIN, 0x3BE1200]
value_type: double
value: [62, 58]
20FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [46.5, 43.5]
25FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [37.2, 34.8]
30FPS:
- # Default values
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [31, 29]
35FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [26.5714, 24.8571]
40FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [23.25, 21.75]
45FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [20.666666, 19.333333]
50FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [18.6, 17.4]
55FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [16.90909, 15.818181]
60FPS:
-
type: write
address: [MAIN, 0x3BE1200]
value_type: double
value: [15.5, 14.5]
value: ["0.93 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"]

@ -1,82 +0,0 @@
# Fate/Samurai Remnant 1.1.3
# BID: 0F09DF1B3AA9E3FD
unsafeCheck: true
# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8
MASTER_WRITE:
-
type: bytes
main_offset: 0x5DB12C
value_type: uint32
value: 0x52800079
15FPS:
# interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 4
20FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 3
25FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 2
30FPS:
# interval (default value)
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 2
35FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1
40FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1
45FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1
50FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1
55FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1
60FPS:
# interval
-
type: write
address: [MAIN, 0x33B26C0]
value_type: int32
value: 1

@ -0,0 +1,19 @@
# Fate/Samurai Remnant 1.2.1
# BID: 85D00BDAADD369E6
unsafeCheck: true
# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8
MASTER_WRITE:
-
type: bytes
main_offset: 0x5DB12C
value_type: uint32
value: 0x52800079
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, 0x33FA018]
value_type: int32
value: VSYNC_TARGET

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