mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-08-10 19:42:03 +00:00
Compare commits
No commits in common. "main" and "2.0-R1" have entirely different histories.
151
README.md
151
README.md
@ -1,99 +1,62 @@
|
|||||||
# UltraNX by **[redraz](https://github.com/redraz)**
|
# Ultra-NX by **[redraz](https://github.com/redraz)**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# [English Readme](README_ENG.md)
|
### [English Readme](README_ENG.md) | [Группа в телеграме](https://t.me/UltraNX) | [Wiki](https://github.com/Ultra-NX/Ultra/wiki)
|
||||||
|
|
||||||
### [Группа в телеграме](https://t.me/UltraNX) | [Wiki](https://github.com/Ultra-NX/Ultra/wiki)
|
|
||||||
|
|
||||||
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
|
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
|
||||||
|
|
||||||
### [Ultra 2.5|R2](https://github.com/Ultra-NX/UltraNX/releases) Поддерживает все HOS, включая 20.3.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Особенности Ultra
|
## Особенности Ultra
|
||||||
|
|
||||||
* Предварительно настроенный OC Switchcraft (Преемник OC-Suite, аналог 4IFIR) с пресетами.
|
* Предварительно настроенный OC-Suite с пресетами.
|
||||||
* Небольшой андервольт (сниженные вольтажи) в стоке, что заметно снижает потребление консоли, и заметный разгон памяти, который сделает игры плавнее.
|
|
||||||
* Лучший кастомизатор разгона для Свитч - [Ultra-Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Ultra-Tuner), позволяющий настраивать разгон прямо с консоли. Был первым, и остается неповторимым.
|
* Лучший кастомизатор разгона для Свитч - [Ultra-Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Ultra-Tuner), позволяющий настраивать разгон прямо с консоли. Был первым, и остается неповторимым.
|
||||||
* Сборка максимально легкая и не нагруженная. В ней нет лишнего, минимум необходимый для разгона и комфортного использования.
|
* Сборка максимально легкая и не нагруженная. В ней нет лишнего, минимум необходимый для разгона и комфортного использования.
|
||||||
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через [Ultra Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
|
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через комплектный [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
|
||||||
* Кастомная настройка работы системы охлаждения, и пресеты на выбор.
|
* Выбор пресета работы системы охлаждения, либо шумно но холодно, либо тихо но горячо.
|
||||||
* Регулярные обновления, и активное комьюнити.
|
* Кастомный Ultra Monitor c FPS и системными метриками.
|
||||||
* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила.
|
* Регулярные обновления, и активное коммьюнити.
|
||||||
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
|
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
|
||||||
* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей:
|
|
||||||
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему.
|
|
||||||
* Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Состав Ultra
|
## Состав Ultra
|
||||||
|
|
||||||
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch.
|
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch.
|
||||||
1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое.
|
1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое.
|
||||||
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultrahand, позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
|
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultra Paw (форка Ultrahand), позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
|
||||||
1. **[OC-Switchcraft](https://github.com/halop/OC-Switchcraft-EOS/releases)**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Загрузчик Атмосферы с разгоном от B3711 и Meha, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
|
1. **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Пакет разгона от Meha/hanai3Bi, открытые исходники гарантируют надежность и отсутствие скрытых гадостей. Вовремя обновляется для поддержки новых возможностей Атмосферы. Используется модифицированный loader.kip от B3711, в котором больше таблиц андервольта CPU (6 уровней против 4х).
|
||||||
|
- Временно используется оригинал от Meha.
|
||||||
|
|
||||||
1. **Установленные пейлоады**:
|
1. **Установленные пейлоады**:
|
||||||
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Программа для снятия ключей консоли.
|
* [Lockpick_RCM](https://codeberg.org/rashevskyv/kefir) - Программа для снятия ключей консоли.
|
||||||
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
|
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
|
||||||
|
|
||||||
|
|
||||||
1. **Установленные Homebrew**
|
1. **Установленные Homebrew**
|
||||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Современное Хоумбрю Меню, аналог nx-hbmenu
|
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов.
|
||||||
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления UltraNX до актуальной версии, а так же для скачивания читов и HOS.
|
* [DBI](https://github.com/rashevskyv/dbi) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater) есть выбор из EN-RU-PTBR-ZHCN.
|
||||||
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - Программа для обновления HOS (системного ПО).
|
|
||||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль.
|
|
||||||
|
|
||||||
|
|
||||||
1. **Установленные модули**
|
1. **Установленные модули**
|
||||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины.
|
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины. Не совместим с 32-х битными играми (список на гитхабе проекта).
|
||||||
* [sys-clk](https://github.com/ppkantorski/sys-clk) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности.
|
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Переодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
|
||||||
* [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - С помощью этого модуля осуществляется переключение установленных модулей.
|
* [nx-ovlloader](https://github.com/WerWolv/nx-ovlloader/) - С помощью этого модуля осуществляется переключение установленных модулей.
|
||||||
* [sys-patch](https://github.com/impeeza/sys-patch) - Патчит систему на работу неподписанного софта вместо сигпатчей.
|
* [sys-patch](https://github.com/ITotalJustice/sys-patch/) - Создает/обновляет патчи при запуске системы. Не заменяет сигпатчи, но избавляет от регулярного ручного обновления патчей системы.
|
||||||
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
|
* [Ultra Paw Overlay](https://github.com/Ultra-NX/Ultra-Paw-Overlay), форк [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner.
|
||||||
* [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
|
- **`Ultra-Overlay`**, мод [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках.
|
||||||
* [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Также позволяет использовать самописные пакеты, например - Ultra Tuner.
|
- [Ultra Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), форк [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Настроить внешность Micro-оверлея можно в Updater.
|
||||||
- **`Ultra OC (sys-clk)`**, мод [sys-clk](https://github.com/ppkantorski/sys-clk) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках (Так как они закрыты).
|
|
||||||
- [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Tuner.
|
|
||||||
- [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх.
|
- [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх.
|
||||||
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов, включая графические.
|
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов.
|
||||||
- [ReverseNX-RT](https://github.com/ppkantorski/ReverseNX-RT) - Оверлей для переключения запущенной игры в портатив\док, меняет настройки графики\разрешения в играх.
|
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - Оверлей для управления ReverseNX.
|
||||||
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Оверлей для включения\отключения установленных системных модулей.
|
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей.
|
||||||
|
1. **Доступные для скачивания через [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
|
||||||
|
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere/tree/master/troposphere/daybreak) - Программа для обновления системного ПО.
|
||||||
1. **Доступные для скачивания через [Ultra Tuner](https://github.com/Ultra-NX/UltraNX/wiki/Tuner-RU#ultra-tuner)**
|
* [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта.
|
||||||
* Homebrews:
|
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
|
||||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Здесь можно скачать DBI или обновить имеющийся.
|
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
|
||||||
* [Linkalho](https://gbatemp.net/download/linkalho.38822) - Программа для привязки аккаунта. Без привязки не будут работать некоторые игры.
|
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
|
||||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Здесь можно обновить Sphaira\обновить ее конфиг.
|
* [SysDVR-conf](https://github.com/exelix11/SysDVR) - Программа для установки/удаления dvr патчей для игр. Патчи включают возможность записи в тех играх, где она отключена, но ломают некоторые другие игры, например "Ведьмак 3".
|
||||||
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP.
|
* [sys-ftpd](https://github.com/cathery/sys-ftpd) - FTP сервер, работающий на фоне.
|
||||||
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Клиент Moonlight, позволяет транслировать на консоль игры с PC.
|
* [sys-con](https://github.com/cathery/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
|
||||||
* [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.
|
||||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
|
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - Оверлей с максимально подробным отображением статистики системы, напоминает Afterburner на PC.
|
||||||
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
||||||
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. Старая версия, которая многим нравится больше новой.
|
* **`RaytracingNX`** - Бенчмарк цпу.
|
||||||
* [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Бенчмарк. Результат сильно зависит от разгона CPU. Версия из Чифира которая в реальном времени тестирует CPU Copy, что позволяет быстро узнать результат после изменения таймингов.
|
* **`stress-nx`** - Стресс-тест/бенчмарк цпу.
|
||||||
|
* **`mhz`** - Программа показывающая честную максимальную частоту цпу.
|
||||||
* Overlays:
|
|
||||||
* [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Форк Status Monitor от kantorski.
|
|
||||||
* [Tetris](https://github.com/ppkantorski/Tetris-Overlay) - Та самая игра в виде оверлея. Работает только на последних версиях Ultrahand.
|
|
||||||
* [MasterVolume](https://github.com/averne/MasterVolume) - Регулировка глобальной громкости, позволяет поднять громкость выше максимума. Использовать аккуратно!
|
|
||||||
* [NX-FanControl](https://github.com/Zathawo/NX-FanControl) - Модуль для ручной регулировки оборотов кулера. Изменения применяются сразу, модуль смотрит на температуру SOC а не Skin, как Атмосфера.
|
|
||||||
* [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - Оверлей, позволяющий быстро отключаться\подключаться к bluetooth-гарнитуре.
|
|
||||||
* [Fizeau](https://github.com/averne/Fizeau) - Модуль для изменения цветового профиля экрана.
|
|
||||||
* [sys-tune](https://github.com/HookedBehemoth/sys-tune) - Оверлей-музыкальный плеер, работает в фоне.
|
|
||||||
|
|
||||||
* Other:
|
|
||||||
* [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Пакет патчей для FPSLocker, позволяет обновить все патчи сразу, вместо скачивания по одному через оверлей FPSLocker'а. В Ультре по умолчанию всегда последние патчи, так что достаточно своевременно обновлять сборку.
|
|
||||||
* [DVR Patches](https://github.com/exelix11/dvr-patches) - Патчи SysDVR, работают и без системного модуля, активируя фоновую запись в играх, где это изначально запрещено.
|
|
||||||
* [Mod Alchemist](https://github.com/ppkantorski/Mod-Alchemist) - Пакет для скачивания, установки и управления модами для игр.
|
|
||||||
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Лицензии
|
## Лицензии
|
||||||
@ -102,36 +65,26 @@
|
|||||||
|
|
||||||
[GPL 2.0](https://github.com/Atmosphere-NX/Atmosphere/blob/master/LICENSE):
|
[GPL 2.0](https://github.com/Atmosphere-NX/Atmosphere/blob/master/LICENSE):
|
||||||
* [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)
|
* [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)
|
||||||
|
* [Status-Monitor-Overlay](https://github.com/masagrator/Status-Monitor-Overlay)
|
||||||
|
|
||||||
|
[CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE)
|
||||||
|
* [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay)
|
||||||
|
|
||||||
## Благодарности
|
## Благодарности
|
||||||
|
|
||||||
* B3711
|
* Cooler3D
|
||||||
* ppkantorski
|
* Efosamark
|
||||||
* Meha
|
* rashevskyv/хНЯ
|
||||||
* duckbill
|
* snupt/Catcher In The Grain Field
|
||||||
* snupt
|
* ppkantorski/b0rd2dEAth
|
||||||
|
* hanai3Bi/Meha
|
||||||
|
* 4PDA
|
||||||
#### А так же - отдельная благодарность администрации и участникам Ultra Group
|
#### А так же - отдельная благодарность администрации и участникам Ultra Group
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Поддержка
|
## Поддержка
|
||||||
|
|
||||||
Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен.
|
Если вам понравились результаты моих стараний, и у вас появилось желание закинуть мне на шаурму - я буду очень благодарен.
|
||||||
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
|
* Сделать это можно через @wallet telegram, на мой аккаунт @redraz
|
||||||
```
|
* Либо через Сбер: 2202200513345833
|
||||||
СБП (Т-Банк): +79168089980
|
* Так же по QR через Tinkoff
|
||||||
|
|
||||||
Альфа : 2200152336577997
|
|
||||||
Т-Банк : 2200700170486970
|
|
||||||
Сбер : 2202200513345833
|
|
||||||
|
|
||||||
TON: UQA9My51bkGZHbYhbdRZfp6B60N7VJfsnKl0sakgw9YhAPct
|
|
||||||
BTC: 18K6NN8NEavvMJL5Do3VTyJbL8NeZPHo93
|
|
||||||
USDT TRC20: TUZ5szAmRsnvBuC4rFB8RaAoCbN6Ucy4sL
|
|
||||||
```
|
|
||||||
|
|
||||||
### Т-Банк QR
|
|
||||||

|

|
135
README_ENG.md
135
README_ENG.md
@ -1,94 +1,61 @@
|
|||||||
# UltraNX by **[redraz](https://github.com/redraz)**
|
# Ultra-NX by **[redraz](https://github.com/redraz)**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### [Telegram group](https://t.me/UltraNX) - Don't be afraid to write in English, we will understand everything and answer you!
|
### [English Readme](README_ENG.md) | [Telegram group](https://t.me/UltraNX)
|
||||||
#
|
|
||||||
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
|
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
|
||||||
|
|
||||||
### [Ultra 2.5|R2](https://github.com/Ultra-NX/UltraNX/releases) Supports all HOS, including 20.3.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Features of Ultra
|
## Features of Ultra
|
||||||
|
|
||||||
* Pre-configured OC Switchcraft (Successor to OC-Suite) with presets.
|
* Pre-configured OC-Suite with presets.
|
||||||
* By default, there's already an undervolt that noticeably reduces the console's consumption, and a slight memory overclock that will make games smoother.
|
|
||||||
* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique.
|
* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique.
|
||||||
* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use.
|
* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use.
|
||||||
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the Ultra Tuner.
|
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the bundled Updater.
|
||||||
* Manual adjustment of cooling system curves, and presets.
|
* Choice of cooling system preset, either noisy but cold or quiet but hot.
|
||||||
|
* Custom Ultra Monitor with FPS and system metrics.
|
||||||
* Regular updates, and an active community.
|
* Regular updates, and an active community.
|
||||||
* [Forks](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (own modifications) of programs and components needed for convenience, security and empowerment:
|
|
||||||
* Atmosphere fork with Ultra version in system information, and disabled reports, which usually clogs up the SD card, wastes its resource and breaks the file system.
|
|
||||||
* Mission Control fork, with the “easter egg” cut out, making the joycons yellow-blue.
|
|
||||||
|
|
||||||
|
## Composition of Ultra
|
||||||
|
|
||||||
## Content of Ultra
|
|
||||||
|
|
||||||
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, custom firmware for the Nintendo Switch.
|
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. **[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 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. **[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](https://github.com/halop/OC-Switchcraft-EOS/releases)**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Atmosphere Loader with overclocking from B3711 & Meha, allows you to reach from N.Switch power Xbox One. Updated in time to support new Atmosphere features.
|
1. **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Overclocking package by Meha/hanai3Bi, open source guarantees reliability and no hidden nasties. Updated in time to support new Atmosphere features. Uses modified loader.kip from B3711, which has more CPU undervolt tables (6 levels vs. 4x).
|
||||||
|
- The original from Meha is temporarily used.
|
||||||
|
|
||||||
1. **Installed Payloads**:
|
1. **Installed Payloads**:
|
||||||
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Program for dumping console keys.
|
* [Lockpick_RCM](https://codeberg.org/rashevskyv/kefir) - Program for dumping console keys.
|
||||||
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system.
|
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system.
|
||||||
|
|
||||||
|
|
||||||
1. **Installed Homebrew**
|
1. **Installed Homebrew**
|
||||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Modern Homebrew Menu, analogous to nx-hbmenu
|
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Program to update Ultra to the current version, as well as to download cheats.
|
||||||
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Program to update Ultra to the current version, as well as to download cheats & HOS.
|
* [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.
|
||||||
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - A program for updating HOS.
|
|
||||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - The best file manager, save manager and program installer on the console.
|
|
||||||
|
|
||||||
|
|
||||||
1. **Installed Modules**
|
1. **Installed Modules**
|
||||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins.
|
* [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/ppkantorski/sys-clk) - Module responsible for overclocking CPU, memory and GPU - for better performance.
|
* [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.
|
||||||
* [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - This module is used to switch the installed modules.
|
* [nx-ovlloader](https://github.com/WerWolv/nx-ovlloader/) - This module is used to switch the installed modules.
|
||||||
* [sys-patch](https://github.com/impeeza/sys-patch) - Patches the system to run unsigned software instead of sigpatches.
|
* [sys-patch](https://github.com/ITotalJustice/sys-patch/) - Creates/updates patches at system startup. Does not replace sigpatches, but saves from regular manual updating of system patches.
|
||||||
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth.
|
* [Ultra Paw Overlay](https://github.com/Ultra-NX/Ultra-Paw-Overlay), a fork of [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.
|
||||||
* [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
|
- **`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.
|
||||||
* [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 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 can customize Micro-overlay appearance in Updater.
|
||||||
- **`Ultra OC (sys-clk)`**, a mod of [sys-clk](https://github.com/ppkantorski/sys-clk) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources (Since they're closed).
|
|
||||||
- [Status Monitor](https://github.com/ppkantorski/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 Tuner.
|
|
||||||
- [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games.
|
- [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.
|
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats.
|
||||||
- [ReverseNX-RT](https://github.com/ppkantorski/ReverseNX-RT) - An overlay for switching a running game to a handheld\dock mode, which changes the graphics and resolution settings in games.
|
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - ReverseNX control overlay.
|
||||||
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Overlay for enabling\disabling installed system modules.
|
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Overlay for enabling and disabling installed system modules.
|
||||||
|
|
||||||
|
|
||||||
1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
|
1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
|
||||||
* Homebrews:
|
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere/tree/master/troposphere/daybreak) - A program for updating OS.
|
||||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Here you can download a DBI or update an existing one.
|
* [Linkalho](https://github.com/rdmrocha/linkalho) - Account linking program.
|
||||||
* [Linkalho](https://gbatemp.net/download/linkalho.38822/) - Account linking program. Some games won't work without the link.
|
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
|
||||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Here you can update Sphaira\update its config.
|
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
|
||||||
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator.
|
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
|
||||||
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Moonlight client, allows to stream games from PC.
|
* [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".
|
||||||
* [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.
|
* [sys-ftpd](https://github.com/cathery/sys-ftpd) - FTP server running in background.
|
||||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
|
* [sys-con](https://github.com/cathery/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
|
||||||
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
|
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth.
|
||||||
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one.
|
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - An overlay with the most detailed display of system statistics, similar to Afterburner on PC.
|
||||||
* [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Benchmark. The result is highly dependent on CPU overclocking. A version from 4ifir that tests CPU Copy in real time, which allows you to quickly find out the result after changing timings.
|
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
|
||||||
|
* **`RaytracingNX`** - CPU benchmark.
|
||||||
* Overlays:
|
* **`stress-nx`** - Stress test/benchmark CPU.
|
||||||
* [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Status Monitor fork from kantorski.
|
* **`mhz`** - A program that shows the real maximum CPU frequency.
|
||||||
* [Tetris](https://github.com/ppkantorski/Tetris-Overlay/) - "That" game in the form of an overlay. Works only on the latest versions of Ultrahand.
|
|
||||||
* [MasterVolume](https://github.com/averne/MasterVolume) - Global volume control, allows you to raise the volume above the maximum. Use with care!
|
|
||||||
* [NX-FanControl](https://github.com/Zathawo/NX-FanControl) - Module for manually adjusting the speed of the cooler. The changes are applied immediately, the module works from SOC temperature and not Skin temperature like Atmosphere.
|
|
||||||
* [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - An overlay that allows you to quickly disconnect\connect to a bluetooth headset.
|
|
||||||
* [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) - The patch package for FPSLocker allows you to update all patches at once, instead of downloading one at a time through the FPSLocker overlay. UltraNX always has the latest patches by default, so it's enough to update the CFW in a timely manner.
|
|
||||||
* [DVR Patches](https://github.com/exelix11/dvr-patches) - SysDVR patches, work without the system module, activating background recording in games where it is initially prohibited.
|
|
||||||
* [Mod Alchemist](https://github.com/ppkantorski/Mod-Alchemist) - A package for downloading, installing, and managing mods for games.
|
|
||||||
* [sys-ftpd](https://github.com/cathery/sys-ftpd) - FTP server running in background.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
@ -97,26 +64,24 @@ Listed below are the licenses of those programs that have been modified specific
|
|||||||
|
|
||||||
[GPL 2.0](https://github.com/Atmosphere-NX/Atmosphere/blob/master/LICENSE):
|
[GPL 2.0](https://github.com/Atmosphere-NX/Atmosphere/blob/master/LICENSE):
|
||||||
* [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)
|
* [Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)
|
||||||
|
* [Status-Monitor-Overlay](https://github.com/masagrator/Status-Monitor-Overlay)
|
||||||
|
|
||||||
|
[CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE)
|
||||||
|
* [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
* B3711
|
* Cooler3D
|
||||||
* ppkantorski
|
* Efosamark
|
||||||
* Meha
|
* rashevskyv/хНЯ
|
||||||
* duckbill
|
* snupt/Catcher In The Grain Field
|
||||||
* snupt
|
* ppkantorski/b0rd2dEAth
|
||||||
|
* hanai3Bi/Meha
|
||||||
|
* 4PDA
|
||||||
#### And also - a special thanks to the administration and members of Ultra Group
|
#### And also - a special thanks to the administration and members of Ultra Group
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
If you like the project and you have a desire to support me with a penny - I will be very grateful.
|
If you liked the results of my labors and you wanted to thank me - I would be very grateful.
|
||||||
I have no other income at the moment, so any monetary help is very valuable to me.
|
You can do this via @wallet telegram, on my @redraz account
|
||||||
```
|
I am from Russia, so there are no other convenient ways to donate me =(
|
||||||
TON: UQA9My51bkGZHbYhbdRZfp6B60N7VJfsnKl0sakgw9YhAPct
|
|
||||||
BTC: 18K6NN8NEavvMJL5Do3VTyJbL8NeZPHo93
|
|
||||||
USDT TRC20: TUZ5szAmRsnvBuC4rFB8RaAoCbN6Ucy4sL
|
|
||||||
```
|
|
@ -14,6 +14,10 @@ X01003A400C3DA000
|
|||||||
;1.1_46609 - 1.1.4_60709 crash on first loading
|
;1.1_46609 - 1.1.4_60709 crash on first loading
|
||||||
010075D00E8BA000
|
010075D00E8BA000
|
||||||
|
|
||||||
|
;Grandia Collection
|
||||||
|
;Only launcher is 64-bit, games are 32-bit
|
||||||
|
0100E0600BBC8000
|
||||||
|
|
||||||
;Immortals Fenyx Rising
|
;Immortals Fenyx Rising
|
||||||
;1.0.3, 1.3.4 crash
|
;1.0.3, 1.3.4 crash
|
||||||
01004A600EC0A000
|
01004A600EC0A000
|
||||||
@ -24,7 +28,7 @@ X0100964012528000
|
|||||||
|
|
||||||
;Olympic Games Tokyo 2020 – The Official Video Game
|
;Olympic Games Tokyo 2020 – The Official Video Game
|
||||||
;1.0.0 crash on boot
|
;1.0.0 crash on boot
|
||||||
X010034B00E14C000
|
010034B00E14C000
|
||||||
|
|
||||||
;Mario Strikers: Battle League
|
;Mario Strikers: Battle League
|
||||||
;1.0.0 crash on boot
|
;1.0.0 crash on boot
|
||||||
@ -40,21 +44,9 @@ X010034B00E14C000
|
|||||||
0100C56010FD8000
|
0100C56010FD8000
|
||||||
|
|
||||||
;EA SPORTS FC 24
|
;EA SPORTS FC 24
|
||||||
;1.0.0 - v1.55.bc14 crash
|
;1.0.0 - v1.53.dd6d crash
|
||||||
0100BDB01A0E6000
|
0100BDB01A0E6000
|
||||||
|
|
||||||
;Company of Heroes Collection
|
;Company of Heroes Collection
|
||||||
;1.5_66915 crashes
|
;1.5_66915 crashes
|
||||||
0100ABD0156F8000
|
0100ABD0156F8000
|
||||||
|
|
||||||
;Donkey Kong Country: Tropical Freeze
|
|
||||||
;Crash at second level
|
|
||||||
X0100C1F0051B6000
|
|
||||||
|
|
||||||
;Death Road to Canada
|
|
||||||
;1.0.8 crash
|
|
||||||
X0100423009358000
|
|
||||||
|
|
||||||
;Splatoon 3
|
|
||||||
;10.0.0 upwards crashes after online match
|
|
||||||
X0100C2500FC20000
|
|
||||||
|
@ -0,0 +1,153 @@
|
|||||||
|
# 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]
|
@ -0,0 +1,153 @@
|
|||||||
|
# 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]
|
@ -1,27 +0,0 @@
|
|||||||
# Horizon Chase 2 1.6.6
|
|
||||||
# BID: D60A7F43A98034BE
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x833A760, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8B27A30, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8B02598, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Horizon Chase 2 1.6.9
|
|
||||||
# BID: E13F632FC2A66EEB
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8349850, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8B36A30, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8B11598, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Horizon Chase 2 1.6.3
|
|
||||||
# BID: F80EEC237D0963EE
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8325D00, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8B13A30, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.DynamicRes.FrameTimeBudget = 0.978 * (1000/FPS)
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8AEE598, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(0.978 * FRAMETIME_TARGET, 1)", "TruncDec(0.978 * FRAMETIME_TARGET, 1)"]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -3,10 +3,73 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# OptimalFrameDuration_ms = 0.96 * (1000/FPS)
|
# OptimalFrameDuration_ms = 0.96 * (1000/FPS)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x2153CFC]
|
address: [MAIN, 0x2153CFC]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "0.96 * FRAMETIME_TARGET"
|
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
|
@ -1,16 +1,99 @@
|
|||||||
# Rad Rodgers: Radical Edition 1.2.0
|
# Rad Rogers: Radical Edition 1.2.0
|
||||||
# BID: 78885A1CA987C04C
|
# BID: 78885A1CA987C04C
|
||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x579C208, 0]
|
address: [MAIN, 0x579C208, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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]
|
@ -1,27 +0,0 @@
|
|||||||
# Gori: Cuddly Carnage 1.0.6
|
|
||||||
# BID: 1146A5AA87A93969
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6A02E68, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6A3C938, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6245AA8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Gori: Cuddly Carnage 1.0.7
|
|
||||||
# BID: A21FFE97D09DCE4E
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6A02E68, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6A3C938, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6245AA8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Gori: Cuddly Carnage 1.0.5
|
|
||||||
# BID: EEE598377C0A5966
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x69FDE68, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6A37938, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6240AA8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,33 +0,0 @@
|
|||||||
# Jujutsu Kaisen Cursed Clash US 1.3.0
|
|
||||||
# BID: 2E7487767D0CA0EE
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x81A5A48, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x81E8F50, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x752A248, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
# Disable bUseFixedFrameRate
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x81E87A8, 0x9C4]
|
|
||||||
value_type: uint32
|
|
||||||
value: 7
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,33 +0,0 @@
|
|||||||
# Jujutsu Kaisen Cursed Clash US 1.2.0
|
|
||||||
# BID: 2F33996FD9C81253
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8069A48, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x80ACF50, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x73EE7C8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
# Disable bUseFixedFrameRate
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x80AC7A8, 0x9C4]
|
|
||||||
value_type: uint32
|
|
||||||
value: 7
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,33 +0,0 @@
|
|||||||
# Jujutsu Kaisen Cursed Clash US 1.4.0
|
|
||||||
# BID: 7C724F497564C027
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8458A48, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x849BF50, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x77DD548, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
# Disable bUseFixedFrameRate
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x849B7A8, 0x9C4]
|
|
||||||
value_type: uint32
|
|
||||||
value: 7
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,33 +0,0 @@
|
|||||||
# Jujutsu Kaisen Cursed Clash US 1.1.0
|
|
||||||
# BID: 95761555A341B190
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8036A48, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8079F50, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x73BB0C8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
# Disable bUseFixedFrameRate
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x80797A8, 0x9C4]
|
|
||||||
value_type: uint32
|
|
||||||
value: 7
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,12 +0,0 @@
|
|||||||
# Agatha Christie - Hercule Poirot: The First Cases 1.0.3
|
|
||||||
# BID: 1570FE23108B93C4
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# fixedDeltaTime
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x4B3E500, 0x48]
|
|
||||||
value_type: float
|
|
||||||
value: "FRAMETIME_TARGET / 1000"
|
|
@ -1,88 +0,0 @@
|
|||||||
# Batman - The Telltale Series 1.0.4
|
|
||||||
# BID: A3A998AF3252D110
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
MASTER_WRITE:
|
|
||||||
# Remove double buffer
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x6440
|
|
||||||
value_type: uint32
|
|
||||||
value:
|
|
||||||
- 0x52800062
|
|
||||||
- 0x9B022501
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0xC5A6D8
|
|
||||||
value_type: uint32
|
|
||||||
value: 0x188CC50
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x1758A90
|
|
||||||
value_type: uint32
|
|
||||||
value: 0x188CC50
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0xC56550
|
|
||||||
value_type: uint32
|
|
||||||
value:
|
|
||||||
- 0xF9400B40
|
|
||||||
- 0xB40000C0
|
|
||||||
- 0xD0005808
|
|
||||||
- 0xF9404908
|
|
||||||
- 0xF9400108
|
|
||||||
- 0xD63F0100
|
|
||||||
- 0x14000004
|
|
||||||
- 0x321A07E0
|
|
||||||
- 0x97EB7BC4
|
|
||||||
- 0xF9000B40
|
|
||||||
- 0xF9400376
|
|
||||||
- 0xB000581B
|
|
||||||
- 0xF9400335
|
|
||||||
- 0xF9479F7B
|
|
||||||
- 0xD0005817
|
|
||||||
- 0xF9400368
|
|
||||||
- 0xF9453AF7
|
|
||||||
- 0xAA1703E0
|
|
||||||
- 0xD63F0100
|
|
||||||
- 0xAA0003E2
|
|
||||||
- 0xAA1503E0
|
|
||||||
- 0xAA1603E1
|
|
||||||
- 0x97CEAD3A
|
|
||||||
- 0xAA0003F5
|
|
||||||
- 0xF9400320
|
|
||||||
- 0x97CEAD47
|
|
||||||
- 0xF9400388
|
|
||||||
- 0xAA0003E1
|
|
||||||
- 0xAA1703E0
|
|
||||||
- 0xAA1503E2
|
|
||||||
- 0xD63F0100
|
|
||||||
- 0xF9400B40
|
|
||||||
- 0xF9400308
|
|
||||||
- 0xAA1703E1
|
|
||||||
- 0xD63F0100
|
|
||||||
- 0xD0005816
|
|
||||||
- 0x17CEBE43
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x5EE8
|
|
||||||
value_type: uint32
|
|
||||||
value: 0x1431419A
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x5FC0
|
|
||||||
value_type: uint32
|
|
||||||
value: 0x52800061
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x5F8C
|
|
||||||
value_type: uint32
|
|
||||||
value: 0xD2A032A2
|
|
||||||
ALL_FPS:
|
|
||||||
# dummy
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x188CF00]
|
|
||||||
value_type: uint8
|
|
||||||
value: 0
|
|
@ -3,20 +3,105 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x69B8C78, 0]
|
address: [MAIN, 0x69B8C78, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x69AEE10, 0]
|
address: [MAIN, 0x69AEE10, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
# r.VSync
|
# 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
|
||||||
-
|
-
|
||||||
type: write
|
type: write
|
||||||
address: [MAIN, 0x6220790, 0]
|
address: [MAIN, 0x6220790, 0]
|
||||||
@ -25,3 +110,110 @@ ALL_FPS:
|
|||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,10 +3,73 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x2D5A83C]
|
address: [MAIN, 0x2D5A83C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"
|
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
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
# Gal*Gun Returns 1.0.4
|
|
||||||
# BID: 7E65E5BC3564BE46
|
|
||||||
# Buffers are hardcoded into fixed size class, so it's hard to get triple buffer
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# FPS Target + FPS Lock
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x16CE8A8, 0x20]
|
|
||||||
value_type: float
|
|
||||||
value: "60 / FPS_TARGET"
|
|
||||||
# Lipsync fix
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1BA0A1C]
|
|
||||||
value_type: uint32
|
|
||||||
value: FPS_TARGET
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,28 +0,0 @@
|
|||||||
# TRANSFORMERS: EARTHSPARK - Expedition 1.0.5
|
|
||||||
# BID: F87BEAF2C5CE13E3
|
|
||||||
# Game is using double frontbuffer and single backbuffer, everything is hardcoded
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6B9BDD8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6BD58A8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x63DCAE8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -3,10 +3,73 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# Dynamic Resolution frame time target
|
# Dynamic Resolution frame time target = (32.3/(1000/30)) * (1000/FPS)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x2D7A974]
|
address: [MAIN, 0x2D7A974]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "0.969 * FRAMETIME_TARGET"
|
value: 64.6
|
||||||
|
20FPS:
|
||||||
|
# Dynamic Resolution frame time target
|
||||||
|
-
|
||||||
|
type: 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
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
# Tiebreak+: Official Game of the ATP and WTA 1.1.0
|
|
||||||
# BID: 2A5244CCB17B44AC
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
MASTER_WRITE:
|
|
||||||
# Triple buffer
|
|
||||||
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x1A81E6C
|
|
||||||
value_type: uint32
|
|
||||||
value: 3
|
|
||||||
# Redirect Dynamic Resolution target reading to MAIN + 0x30C2F00
|
|
||||||
# REF: 0C 9A 88 52 0C 6B A7 72
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x147AA94
|
|
||||||
value_type: uint32
|
|
||||||
value:
|
|
||||||
- 0x9000E248 # ADRP X8, 0x30C2000
|
|
||||||
- 0xBD4F0103 # LDR S3, [X8, 0xF00]
|
|
||||||
- 0xD503201F # NOP
|
|
||||||
## Default values
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x30C2F00
|
|
||||||
value_type: float
|
|
||||||
value: 0.03333333333
|
|
||||||
ALL_FPS:
|
|
||||||
# Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x30C2F00]
|
|
||||||
value_type: float
|
|
||||||
value: "0.8 / FPS_TARGET"
|
|
@ -1,36 +0,0 @@
|
|||||||
# Tiebreak+: Official Game of the ATP and WTA 1.2.0
|
|
||||||
# BID: 5BCA5C20C8F8A9B4
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
MASTER_WRITE:
|
|
||||||
# Triple buffer
|
|
||||||
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x1A82EAC
|
|
||||||
value_type: uint32
|
|
||||||
value: 3
|
|
||||||
# Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00
|
|
||||||
# REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x147B474
|
|
||||||
value_type: uint32
|
|
||||||
value:
|
|
||||||
- 0x9000E248 # ADRP X8, 0x30C3000
|
|
||||||
- 0xBD4F0103 # LDR S3, [X8, 0xF00]
|
|
||||||
- 0xD503201F # NOP
|
|
||||||
## Default values
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x30C3F00
|
|
||||||
value_type: float
|
|
||||||
value: 0.03333333333
|
|
||||||
ALL_FPS:
|
|
||||||
# Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x30C3F00]
|
|
||||||
value_type: float
|
|
||||||
value: "0.8 / FPS_TARGET"
|
|
@ -1,36 +0,0 @@
|
|||||||
# Tiebreak+: Official Game of the ATP and WTA 1.3.0
|
|
||||||
# BID: 88CC45A195E0BDA8
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
MASTER_WRITE:
|
|
||||||
# Triple buffer
|
|
||||||
# REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x1A82F0C
|
|
||||||
value_type: uint32
|
|
||||||
value: 3
|
|
||||||
# Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00
|
|
||||||
# REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x147BE04
|
|
||||||
value_type: uint32
|
|
||||||
value:
|
|
||||||
- 0x9000E248 # ADRP X8, 0x30C3000
|
|
||||||
- 0xBD4F0103 # LDR S3, [X8, 0xF00]
|
|
||||||
- 0xD503201F # NOP
|
|
||||||
## Default values
|
|
||||||
-
|
|
||||||
type: bytes
|
|
||||||
main_offset: 0x30C3F00
|
|
||||||
value_type: float
|
|
||||||
value: 0.03333333333
|
|
||||||
ALL_FPS:
|
|
||||||
# Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x30C3F00]
|
|
||||||
value_type: float
|
|
||||||
value: "0.8 / FPS_TARGET"
|
|
@ -1,30 +0,0 @@
|
|||||||
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.1
|
|
||||||
# BID: 823FE359B4A99A4D
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# psLoadedFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17DD77C]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17FA8A0]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1A6490C]
|
|
||||||
value_type: float
|
|
||||||
value: "1000 / FPS_LOCK_TARGET"
|
|
||||||
# ResolutionInfo::sDynresGPUBudgetMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17DD758]
|
|
||||||
value_type: float
|
|
||||||
value: "0.99 * FRAMETIME_TARGET"
|
|
@ -1,30 +0,0 @@
|
|||||||
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.3
|
|
||||||
# BID: AD4CBC4878008E1E
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# psLoadedFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17F9784]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x18168A0]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1A8490C]
|
|
||||||
value_type: float
|
|
||||||
value: "1000 / FPS_LOCK_TARGET"
|
|
||||||
# ResolutionInfo::sDynresGPUBudgetMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17F9760]
|
|
||||||
value_type: float
|
|
||||||
value: "FRAMETIME_TARGET - (1/30)"
|
|
@ -1,30 +0,0 @@
|
|||||||
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.2
|
|
||||||
# BID: BBA39C65C1CC6463
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# psLoadedFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17F9784]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitFps
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x18168A0]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
# psCurrentFrameLimitMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1A8490C]
|
|
||||||
value_type: float
|
|
||||||
value: "1000 / FPS_LOCK_TARGET"
|
|
||||||
# ResolutionInfo::sDynresGPUBudgetMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x17F9760]
|
|
||||||
value_type: float
|
|
||||||
value: "0.99 * FRAMETIME_TARGET"
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.2.2
|
|
||||||
# BID: 012A8C2C413E79B8
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F57748, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F92210, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8791EC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.2.1
|
|
||||||
# BID: 26C1E658E9B5B612
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F41748, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F7C210, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x877BEC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.1.3
|
|
||||||
# BID: 3889588A60E1F399
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8EA4728, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8EDF1F0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x86DEEC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream 1.1.1
|
|
||||||
# BID: 3AAA28C9CB8367B9
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8E90728, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8ECB1F0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x86CAEC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.2.0
|
|
||||||
# BID: 46094C03E2EC668B
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F3C748, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8F77210, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8776EC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.1.2
|
|
||||||
# BID: 520620FBA0B196A3
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8E95728, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8ED01F0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x86CFEC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# SWORD ART ONLINE Fractured Daydream JAP 1.3.0
|
|
||||||
# BID: C2F2C4B700B30598
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8FD6748, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9011290, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8810F08, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,18 +0,0 @@
|
|||||||
# The Elder Scrolls V: Skyrim 1.1.392.3925134
|
|
||||||
# BID: 4F7995092FAA5DC0
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x3356FC8]
|
|
||||||
value_type: float
|
|
||||||
value: "0.9 * FRAMETIME_TARGET"
|
|
||||||
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x3356FB0]
|
|
||||||
value_type: float
|
|
||||||
value: "0.99 * FRAMETIME_TARGET"
|
|
@ -0,0 +1,135 @@
|
|||||||
|
# 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,27 +0,0 @@
|
|||||||
# Breathedge 1.0.2
|
|
||||||
# BID: B26DE1669B729335
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# Disable bUseFixedFrameRate
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x55CB668, 0x7F0]
|
|
||||||
value_type: uint32
|
|
||||||
value: 7
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x55CBDE0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x4E6A7B8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,24 +0,0 @@
|
|||||||
# Chernobylite 1.1
|
|
||||||
# BID: 2D2065AEBF94F9AE
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x641EAB8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x644C838, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x5C83700, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
@ -1,24 +0,0 @@
|
|||||||
# Chernobylite 1.2
|
|
||||||
# BID: 657F40EEBD955F31
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x641EAB8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x644C838, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x5C83700, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
@ -1,27 +0,0 @@
|
|||||||
# Tony Hawk's Pro Skater 3 + 4 1.05
|
|
||||||
# BID: 65A9705A4BB35AA2
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x77DD4B8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x780B6A0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x7006068, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Tony Hawk's Pro Skater 3 + 4 1.0.3
|
|
||||||
# BID: A31FE9B8AF1156D4
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x77CF4B8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x77FD6A0, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6FF83C8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,12 +0,0 @@
|
|||||||
# DreadOut Remastered Collection 1.0.2
|
|
||||||
# BID: 725731C74E4CA6A9
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# REF: DynamicResolution::.cctor
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x3E01640, 0, 0xB8, 8]
|
|
||||||
value_type: double
|
|
||||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
|
@ -1,27 +0,0 @@
|
|||||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
|
||||||
# BID: 4BC4A8A814FD46A4
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# DRGameTargetFrameTimeInMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x41312B4]
|
|
||||||
value_type: float
|
|
||||||
value: "0.945 * FRAMETIME_TARGET"
|
|
||||||
# DRCinematicTargetFrameTimeInMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x41312E4]
|
|
||||||
value_type: float
|
|
||||||
value: "0.945 * FRAMETIME_TARGET"
|
|
||||||
# LimitFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x411DCFC]
|
|
||||||
value_type: int32
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -0,0 +1,224 @@
|
|||||||
|
# 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
|
@ -0,0 +1,224 @@
|
|||||||
|
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||||
|
# BID: D27FD8A515077F34
|
||||||
|
|
||||||
|
unsafeCheck: true
|
||||||
|
|
||||||
|
15FPS:
|
||||||
|
# DRGameTargetFrameTimeInMs
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x41312B4]
|
||||||
|
value_type: float
|
||||||
|
value: 63
|
||||||
|
# DRCinematicTargetFrameTimeInMs
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x41312E4]
|
||||||
|
value_type: float
|
||||||
|
value: 63
|
||||||
|
# LimitFPS
|
||||||
|
-
|
||||||
|
type: 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
|
||||||
|
-
|
||||||
|
type: block
|
||||||
|
what: timing
|
@ -3,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynResTargetFPS
|
# r.DynResTargetFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x71A31F8, 0]
|
address: [MAIN, 0x71A31F8, 0]
|
||||||
value_type: int32
|
value_type: int32
|
||||||
value: [FPS_TARGET, FPS_TARGET]
|
value: [15, 15]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x71B2BD0, 0]
|
address: [MAIN, 0x71B2BD0, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,10 +3,73 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# Dynamic Resolution FPS Target
|
# Dynamic Resolution FPS Target
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x179EF64]
|
address: [MAIN, 0x179EF64]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
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
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
# The LEGO NINJAGO Movie Video Game 1.0.3
|
|
||||||
# BID: 346959B36CD9F14D
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# Block to 30 FPS when prerendered cutscene is played
|
|
||||||
# REF: LegoCutscenes::s_fmvCutsceneAudioInstance
|
|
||||||
-
|
|
||||||
type: compare
|
|
||||||
compare_address: [MAIN, 0x44C3468]
|
|
||||||
compare_type: "!="
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_value: 0
|
|
||||||
address: [MAIN]
|
|
||||||
value_type: refresh_rate
|
|
||||||
value: 30
|
|
@ -1,15 +0,0 @@
|
|||||||
# OCTOPATH TRAVELER 歧路旅人 1.0.5
|
|
||||||
# BID: 9E6B0D0023F9DB3B
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x50B5698, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,12 +0,0 @@
|
|||||||
# The Forest Quartet 4.0.2
|
|
||||||
# BID: 47A022F858BA09B1
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# DynamicResolution_TypeInfo
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
|
||||||
value_type: double
|
|
||||||
value: ["0.96 * FRAMETIME_TARGET", "(0.96 * FRAMETIME_TARGET) - 0.75"]
|
|
@ -0,0 +1,75 @@
|
|||||||
|
# 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,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x6B461B8, 0]
|
address: [MAIN, 0x6B461B8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x6B3C330, 0]
|
address: [MAIN, 0x6B3C330, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,37 +3,337 @@
|
|||||||
|
|
||||||
unsafeCheck: false
|
unsafeCheck: false
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93)
|
# r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7E23AF0, 0]
|
address: [MAIN, 0x7E23AF0, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
|
value: [62, 62]
|
||||||
# r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87)
|
# r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7E23B08, 0]
|
address: [MAIN, 0x7E23B08, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["0.87 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"]
|
value: [58, 58]
|
||||||
# r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945)
|
# r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7E23B20, 0]
|
address: [MAIN, 0x7E23B20, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"]
|
value: [63, 63]
|
||||||
# r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93)
|
# r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7E23B38, 0]
|
address: [MAIN, 0x7E23B38, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
|
value: [62, 62]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7E46698, 0]
|
address: [MAIN, 0x7E46698, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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]
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# SONIC FORCES 1.1.0
|
# SONIC FORCES 1.1.0
|
||||||
# BID: 6D9EA94F8AAC00A8
|
# BID: 6D9EA94F8AAC00A8
|
||||||
# Game speed is tied to framerate
|
# Game speed is tied to framerate
|
||||||
|
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
|
||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
@ -11,27 +12,73 @@ MASTER_WRITE:
|
|||||||
main_offset: 0xAD40FC
|
main_offset: 0xAD40FC
|
||||||
value_type: uint32
|
value_type: uint32
|
||||||
value: 0x52800068
|
value: 0x52800068
|
||||||
# Block switching back to 30 FPS mode on loading screens
|
15FPS:
|
||||||
-
|
# FPS target (FPS * 2)
|
||||||
type: bytes
|
|
||||||
main_offset: 0x6173B0
|
|
||||||
value_type: uint32
|
|
||||||
value: 0xD503201F
|
|
||||||
ALL_FPS:
|
|
||||||
# Switch to 60 FPS Mode
|
|
||||||
-
|
-
|
||||||
type: write
|
type: write
|
||||||
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
|
|
||||||
value_type: uint32
|
|
||||||
value: 1
|
|
||||||
# FPS target
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1C38C28, 0x1C]
|
address: [MAIN, 0x1C38C28, 0x1C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
value: 30
|
||||||
|
20FPS:
|
||||||
|
# FPS target
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x1C38C28, 0x14C]
|
address: [MAIN, 0x1C38C28, 0x1C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
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
|
@ -1,6 +1,7 @@
|
|||||||
# SONIC FORCES 1.1.0
|
# SONIC FORCES 1.1.0
|
||||||
# BID: 6D9EA94F8AAC00A8
|
# BID: 6D9EA94F8AAC00A8
|
||||||
# Game speed is tied to framerate
|
# Game speed is tied to framerate
|
||||||
|
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
|
||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
@ -11,27 +12,73 @@ MASTER_WRITE:
|
|||||||
main_offset: 0xAD40FC
|
main_offset: 0xAD40FC
|
||||||
value_type: uint32
|
value_type: uint32
|
||||||
value: 0x52800068
|
value: 0x52800068
|
||||||
# Block switching back to 30 FPS mode on loading screens
|
15FPS:
|
||||||
-
|
# FPS target (FPS * 2)
|
||||||
type: bytes
|
|
||||||
main_offset: 0x6173B0
|
|
||||||
value_type: uint32
|
|
||||||
value: 0xD503201F
|
|
||||||
ALL_FPS:
|
|
||||||
# Switch to 60 FPS Mode
|
|
||||||
-
|
-
|
||||||
type: write
|
type: write
|
||||||
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
|
|
||||||
value_type: uint32
|
|
||||||
value: 1
|
|
||||||
# FPS target
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x1C38C28, 0x1C]
|
address: [MAIN, 0x1C38C28, 0x1C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
value: 30
|
||||||
|
20FPS:
|
||||||
|
# FPS target
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x1C38C28, 0x14C]
|
address: [MAIN, 0x1C38C28, 0x1C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
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
|
@ -1,21 +0,0 @@
|
|||||||
# Master Detective Archives: RAIN CODE 1.4.0 US
|
|
||||||
# BID: B9E42653FB44EF2B
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x8001888, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x7806CC8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,21 +0,0 @@
|
|||||||
# Mortal Shell 1.2.0
|
|
||||||
# BID: 6D9F6C7B79F5197F
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6ACCBD8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6AEF760, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -0,0 +1,159 @@
|
|||||||
|
# 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]
|
@ -0,0 +1,135 @@
|
|||||||
|
# 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
|
@ -1,12 +0,0 @@
|
|||||||
# From Space 1.3.480
|
|
||||||
# BID: 9806FB67CE24E904
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# UnityEngine.Application::targetFrameRate (to adjust Dynamic Resolution)
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6F3F760]
|
|
||||||
value_type: int32
|
|
||||||
value: FPS_TARGET
|
|
@ -1,83 +1,66 @@
|
|||||||
# WARRIORS OROCHI 4 1.0.13
|
# WARRIORS OROCHI 4 1.0.13
|
||||||
# BID: 5C9CCD358BE85FC9
|
# BID: 5C9CCD358BE85FC9
|
||||||
# Credits to Hazerou for figuring out the offset
|
# Credits to Hazerou for figuring out the offset
|
||||||
# Main offset stores address to start of .bss of NRO
|
|
||||||
## REF: 02 00 00 00 3C 00 00 00
|
|
||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# Without DLC Ultimate Edition installed
|
|
||||||
-
|
-
|
||||||
type: evaluate_compare
|
type: write
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "=="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x934A8]
|
|
||||||
value_type: uint32
|
|
||||||
value: [VSYNC_TARGET, FPS_TARGET]
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "=="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x934A0]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_TARGET
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "=="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x9349C]
|
|
||||||
value_type: uint32
|
|
||||||
value: [VSYNC_TARGET, FPS_TARGET]
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "=="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x93494]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_TARGET
|
|
||||||
# With DLC Ultimate Edition installed
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "!="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x93200]
|
|
||||||
value_type: uint32
|
|
||||||
value: [VSYNC_TARGET, FPS_TARGET]
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "!="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x931F8]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_TARGET
|
|
||||||
-
|
|
||||||
type: evaluate_compare
|
|
||||||
compare_value_type: uint64
|
|
||||||
compare_type: "!="
|
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
|
||||||
address: [MAIN, 0x3AF80, -0x931F4]
|
address: [MAIN, 0x3AF80, -0x931F4]
|
||||||
value_type: uint32
|
value_type: int32
|
||||||
value: [VSYNC_TARGET, FPS_TARGET]
|
value: 2
|
||||||
|
20FPS:
|
||||||
-
|
-
|
||||||
type: evaluate_compare
|
type: write
|
||||||
compare_value_type: uint64
|
address: [MAIN, 0x3AF80, -0x931F4]
|
||||||
compare_type: "!="
|
value_type: int32
|
||||||
compare_value: 0xE2CFDAC9EAC20398
|
value: 2
|
||||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
25FPS:
|
||||||
address: [MAIN, 0x3AF80, -0x931EC]
|
-
|
||||||
value_type: float
|
type: write
|
||||||
value: FPS_TARGET
|
address: [MAIN, 0x3AF80, -0x931F4]
|
||||||
|
value_type: int32
|
||||||
|
value: 2
|
||||||
|
30FPS:
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x3AF80, -0x931F4]
|
||||||
|
value_type: int32
|
||||||
|
value: 2
|
||||||
|
35FPS:
|
||||||
|
-
|
||||||
|
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
|
@ -1,25 +0,0 @@
|
|||||||
# Jojo's Bizarre Adventure: All-Star Battle R 2.3.3
|
|
||||||
# BID: 3D4E3A9252AA6C63
|
|
||||||
# There are small issues with animations in cutscenes at higher framerates
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x2AEDA08, 704]
|
|
||||||
value_type: uint32
|
|
||||||
value: VSYNC_TARGET
|
|
||||||
# Game Speed, pointer ref: F3 03 00 AA 20 00 80 52 F4 03 01 AA
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x2AEF6D0, 1360]
|
|
||||||
value_type: uint32
|
|
||||||
value: VSYNC_TARGET
|
|
||||||
# UI Speed
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x2AEF6D0, 2554]
|
|
||||||
value_type: uint8
|
|
||||||
value: FPS_TARGET
|
|
@ -3,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7565298, 0]
|
address: [MAIN, 0x7565298, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
value: [66.6, 66.6]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7589FE0, 0]
|
address: [MAIN, 0x7589FE0, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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]
|
@ -1,27 +0,0 @@
|
|||||||
# Grand Theft Auto: Vice City - Definitive Edition 1.0.8
|
|
||||||
# BID: 9151E53EE514B03A
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (Default is 36.5 ms)
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x7608988, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x762D640, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6E7AA00, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,32 +0,0 @@
|
|||||||
# 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
|
|
@ -1,27 +0,0 @@
|
|||||||
# Gigantosaurus: Dino Kart 1.1.0
|
|
||||||
# BID: 512FB8C2D12C4F36
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6D186C8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x6581EB0, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6D45C58, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -3,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x6D196C8, 0]
|
address: [MAIN, 0x6D196C8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x6D46C58, 0]
|
address: [MAIN, 0x6D46C58, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7D46658, 0]
|
address: [MAIN, 0x7D46658, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7D73FF8, 0]
|
address: [MAIN, 0x7D73FF8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,13 +0,0 @@
|
|||||||
# Cel Damage HD 1.0.0
|
|
||||||
# BID: 03B058B1F6BE7195
|
|
||||||
# Credit to Hazerou for finding offset
|
|
||||||
# His note: 60 FPS may cause some Graphical Glitches like huge shadow and flashing light/colors appearing out of nowhere.
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x32EE1C]
|
|
||||||
value_type: float
|
|
||||||
value: ["1/FPS_TARGET", "FPS_TARGET"]
|
|
@ -1,27 +0,0 @@
|
|||||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
|
||||||
# BID: 4BC4A8A814FD46A4
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# DRGameTargetFrameTimeInMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x41312B4]
|
|
||||||
value_type: float
|
|
||||||
value: "0.945 * FRAMETIME_TARGET"
|
|
||||||
# DRCinematicTargetFrameTimeInMs
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x41312E4]
|
|
||||||
value_type: float
|
|
||||||
value: "0.945 * FRAMETIME_TARGET"
|
|
||||||
# LimitFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x411DCFC]
|
|
||||||
value_type: int32
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -0,0 +1,224 @@
|
|||||||
|
# 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
|
@ -0,0 +1,224 @@
|
|||||||
|
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||||
|
# BID: D27FD8A515077F34
|
||||||
|
|
||||||
|
unsafeCheck: true
|
||||||
|
|
||||||
|
15FPS:
|
||||||
|
# DRGameTargetFrameTimeInMs
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x41312B4]
|
||||||
|
value_type: float
|
||||||
|
value: 63
|
||||||
|
# DRCinematicTargetFrameTimeInMs
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x41312E4]
|
||||||
|
value_type: float
|
||||||
|
value: 63
|
||||||
|
# LimitFPS
|
||||||
|
-
|
||||||
|
type: 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
|
||||||
|
-
|
||||||
|
type: block
|
||||||
|
what: timing
|
@ -3,10 +3,73 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x27C4B0C]
|
address: [MAIN, 0x27C4B0C]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"
|
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
|
@ -10,10 +10,64 @@ MASTER_WRITE:
|
|||||||
main_offset: 0x6B41E4
|
main_offset: 0x6B41E4
|
||||||
value_type: uint32
|
value_type: uint32
|
||||||
value: 0xB20007E8
|
value: 0xB20007E8
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# DUMMY
|
# DUMMY
|
||||||
-
|
-
|
||||||
type: write
|
type: write
|
||||||
address: [MAIN, 0x4740500]
|
address: [MAIN, 0x4740500]
|
||||||
value_type: uint8
|
value_type: uint8
|
||||||
value: 0
|
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
|
@ -0,0 +1,159 @@
|
|||||||
|
# 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]
|
@ -1,27 +0,0 @@
|
|||||||
# Bright Memory: Infinite Gold Edition 1.3
|
|
||||||
# BID: DD425ECC07C305DF
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6B031D8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x6B30A78, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x63376C8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -0,0 +1,164 @@
|
|||||||
|
# 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,32 +0,0 @@
|
|||||||
# 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,27 +0,0 @@
|
|||||||
# HOT WHEELS UNLEASHED 2 1.0.10
|
|
||||||
# BID: E1F81DC590FDE0B5
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0xAD74458, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0xB58E090, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0xB632E08, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# HOT WHEELS UNLEASHED 2 1.0.11
|
|
||||||
# BID: FE78C7B94C4E791A
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0xAD73888, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0xB58D090, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0xB631E08, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -3,22 +3,190 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x1D15228]
|
address: [MAIN, 0x1D15228]
|
||||||
value_type: int32
|
value_type: int32
|
||||||
value: [FPS_LOCK_TARGET, VSYNC_TARGET]
|
value: [15, 2]
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x1D28CB8]
|
address: [MAIN, 0x1D28CB8]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: FPS_TARGET
|
value: 15
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x2A88DC0]
|
address: [MAIN, 0x2A88DC0]
|
||||||
value_type: int32
|
value_type: int32
|
||||||
value: "VSYNC_TARGET - 1"
|
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
|
||||||
|
-
|
||||||
|
type: write
|
||||||
|
address: [MAIN, 0x2A88DC0]
|
||||||
|
value_type: int32
|
||||||
|
value: 0
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
what: timing
|
||||||
|
@ -10,10 +10,64 @@ MASTER_WRITE:
|
|||||||
main_offset: 0xEA22EC
|
main_offset: 0xEA22EC
|
||||||
value_type: uint32
|
value_type: uint32
|
||||||
value: 0xB20007E8
|
value: 0xB20007E8
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# DUMMY
|
# DUMMY
|
||||||
-
|
-
|
||||||
type: write
|
type: write
|
||||||
address: [MAIN, 0xA7FA900]
|
address: [MAIN, 0xA7FA900]
|
||||||
value_type: uint8
|
value_type: uint8
|
||||||
value: 0
|
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
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.1
|
|
||||||
# BID: 0DE3020411F4232B
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x934C2F8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9371F70, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8B7C198, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.3
|
|
||||||
# BID: 26AB1CB54DD4508D
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x934D2F8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9372F70, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8B7D1C8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.7
|
|
||||||
# BID: 504EBEAB62E802AD
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x99DC468, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9A02290, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x920CBF8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.6
|
|
||||||
# BID: 8D4FD57DB7D63120
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x99DD468, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9A03290, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x920DB48, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.8
|
|
||||||
# BID: A45BCB8A63C50DC8
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x99DC468, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9A02290, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x920CBF8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.4
|
|
||||||
# BID: A5DA93E6537350D8
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x92FE2F8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9323F60, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8B2E1E8, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Goat Simulator 3 1.0.7.5
|
|
||||||
# BID: C606C7DC1C0EC88F
|
|
||||||
|
|
||||||
unsafeCheck: false
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.DynamicRes.FrameTimeBudget
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x954E2F8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x9573F60, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x8D7E218, 0]
|
|
||||||
value_type: uint32
|
|
||||||
value: [0, 0]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -3,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 2 decimals
|
# r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 2 decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x680CAB8, 0]
|
address: [MAIN, 0x680CAB8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x683A358, 0]
|
address: [MAIN, 0x683A358, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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]
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
# Astor: Blade of the Monolith 1.0.2
|
|
||||||
# BID: 6133D5CC14F51B7A
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x61F0828, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x69BEAD8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x69EC478, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,27 +0,0 @@
|
|||||||
# Astor: Blade of the Monolith 1.0.0 / 1.0.1
|
|
||||||
# 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,27 +0,0 @@
|
|||||||
# Astor: Blade of the Monolith 1.0.3
|
|
||||||
# BID: E2AFE5A73F5C0803
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# r.VSync
|
|
||||||
-
|
|
||||||
type: write
|
|
||||||
address: [MAIN, 0x61F0828, 0]
|
|
||||||
value_type: int32
|
|
||||||
value: [0, 0]
|
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x69BEAD8, 0]
|
|
||||||
value_type: float
|
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
|
||||||
# t.MaxFPS
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0x69EC478, 0]
|
|
||||||
value_type: float
|
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -1,15 +0,0 @@
|
|||||||
# Farming Simulator 23 Nintendo Switch Edition 1.6.0.0/1.7.0.0
|
|
||||||
# BID: 17F37A56B17DD9CC
|
|
||||||
|
|
||||||
unsafeCheck: true
|
|
||||||
|
|
||||||
ALL_FPS:
|
|
||||||
# Internal FPS lock
|
|
||||||
-
|
|
||||||
type: evaluate_write
|
|
||||||
address: [MAIN, 0xFAD7AC]
|
|
||||||
value_type: float
|
|
||||||
value: FPS_LOCK_TARGET
|
|
||||||
-
|
|
||||||
type: block
|
|
||||||
what: timing
|
|
@ -0,0 +1,91 @@
|
|||||||
|
# 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,19 +3,157 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals
|
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x71331A8, 0]
|
address: [MAIN, 0x71331A8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
value: [66.66, 66.66]
|
||||||
# t.MaxFPS
|
# t.MaxFPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x7160D78, 0]
|
address: [MAIN, 0x7160D78, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
value: [15, 15]
|
||||||
-
|
-
|
||||||
type: block
|
type: block
|
||||||
what: timing
|
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,30 +4,273 @@
|
|||||||
|
|
||||||
unsafeCheck: true
|
unsafeCheck: true
|
||||||
|
|
||||||
ALL_FPS:
|
15FPS:
|
||||||
# fixedDeltaTime = 1/FPS
|
# fixedDeltaTime = 1/FPS
|
||||||
-
|
-
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x52BD280, 0x48]
|
address: [MAIN, 0x52BD280, 0x48]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "1 / FPS_TARGET"
|
value: 0.0666666666
|
||||||
- # maximumParticleDeltaTime = 1/FPS
|
- # maximumParticleDeltaTime = 1/FPS
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x52BD280, 0x104]
|
address: [MAIN, 0x52BD280, 0x104]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "1 / FPS_TARGET"
|
value: 0.0666666666
|
||||||
- # maximumDeltaTime = 6 * (1/FPS)
|
- # maximumDeltaTime = 6 * (1/FPS)
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x52BD280, 0x100]
|
address: [MAIN, 0x52BD280, 0x100]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "(1 / FPS_TARGET) * 6"
|
value: 0.4
|
||||||
- # DS.Tech.Networking.Clock_TypeInfo = 1/FPS
|
- # DS.Tech.Networking.Clock_TypeInfo = 1/FPS
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x4EABAE0, 0xB8, 0]
|
address: [MAIN, 0x4EABAE0, 0xB8, 0]
|
||||||
value_type: float
|
value_type: float
|
||||||
value: "1 / FPS_TARGET"
|
value: 0.0666666666
|
||||||
- # DS.Tech.Networking.ClientInterpolator_TypeInfo => every 15 FPS jump += 1
|
- # DS.Tech.Networking.ClientInterpolator_TypeInfo => every 15 FPS jump += 1
|
||||||
type: evaluate_write
|
type: write
|
||||||
address: [MAIN, 0x4EABA98, 0xB8, 0]
|
address: [MAIN, 0x4EABA98, 0xB8, 0]
|
||||||
value_type: int32
|
value_type: int32
|
||||||
value: "FPS_TARGET / 15"
|
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
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user