mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-08-08 02:22:07 +00:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
85ffded054 | ||
|
7d6a8eb2b1 | ||
|
69db804029 | ||
|
d18b6d94c4 | ||
|
6c1c55d929 | ||
|
220ef77d17 | ||
|
ece8bc4858 | ||
|
081eaa7c7d | ||
|
eda99e7881 | ||
|
d28855fd34 | ||
|
d0b97525a8 | ||
|
bf48033941 | ||
|
9adc60b135 | ||
|
5153b2d17a | ||
|
9d661b1d18 | ||
|
1fc80bcbdb | ||
|
985a53995a | ||
|
4e42f73191 | ||
|
b144b70918 | ||
|
b546edec8f | ||
|
aacfd99915 | ||
|
da2cbbb2f6 | ||
|
9c3765e08c | ||
|
65461efd23 | ||
|
b9b4dd45c0 | ||
|
e1812455bb | ||
|
73b0904544 | ||
|
d8daa54862 | ||
|
c846ee9fb3 | ||
|
65e6b17a73 | ||
|
09492db032 | ||
|
10e4d13a27 | ||
|
db5b3ab00e | ||
|
5a927b499a | ||
|
a4f670dd3c | ||
|
adf02bc085 | ||
|
cd4b0c933d | ||
|
324f971d50 | ||
|
cafa4e44c6 | ||
|
093c181ec1 | ||
|
fc203edb0f | ||
|
b3de870f9f | ||
|
04d19fe456 | ||
|
fd85e37b2c | ||
|
fd2f17b9b4 | ||
|
ad232cfee7 | ||
|
309c2e7b4f | ||
|
9c7679ce71 | ||
|
a6d8c99bf5 | ||
|
88563d9ce7 | ||
|
53ee94de8c | ||
|
0d8c08c106 | ||
|
a03e86fd9c |
140
README.md
140
README.md
@ -1,60 +1,100 @@
|
||||
# Ultra-NX by **[redraz](https://github.com/redraz)**
|
||||
# UltraNX by **[redraz](https://github.com/redraz)**
|
||||
|
||||

