Compare commits

..

20 Commits

Author SHA1 Message Date
redraz
bf48033941 Ultra 2.4|R1+ fix 2025-05-16 12:38:42 +03:00
redraz
9adc60b135 Ultra 2.4|R1 2025-05-13 04:27:17 +03:00
redraz
5153b2d17a modified: README.md 2025-05-10 13:01:13 +03:00
redraz
9d661b1d18 modified: README.md 2025-05-10 13:00:05 +03:00
redraz
1fc80bcbdb modified: README.md 2025-05-10 10:44:12 +03:00
redraz
985a53995a Ultra 2.4|RC1 2025-05-10 09:41:45 +03:00
redraz
4e42f73191 modified: README.md 2025-03-26 08:46:53 +03:00
redraz
b144b70918 Ultra 2.3|R4+ 2025-03-26 08:45:47 +03:00
redraz
b546edec8f Fix with old SaltyNX+FPSLocker & minvolt 550 2025-02-04 12:14:04 +03:00
redraz
aacfd99915 modified: README.md 2025-01-24 18:12:45 +03:00
redraz
da2cbbb2f6 Ultra 2.3|R3+ 2025-01-04 17:27:06 +03:00
redraz
9c3765e08c Ultra 2.3|R3 2025-01-04 11:42:49 +03:00
redraz
65461efd23 Ultra 2.3|R2+ 2024-11-22 04:38:50 +03:00
redraz
b9b4dd45c0 modified: README.md 2024-11-15 12:52:10 +03:00
redraz
e1812455bb Ultra 2.3|R2 2024-11-15 12:49:24 +03:00
redraz
73b0904544 Hotfix 2024-10-26 23:29:10 +03:00
redraz
d8daa54862 Upd sys-patch 2024-10-26 21:49:26 +03:00
redraz
c846ee9fb3 modified: README.md 2024-10-26 21:23:11 +03:00
redraz
65e6b17a73 Ultra 2.3|R1 2024-10-26 20:51:08 +03:00
redraz
09492db032 Ultra 2.3|RC2 2024-10-23 13:18:00 +03:00
416 changed files with 8537 additions and 804 deletions
README.mdREADME_ENG.md
SaltySD
exceptions.txt
plugins/FPSLocker/patches
0100001019F6E000
010000A017F96000
010000B01A452000
010008E01E32A000
010009D018A06000
01000AA013A5E000
01000AB01F9C0000
01000B202041A000
01000BB00E9D2000
0100111004460000
01001270012B6000
0100182014022000
010019B00BE72000
010019C00E9CC000
01001BE01908C000
01001C400E9D8000
01001CC01B2D4000
01001E3017A10000
010021801DD26000
010023001969A000
010025C0145D4000
010027B01E32C000
010029B0118E8000
01002C101C1AA000
01002FC012548000
010037A01F96C000
01003990220BE000
01003B90136DA000
01003CC00D0BE000
01003E601E324000
01003EB01C2F0000
010044B01E786000
0100453019AA8000
010045301B86C000
010047E01EA24000
01004A001E32E000
01004A600EC0A000
0100500012AB4000
010050F01DF9C000
010051C0134F8000
0100544020572000
010054E01D878000
010055D01C8D4000