|
||||
|
||||
### [English Readme](README_ENG.md) | [Группа в телеграме](https://t.me/UltraNX) | [Wiki](https://github.com/Ultra-NX/Ultra/wiki)
|
||||
# [English Readme](README_ENG.md)
|
||||
|
||||
### [Группа в телеграме](https://t.me/UltraNX) | [Wiki](https://github.com/Ultra-NX/Ultra/wiki)
|
||||
|
||||
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
|
||||
|
||||
### [Ultra 2.1](https://github.com/Ultra-NX/Ultra/releases/tag/2.1-R1) Поддерживает HOS 18 и все ревизии консолей
|
||||
### [Ultra 2.5|R1](https://github.com/Ultra-NX/UltraNX/releases) Поддерживает HOS 20.2.0
|
||||
### [Ultra 2.5|Pre2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.5-R2) Частично поддерживает HOS 20.3.0 (Только Safe Mode)
|
||||
|
||||
|
||||
|
||||
## Особенности Ultra
|
||||
|
||||
* Предварительно настроенный OC Switchcraft (Преемник OC-Suite) с пресетами.
|
||||
* По умолчанию уже есть андервольт, который заметно снижает потребление консоли, и небольшой разгон памяти, который сделает игры плавнее.
|
||||
* Лучший кастомизатор разгона для Свитч - [Ultra-Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Ultra-Tuner), позволяющий настраивать разгон прямо с консоли. Был первым, и остается неповторимым.
|
||||
* Сборка максимально легкая и не нагруженная. В ней нет лишнего, минимум необходимый для разгона и комфортного использования.
|
||||
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через комплектный [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
|
||||
* Выбор пресета работы системы охлаждения, либо шумно но холодно, либо тихо но горячо.
|
||||
* Кастомный Ultra Monitor c FPS и системными метриками.
|
||||
* Регулярные обновления, и активное коммьюнити.
|
||||
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через [Ultra Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
|
||||
* Кастомная настройка работы системы охлаждения, и пресеты на выбор.
|
||||
* Регулярные обновления, и активное комьюнити.
|
||||
* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила.
|
||||
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
|
||||
* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей:
|
||||
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему. Так же исправлена работа старых форвардеров (важно для хоумбрю игр/эмуляторов).
|
||||
* Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными.
|
||||
|
||||
|
||||
|
||||
## Состав Ultra
|
||||
|
||||
1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch.
|
||||
1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое.
|
||||
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultra Paw (форка Ultrahand), позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
|
||||
1. **`OC-Switchcraft`**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
|
||||
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultrahand, позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
|
||||
1. **[OC-Switchcraft](https://github.com/halop/OC-Switchcraft-EOS/releases)**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
|
||||
|
||||
|
||||
1. **Установленные пейлоады**:
|
||||
* [Lockpick_RCM](https://sigmapatches.su) - Программа для снятия ключей консоли.
|
||||
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Программа для снятия ключей консоли.
|
||||
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
|
||||
|
||||
|
||||
1. **Установленные Homebrew**
|
||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Современное Хоумбрю Меню, аналог nx-hbmenu
|
||||
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов.
|
||||
* [Daybreak](https://codeberg.org/rashevskyv/kefir) - Программа для обновления системного ПО.
|
||||
* [DBI](https://github.com/rashevskyv/dbi) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater) есть выбор из EN-RU-PTBR-ZHCN.
|
||||
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - Программа для обновления системного ПО.
|
||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль.
|
||||
|
||||
|
||||
1. **Установленные модули**
|
||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины. Не совместим с 32-х битными играми (список на гитхабе проекта).
|
||||
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
|
||||
* [nx-ovlloader](https://github.com/zdm65477730/nx-ovlloader/) - С помощью этого модуля осуществляется переключение установленных модулей.
|
||||
* [sys-patch](https://sigmapatches.su) - Патчит систему на работу неподписанного софта вместо сигпатчей.
|
||||
* [Ultra Paw Overlay](https://github.com/Ultra-NX/Ultra-Paw-Overlay), форк [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner.
|
||||
- **`Ultra-Overlay`**, мод [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках.
|
||||
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater.
|
||||
* [sys-clk](https://github.com/ppkantorski/sys-clk) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
|
||||
* [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - С помощью этого модуля осуществляется переключение установленных модулей.
|
||||
* [sys-patch](https://github.com/impeeza/sys-patch) - Патчит систему на работу неподписанного софта вместо сигпатчей.
|
||||
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
|
||||
* [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
|
||||
* [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner.
|
||||
- **`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-оверлея можно в Updater.
|
||||
- [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх.
|
||||
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов.
|
||||
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - Оверлей для управления ReverseNX.
|
||||
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей.
|
||||
1. **Доступные для скачивания через [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
|
||||
* [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта.
|
||||
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
|
||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
|
||||
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
|
||||
* [SysDVR-conf](https://github.com/exelix11/SysDVR) - Программа для установки/удаления dvr патчей для игр. Патчи включают возможность записи в тех играх, где она отключена, но ломают некоторые другие игры, например "Ведьмак 3".
|
||||
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
|
||||
* [sys-con](https://github.com/cathery/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB.
|
||||
* [Mission Control](https://codeberg.org/rashevskyv/kefir) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth.
|
||||
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - Оверлей с максимально подробным отображением статистики системы, напоминает Afterburner на PC.
|
||||
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
||||
- [ReverseNX-RT](https://github.com/ppkantorski/ReverseNX-RT) - Оверлей для управления ReverseNX.
|
||||
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Оверлей для включения и отключения установленных системных модулей.
|
||||
|
||||
|
||||
1. **Доступные для скачивания через [Ultra Tuner](https://github.com/Ultra-NX/UltraNX/wiki/Tuner-RU#ultra-tuner)**
|
||||
* Homebrews:
|
||||
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Здесь можно скачать DBI или обновить имеющийся.
|
||||
* [Linkalho](https://gbatemp.net/download/linkalho.38822) - Программа для привязки аккаунта.
|
||||
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
|
||||
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP.
|
||||
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Клиент Moonlight, позволяет транслировать на консоль игры с PC.
|
||||
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
|
||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
|
||||
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
||||
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. Старая версия, которая многим нравится больше новой.
|
||||
* [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Бенчмарк. Результат сильно зависит от разгона CPU. Версия из Чифира которая в реальном времени тестирует CPU Copy, что позволяет быстро узнать результат после изменения таймингов.
|
||||
|
||||
* 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, что бы не качать отдельно патч для каждой игры через оверлей.
|
||||
* [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 сервер, работающий на фоне.
|
||||
|
||||
|
||||
|
||||
|
||||
## Лицензии
|
||||
@ -65,32 +105,38 @@
|
||||
* [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)
|
||||
[MIT License](https://github.com/masagrator/FPSLocker/blob/main/LICENSE)
|
||||
* [FPSLocker](https://github.com/masagrator/FPSLocker)
|
||||
|
||||
|
||||
|
||||
|
||||
## Благодарности
|
||||
|
||||
* Meha
|
||||
* B3711
|
||||
* ppkantorski
|
||||
* Cooler3D
|
||||
* rashevskyv
|
||||
* Meha
|
||||
* duckbill
|
||||
* snupt
|
||||
* 4PDA
|
||||
#### А так же - отдельная благодарность администрации и участникам Ultra Group
|
||||
|
||||
|
||||
|
||||
## Поддержка
|
||||
|
||||
Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен.
|
||||
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
|
||||
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
|
||||
```
|
||||
СБП : +79168089980
|
||||
|
||||
Альфа : 2200152336577997
|
||||
Tinkoff : 2200700170486970
|
||||
Сбер : 2202200513345833
|
||||
|
||||
TON: UQA9My51bkGZHbYhbdRZfp6B60N7VJfsnKl0sakgw9YhAPct
|
||||
BTC: 18K6NN8NEavvMJL5Do3VTyJbL8NeZPHo93
|
||||
USDT TRC20: TUZ5szAmRsnvBuC4rFB8RaAoCbN6Ucy4sL
|
||||
```
|
||||
|
||||
### Tinkoff QR
|
||||

|
||||
```
|
||||
TON: UQDioCnnPI5sk4KvxWzfPWsWbAyWCkzwhaYjy8Qpg2QwWMiL
|
||||
BTC: 1HsC4z8X1YkZzcSKZz1t7MXRa7rPi8qChV
|
||||
USDT: TQi3qLVrNGcr6avfVQBXRjpPTyvp5JZ7i2
|
||||
|
||||
Сбербанк: 2202200513345833
|
||||
Tinkoff: 2200700170486970
|
||||
```
|
||||

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

|
||||
|
||||
### [Russian Readme](README.md) | [Telegram group](https://t.me/UltraNX)
|
||||
|
||||
### [Telegram group](https://t.me/UltraNX) - Don't be afraid to write in English, we will understand everything and answer you!
|
||||
#
|
||||
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
|
||||
|
||||
### [Ultra 2.1](https://github.com/Ultra-NX/Ultra/releases/tag/2.1-R1) Supports HOS 18 and all console revisions
|
||||
### [Ultra 2.5|R1](https://github.com/Ultra-NX/UltraNX/releases) Supports HOS 20.2.0
|
||||
### [Ultra 2.5|Pre2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.5-R2) Partially supports HOS 20.3.0 (Safe Mode Only)
|
||||
|
||||
|
||||
|
||||
## Features of Ultra
|
||||
|
||||
* Pre-configured OC Switchcraft (Successor to OC-Suite) with presets.
|
||||
* By default, there's already an undervolt that noticeably reduces the console's consumption, and a slight memory overclock that will make games smoother.
|
||||
* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique.
|
||||
* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use.
|
||||
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the bundled Updater.
|
||||
* Choice of cooling system preset, either noisy but cold or quiet but hot.
|
||||
* Custom Ultra Monitor with FPS and system metrics.
|
||||
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the Ultra Tuner.
|
||||
* Manual adjustment of cooling system curves, and presets.
|
||||
* 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. **[Hekate](https://github.com/CTCaer/hekate)** - Custom Nintendo Switch graphical bootloader, firmware patcher, toolkit and more.
|
||||
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Package for Ultra Paw (fork of Ultrahand), which allows you to fine-tune the OC parameters for your console. In case of unstable overclocking, or if you want to increase the performance of your console, Ultra Tuner is your indispensable assistant.
|
||||
1. **`OC-Switchcraft`**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - The overclocked atmosphere loader by B3711, allows you to squeeze the power of the Xbox One out of the N.Switch. Updated in time to support new Atmosphere features.
|
||||
1. **[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. **[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, allows you to reach from N.Switch power Xbox One. Updated in time to support new Atmosphere features.
|
||||
|
||||
|
||||
1. **Installed Payloads**:
|
||||
* [Lockpick_RCM](https://sigmapatches.su) - Program for dumping console keys.
|
||||
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Program for dumping console keys.
|
||||
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system.
|
||||
|
||||
|
||||
1. **Installed Homebrew**
|
||||
* [Sphaira](https://github.com/ITotalJustice/sphaira) - Modern Homebrew Menu, analogous to nx-hbmenu
|
||||
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Program to update Ultra to the current version, as well as to download cheats.
|
||||
* [Daybreak](https://codeberg.org/rashevskyv/kefir) - A program for updating OS.
|
||||
* [DBI](https://github.com/rashevskyv/dbi) - The best file manager, save manager and program installer on the console. If you need a different localization - Updater has a choice of EN-RU-PTBR-ZHCN.
|
||||
* [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - A program for updating OS.
|
||||
* [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**
|
||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins. Not compatible with 32-bit games (list on the project's github).
|
||||
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Module responsible for overclocking CPU, memory and GPU - for better performance. I change versions from different authors from time to time. Original authors: Meha/hanai3Bi, lineon, p-sam.
|
||||
* [nx-ovlloader](https://github.com/zdm65477730/nx-ovlloader/) - This module is used to switch the installed modules.
|
||||
* [sys-patch](https://sigmapatches.su) - Patches the system to run unsigned software instead of sigpatches.
|
||||
* [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.
|
||||
- **`Ultra-Overlay`**, a mod of [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources.
|
||||
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater.
|
||||
* [sys-clk](https://github.com/ppkantorski/sys-clk) - 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.
|
||||
* [sys-patch](https://github.com/impeeza/sys-patch) - Patches the system to run unsigned software instead of sigpatches.
|
||||
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth.
|
||||
* [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
|
||||
* [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 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 Updater.
|
||||
- [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games.
|
||||
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats.
|
||||
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - ReverseNX control overlay.
|
||||
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Overlay for enabling and disabling installed system modules.
|
||||
- [ReverseNX-RT](https://github.com/ppkantorski/ReverseNX-RT) - ReverseNX control overlay.
|
||||
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Overlay for enabling and disabling installed system modules.
|
||||
|
||||
|
||||
1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
|
||||
* [Linkalho](https://github.com/rdmrocha/linkalho) - Account linking program.
|
||||
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
|
||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
|
||||
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
|
||||
* [SysDVR-conf](https://github.com/exelix11/SysDVR) - A program to install/uninstall dvr patches for games. Patches enable recording in games where it is disabled, but break some other games like "The Witcher 3".
|
||||
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background.
|
||||
* [sys-con](https://github.com/cathery/sys-con) - A module that allows you to connect almost any gamepads to the console via USB.
|
||||
* [Mission Control](https://codeberg.org/rashevskyv/kefir) - A module that allows you to connect almost any gamepads to the console via bluetooth.
|
||||
* [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - An overlay with the most detailed display of system statistics, similar to Afterburner on PC.
|
||||
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
|
||||
* Homebrews:
|
||||
* [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://gbatemp.net/download/linkalho.38822/) - Account linking program.
|
||||
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
|
||||
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator.
|
||||
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Moonlight client, allows to stream games from PC.
|
||||
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch.
|
||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
|
||||
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
|
||||
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one.
|
||||
* [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.
|
||||
|
||||
* Overlays:
|
||||
* [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Status Monitor fork from kantorski.
|
||||
* [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) - Patches for FPSLocker, so you don't have to download a separate patch for each game through the overlay.
|
||||
* [DVR Patches](https://github.com/exelix11/dvr-patches) - SysDVR patches, work without the system module, activating background recording in games where it is initially prohibited.
|
||||
* [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
|
||||
@ -64,26 +100,28 @@ Listed below are the licenses of those programs that have been modified specific
|
||||
* [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)
|
||||
[MIT License](https://github.com/masagrator/FPSLocker/blob/main/LICENSE)
|
||||
* [FPSLocker](https://github.com/masagrator/FPSLocker)
|
||||
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
* Meha
|
||||
* B3711
|
||||
* ppkantorski
|
||||
* Cooler3D
|
||||
* rashevskyv
|
||||
* Meha
|
||||
* duckbill
|
||||
* snupt
|
||||
* 4PDA
|
||||
#### And also - a special thanks to the administration and members of Ultra Group
|
||||
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
If you like the project and you have a desire to support me with a penny - I will be very grateful.
|
||||
I have no other income at the moment, so any monetary help is very valuable to me.
|
||||
```
|
||||
TON: UQDioCnnPI5sk4KvxWzfPWsWbAyWCkzwhaYjy8Qpg2QwWMiL
|
||||
BTC: 1HsC4z8X1YkZzcSKZz1t7MXRa7rPi8qChV
|
||||
USDT: TQi3qLVrNGcr6avfVQBXRjpPTyvp5JZ7i2
|
||||
TON: UQA9My51bkGZHbYhbdRZfp6B60N7VJfsnKl0sakgw9YhAPct
|
||||
BTC: 18K6NN8NEavvMJL5Do3VTyJbL8NeZPHo93
|
||||
USDT TRC20: TUZ5szAmRsnvBuC4rFB8RaAoCbN6Ucy4sL
|
||||
```
|
@ -14,10 +14,6 @@ X01003A400C3DA000
|
||||
;1.1_46609 - 1.1.4_60709 crash on first loading
|
||||
010075D00E8BA000
|
||||
|
||||
;Grandia Collection
|
||||
;Only launcher is 64-bit, games are 32-bit
|
||||
0100E0600BBC8000
|
||||
|
||||
;Immortals Fenyx Rising
|
||||
;1.0.3, 1.3.4 crash
|
||||
01004A600EC0A000
|
||||
@ -28,7 +24,7 @@ X0100964012528000
|
||||
|
||||
;Olympic Games Tokyo 2020 – The Official Video Game
|
||||
;1.0.0 crash on boot
|
||||
010034B00E14C000
|
||||
X010034B00E14C000
|
||||
|
||||
;Mario Strikers: Battle League
|
||||
;1.0.0 crash on boot
|
||||
@ -53,4 +49,12 @@ X0100964012528000
|
||||
|
||||
;Donkey Kong Country: Tropical Freeze
|
||||
;Crash at second level
|
||||
X0100C1F0051B6000
|
||||
X0100C1F0051B6000
|
||||
|
||||
;Death Road to Canada
|
||||
;1.0.8 crash
|
||||
X0100423009358000
|
||||
|
||||
;Splatoon 3
|
||||
;10.0.0 upwards crashes after online match
|
||||
X0100C2500FC20000
|
||||
|
@ -1,213 +0,0 @@
|
||||
# Horizon Chase 2 1.5.5
|
||||
# BID: 1C95A999050892E0
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.DynamicRes.FrameTimeBudget = 0.978 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [65.2, 65.2]
|
||||
20FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [48.9, 48.9]
|
||||
25FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [39.12, 39.12]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (by default it's 16.3)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [32.6, 32.6]
|
||||
35FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [27.942, 27.942]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [24.45, 24.45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [21.733, 21.733]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [19.56, 19.56]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [17.781, 17.781]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F91398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x778C8A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x775ECE8, 0]
|
||||
value_type: float
|
||||
value: [16.3, 16.3]
|
@ -1,153 +0,0 @@
|
||||
# Horizon Chase 2 1.5.2
|
||||
# BID: 3CE4DB955A23026E
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
20FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
25FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8C398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77878A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -1,153 +0,0 @@
|
||||
# Horizon Chase 2 1.5.4
|
||||
# BID: 95B2E97C5D16385A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
20FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
25FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F8D398, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x77888A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -0,0 +1,27 @@
|
||||
# Horizon Chase 2 1.6.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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# Horizon Chase 2 1.6.3
|
||||
# BID: F80EEC237D0963EE
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8325D00, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8B13A30, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.DynamicRes.FrameTimeBudget = 0.978 * (1000/FPS)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8AEE598, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(0.978 * FRAMETIME_TARGET, 1)", "TruncDec(0.978 * FRAMETIME_TARGET, 1)"]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# OptimalFrameDuration_ms = 0.96 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 64
|
||||
20FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 48
|
||||
25FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 38.4
|
||||
30FPS:
|
||||
# OptimalFrameDuration_ms (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 32
|
||||
35FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 27.42
|
||||
40FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 24
|
||||
45FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 21.333333
|
||||
50FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 19.2
|
||||
55FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 17.454545
|
||||
60FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2153CFC]
|
||||
value_type: float
|
||||
value: 16
|
||||
value: "0.96 * FRAMETIME_TARGET"
|
||||
|
@ -1,99 +1,16 @@
|
||||
# Rad Rogers: Radical Edition 1.2.0
|
||||
# Rad Rodgers: Radical Edition 1.2.0
|
||||
# BID: 78885A1CA987C04C
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# t.MaxFPS (100 to ensure than NVN itself will handle 60 FPS while not enabling SmoothedFrameRateRange)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x579C208, 0]
|
||||
value_type: float
|
||||
value: [100, 100]
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,33 @@
|
||||
# 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
|
@ -0,0 +1,33 @@
|
||||
# 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
|
@ -0,0 +1,33 @@
|
||||
# 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
|
@ -0,0 +1,33 @@
|
||||
# Jujutsu Kaisen Cursed Clash US 1.1.0
|
||||
# BID: 95761555A341B190
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8036A48, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8079F50, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73BB0C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80797A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,279 +0,0 @@
|
||||
# Jujutsu Kaisen Cursed Clash US 1.0.2
|
||||
# BID: EA01C4BA969E8159
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value is 60)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8014A48, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8057F50, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x73990C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# Disable bUseFixedFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x80577A8, 0x9C4]
|
||||
value_type: uint32
|
||||
value: 7
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
20FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
25FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
30FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
35FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
40FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
45FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
50FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
55FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
60FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B3E500, 0x48]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
||||
value: "FRAMETIME_TARGET / 1000"
|
||||
|
@ -79,70 +79,7 @@ MASTER_WRITE:
|
||||
main_offset: 0x5F8C
|
||||
value_type: uint32
|
||||
value: 0xD2A032A2
|
||||
15FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
20FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
25FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
30FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
35FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
40FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
45FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
50FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
55FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x188CF00]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
60FPS:
|
||||
ALL_FPS:
|
||||
# dummy
|
||||
-
|
||||
type: write
|
||||
|
@ -3,105 +3,20 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# t.VSync (default value) - game really struggles to get 60 FPS with this turned on
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [1, 1]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.VSync (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [1, 1]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.VSync (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [1, 1]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# t.VSync (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [1, 1]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# t.VSync
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
@ -110,110 +25,3 @@ unsafeCheck: true
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# t.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# t.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69B8C78, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69AEE10, 0]
|
||||
value_type: float
|
||||
value: [60, 60]
|
||||
# t.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6220790, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 64.333333
|
||||
20FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 47.666666
|
||||
25FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 37.666666
|
||||
30FPS:
|
||||
# OptimalFrameDuration_ms (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 31
|
||||
35FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 26.238095
|
||||
40FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 22.666666
|
||||
45FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 19.888888
|
||||
50FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 17.666666
|
||||
55FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 15.848484
|
||||
60FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D5A83C]
|
||||
value_type: float
|
||||
value: 14.333333
|
||||
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"
|
||||
|
@ -0,0 +1,22 @@
|
||||
# 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,22 +1,22 @@
|
||||
# TRANSFORMERS: EARTHSPARK - Expedition 1.0.5
|
||||
# BID: F87BEAF2C5CE13E3
|
||||
# Game is using double buffer, everything is hardcoded
|
||||
# Game is using double frontbuffer and single backbuffer, everything is hardcoded
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
@ -26,195 +26,3 @@ unsafeCheck: true
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B9BDD8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BD58A8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63DCAE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# Dynamic Resolution frame time target = (32.3/(1000/30)) * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 64.6
|
||||
20FPS:
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 48.45
|
||||
25FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 38.76
|
||||
30FPS:
|
||||
# Dynamic Resolution frame time target (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 32.3
|
||||
35FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 27.68
|
||||
40FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 24.225
|
||||
45FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 21.53
|
||||
50FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 19.38
|
||||
55FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 17.61
|
||||
60FPS:
|
||||
# Dynamic Resolution frame time target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2D7A974]
|
||||
value_type: float
|
||||
value: 16.15
|
||||
value: "0.969 * FRAMETIME_TARGET"
|
||||
|
@ -0,0 +1,36 @@
|
||||
# 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"
|
@ -0,0 +1,36 @@
|
||||
# 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"
|
@ -0,0 +1,36 @@
|
||||
# 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"
|
@ -0,0 +1,30 @@
|
||||
# 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"
|
@ -0,0 +1,30 @@
|
||||
# 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)"
|
@ -0,0 +1,30 @@
|
||||
# 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"
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -3,133 +3,16 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 60
|
||||
value: "0.9 * FRAMETIME_TARGET"
|
||||
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 66
|
||||
20FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 45
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 49.5
|
||||
25FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 36
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 39.6
|
||||
30FPS:
|
||||
# Dynamic Resolution Frame Time Min (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 30
|
||||
# Dynamic Resolution Frame Time Max (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 33
|
||||
35FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 25.71
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 28.28
|
||||
40FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 22.5
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 24.75
|
||||
45FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 20
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 22
|
||||
50FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 18
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 19.8
|
||||
55FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 16.36
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 18
|
||||
60FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FC8]
|
||||
value_type: float
|
||||
value: 15
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3356FB0]
|
||||
value_type: float
|
||||
value: 16.5
|
||||
value: "0.99 * FRAMETIME_TARGET"
|
||||
|
@ -1,135 +0,0 @@
|
||||
# The Elder Scrolls V: Skyrim 1.1.177.3285177
|
||||
# BID: 771BDFB65F8D0AF7
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# Dynamic Resolution Frame Time Min = 0.9 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 60
|
||||
# Dynamic Resolution Frame Time Max = 0.99 * (1000/FPS)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 66
|
||||
20FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 45
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 49.5
|
||||
25FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 36
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 39.6
|
||||
30FPS:
|
||||
# Dynamic Resolution Frame Time Min (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 30
|
||||
# Dynamic Resolution Frame Time Max (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 33
|
||||
35FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 25.71
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 28.28
|
||||
40FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 22.5
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 24.75
|
||||
45FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 20
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 22
|
||||
50FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 18
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 19.8
|
||||
55FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 16.36
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 18
|
||||
60FPS:
|
||||
# Dynamic Resolution Frame Time Min
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178C8]
|
||||
value_type: float
|
||||
value: 15
|
||||
# Dynamic Resolution Frame Time Max
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x33178B0]
|
||||
value_type: float
|
||||
value: 16.5
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,24 @@
|
||||
# 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]
|
@ -0,0 +1,24 @@
|
||||
# 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]
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,12 @@
|
||||
# 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]
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -1,224 +0,0 @@
|
||||
# The Witcher 3 3.7
|
||||
# BID: 4FFB62F1CD9E17F8
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
15FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 63
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 63
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 15
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 47.25
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 47.25
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 20
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 37.8
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 37.8
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 25
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# DRGameTargetFrameTimeInMs (original value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 31.5
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 31.5
|
||||
# LimitFPS (original value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 60
|
||||
|
||||
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
|
||||
35FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 27
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 27
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 35
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 23.625
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 23.625
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 40
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 21
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 21
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 45
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 18.9
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 18.9
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 50
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 17.1818181818
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 17.1818181818
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 55
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 15.75
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 15.75
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 60
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,224 +0,0 @@
|
||||
# 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,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [15, 15]
|
||||
value: [FPS_TARGET, FPS_TARGET]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynResTargetFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [30, 30]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [35, 35]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [45, 45]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [55, 55]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynResTargetFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71A31F8, 0]
|
||||
value_type: int32
|
||||
value: [60, 60]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x71B2BD0, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 15
|
||||
20FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 20
|
||||
25FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 25
|
||||
30FPS:
|
||||
# Dynamic Resolution FPS Target (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 30
|
||||
35FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 35
|
||||
40FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 40
|
||||
45FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 45
|
||||
50FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 50
|
||||
55FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 55
|
||||
60FPS:
|
||||
# Dynamic Resolution FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x179EF64]
|
||||
value_type: float
|
||||
value: 60
|
||||
value: FPS_TARGET
|
||||
|
@ -0,0 +1,17 @@
|
||||
# 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
|
@ -0,0 +1,15 @@
|
||||
# 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
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
15FPS:
|
||||
# DynamicResolution_TypeInfo (MAX = 0.96 * (1000/FPS), MIN = 0.9375 * (1000/FPS)), min range 0.75
|
||||
ALL_FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [64, 62.5]
|
||||
20FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [48, 46.875]
|
||||
25FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [38.4, 37.5]
|
||||
30FPS:
|
||||
# DynamicResolution_TypeInfo (default values)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [32, 31.25]
|
||||
35FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [27.43, 26.68]
|
||||
40FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [24, 23.25]
|
||||
45FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [21.33, 20.58]
|
||||
50FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [19.2, 18.45]
|
||||
55FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [17.45, 16.7]
|
||||
60FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B320A0, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [16, 15.25]
|
||||
value: ["0.96 * FRAMETIME_TARGET", "(0.96 * FRAMETIME_TARGET) - 0.75"]
|
||||
|
@ -1,75 +0,0 @@
|
||||
# The Forest Quartet 4.0.1
|
||||
# BID: C66F68F53A4A7053
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
15FPS:
|
||||
# DynamicResolution_TypeInfo (MAX = 0.96 * (1000/FPS), MIN = 0.9375 * (1000/FPS)), min range 0.75
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [64, 62.5]
|
||||
20FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [48, 46.875]
|
||||
25FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [38.4, 37.5]
|
||||
30FPS:
|
||||
# DynamicResolution_TypeInfo (default values)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [32, 31.25]
|
||||
35FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [27.43, 26.68]
|
||||
40FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [24, 23.25]
|
||||
45FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [21.33, 20.58]
|
||||
50FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [19.2, 18.45]
|
||||
55FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [17.45, 16.7]
|
||||
60FPS:
|
||||
# DynamicResolution_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4A87920, 0xB8, 0]
|
||||
value_type: double
|
||||
value: [16, 15.25]
|
@ -3,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B461B8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B3C330, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -3,337 +3,37 @@
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.MaxGPUTime ((1000/FPS) * 0.93)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [62, 62]
|
||||
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
|
||||
# r.DynamicRes.MinGPUTime ((1000/FPS) * 0.87)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [58, 58]
|
||||
value: ["0.87 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"]
|
||||
# r.DynamicRes.MaxGPUTimeStill ((1000/FPS) * 0.945)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [63, 63]
|
||||
value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"]
|
||||
# r.DynamicRes.MinGPUTimeStill ((1000/FPS) * 0.93)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [62, 62]
|
||||
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [46.5, 46.5]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [43.5, 43.5]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [47.25, 47.25]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [46.25, 46.25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [37.2, 37.2]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [34.2, 34.2]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [37.8, 37.8]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [37.2, 37.2]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.MaxGPUTime (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [31, 31]
|
||||
# r.DynamicRes.MinGPUTime (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [29, 29]
|
||||
# r.DynamicRes.MaxGPUTimeStill (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [31.5, 31.5]
|
||||
# r.DynamicRes.MinGPUTimeStill (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [31, 31]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [26.57, 26.57]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [24.85, 24.85]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [27, 27]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [26.57, 26.57]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [23.25, 23.25]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [21.75, 21.75]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [23.625, 23.625]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [23.25, 23.25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [20.66, 20.66]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [19.33, 19.33]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [21, 21]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [20.66, 20.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [18.6, 18.6]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [17.4, 17.4]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [18.9, 18.9]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [18.6, 18.6]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [16.9, 16.9]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [15.81, 15.81]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [17.18, 17.18]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [16.9, 16.9]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.MaxGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23AF0, 0]
|
||||
value_type: float
|
||||
value: [15.5, 15.5]
|
||||
# r.DynamicRes.MinGPUTime
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B08, 0]
|
||||
value_type: float
|
||||
value: [14.5, 14.5]
|
||||
# r.DynamicRes.MaxGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B20, 0]
|
||||
value_type: float
|
||||
value: [15.75, 15.75]
|
||||
# r.DynamicRes.MinGPUTimeStill
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E23B38, 0]
|
||||
value_type: float
|
||||
value: [15.5, 15.5]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E46698, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
|
@ -1,7 +1,6 @@
|
||||
# SONIC FORCES 1.1.0
|
||||
# BID: 6D9EA94F8AAC00A8
|
||||
# Game speed is tied to framerate
|
||||
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
@ -12,73 +11,27 @@ MASTER_WRITE:
|
||||
main_offset: 0xAD40FC
|
||||
value_type: uint32
|
||||
value: 0x52800068
|
||||
15FPS:
|
||||
# FPS target (FPS * 2)
|
||||
# Block switching back to 30 FPS mode on loading screens
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x6173B0
|
||||
value_type: uint32
|
||||
value: 0xD503201F
|
||||
ALL_FPS:
|
||||
# Switch to 60 FPS Mode
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 30
|
||||
20FPS:
|
||||
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 40
|
||||
25FPS:
|
||||
# FPS target
|
||||
value: FPS_TARGET
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1C38C28, 0x14C]
|
||||
value_type: float
|
||||
value: 50
|
||||
30FPS:
|
||||
# FPS target (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 60
|
||||
35FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 70
|
||||
40FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 80
|
||||
45FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 90
|
||||
50FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 100
|
||||
55FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 110
|
||||
60FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 120
|
||||
value: FPS_TARGET
|
@ -1,7 +1,6 @@
|
||||
# SONIC FORCES 1.1.0
|
||||
# BID: 6D9EA94F8AAC00A8
|
||||
# Game speed is tied to framerate
|
||||
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
@ -12,73 +11,27 @@ MASTER_WRITE:
|
||||
main_offset: 0xAD40FC
|
||||
value_type: uint32
|
||||
value: 0x52800068
|
||||
15FPS:
|
||||
# FPS target (FPS * 2)
|
||||
# Block switching back to 30 FPS mode on loading screens
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x6173B0
|
||||
value_type: uint32
|
||||
value: 0xD503201F
|
||||
ALL_FPS:
|
||||
# Switch to 60 FPS Mode
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 30
|
||||
20FPS:
|
||||
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 40
|
||||
25FPS:
|
||||
# FPS target
|
||||
value: FPS_TARGET
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1C38C28, 0x14C]
|
||||
value_type: float
|
||||
value: 50
|
||||
30FPS:
|
||||
# FPS target (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 60
|
||||
35FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 70
|
||||
40FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 80
|
||||
45FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 90
|
||||
50FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 100
|
||||
55FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 110
|
||||
60FPS:
|
||||
# FPS target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1C38C28, 0x1C]
|
||||
value_type: float
|
||||
value: 120
|
||||
value: FPS_TARGET
|
@ -3,13 +3,13 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
@ -19,141 +19,3 @@ unsafeCheck: true
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# t.MaxFPS (default value at first game boot, with next boot it's 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8001888, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7806CC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -3,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default is 1000)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
|
@ -1,159 +0,0 @@
|
||||
# Mortal Shell 1.0.1
|
||||
# BID: BE2D1A84420113EC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6ACCBD8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6AEF760, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -1,135 +0,0 @@
|
||||
# From Space 1.0.357
|
||||
# BID: 593BD545295A65FB
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# vSyncCount (we are resetting it to 0 so game will calculate Dynamic Resolution for specified FPS target)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 15
|
||||
20FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 20
|
||||
25FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 25
|
||||
30FPS:
|
||||
# vSyncCount (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 2
|
||||
# targetFrameRate (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 0
|
||||
35FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 35
|
||||
40FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 40
|
||||
45FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 45
|
||||
50FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 50
|
||||
55FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 0
|
||||
# targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 55
|
||||
60FPS:
|
||||
# vSyncCount
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x68A9828, 0x210, 0x68]
|
||||
value_type: int32
|
||||
value: 1
|
||||
# targetFrameRate (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6483A70]
|
||||
value_type: int32
|
||||
value: 0
|
@ -3,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# UnityEngine.Application::targetFrameRate (to adjust Dynamic Resolution)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 15
|
||||
20FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 20
|
||||
25FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 25
|
||||
30FPS:
|
||||
# UnityEngine.Application::targetFrameRate (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 30
|
||||
35FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 35
|
||||
40FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 40
|
||||
45FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 45
|
||||
50FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 50
|
||||
55FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 55
|
||||
60FPS:
|
||||
# UnityEngine.Application::targetFrameRate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6F3F760]
|
||||
value_type: int32
|
||||
value: 60
|
||||
value: FPS_TARGET
|
||||
|
@ -1,66 +1,83 @@
|
||||
# WARRIORS OROCHI 4 1.0.13
|
||||
# BID: 5C9CCD358BE85FC9
|
||||
# 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
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# Without DLC Ultimate Edition installed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 2
|
||||
20FPS:
|
||||
type: evaluate_compare
|
||||
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: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 2
|
||||
25FPS:
|
||||
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: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 2
|
||||
30FPS:
|
||||
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: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 2
|
||||
35FPS:
|
||||
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: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 1
|
||||
40FPS:
|
||||
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: write
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 1
|
||||
45FPS:
|
||||
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: write
|
||||
type: evaluate_compare
|
||||
compare_value_type: uint64
|
||||
compare_type: "!="
|
||||
compare_value: 0xE2CFDAC9EAC20398
|
||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
||||
address: [MAIN, 0x3AF80, -0x931F4]
|
||||
value_type: int32
|
||||
value: 1
|
||||
50FPS:
|
||||
value_type: uint32
|
||||
value: [VSYNC_TARGET, FPS_TARGET]
|
||||
-
|
||||
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
|
||||
type: evaluate_compare
|
||||
compare_value_type: uint64
|
||||
compare_type: "!="
|
||||
compare_value: 0xE2CFDAC9EAC20398
|
||||
compare_address: [MAIN, 0x3AF80, -0x1A92FC0]
|
||||
address: [MAIN, 0x3AF80, -0x931EC]
|
||||
value_type: float
|
||||
value: FPS_TARGET
|
||||
|
@ -4,199 +4,22 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 4
|
||||
value: VSYNC_TARGET
|
||||
# Game Speed, pointer ref: F3 03 00 AA 20 00 80 52 F4 03 01 AA
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 4
|
||||
value: VSYNC_TARGET
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 15
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 3
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 3
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 20
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 25
|
||||
30FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 30
|
||||
35FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 35
|
||||
40FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 40
|
||||
45FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 45
|
||||
50FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 50
|
||||
55FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 55
|
||||
60FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEDA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEF6D0, 2554]
|
||||
value_type: uint8
|
||||
value: 60
|
||||
value: FPS_TARGET
|
||||
|
@ -1,199 +0,0 @@
|
||||
# Jojo's Bizarre Adventure: All-Star Battle R 2.3.0
|
||||
# BID: B2FA8FF1240615F1
|
||||
# There are small issues with animations in cutscenes at higher framerates
|
||||
# REF: 28 1C 00 12 89 07 80 52 2A 09 C8 1A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 4
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 4
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 15
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 3
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 3
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 20
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 25
|
||||
30FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 2
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 30
|
||||
35FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 35
|
||||
40FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 40
|
||||
45FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 45
|
||||
50FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 50
|
||||
55FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 55
|
||||
60FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AEEA08, 704]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Game Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 1360]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# UI Speed
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2AF06D0, 2554]
|
||||
value_type: uint8
|
||||
value: 60
|
@ -3,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [66.6, 66.6]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value is 36.5, obviously we don't want it)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [33.3, 33.3]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [30, 30]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [28.5, 28.5]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [22.2, 22.2]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [18.1, 18.1]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7565298, 0]
|
||||
value_type: float
|
||||
value: [16.6, 16.6]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7589FE0, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,32 @@
|
||||
# Bakery Simulator 1.1.0
|
||||
# BID: 31A37D73E22F1059
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x5F9B6A8, 0x7A4]
|
||||
value_type: uint32
|
||||
# Default is 0x47, bUseFixedFrameRate |= 0x40
|
||||
# By writing 7 we are making sure that other flags are maintained:
|
||||
# bAllowMultiThreadedAnimationUpdate |= 4
|
||||
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
|
||||
# bCanBlueprintsTickByDefault |= 1
|
||||
value: 7
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x57A0B58, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x5F9BFC8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Gigantosaurus: Dino Kart 1.1.0
|
||||
# BID: 512FB8C2D12C4F36
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D186C8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6581EB0, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D45C58, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -3,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D196C8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6D46C58, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
|
@ -3,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D46658, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7D73FF8, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
|
@ -0,0 +1,13 @@
|
||||
# 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"]
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -1,224 +0,0 @@
|
||||
# The Witcher 3 3.7
|
||||
# BID: 4FFB62F1CD9E17F8
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
15FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 63
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 63
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 15
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 47.25
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 47.25
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 20
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 37.8
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 37.8
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 25
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# DRGameTargetFrameTimeInMs (original value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 31.5
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 31.5
|
||||
# LimitFPS (original value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 60
|
||||
|
||||
# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it.
|
||||
35FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 27
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 27
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 35
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 23.625
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 23.625
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 40
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 21
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 21
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 45
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 18.9
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 18.9
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 50
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 17.1818181818
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 17.1818181818
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 55
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA8F4]
|
||||
value_type: float
|
||||
value: 15.75
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4FDA924]
|
||||
value_type: float
|
||||
value: 15.75
|
||||
# LimitFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4C983EC]
|
||||
value_type: int32
|
||||
value: 60
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,224 +0,0 @@
|
||||
# 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,73 +3,10 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30)
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 64.333333
|
||||
20FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 47.666666
|
||||
25FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 37.666666
|
||||
30FPS:
|
||||
# OptimalFrameDuration_ms (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 31
|
||||
35FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 26.238095
|
||||
40FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 22.666666
|
||||
45FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 19.888888
|
||||
50FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 17.666666
|
||||
55FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 15.848484
|
||||
60FPS:
|
||||
# OptimalFrameDuration_ms
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x27C4B0C]
|
||||
value_type: float
|
||||
value: 14.333333
|
||||
value: "FRAMETIME_TARGET - (0.07 * (1000/30))"
|
||||
|
@ -10,64 +10,10 @@ MASTER_WRITE:
|
||||
main_offset: 0x6B41E4
|
||||
value_type: uint32
|
||||
value: 0xB20007E8
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# DUMMY
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
20FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
25FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
30FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
35FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
40FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
45FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
50FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
55FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
60FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4740500]
|
||||
value_type: uint8
|
||||
value: 0
|
@ -1,159 +0,0 @@
|
||||
# Bright Memory: Infinite Gold Edition 1.2
|
||||
# BID: 323631B628A32D84
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69CE1D8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x69FBA78, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -3,19 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
@ -25,195 +25,3 @@ unsafeCheck: true
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value is 30)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default value is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B031D8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6B30A78, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63376C8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -1,164 +0,0 @@
|
||||
# Hot Wheels Unleashed 2 1.0.1
|
||||
# BID: 012294C1E2D28A79
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAC83268, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACB1730, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
@ -1,224 +0,0 @@
|
||||
# Hot Wheels Unleashed 2 1.0.5
|
||||
# BID: 3973FB8AC2750BE4
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB4BC090, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB560E08, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xACA1CA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -1,224 +0,0 @@
|
||||
# Hot Wheels Unleashed 2 1.0.6
|
||||
# BID: 53E622E32DB8780F
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB51D278, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB54B740, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD49CF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -0,0 +1,32 @@
|
||||
# Hot Wheels Unleashed 2 1.0.9
|
||||
# BID: C95F34910CE1CDC0
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A78, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,224 +0,0 @@
|
||||
# Hot Wheels Unleashed 2 1.0.7
|
||||
# BID: DF0F7D04FC02C9BB
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB58F090, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB633E08, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD75A98, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -0,0 +1,27 @@
|
||||
# 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,224 +0,0 @@
|
||||
# Hot Wheels Unleashed 2 1.0.4
|
||||
# BID: EBD417A7EB6B5486
|
||||
|
||||
# It is recommended to disable FSR. When FSR is enabled,
|
||||
# Dynamic Resolution is also disabled and it has worse performance
|
||||
# at higher FPS, and quality wise it compares to dynamic resolution
|
||||
# set to lowest res
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync (default is 1)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADC3278, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xADF1740, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA5F0238, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
@ -0,0 +1,27 @@
|
||||
# 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,190 +3,22 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [15, 2]
|
||||
value: [FPS_LOCK_TARGET, VSYNC_TARGET]
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 15
|
||||
value: FPS_TARGET
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 1
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [20, 2]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 20
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 1
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [25, 2]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 25
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 1
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [30, 2]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 30
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 1
|
||||
35FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [35, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 35
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [40, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 40
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [45, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 45
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [50, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 50
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [55, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 55
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D15228]
|
||||
value_type: int32
|
||||
value: [60, 1]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1D28CB8]
|
||||
value_type: float
|
||||
value: 60
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2A88DC0]
|
||||
value_type: int32
|
||||
value: 0
|
||||
value: "VSYNC_TARGET - 1"
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
|
@ -10,64 +10,10 @@ MASTER_WRITE:
|
||||
main_offset: 0xEA22EC
|
||||
value_type: uint32
|
||||
value: 0xB20007E8
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# DUMMY
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
20FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
25FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
30FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
35FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
40FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
45FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
50FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
55FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
60FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA7FA900]
|
||||
value_type: uint8
|
||||
value: 0
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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
|
@ -0,0 +1,27 @@
|
||||
# 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,157 +3,19 @@
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [66.66, 66.66]
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
20FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
25FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
30FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [33.33, 33.33]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
35FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [28.51, 28.51]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [35, 35]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
40FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [25, 25]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [40, 40]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
45FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [22.22, 22.22]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [45, 45]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
50FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [20, 20]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [50, 50]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
55FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [18.18, 18.18]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [55, 55]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
60FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x680CAB8, 0]
|
||||
value_type: float
|
||||
value: [16.66, 16.66]
|
||||
# t.MaxFPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x683A358, 0]
|
||||
value_type: float
|
||||
value: [0, 0]
|
||||
|
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