@ -8,13 +8,14 @@
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
### [Ultra 2.3](https://github.com/Ultra-NX/UltraNX/releases/tag/2.3-RC1) Поддерживает HOS 19.0.0 и все ревизии консолей
### [Ultra 2.4](https://github.com/Ultra-NX/UltraNX/releases) Поддерживает HOS 20.0.1 и все ревизии консолей
## Особенности Ultra
* Предварительно настроенный OC Switchcraft (Преемник OC-Suite) с пресетами.
* По умолчанию уже есть андервольт, который заметно снижает потребление консоли, и небольшой разгон памяти, который сделает игры плавнее.
* Лучший кастомизатор разгона для Свитч - [Ultra-Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Ultra-Tuner), позволяющий настраивать разгон прямо с консоли. Был первым, и остается неповторимым.
* Сборка максимально легкая и не нагруженная. В ней нет лишнего, минимум необходимый для разгона и комфортного использования.
* Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через [Ultra Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater).
@ -23,8 +24,9 @@
* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила.
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей:
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловю систему.
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему. Так же исправлена работа старых форвардеров (важно для хоумбрю игр/эмуляторов).
* Форки SaltyNX и FPSLocker, с поддержкой изменения частоты обновления экрана и с поддержкой OLED.
* Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными.
* Форк Status Monitor с отображением текущих вольтажей и уникальными модулями Микро Оверлея, пресеты которых можно менять через Ultra Tuner.
@ -34,18 +36,19 @@
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)** - Пакет для Ultrahand, позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
1. **[OC-Switchcraft](https://github.com/halop/OC_Toolkit_SC_EOS)**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы.
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://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837) - Программа для снятия ключей консоли.
* [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://github.com/Atmosphere-NX/Atmosphere) - Программа для обновления системного ПО.
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater) есть выбор из EN-RU-PTBR-ZHCN.
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль.
1. **Установленные модули**
@ -53,48 +56,44 @@
* [sys-clk](https://github.com/halop/OC_Toolkit_SC_EOS) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
* [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - С помощью этого модуля осуществляется переключение установленных модулей.
* [sys-patch](https://github.com/impeeza/sys-patch) - Патчит систему на работу неподписанного софта вместо сигпатчей.
* [nim-prodinfo-blank-fix](https://github.com/fruityloops1/nim-prodinfo-blank-fix) - Исправляет проблему краша атмосферы, при занулении серийного номера.
* [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/halop/OC_Toolkit_SC_EOS) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках (Так как они закрыты).
- [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater.
- [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх.
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов.
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - Оверлей для управления ReverseNX.
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей.
- [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Оверлей для включения и отключения установленных системных модулей.
1. **Доступные для скачивания через [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)**
1. **Доступные для скачивания через [Ultra Tuner](https://github.com/Ultra-NX/UltraNX/wiki/Tuner-RU#ultra-tuner)**
* Homebrews:
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Здесь можно скачать DBI или обновить имеющийся.
* [Linkalho](https://gbatemp.net/download/linkalho.38822) - Программа для привязки аккаунта.
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP.
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Клиент Moonlight, позволяет транслировать на консоль игры с PC.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. Старая версия, которая многим нравится больше новой.
* Overlays:
* [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Форк Status Monitor для UltraNX, поддерживает много пресетов Micro-оверлея, и обладает рядом уникальных фишек.
* [Tetris](https://github.com/ppkantorski/Tetris-Overlay) - Та самая игра в виде оверлея. Работает только на последних версиях Ultrahand.
* [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - Оверлей, позволяющий быстро отключаться/подключаться к bluetooth-гарнитуре.
* [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, работают и без системного модуля, активируя фоновую запись в играх, где это изначально запрещено.
* [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - Хоумбрю-музыкальный плеер, который работает через системный модуль, и может сворачиваться, работая в фоне.
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли.
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне.
1. **Содержимое [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)**
*
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
* [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли.
## Лицензии
@ -113,12 +112,12 @@
## Благодарности
* Meha
* B3711
* ppkantorski
* Cooler3D
* rashevskyv
* Meha
* duckbill
* snupt
* Cooler3D
* 4PDA
#### А так же - отдельная благодарность администрации и участникам Ultra Group
@ -128,14 +127,16 @@
Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен.
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
### Tinkoff QR
![](https://github.com/Ultra-NX/Ultra-Resources/raw/main/Tinkoff%20small.png)
```
TON: UQDioCnnPI5sk4KvxWzfPWsWbAyWCkzwhaYjy8Qpg2QwWMiL
BTC: 1HsC4z8X1YkZzcSKZz1t7MXRa7rPi8qChV
USDT: TQi3qLVrNGcr6avfVQBXRjpPTyvp5JZ7i2
Сбербанк: 2202200513345833
СБП : +79168089980
Альфа : 2200152336577997
Tinkoff : 2200700170486970
```
### Tinkoff QR
![](https://github.com/Ultra-NX/Ultra-Resources/raw/main/Tinkoff%20small.png)

@ -6,13 +6,14 @@
#
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
### [Ultra 2.3](https://github.com/Ultra-NX/UltraNX/releases/tag/2.3-RC1) Supports HOS 19.0.0 and all console revisions
### [Ultra 2.4](https://github.com/Ultra-NX/UltraNX/releases) Supports HOS 20.0.1 and all console revisions
## Features of Ultra
* Pre-configured OC Switchcraft (Successor to OC-Suite) with presets.
* By default, there's already an undervolt that noticeably reduces the console's consumption, and a slight memory overclock that will make games smoother.
* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique.
* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use.
* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the Ultra Tuner.
@ -21,6 +22,7 @@
* [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.
* SaltyNX and FPSLocker forks, with support for changing screen refresh rate and with OLED support.
* Mission Control fork, with the “easter egg” cut out, making the joycons yellow-blue.
* Status Monitor fork with display of current voltages and unique Micro Overlay modules, whose presets can be changed via Ultra Tuner.
@ -30,18 +32,19 @@
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 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_Toolkit_SC_EOS)**, 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. **[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://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837/) - 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://github.com/Atmosphere-NX/Atmosphere) - A program for updating OS.
* [DBI](https://github.com/rashevskyv/dbi) - The best file manager, save manager and program installer on the console. If you need a different localization - Updater has a choice of EN-RU-PTBR-ZHCN.
* [DBI](https://github.com/rashevskyv/dbi) - The best file manager, save manager and program installer on the console.
1. **Installed Modules**
@ -49,48 +52,42 @@
* [sys-clk](https://github.com/halop/OC_Toolkit_SC_EOS) - 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.
* [nim-prodinfo-blank-fix](https://github.com/fruityloops1/nim-prodinfo-blank-fix) - Fixes an atmosphere crash problem, when nulling the serial number.
* [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/halop/OC_Toolkit_SC_EOS) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources (Since they're closed).
- [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater.
- [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games.
- [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats.
- [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - ReverseNX control overlay.
- [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Overlay for enabling and disabling installed system modules.
- [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)**
* Homebrews:
* [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1120#entry86288632) - Here you can download a DBI or update an existing one.
* [Linkalho](https://gbatemp.net/download/linkalho.38822/) - Account linking program.
* [Tinfoil](https://tinfoil.io) - Installer and game store.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator.
* [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Moonlight client, allows to stream games from PC.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.
* [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one.
* Overlays:
* [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Status Monitor fork for UltraNX, supports many Micro-overlay presets, and has a number of unique features.
* [Tetris](https://github.com/ppkantorski/Tetris-Overlay/) - "That" game in the form of an overlay. Works only on the latest versions of Ultrahand.
* [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - An overlay that allows you to quickly disconnect/connect to a bluetooth headset.
* [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.
* [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - A homebrew music player that runs through the system module, and can minimize while running in the background.
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console.
* [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background.
1. **Contents of the [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)**
*
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
* [Tinfoil](https://tinfoil.io) - Installer and game store.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch.
* [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console.
* [sys-ftpd](https://github.com/cathery/sys-ftpd) - FTP server running in background.
@ -109,12 +106,12 @@ Listed below are the licenses of those programs that have been modified specific
## Credits
* Meha
* B3711
* ppkantorski
* Cooler3D
* rashevskyv
* Meha
* duckbill
* snupt
* Cooler3D
* 4PDA
#### And also - a special thanks to the administration and members of Ultra Group

@ -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
@ -54,3 +50,7 @@ X0100964012528000
;Donkey Kong Country: Tropical Freeze
;Crash at second level
X0100C1F0051B6000
;Death Road to Canada
;1.0.8 crash
X0100423009358000

@ -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 @@
# 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,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,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 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

@ -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,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]

@ -1,5 +1,5 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# BID: D27FD8A515077F34
# BID: 4BC4A8A814FD46A4
unsafeCheck: true

@ -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,10 +11,27 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# FPS target (FPS * 2)
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: "FPS_TARGET * 2"
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
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,10 +11,27 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# FPS target (FPS * 2)
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: "FPS_TARGET * 2"
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET

@ -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,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"]

@ -1,5 +1,5 @@
# The Witcher 3: Wild Hund - Complete Edition 4.04b
# BID: D27FD8A515077F34
# BID: 4BC4A8A814FD46A4
unsafeCheck: true

@ -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

@ -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

@ -8,17 +8,17 @@ ALL_FPS:
type: evaluate_write
address: [MAIN, 0x1D15228]
value_type: int32
value: [FPS_LOCK_TARGET, "1"]
value: [FPS_LOCK_TARGET, VSYNC_TARGET]
-
type: evaluate_write
address: [MAIN, 0x1D28CB8]
value_type: float
value: FPS_TARGET
-
type: write
type: evaluate_write
address: [MAIN, 0x2A88DC0]
value_type: int32
value: 0
value: "VSYNC_TARGET - 1"
-
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.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

@ -1,4 +1,4 @@
# Farming Simulator 23 Nintendo Switch Edition 1.6.0.0
# Farming Simulator 23 Nintendo Switch Edition 1.6.0.0/1.7.0.0
# BID: 17F37A56B17DD9CC
unsafeCheck: true

@ -0,0 +1,51 @@
# Momotaro Dentetsu: Showa, Heisei, Reiwa mo Teiban! Asia Edition 1.0.1
# BID: B2D4462B71536EC6
unsafeCheck: true
MASTER_WRITE:
# Remove double buffer
-
type: bytes
main_offset: 0x1B630
value_type: uint32
value: 0x52800061
-
type: bytes
main_offset: 0x5774C
value_type: uint32
value: 0x52800061
ALL_FPS:
# REF: 20 59 60 BC
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xFF7090]
value_type: float
value: [FPS_TARGET, "60 / FPS_TARGET"]
# Blocking game to max 60 FPS because setting game speed ratio below 1 causes glitches
-
type: evaluate_compare
compare_address: [MAIN, 0xFF7090]
compare_type: ">"
compare_value_type: float
compare_value: 60
address: [MAIN, 0xFF7090]
value_type: float
value: 60
-
type: evaluate_compare
compare_address: [MAIN, 0xFF7090]
compare_type: "=="
compare_value_type: float
compare_value: 60
address: [MAIN, 0xFF7094]
value_type: float
value: 1
# Unknown value that is set based on FPS Lock function argument, 0 = 60 FPS, 1 = 30 FPS, 2 = 20 FPS, 3 = 15 FPS
# According to IDA is not used at all, but writing this anyway
-
type: evaluate_write
address: [MAIN, 0x10D8028]
value_type: uint32
value: "VSYNC_TARGET - 1"

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

@ -0,0 +1,27 @@
# GUNDAM BREAKER 4 1.9.0
# BID: 0CC82881FF112C6D
unsafeCheck: false
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x9F98D48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9FC67E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x97CADA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

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

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

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

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

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

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Clear Sky 1.0.1
# BID: 38171F8A5687B940
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17BD76C]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17DA8E8]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A4436C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17BD748]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

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

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

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

@ -0,0 +1,27 @@
# Expeditions: A Mudrunner Game 1.12.0.0
# BID: 225B47BDEC7C2D4E
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x3623F00
-
type: bytes
main_offset: 0x16AB5C0
value_type: uint32
value:
- 0x9000FBCC
- 0xBD4F0182
# default value
-
type: bytes
main_offset: 0x3623F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x3623F00]
value_type: float
value: FRAMETIME_TARGET

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

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

@ -0,0 +1,33 @@
# Jujutsu Kaisen Cursed Clash JP 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,12 @@
# Shadows of the Damned: Hella Remastered 1.0.1
# BID: 5B863A6EFCE084B0
unsafeCheck: true
ALL_FPS:
# Bool Lock FPS, ref: LDR S0, [X0,#0x694]
-
type: write
address: [MAIN, 0x3A8A2F8]
value_type: uint32
value: 0

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

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

@ -0,0 +1,12 @@
# Shadowverse: Champion's Battle 1.3.0
# BID: 1F936E043FB8C349
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x64DB5C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

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

@ -0,0 +1,27 @@
# DRAGON QUEST III HD-2D Remake 1.0.1
# BID: 6F49452BD0B343B1
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x5A9D3E8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x6289E28, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x62B7B68, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -3,22 +3,6 @@
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC88AF00
# only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it)
-
type: bytes
main_offset: 0x74F5118
value_type: uint32
value:
- 0xB0029CA8
- 0xB94F0108
# Default handheld value
-
type: bytes
main_offset: 0xC88AF00
value_type: uint32
value: 600000
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
@ -31,9 +15,3 @@ ALL_FPS:
address: [MAIN, 0xC809DA0, 0x100]
value_type: float
value: 0.0666666666
# Dynamic Resolution Timing = (0.9375/FPS) * 19200000
-
type: evaluate_write
address: [MAIN, 0xC88AF00]
value_type: uint32
value: "(0.9375 / FPS_TARGET) * 19200000"

@ -0,0 +1,17 @@
# MEGATON MUSASHI W: WIRED 3.2.2
# BID: 1EC3E6373D7DA9A6
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAC9F20, 0x48]
value_type: float
value: "1 / FPS_TARGET"
- # maximumDeltaTime = 1/15 (with this setting game will slow down below 15 FPS instead of 30 FPS)
type: write
address: [MAIN, 0xCAC9F20, 0x100]
value_type: float
value: 0.0666666666

@ -3,22 +3,6 @@
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC8C2F00
# only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it)
-
type: bytes
main_offset: 0x74BF438
value_type: uint32
value:
- 0xF002A008
- 0xB94F0108
# Default handheld value
-
type: bytes
main_offset: 0xC8C2F00
value_type: uint32
value: 600000
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
@ -31,9 +15,3 @@ ALL_FPS:
address: [MAIN, 0xC841820, 0x100]
value_type: float
value: 0.0666666666
# Dynamic Resolution Timing = (0.9375/FPS) * 19200000
-
type: evaluate_write
address: [MAIN, 0xC8C2F00]
value_type: uint32
value: "(0.9375 / FPS_TARGET) * 19200000"

@ -3,22 +3,6 @@
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC8CBF00
# only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it)
-
type: bytes
main_offset: 0x74ADA58
value_type: uint32
value:
- 0xD002A0E8
- 0xB94F0108
# Default handheld value
-
type: bytes
main_offset: 0xC8CBF00
value_type: uint32
value: 600000
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
@ -31,9 +15,3 @@ ALL_FPS:
address: [MAIN, 0xC84AD60, 0x100]
value_type: float
value: 0.0666666666
# Dynamic Resolution Timing = (0.9375/FPS) * 19200000
-
type: evaluate_write
address: [MAIN, 0xC8CBF00]
value_type: uint32
value: "(0.9375 / FPS_TARGET) * 19200000"

@ -0,0 +1,17 @@
# MEGATON MUSASHI W: WIRED 3.2.0
# BID: 8286C091117CAECF
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAA1720, 0x48]
value_type: float
value: "1 / FPS_TARGET"
- # maximumDeltaTime = 1/15 (with this setting game will slow down below 15 FPS instead of 30 FPS)
type: write
address: [MAIN, 0xCAA1720, 0x100]
value_type: float
value: 0.0666666666

@ -0,0 +1,12 @@
# MEGATON MUSASHI W: WIRED 3.2.3
# BID: D152798E91A87AE7
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAC9F20, 0x48]
value_type: float
value: "1 / FPS_TARGET"

@ -3,22 +3,6 @@
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC8CBF00
# only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it)
-
type: bytes
main_offset: 0x78910F8
value_type: uint32
value:
- 0xD00281C8
- 0xB94F0108
# Default handheld value
-
type: bytes
main_offset: 0xC8CBF00
value_type: uint32
value: 600000
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
@ -31,9 +15,3 @@ ALL_FPS:
address: [MAIN, 0xC84AD20, 0x100]
value_type: float
value: 0.0666666666
# Dynamic Resolution Timing = (0.9375/FPS) * 19200000
-
type: evaluate_write
address: [MAIN, 0xC8CBF00]
value_type: uint32
value: "(0.9375 / FPS_TARGET) * 19200000"

@ -3,22 +3,6 @@
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::UpdateResolution() to MAIN + 0xC8CBF00
# only for handheld (default handheld: 31.25 ms, docked: 46.875 ms - probably to block DR from working without disabling it)
-
type: bytes
main_offset: 0x74AD958
value_type: uint32
value:
- 0xD002A0E8
- 0xB94F0108
# Default handheld value
-
type: bytes
main_offset: 0xC8CBF00
value_type: uint32
value: 600000
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
@ -31,9 +15,3 @@ ALL_FPS:
address: [MAIN, 0xC84AD60, 0x100]
value_type: float
value: 0.0666666666
# Dynamic Resolution Timing = (0.9375/FPS) * 19200000
-
type: evaluate_write
address: [MAIN, 0xC8CBF00]
value_type: uint32
value: "(0.9375 / FPS_TARGET) * 19200000"

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

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

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

@ -0,0 +1,27 @@
# Romancing SaGa 2: Revenge of the Seven 1.0.2
# BID: 1933FBAFE977FA75
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6D1EA80, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7BFAC70, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7C534C0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,27 @@
# Romancing SaGa 2: Revenge of the Seven 1.0.1
# BID: 791D79EBD7A0115E
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6D1DA90, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7BF9C70, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7C524C0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

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

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Shadow Of Chornobyl 1.0.1
# BID: 0214CA2211DE8313
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x16494EC]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x16659F0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x18CDACC]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x16492F0]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

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

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

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

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

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

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

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

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

@ -0,0 +1,37 @@
# REYNATIS (US/EU) 1.0.5
# BID: C370209AECC8D2FB
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
-
type: bytes
main_offset: 0x30A752C
value_type: uint32
value:
- 0xD0025B34 # to update with newer updates
- 0xFD478281 # to update if offset 0xF00 is still not enough
- 0x1E612010
- 0x2D482269
- 0x540002CD # branch possible to update with newer updates
- 0xBD40626A
-
type: bytes
main_offset: 0x30A7594
value_type: uint32
value:
- 0xFD478681 # to update if offset 0xF00+8 is still not enough
# Default handheld value
-
type: bytes
main_offset: 0x7C0DF00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C0DF00]
value_type: double
value: ["(0.9 * FRAMETIME_TARGET) + 1", "(0.9 * FRAMETIME_TARGET) - 1"]

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

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

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

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

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

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

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

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.74.9f94
# BID: 0181E008CA25A289
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCDFCA68, 8]
value_type: double
value: FPS_TARGET

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

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.75.48c1
# BID: 25636E9F2595CFFD
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE06A68, 8]
value_type: double
value: FPS_TARGET

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

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

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

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

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

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

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

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

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

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.7a.6c14
# BID: FF365FA7E744CDDA
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE76A68, 8]
value_type: double
value: FPS_TARGET

@ -0,0 +1,27 @@
# Hot Wheels Monster Trucks: Stunt Mayhem 1.0.1
# BID: 444303671674DD91
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x60B3478, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x60ED880, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x58EEAA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

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