diff --git a/README.md b/README.md index 25b3a4d..7ec5961 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ ### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт. -### [Ultra 2.2](https://github.com/Ultra-NX/Ultra-Resources/releases/download/Test/Ultra.zip) Поддерживает HOS 18.1.0 и все ревизии консолей +### [Ultra 2.2](https://github.com/Ultra-NX/Ultra/releases/latest) Поддерживает HOS 18.1.0 и все ревизии консолей + + ## Особенности Ultra @@ -19,19 +21,27 @@ * Регулярные обновления, и активное коммьюнити. * Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы. + + ## Состав Ultra 1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch. 1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое. 1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultra Paw (форка Ultrahand), позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник. -1. **`OC-Switchcraft`**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы. +1. **[OC-Switchcraft](https://discord.com/channels/854839758815363072/1173171845139288114/1253645315429371978)**, форк **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Лоадер атмосферы с разгоном от B3711, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы. + + 1. **Установленные пейлоады**: * [Lockpick_RCM](https://sigmapatches.su) - Программа для снятия ключей консоли. * [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой. + + 1. **Установленные Homebrew** * [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов. * [Daybreak](https://codeberg.org/rashevskyv/kefir) - Программа для обновления системного ПО. * [DBI](https://github.com/rashevskyv/dbi) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. Если вам нужна другая локализация - в [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater) есть выбор из EN-RU-PTBR-ZHCN. + + 1. **Установленные модули** * [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины. Не совместим с 32-х битными играми (список на гитхабе проекта). * [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam. @@ -39,22 +49,47 @@ * [sys-patch](https://sigmapatches.su) - Патчит систему на работу неподписанного софта вместо сигпатчей. * [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner. - **`Ultra-Overlay`**, мод [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках. - - [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater. + - [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater. - [FPSLocker](https://github.com/masagrator/FPSLocker) - Оверлей, позволяющий разблокировать 60 FPS в играх. - [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Оверлей для использования читов. - [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - Оверлей для управления ReverseNX. - [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Оверлей для включения и отключения установленных системных модулей. + + 1. **Доступные для скачивания через [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)** - * [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта. - * [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX. - * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так! +* + * Homebrews: + * [Linkalho](https://github.com/rdmrocha/linkalho) - Программа для привязки аккаунта. + * [Tinfoil](https://tinfoil.io) - Установщик и каталог игр. + * [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений. + * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч. + * [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX. + * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так! + * **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. +* + * Overlays: + * [MasterVolume](https://github.com/averne/MasterVolume) - Регулировка глобальной громкости, позволяет поднять громкость выше максимума. Использовать аккуратно! + * [Fizeau](https://github.com/averne/Fizeau) - Модуль для изменения цветового профиля экрана. + * [sys-tune](https://github.com/HookedBehemoth/sys-tune) - Оверлей-музыкальный плеер, работает в фоне. +* + * Other: + * [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Патчи для FPSLocker, что бы не качать отдельно патч для каждой игры через оверлей. + * [DVR Patches](https://github.com/exelix11/dvr-patches) - Патчи SysDVR, работают и без системного модуля, активируя фоновую запись в играх, где это изначально запрещено. + * [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - Хоумбрю-музыкальный плеер, который работает через системный модуль, и может сворачиваться, работая в фоне. + * [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth. + * [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB. + * [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне. + + +1. **Содержимое [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)** +* * [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений. - * [SysDVR-conf](https://github.com/exelix11/SysDVR) - Программа для установки/удаления dvr патчей для игр. Патчи включают возможность записи в тех играх, где она отключена, но ломают некоторые другие игры, например "Ведьмак 3". - * [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP сервер, работающий на фоне. - * [sys-con](https://github.com/cathery/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB. - * [Mission Control](https://codeberg.org/rashevskyv/kefir) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth. - * [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - Оверлей с максимально подробным отображением статистики системы, напоминает Afterburner на PC. - * **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. + * [Tinfoil](https://tinfoil.io) - Установщик и каталог игр. + * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч. + * [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth. + * [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB. + + ## Лицензии @@ -68,6 +103,9 @@ [CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE) * [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) + + + ## Благодарности * Meha @@ -79,6 +117,8 @@ * 4PDA #### А так же - отдельная благодарность администрации и участникам Ultra Group + + ## Поддержка Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен. diff --git a/README_ENG.md b/README_ENG.md index db04b7d..f5e4b26 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -6,7 +6,9 @@ ### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience. -### [Ultra 2.2](https://github.com/Ultra-NX/Ultra-Resources/releases/download/Test/Ultra.zip) Supports HOS 18.1.0 and all console revisions +### [Ultra 2.2](https://github.com/Ultra-NX/Ultra/releases/latest) Supports HOS 18.1.0 and all console revisions + + ## Features of Ultra @@ -18,19 +20,27 @@ * Custom Ultra Monitor with FPS and system metrics. * Regular updates, and an active community. + + ## Composition of Ultra 1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, custom firmware for the Nintendo Switch. 1. **[Hekate](https://github.com/CTCaer/hekate)** - Custom Nintendo Switch graphical bootloader, firmware patcher, toolkit and more. 1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Package for Ultra Paw (fork of Ultrahand), which allows you to fine-tune the OC parameters for your console. In case of unstable overclocking, or if you want to increase the performance of your console, Ultra Tuner is your indispensable assistant. -1. **`OC-Switchcraft`**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - The overclocked atmosphere loader by B3711, allows you to squeeze the power of the Xbox One out of the N.Switch. Updated in time to support new Atmosphere features. +1. **[OC-Switchcraft](https://discord.com/channels/854839758815363072/1173171845139288114/1253645315429371978)**, a fork of **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - The overclocked atmosphere loader by B3711, allows you to squeeze the power of the Xbox One out of the N.Switch. Updated in time to support new Atmosphere features. + + 1. **Installed Payloads**: * [Lockpick_RCM](https://sigmapatches.su) - Program for dumping console keys. * [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system. + + 1. **Installed Homebrew** * [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Program to update Ultra to the current version, as well as to download cheats. * [Daybreak](https://codeberg.org/rashevskyv/kefir) - A program for updating OS. * [DBI](https://github.com/rashevskyv/dbi) - The best file manager, save manager and program installer on the console. If you need a different localization - Updater has a choice of EN-RU-PTBR-ZHCN. + + 1. **Installed Modules** * [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins. Not compatible with 32-bit games (list on the project's github). * [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Module responsible for overclocking CPU, memory and GPU - for better performance. I change versions from different authors from time to time. Original authors: Meha/hanai3Bi, lineon, p-sam. @@ -38,22 +48,45 @@ * [sys-patch](https://sigmapatches.su) - Patches the system to run unsigned software instead of sigpatches. * [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Special overlay-menu for interacting with the system: overclocking, controlling modes via ReverseNX, enabling cheats, etc. Also allows to use your own packages, for example, Ultra Tuner. - **`Ultra-Overlay`**, a mod of [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources. - - [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater. + - [Status Monitor](https://github.com/Ultra-NX/Status-Monitor-Overlay), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater. - [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games. - [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats. - [ReverseNX-RT](https://github.com/masagrator/ReverseNX-RT) - ReverseNX control overlay. - [Sysmodules](https://github.com/WerWolv/ovl-sysmodules/) - Overlay for enabling and disabling installed system modules. + + 1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)** - * [Linkalho](https://github.com/rdmrocha/linkalho) - Account linking program. - * [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program. - * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily! + * Homebrews: + * [Linkalho](https://github.com/rdmrocha/linkalho) - Account linking program. + * [Tinfoil](https://tinfoil.io) - Installer and game store. + * [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps. + * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch. + * [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program. + * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily! + * **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. + + * Overlays: + * [MasterVolume](https://github.com/averne/MasterVolume) - Global volume control, allows you to raise the volume above the maximum. Use with care! + * [Fizeau](https://github.com/averne/Fizeau) - Module for changing the screen color profile. + * [sys-tune](https://github.com/HookedBehemoth/sys-tune) - Overlay music player, works in background. + + * Other: + * [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - Patches for FPSLocker, so you don't have to download a separate patch for each game through the overlay. + * [DVR Patches](https://github.com/exelix11/dvr-patches) - SysDVR patches, work without the system module, activating background recording in games where it is initially prohibited. + * [TriPlayer](https://github.com/DefenderOfHyrule/TriPlayer) - A homebrew music player that runs through the system module, and can minimize while running in the background. + * [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth. + * [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB. + * [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background. + + +1. **Contents of the [Homebrews Pack](https://github.com/Ultra-NX/Ultra/releases/latest)** +* * [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps. - * [SysDVR-conf](https://github.com/exelix11/SysDVR) - A program to install/uninstall dvr patches for games. Patches enable recording in games where it is disabled, but break some other games like "The Witcher 3". - * [sys-ftpd](https://github.com/tomvita/sys-ftpd-light) - FTP server running in background. - * [sys-con](https://github.com/cathery/sys-con) - A module that allows you to connect almost any gamepads to the console via USB. - * [Mission Control](https://codeberg.org/rashevskyv/kefir) - A module that allows you to connect almost any gamepads to the console via bluetooth. - * [Observer-Tool](https://github.com/rkuchkarov/Observer-Tool) - An overlay with the most detailed display of system statistics, similar to Afterburner on PC. - * **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. + * [Tinfoil](https://tinfoil.io) - Installer and game store. + * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch. + * [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth. + * [sys-con](https://github.com/o0Zz/sys-con) - A module that allows you to connect almost any gamepads to the console via USB. + ## License @@ -67,6 +100,8 @@ Listed below are the licenses of those programs that have been modified specific [CC-BY-NC-4.0 License](https://github.com/ppkantorski/Ultrahand-Overlay/blob/main/LICENSE) * [Ultrahand-Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) + + ## Credits * Meha @@ -78,6 +113,8 @@ Listed below are the licenses of those programs that have been modified specific * 4PDA #### And also - a special thanks to the administration and members of Ultra Group + + ## Support If you like the project and you have a desire to support me with a penny - I will be very grateful. diff --git a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/1C95A999050892E0.yaml b/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/1C95A999050892E0.yaml deleted file mode 100644 index 6dd6b4e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/1C95A999050892E0.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/3CE4DB955A23026E.yaml b/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/3CE4DB955A23026E.yaml deleted file mode 100644 index 91b84f1..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/3CE4DB955A23026E.yaml +++ /dev/null @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/95B2E97C5D16385A.yaml b/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/95B2E97C5D16385A.yaml deleted file mode 100644 index 812f3c7..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/95B2E97C5D16385A.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/F80EEC237D0963EE.yaml b/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/F80EEC237D0963EE.yaml new file mode 100644 index 0000000..caf4f93 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100001019F6E000/F80EEC237D0963EE.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml b/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml index b169203..52dbf12 100644 --- a/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010000400F582000/02F2E5C8CBF5A92F.yaml @@ -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 \ No newline at end of file + value: "0.96 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml b/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml index a6d6913..f1e9839 100644 --- a/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010000600CD54000/78885A1CA987C04C.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x579C208, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS (100 to ensure than NVN itself will handle 60 FPS while not enabling SmoothedFrameRateRange) - - - type: write - address: [MAIN, 0x579C208, 0] - value_type: float - value: [100, 100] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010000B01A452000/95761555A341B190.yaml b/SaltySD/plugins/FPSLocker/patches/010000B01A452000/95761555A341B190.yaml new file mode 100644 index 0000000..e9e2f3c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010000B01A452000/95761555A341B190.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010000B01A452000/EA01C4BA969E8159.yaml b/SaltySD/plugins/FPSLocker/patches/010000B01A452000/EA01C4BA969E8159.yaml deleted file mode 100644 index b6fecd1..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010000B01A452000/EA01C4BA969E8159.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml b/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml index cac2708..02772fb 100644 --- a/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml @@ -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 \ No newline at end of file + value: "FRAMETIME_TARGET / 1000" diff --git a/SaltySD/plugins/FPSLocker/patches/0100011005D92000/A3A998AF3252D110.yaml b/SaltySD/plugins/FPSLocker/patches/0100011005D92000/A3A998AF3252D110.yaml index 637d267..fbe6916 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100011005D92000/A3A998AF3252D110.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100011005D92000/A3A998AF3252D110.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml b/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml index cdb4e2e..f9370a9 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100040016EE2000/331E3DFBDF650226.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml b/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml index f8d2c1b..23e868d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100041018810000/B8BE1CFAE53CAEBE.yaml @@ -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))" diff --git a/SaltySD/plugins/FPSLocker/patches/010005001A8CA000/F87BEAF2C5CE13E3.yaml b/SaltySD/plugins/FPSLocker/patches/010005001A8CA000/F87BEAF2C5CE13E3.yaml index 7ade9fa..a7b8dec 100644 --- a/SaltySD/plugins/FPSLocker/patches/010005001A8CA000/F87BEAF2C5CE13E3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010005001A8CA000/F87BEAF2C5CE13E3.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml b/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml index 6a01a30..5fe326e 100644 --- a/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010007B010FCC000/4EEA2970DF38ECE1.yaml @@ -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" diff --git a/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/4F7995092FAA5DC0.yaml b/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/4F7995092FAA5DC0.yaml index 035491d..795b1b0 100644 --- a/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/4F7995092FAA5DC0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/4F7995092FAA5DC0.yaml @@ -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 \ No newline at end of file + value: "0.99 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml b/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml deleted file mode 100644 index 59d6ffd..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01000A10041EA000/771BDFB65F8D0AF7.yaml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml b/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml index c6d39b1..9f935d3 100644 --- a/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01000BD00CE64000/E417100FFEEFD1DE.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynResTargetFPS - - type: write + type: evaluate_write address: [MAIN, 0x71A31F8, 0] value_type: int32 - value: [15, 15] + value: [FPS_TARGET, FPS_TARGET] # t.MaxFPS - type: write address: [MAIN, 0x71B2BD0, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynResTargetFPS (default value) - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [30, 30] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [35, 35] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [55, 55] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynResTargetFPS - - - type: write - address: [MAIN, 0x71A31F8, 0] - value_type: int32 - value: [60, 60] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71B2BD0, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml b/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml index 477b901..54dd6e5 100644 --- a/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01000BF0152FA000/12024D08CCFD25EB.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/47A022F858BA09B1.yaml b/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/47A022F858BA09B1.yaml index e80194a..bfeb5f7 100644 --- a/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/47A022F858BA09B1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/47A022F858BA09B1.yaml @@ -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] \ No newline at end of file + value: ["0.96 * FRAMETIME_TARGET", "(0.96 * FRAMETIME_TARGET) - 0.75"] diff --git a/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/C66F68F53A4A7053.yaml b/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/C66F68F53A4A7053.yaml deleted file mode 100644 index 21622b1..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010010A01BBF4000/C66F68F53A4A7053.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml b/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml index 995b82c..559897d 100644 --- a/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010010B00DDA2000/8A39E660F956BB00.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml b/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml index 56e53f8..6003f85 100644 --- a/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010010F01418E000/49CF6B0B0A62F9E2.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/0100111004460000/6D9EA94F8AAC00A8.yaml b/SaltySD/plugins/FPSLocker/patches/0100111004460000/6D9EA94F8AAC00A8.yaml index 9c3fc41..8fd1786 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100111004460000/6D9EA94F8AAC00A8.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100111004460000/6D9EA94F8AAC00A8.yaml @@ -12,73 +12,10 @@ MASTER_WRITE: main_offset: 0xAD40FC value_type: uint32 value: 0x52800068 -15FPS: +ALL_FPS: # FPS target (FPS * 2) - - type: write + type: evaluate_write address: [MAIN, 0x1C38C28, 0x1C] value_type: float - value: 30 -20FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 40 -25FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 50 -30FPS: - # FPS target (default value) - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 60 -35FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 70 -40FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 80 -45FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 90 -50FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 100 -55FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 110 -60FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 120 \ No newline at end of file + value: "FPS_TARGET * 2" diff --git a/SaltySD/plugins/FPSLocker/patches/01001270012B6000/6D9EA94F8AAC00A8.yaml b/SaltySD/plugins/FPSLocker/patches/01001270012B6000/6D9EA94F8AAC00A8.yaml index 9c3fc41..8fd1786 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001270012B6000/6D9EA94F8AAC00A8.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001270012B6000/6D9EA94F8AAC00A8.yaml @@ -12,73 +12,10 @@ MASTER_WRITE: main_offset: 0xAD40FC value_type: uint32 value: 0x52800068 -15FPS: +ALL_FPS: # FPS target (FPS * 2) - - type: write + type: evaluate_write address: [MAIN, 0x1C38C28, 0x1C] value_type: float - value: 30 -20FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 40 -25FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 50 -30FPS: - # FPS target (default value) - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 60 -35FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 70 -40FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 80 -45FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 90 -50FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 100 -55FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 110 -60FPS: - # FPS target - - - type: write - address: [MAIN, 0x1C38C28, 0x1C] - value_type: float - value: 120 \ No newline at end of file + value: "FPS_TARGET * 2" diff --git a/SaltySD/plugins/FPSLocker/patches/0100149019460000/B9E42653FB44EF2B.yaml b/SaltySD/plugins/FPSLocker/patches/0100149019460000/B9E42653FB44EF2B.yaml index 138a9d7..58ac709 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100149019460000/B9E42653FB44EF2B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100149019460000/B9E42653FB44EF2B.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/6D9F6C7B79F5197F.yaml b/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/6D9F6C7B79F5197F.yaml index 5f978d1..47ce600 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/6D9F6C7B79F5197F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/6D9F6C7B79F5197F.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml b/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml deleted file mode 100644 index 3a9c36c..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100154019A7C000/BE2D1A84420113EC.yaml +++ /dev/null @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml b/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml deleted file mode 100644 index 3aed03c..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/593BD545295A65FB.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/9806FB67CE24E904.yaml b/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/9806FB67CE24E904.yaml index 082f728..aa98dc5 100644 --- a/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/9806FB67CE24E904.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010015F018C3C000/9806FB67CE24E904.yaml @@ -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 \ No newline at end of file + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml b/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml index 14fc1a4..2f3c1e0 100644 --- a/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010016A00AEC0000/5C9CCD358BE85FC9.yaml @@ -4,63 +4,9 @@ unsafeCheck: true -15FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 2 -20FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 2 -25FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 2 -30FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 2 -35FPS: +ALL_FPS: - type: write address: [MAIN, 0x3AF80, -0x931F4] value_type: int32 value: 1 -40FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 1 -45FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 1 -50FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 1 -55FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 1 -60FPS: - - - type: write - address: [MAIN, 0x3AF80, -0x931F4] - value_type: int32 - value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml b/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml index af315bb..462341e 100644 --- a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/3D4E3A9252AA6C63.yaml @@ -4,199 +4,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Internal FPS Lock, pointer ref: 00 01 40 F9 E5 03 04 2A - - type: write + type: evaluate_write address: [MAIN, 0x2AEDA08, 704] value_type: uint32 - value: 4 + value: VSYNC_TARGET # Game Speed, pointer ref: F3 03 00 AA 20 00 80 52 F4 03 01 AA - - type: write + type: evaluate_write address: [MAIN, 0x2AEF6D0, 1360] value_type: uint32 - value: 4 + value: VSYNC_TARGET # UI Speed - type: write address: [MAIN, 0x2AEF6D0, 2554] value_type: uint8 - value: 15 + value: FPS_TARGET - type: block what: timing -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 3 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 3 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 20 - - - type: block - what: timing -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 2 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 2 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 25 -30FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 2 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 2 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 35 -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 40 -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 45 -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 50 -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 55 -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x2AEDA08, 704] - value_type: uint32 - value: 1 - # Game Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 1360] - value_type: uint32 - value: 1 - # UI Speed - - - type: write - address: [MAIN, 0x2AEF6D0, 2554] - value_type: uint8 - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/B2FA8FF1240615F1.yaml b/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/B2FA8FF1240615F1.yaml deleted file mode 100644 index be1ad00..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010017A0128C4000/B2FA8FF1240615F1.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml b/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml index 8cf36c3..bfc79cf 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100182014022000/56EEFA704373BDB3.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010018601E9E0000/31A37D73E22F1059.yaml b/SaltySD/plugins/FPSLocker/patches/010018601E9E0000/31A37D73E22F1059.yaml new file mode 100644 index 0000000..0de0257 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010018601E9E0000/31A37D73E22F1059.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01001890167FE000/512FB8C2D12C4F36.yaml b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/512FB8C2D12C4F36.yaml new file mode 100644 index 0000000..546418d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/512FB8C2D12C4F36.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml index e9982e2..a0a7596 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001890167FE000/5F7A2866D8E20BBA.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml b/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml index b2e4433..374c92e 100644 --- a/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010018C01B106000/63B72CD5F2A90020.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml b/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml index a4f193d..7a422b4 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001A0011798000/66B2DEA98B5CDF65.yaml @@ -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 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/01001A700C832000/97FC79E063E26C9B.yaml b/SaltySD/plugins/FPSLocker/patches/01001A700C832000/97FC79E063E26C9B.yaml index 2635264..c8181f7 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001A700C832000/97FC79E063E26C9B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001A700C832000/97FC79E063E26C9B.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml b/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml deleted file mode 100644 index 816f4bb..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001A9018560000/323631B628A32D84.yaml +++ /dev/null @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/01001A9018560000/DD425ECC07C305DF.yaml b/SaltySD/plugins/FPSLocker/patches/01001A9018560000/DD425ECC07C305DF.yaml index d5fb040..305eacb 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001A9018560000/DD425ECC07C305DF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001A9018560000/DD425ECC07C305DF.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/012294C1E2D28A79.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/012294C1E2D28A79.yaml deleted file mode 100644 index 946e08f..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/012294C1E2D28A79.yaml +++ /dev/null @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/3973FB8AC2750BE4.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/3973FB8AC2750BE4.yaml deleted file mode 100644 index beeaed2..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/3973FB8AC2750BE4.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/53E622E32DB8780F.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/53E622E32DB8780F.yaml deleted file mode 100644 index 3d81d45..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/53E622E32DB8780F.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/C95F34910CE1CDC0.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/C95F34910CE1CDC0.yaml new file mode 100644 index 0000000..6c5e293 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/C95F34910CE1CDC0.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/DF0F7D04FC02C9BB.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/DF0F7D04FC02C9BB.yaml deleted file mode 100644 index 67560c3..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/DF0F7D04FC02C9BB.yaml +++ /dev/null @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/EBD417A7EB6B5486.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/EBD417A7EB6B5486.yaml deleted file mode 100644 index 18a254b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/EBD417A7EB6B5486.yaml +++ /dev/null @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml b/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml index efc1013..7c453cb 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001C400E9D8000/737E56D43D2C0B38.yaml @@ -3,185 +3,17 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x1D15228] value_type: int32 - value: [15, 2] + value: [FPS_LOCK_TARGET, "1"] - - type: write + type: evaluate_write address: [MAIN, 0x1D28CB8] value_type: float - value: 15 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 1 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [20, 2] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 20 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 1 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [25, 2] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 25 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 1 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [30, 2] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 30 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 1 -35FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [35, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 35 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 0 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [40, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 40 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 0 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [45, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 45 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 0 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [50, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 50 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 0 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [55, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 55 - - - type: write - address: [MAIN, 0x2A88DC0] - value_type: int32 - value: 0 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x1D15228] - value_type: int32 - value: [60, 1] - - - type: write - address: [MAIN, 0x1D28CB8] - value_type: float - value: 60 + value: FPS_TARGET - type: write address: [MAIN, 0x2A88DC0] diff --git a/SaltySD/plugins/FPSLocker/patches/01001C700873E000/C0F144F5139F542E.yaml b/SaltySD/plugins/FPSLocker/patches/01001C700873E000/C0F144F5139F542E.yaml index 121b31a..c93f596 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001C700873E000/C0F144F5139F542E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001C700873E000/C0F144F5139F542E.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml b/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml index 8441a3a..50b0ea8 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001CF0190C2000/4C6727375D877B90.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml new file mode 100644 index 0000000..38e2137 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001D00186E8000/C26E93197DEB4004.yaml @@ -0,0 +1,27 @@ +# Astor: Blade of the Monolith 1.0.0 +# BID: C26E93197DEB4004 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x61EE768, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x69BCAD8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x69EA478, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/0204E8D91F22A2D1.yaml b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/0204E8D91F22A2D1.yaml deleted file mode 100644 index 9a0268b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/0204E8D91F22A2D1.yaml +++ /dev/null @@ -1,91 +0,0 @@ -# Farming Simulator 23 Nintendo Switch Edition 1.4.0.1 -# BID: 0204E8D91F22A2D1 - -unsafeCheck: true - -15FPS: - # Internal FPS lock - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # default value - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 30 -35FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0xFAD5AC] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml index b173f7f..9a08961 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/17F37A56B17DD9CC.yaml @@ -3,89 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Internal FPS lock - - type: write + type: evaluate_write address: [MAIN, 0xFAD7AC] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # default value - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 30 -35FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0xFAD7AC] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml b/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml deleted file mode 100644 index c9c59fe..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01001E3017A10000/1C38F0E269ED4438.yaml +++ /dev/null @@ -1,91 +0,0 @@ -# Farming Simulator 23 Nintendo Switch Edition 1.1.0.0 -# BID: 1C38F0E269ED4438 - -unsafeCheck: true - -15FPS: - # Internal FPS lock - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # default value - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 30 -35FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0xFAC7AC] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml b/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml index fb81141..0e2ea13 100644 --- a/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01001F3018880000/DF556AF2E30073C0.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals - - type: write + type: evaluate_write address: [MAIN, 0x71331A8, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7160D78, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71331A8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7160D78, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml b/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml index 9c76a5c..a902685 100644 --- a/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010020B016EF4000/7E25622D50D562BF.yaml @@ -4,273 +4,30 @@ unsafeCheck: true -15FPS: +ALL_FPS: # fixedDeltaTime = 1/FPS - - type: write + type: evaluate_write address: [MAIN, 0x52BD280, 0x48] value_type: float - value: 0.0666666666 + value: "1 / FPS_TARGET" - # maximumParticleDeltaTime = 1/FPS - type: write + type: evaluate_write address: [MAIN, 0x52BD280, 0x104] value_type: float - value: 0.0666666666 + value: "1 / FPS_TARGET" - # maximumDeltaTime = 6 * (1/FPS) - type: write + type: evaluate_write address: [MAIN, 0x52BD280, 0x100] value_type: float - value: 0.4 + value: "(1 / FPS_TARGET) * 6" - # DS.Tech.Networking.Clock_TypeInfo = 1/FPS - type: write + type: evaluate_write address: [MAIN, 0x4EABAE0, 0xB8, 0] value_type: float - value: 0.0666666666 + value: "1 / FPS_TARGET" - # DS.Tech.Networking.ClientInterpolator_TypeInfo => every 15 FPS jump += 1 - type: write + type: evaluate_write address: [MAIN, 0x4EABA98, 0xB8, 0] value_type: int32 - value: 1 -20FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.05 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.05 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.3 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.05 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 1 -25FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.04 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.04 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.24 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.04 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 1 -30FPS: - # fixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.0333333333 - - # maximumParticleDeltaTime (default value) - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.0333333333 - - # maximumDeltaTime (default value) - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.2 - - # DS.Tech.Networking.Clock_TypeInfo (default value) - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.0333333333 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 2 -35FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.0285714 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.0285714 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.17142857142 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.0285714 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 2 -40FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.025 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.025 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.15 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.025 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo (default value) - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 2 -45FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.0222222222 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.0222222222 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.1333333333 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.0222222222 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 3 -50FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.02 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.02 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.12 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.02 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 3 -55FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.0181818181 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.0181818181 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.109090909 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.0181818181 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 3 -60FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x52BD280, 0x48] - value_type: float - value: 0.0166666666 - - # maximumParticleDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x104] - value_type: float - value: 0.0166666666 - - # maximumDeltaTime - type: write - address: [MAIN, 0x52BD280, 0x100] - value_type: float - value: 0.1 - - # DS.Tech.Networking.Clock_TypeInfo - type: write - address: [MAIN, 0x4EABAE0, 0xB8, 0] - value_type: float - value: 0.0166666666 - - # DS.Tech.Networking.ClientInterpolator_TypeInfo - type: write - address: [MAIN, 0x4EABA98, 0xB8, 0] - value_type: int32 - value: 4 + value: "FPS_TARGET / 15" diff --git a/SaltySD/plugins/FPSLocker/patches/010023001969A000/BF4126341134BFC7.yaml b/SaltySD/plugins/FPSLocker/patches/010023001969A000/BF4126341134BFC7.yaml deleted file mode 100644 index 6590493..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010023001969A000/BF4126341134BFC7.yaml +++ /dev/null @@ -1,153 +0,0 @@ -# Session: Skate Sim 1.1.2 -# BID: BF4126341134BFC7 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget = 1000/FPS - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [66.66666666, 66.66666666] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [33.33333333, 33.33333333] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [28.5714, 28.5714] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [22.22222222, 22.22222222] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [18.18181818, 18.18181818] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [16.66666666, 16.66666666] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010023001969A000/D40B81867A121EB0.yaml b/SaltySD/plugins/FPSLocker/patches/010023001969A000/D40B81867A121EB0.yaml index 6491e06..f78d7af 100644 --- a/SaltySD/plugins/FPSLocker/patches/010023001969A000/D40B81867A121EB0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010023001969A000/D40B81867A121EB0.yaml @@ -3,19 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.81 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x7249868, 0] value_type: float - value: [54, 54] + value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7277438, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -25,195 +25,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [40.5, 40.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [32.4, 32.4] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [27, 27] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [23.142, 23.142] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [20.25, 20.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [16.2, 16.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [14.727, 14.727] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7249868, 0] - value_type: float - value: [13.5, 13.5] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7277438, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6A7D0C8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010025A01CD86000/D2A5A1FC6EEADF31.yaml b/SaltySD/plugins/FPSLocker/patches/010025A01CD86000/D2A5A1FC6EEADF31.yaml index 0762ded..fed9ac8 100644 --- a/SaltySD/plugins/FPSLocker/patches/010025A01CD86000/D2A5A1FC6EEADF31.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010025A01CD86000/D2A5A1FC6EEADF31.yaml @@ -3,19 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x6C25F58, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6C538E8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -25,195 +25,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6C25F58, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6C538E8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x64578D8, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml b/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml index 2a82895..98f3cc1 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002620102C6000/7D1714279435589C.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Dynamic resolution FPS factor - - type: write + type: evaluate_write address: [MAIN, 0x212C138, 0] value_type: float - value: 15 -20FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 20 -25FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 25 -30FPS: - # Dynamic resolution FPS factor (default) - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 30 -35FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 35 -40FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 40 -45FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 45 -50FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 50 -55FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 55 -60FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x212C138, 0] - value_type: float - value: 60 + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml b/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml index 7c87d94..efd6cd8 100644 --- a/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010027400CDC6000/4979B200D53BB282.yaml @@ -1,7 +1,7 @@ # Divinity Original Sin 2 1.0.10 # BID: 4979B200D53BB282 # Game is using double buffer, buffers are not allocated in loop. -# So it's not possible to get stable FPS lock between 30 and 60. +# So it's not possible to get stable FPS lock between 30 and 60 without changing refresh rate. unsafeCheck: true @@ -20,73 +20,10 @@ MASTER_WRITE: main_offset: 0x32C6D00 value_type: double value: 1000000 -15FPS: +ALL_FPS: # GPU Frametime divider = (30/FPS) * 1000000 - - type: write + type: evaluate_write address: [MAIN, 0x32C6D00] value_type: double - value: 2000000 -20FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 1500000 -25FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 1200000 -30FPS: - # GPU Frametime divider (default value) - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 1000000 -35FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 857142 -40FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 750000 -45FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 666666 -50FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 600000 -55FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 545454 -60FPS: - # GPU Frametime divider - - - type: write - address: [MAIN, 0x32C6D00] - value_type: double - value: 500000 + value: "(30 / FPS_TARGET) * 1000000" diff --git a/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml b/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml index af91900..496d33a 100644 --- a/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010028D00BA1A000/85E49C169A8B988A.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x5228DC0, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x524F940, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5228DC0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x524F940, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml b/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml index 5d896f6..f648b05 100644 --- a/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010029B0118E8000/799D1061182C1302.yaml @@ -4,217 +4,25 @@ unsafeCheck: true -15FPS: - # FPS Target = (19200*(1000/(FPS*2))) +ALL_FPS: + # FPS Target - - type: write + type: evaluate_write address: [MAIN, 0xED96A8, 0x30] value_type: uint64 - value: 640000 - # FPS 2D Game Speed Target = (1/(FPS*2)) + value: "(FRAMETIME_TARGET / 2) * 19200" + # FPS 2D Game Speed Target - - type: write + type: evaluate_write address: [MAIN, 0xEFFC60, 0x30] value_type: float - value: 0.03333333 - # FPS 3D Game Speed Target = (1/(FPS*2)) + value: "0.5 / FPS_TARGET" + # FPS 3D Game Speed Target - - type: write + type: evaluate_write address: [MAIN, 0xEFFC60, 0x50] value_type: float - value: 0.03333333 + value: "0.5 / FPS_TARGET" - type: block what: timing -20FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 480000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.025 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.025 - - - type: block - what: timing -25FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 384000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.02 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.02 - - - type: block - what: timing -30FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 320000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.01666666 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.01666666 -35FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 274286 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.01428571 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.01428571 - - - type: block - what: timing -40FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 240000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.0125 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.0125 - - - type: block - what: timing -45FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 213334 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.01111111 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.01111111 - - - type: block - what: timing -50FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 192000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.01 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.01 - - - type: block - what: timing -55FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 174546 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.00909091 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.00909091 - - - type: block - what: timing -60FPS: - # FPS Target - - - type: write - address: [MAIN, 0xED96A8, 0x30] - value_type: uint64 - value: 160000 - # FPS 2D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x30] - value_type: float - value: 0.00833333 - # FPS 3D Game Speed Target - - - type: write - address: [MAIN, 0xEFFC60, 0x50] - value_type: float - value: 0.00833333 diff --git a/SaltySD/plugins/FPSLocker/patches/010029F01BA3E000/F8EA898027152437.yaml b/SaltySD/plugins/FPSLocker/patches/010029F01BA3E000/F8EA898027152437.yaml new file mode 100644 index 0000000..2f3bc71 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010029F01BA3E000/F8EA898027152437.yaml @@ -0,0 +1,27 @@ +# Xuan Yuan Sword 7 1.0.0 +# BID: F8EA898027152437 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x649CE60, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x6C3C9F8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6C5FB20, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml b/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml index 8eebd96..152fa2b 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002A501869E000/BFA92380757EF97D.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x8A9A438, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x8AC7808, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8A9A438, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8AC7808, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml b/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml index 7c1179a..c6d13e9 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002B00111A2000/C3CF52BF2B05D731.yaml @@ -5,137 +5,17 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x269E150] value_type: int32 - value: [15, 2, 15] + value: [FPS_TARGET, VSYNC_TARGET, FPS_TARGET] - - type: write + type: evaluate_write address: [MAIN, 0x269E15C] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [20, 2, 20] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [25, 2, 25] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [30, 2, 30] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 30 -35FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [35, 1, 35] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [40, 1, 40] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [45, 1, 45] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [50, 1, 50] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [55, 1, 55] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x269E150] - value_type: int32 - value: [60, 1, 60] - - - type: write - address: [MAIN, 0x269E15C] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml b/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml index 8335076..2033bd7 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002B7013440000/A19E113723E5C32E.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0xA158F08, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0xA1884D8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA158F08, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA1884D8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002BE016054000/751420FADE402804.yaml b/SaltySD/plugins/FPSLocker/patches/01002BE016054000/751420FADE402804.yaml index cee3155..f284761 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002BE016054000/751420FADE402804.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002BE016054000/751420FADE402804.yaml @@ -3,19 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x7ABD908, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7AEB4D8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -25,195 +25,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7ABD908, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7AEB4D8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x72F0BD8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml b/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml index 6d5651a..322da2e 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002C0015644000/3A3C781930CB8201.yaml @@ -4,7 +4,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write @@ -18,208 +18,16 @@ unsafeCheck: true value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x5F086C0, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5F331D8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5F32908, 0x7B8] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5F086C0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5F331D8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/0542802E014A7312.yaml b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/0542802E014A7312.yaml new file mode 100644 index 0000000..31178f8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/0542802E014A7312.yaml @@ -0,0 +1,27 @@ +# Expeditions: A Mudrunner Game 1.5.0.0 +# BID: 0542802E014A7312 +# REF: 01 04 0C 5E 00 10 2E 1E + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x3574A00 + - + type: bytes + main_offset: 0x16589A0 + value_type: uint32 + value: + - 0x9000F8EC + - 0xB94A018C + # default value + - + type: bytes + main_offset: 0x3574A00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x3574A00] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2D32512D25F74760.yaml b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2D32512D25F74760.yaml deleted file mode 100644 index fd12e66..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2D32512D25F74760.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Expeditions: A Mudrunner Game 1.3.0.0 -# BID: 2D32512D25F74760 -# REF: 01 04 0C 5E 00 10 2E 1E - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x356AA00 - - - type: bytes - main_offset: 0x1650D90 - value_type: uint32 - value: - - 0xD000F8CC - - 0xB94A018C - # default value - - - type: bytes - main_offset: 0x356AA00 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x356AA00] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2DF3FBBCB5B00404.yaml b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2DF3FBBCB5B00404.yaml deleted file mode 100644 index a5c14da..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/2DF3FBBCB5B00404.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Expeditions: A Mudrunner Game 1.2.0.0 -# BID: 2DF3FBBCB5B00404 -# REF: 01 04 0C 5E 00 10 2E 1E - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x355DA00 - - - type: bytes - main_offset: 0x1645470 - value_type: uint32 - value: - - 0x9000F8CC - - 0xB94A018C - # default value - - - type: bytes - main_offset: 0x355DA00 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x355DA00] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/8D76B30C877FED66.yaml b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/8D76B30C877FED66.yaml new file mode 100644 index 0000000..cfd2861 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002C101C1AA000/8D76B30C877FED66.yaml @@ -0,0 +1,27 @@ +# Expeditions: A Mudrunner Game 1.6.0.0 +# BID: 8D76B30C877FED66 +# REF: 01 04 0C 5E 00 10 2E 1E + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x3574A00 + - + type: bytes + main_offset: 0x16589E0 + value_type: uint32 + value: + - 0x9000F8EC + - 0xB94A018C + # default value + - + type: bytes + main_offset: 0x3574A00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x3574A00] + value_type: float + value: FRAMETIME_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002C400E526000/1FF442C5ABEB0459.yaml b/SaltySD/plugins/FPSLocker/patches/01002C400E526000/1FF442C5ABEB0459.yaml index 4e015d0..a6c6591 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002C400E526000/1FF442C5ABEB0459.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002C400E526000/1FF442C5ABEB0459.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x6AFA6C8, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6B28058, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6AFA6C8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6B28058, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml b/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml deleted file mode 100644 index 39d50be..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01002C400E526000/EF7B49570430043E.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Gigantosaurus The Game 1.0.0 -# BID: EF7B49570430043E - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x52F20E8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x531C300, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/372BF1E32FC51836.yaml b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/372BF1E32FC51836.yaml deleted file mode 100644 index 091de5d..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/372BF1E32FC51836.yaml +++ /dev/null @@ -1,279 +0,0 @@ -# Jujutsu Kaisen Cursed Clash JP 1.0.1 -# BID: 372BF1E32FC51836 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 60) - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 diff --git a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/95761555A341B190.yaml b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/95761555A341B190.yaml new file mode 100644 index 0000000..54b1009 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/95761555A341B190.yaml @@ -0,0 +1,33 @@ +# Jujutsu Kaisen Cursed Clash JP 1.1.0 +# BID: 95761555A341B190 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8036A48, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8079F50, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x73BB0C8, 0] + value_type: uint32 + value: [0, 0] + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x80797A8, 0x9C4] + value_type: uint32 + value: 7 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/EA01C4BA969E8159.yaml b/SaltySD/plugins/FPSLocker/patches/01002FC012548000/EA01C4BA969E8159.yaml deleted file mode 100644 index 2dd8570..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01002FC012548000/EA01C4BA969E8159.yaml +++ /dev/null @@ -1,279 +0,0 @@ -# Jujutsu Kaisen Cursed Clash JP 1.0.2 -# BID: EA01C4BA969E8159 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 60) - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8014A48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8057F50, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x73990C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80577A8, 0x9C4] - value_type: uint32 - value: 7 diff --git a/SaltySD/plugins/FPSLocker/patches/01002FD01A24C000/8F72E0D61C4BA0B1.yaml b/SaltySD/plugins/FPSLocker/patches/01002FD01A24C000/8F72E0D61C4BA0B1.yaml index 93c20e4..cec8f8b 100644 --- a/SaltySD/plugins/FPSLocker/patches/01002FD01A24C000/8F72E0D61C4BA0B1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01002FD01A24C000/8F72E0D61C4BA0B1.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # fixedDeltaTime - - type: write + type: evaluate_write address: [MAIN, 0x6421720, 0x48] value_type: float - value: 0.0333333333 -20FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0333333333 -25FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0333333333 -30FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0333333333 -35FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 -40FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 -45FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 -50FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 -55FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 -60FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x6421720, 0x48] - value_type: float - value: 0.0166666666 \ No newline at end of file + value: "FRAMETIME_TARGET / 1000" diff --git a/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml b/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml index db1a9fc..1801881 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100300012F2A000/320A17744AEFD67F.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - type: write address: [MAIN, 0x481B2F8, 0xB8, 0] value_type: int32 value: 1 -20FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -25FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -30FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo (originally it's 2, but setting it with NX-FPS interval also to 2 causes bigger input lag) - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -35FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -40FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -45FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -50FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -55FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 -60FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x481B2F8, 0xB8, 0] - value_type: int32 - value: 1 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml b/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml index 5b2852b..5c6877c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100309016E7A000/14C878ECCA9D7CB5.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to unlock framerate - type: write @@ -23,10 +23,10 @@ unsafeCheck: true value: 0 # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0xB314830, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -36,249 +36,3 @@ unsafeCheck: true - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate (default is 0x47) - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep (by default it's 1) - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [0, 0] - # r.VSync (by default it's 1) - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0xB314540, 0x7F8] - value_type: uint32 - value: 7 - # CustomTimeStep - - - type: write - address: [MAIN, 0xB314540, 0x810] - value_type: uint8 - value: 0 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xB314830, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0xAB49110, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/62B999CF9D465F00.yaml b/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/62B999CF9D465F00.yaml deleted file mode 100644 index 30da1e8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/62B999CF9D465F00.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# Hammerwatch Anniversary Edition 1.0.2 -# BID: 62B999CF9D465F00 - -unsafeCheck: true - -MASTER_WRITE: - # Rewrite "v_fps_limit 30" to 62 - - - type: bytes - main_offset: 0x805BEC - value_type: uint16 - value: 0x3236 - # Change egl Interval to lock game by default to 30 FPS - - - type: bytes - main_offset: 0x1461F8 - value_type: uint32 - value: 0x52800041 - - - type: bytes - main_offset: 0x146220 - value_type: uint32 - value: 0x52800041 -15FPS: - # DUMMY - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -20FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x179C0E0] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/D147CAEF2BC74574.yaml b/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/D147CAEF2BC74574.yaml new file mode 100644 index 0000000..7ff96ce --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100321017CC0000/D147CAEF2BC74574.yaml @@ -0,0 +1,30 @@ +# Hammerwatch Anniversary Edition 1.0.3 +# BID: D147CAEF2BC74574 + +unsafeCheck: true + +MASTER_WRITE: + # Rewrite "v_fps_limit 30" to 62 + - + type: bytes + main_offset: 0xE028B5 + value_type: uint16 + value: 0x3236 + # Change egl Interval to lock game by default to 30 FPS + - + type: bytes + main_offset: 0x141580 + value_type: uint32 + value: 0x52800041 + - + type: bytes + main_offset: 0x1415A8 + value_type: uint32 + value: 0x52800041 +ALL_FPS: + # DUMMY + - + type: write + address: [MAIN, 0x15ABF3C0] + value_type: uint8 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml b/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml index 5b86380..379ac48 100644 --- a/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010032C00AC58000/2CDB9B9D70010E88.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # FPS Lock - - type: write + type: evaluate_write address: [MAIN, 0x24924D8, 0x504C] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 30 -35FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x24924D8, 0x504C] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/38896FEC1B4ADB1C.yaml b/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/38896FEC1B4ADB1C.yaml new file mode 100644 index 0000000..11642cd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/38896FEC1B4ADB1C.yaml @@ -0,0 +1,30 @@ +# Hammerwatch 2 1.0.4 +# BID: 38896FEC1B4ADB1C + +unsafeCheck: true + +MASTER_WRITE: + # Rewrite "v_fps_limit 30" to 62 + - + type: bytes + main_offset: 0x7C7597 + value_type: uint16 + value: 0x3236 + # Change egl Interval to lock game by default to 30 FPS + - + type: bytes + main_offset: 0x135D10 + value_type: uint32 + value: 0x52800041 + - + type: bytes + main_offset: 0x135D38 + value_type: uint32 + value: 0x52800041 +ALL_FPS: + # DUMMY + - + type: write + address: [MAIN, 0x161BCF8] + value_type: uint8 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/77DDECED11491422.yaml b/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/77DDECED11491422.yaml deleted file mode 100644 index ce2cfc7..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100367016DF0000/77DDECED11491422.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# Hammerwatch 2 1.0.2 -# BID: 77DDECED11491422 - -unsafeCheck: true - -MASTER_WRITE: - # Rewrite "v_fps_limit 30" to 62 - - - type: bytes - main_offset: 0x805B29 - value_type: uint16 - value: 0x3236 - # Change egl Interval to lock game by default to 30 FPS - - - type: bytes - main_offset: 0x1461C8 - value_type: uint32 - value: 0x52800041 - - - type: bytes - main_offset: 0x1461F0 - value_type: uint32 - value: 0x52800041 -15FPS: - # DUMMY - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -20FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x17F2AC8] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml b/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml index f5e9e58..68649df 100644 --- a/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010036E00FB20000/1DA748FC9499882F.yaml @@ -3,100 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # FPS lock - - type: write + type: evaluate_write address: [MAIN, 0xCF90F8, 0x4C] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # FPS lock (default) - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCF90F8, 0x4C] - value_type: float - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml b/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml index 5aab83b..9c1e1d6 100644 --- a/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010038900DFE0000/E9578A470B175851.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) - - type: write + type: evaluate_write address: [MAIN, 0x532B3A0, 0] value_type: float - value: [63, 63] + value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5350858, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [47.2, 47.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [37.8, 37.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [27, 27] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [23.6, 23.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [18.9, 18.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [17.1, 17.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x532B3A0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5350858, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index 26521e0..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -1,224 +0,0 @@ -# The Witcher 3 3.7 -# BID: 4FFB62F1CD9E17F8 - -unsafeCheck: true - -15FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 63 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 63 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA8F4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x4FDA924] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x4C983EC] - value_type: int32 - value: 60 - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010039400E8D6000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml b/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml index 95f898a..2197d01 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003980174BC000/217C9ECF258C0312.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write @@ -17,208 +17,16 @@ unsafeCheck: true value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x779A0E8, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x77C79B8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x77C7098, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x779A0E8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x77C79B8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml b/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml index 71cd175..79e2b90 100644 --- a/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010039B015CB6000/39DC785D9073C22B.yaml @@ -40,63 +40,9 @@ MASTER_WRITE: main_offset: 0x3BE1200 value_type: double value: [31, 29] -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x3BE1200] value_type: double - value: [62, 58] -20FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [46.5, 43.5] -25FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [37.2, 34.8] -30FPS: - - # Default values - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [31, 29] -35FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [26.5714, 24.8571] -40FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [23.25, 21.75] -45FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [20.666666, 19.333333] -50FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [18.6, 17.4] -55FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [16.90909, 15.818181] -60FPS: - - - type: write - address: [MAIN, 0x3BE1200] - value_type: double - value: [15.5, 14.5] \ No newline at end of file + value: ["0.93 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/0F09DF1B3AA9E3FD.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/0F09DF1B3AA9E3FD.yaml deleted file mode 100644 index ef1d830..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/0F09DF1B3AA9E3FD.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Fate/Samurai Remnant 1.1.3 -# BID: 0F09DF1B3AA9E3FD - -unsafeCheck: true - -# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8 -MASTER_WRITE: - - - type: bytes - main_offset: 0x5DB12C - value_type: uint32 - value: 0x52800079 -15FPS: - # interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72 - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 4 -20FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 3 -25FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 2 -30FPS: - # interval (default value) - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 2 -35FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 -40FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 -45FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 -50FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 -55FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 -60FPS: - # interval - - - type: write - address: [MAIN, 0x33B26C0] - value_type: int32 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/85D00BDAADD369E6.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/85D00BDAADD369E6.yaml new file mode 100644 index 0000000..0a9d6aa --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/85D00BDAADD369E6.yaml @@ -0,0 +1,19 @@ +# Fate/Samurai Remnant 1.2.1 +# BID: 85D00BDAADD369E6 + +unsafeCheck: true + +# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8 +MASTER_WRITE: + - + type: bytes + main_offset: 0x5DB12C + value_type: uint32 + value: 0x52800079 +ALL_FPS: + # interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72 + - + type: evaluate_write + address: [MAIN, 0x33FA018] + value_type: int32 + value: VSYNC_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/8D6606B544CBCBC8.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/8D6606B544CBCBC8.yaml new file mode 100644 index 0000000..7f0aef6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/8D6606B544CBCBC8.yaml @@ -0,0 +1,19 @@ +# Fate/Samurai Remnant 1.3.1 +# BID: 8D6606B544CBCBC8 + +unsafeCheck: true + +# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8 +MASTER_WRITE: + - + type: bytes + main_offset: 0x5DB12C + value_type: uint32 + value: 0x52800079 +ALL_FPS: + # interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72 + - + type: evaluate_write + address: [MAIN, 0x3412388] + value_type: int32 + value: VSYNC_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/9570C86D7B480C1E.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/9570C86D7B480C1E.yaml deleted file mode 100644 index c9e0d0a..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/9570C86D7B480C1E.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Fate/Samurai Remnant 1.0.2 -# BID: 9570C86D7B480C1E - -unsafeCheck: true - -# Disable setting double buffer -MASTER_WRITE: - - - type: bytes - main_offset: 0x5DAAEC - value_type: uint32 - value: 0x52800079 -15FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 4 -20FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 3 -25FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 2 -30FPS: - # interval (default value) - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 2 -35FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 -40FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 -45FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 -50FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 -55FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 -60FPS: - # interval - - - type: write - address: [MAIN, 0x327F120] - value_type: int32 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/A48A8BC73E155AB8.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/A48A8BC73E155AB8.yaml deleted file mode 100644 index cae3678..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/A48A8BC73E155AB8.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Fate/Samurai Remnant 1.0.3 -# BID: A48A8BC73E155AB8 - -unsafeCheck: true - -# Disable setting double buffer -MASTER_WRITE: - - - type: bytes - main_offset: 0x5DB12C - value_type: uint32 - value: 0x52800079 -15FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 4 -20FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 3 -25FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 2 -30FPS: - # interval (default value) - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 2 -35FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 -40FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 -45FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 -50FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 -55FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 -60FPS: - # interval - - - type: write - address: [MAIN, 0x3355A98] - value_type: int32 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml deleted file mode 100644 index cd115e4..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/B3F271EF130A5338.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Fate/Samurai Remnant 1.0.1 -# BID: B3F271EF130A5338 - -unsafeCheck: true - -# Disable setting double buffer -MASTER_WRITE: - - - type: bytes - main_offset: 0x5DAADC - value_type: uint32 - value: 0x52800079 -15FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 4 -20FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 3 -25FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 2 -30FPS: - # interval (default value) - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 2 -35FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 -40FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 -45FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 -50FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 -55FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 -60FPS: - # interval - - - type: write - address: [MAIN, 0x2EEC5E0] - value_type: int32 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/FBF410FC5DD41876.yaml b/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/FBF410FC5DD41876.yaml deleted file mode 100644 index f198aec..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003AE01AA76000/FBF410FC5DD41876.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Fate/Samurai Remnant 1.1.4 -# BID: FBF410FC5DD41876 - -unsafeCheck: true - -# Disable setting double buffer, REF: 28 63 A8 9B B8 5F 6E 29 2B F7 01 51 B9 83 57 B8 -MASTER_WRITE: - - - type: bytes - main_offset: 0x5DB12C - value_type: uint32 - value: 0x52800079 -15FPS: - # interval, REF: 29 00 80 52 16 00 08 8B 08 A0 8C 52 28 00 A0 72 - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 4 -20FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 3 -25FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 2 -30FPS: - # interval (default value) - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 2 -35FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 -40FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 -45FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 -50FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 -55FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 -60FPS: - # interval - - - type: write - address: [MAIN, 0x33B46C0] - value_type: int32 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml b/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml index b48f50d..593df34 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003BD00CAAE000/8B40EBBA7244C94A.yaml @@ -3,253 +3,28 @@ unsafeCheck: true -15FPS: - # rs_force460 (default) +ALL_FPS: + # rs_force460 - type: write address: [MAIN, 0x7994DF0] value_type: int32 - value: 0 + value: 1 # rs_raiseThreshold = 0.96 * (30/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x7994F14] value_type: float - value: 1.92 + value: "(30 / FPS_TARGET) * 0.96" # rs_dropThreshold = 0.984 * (30/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x7994E84] value_type: float - value: 1.968 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 30 -20FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 1.44 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 1.476 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 30 -25FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 1.152 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 1.1808 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 30 -30FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 0 - # rs_raiseThreshold (default) - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.96 - # rs_dropThreshold (default) - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.984 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 30 -35FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.823 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.843 + value: "(30 / FPS_TARGET) * 0.984" # com_adaptiveTickMaxHz - type: write address: [MAIN, 0x85F74E0] value_type: int32 - value: 60 -40FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.72 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.738 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 60 -45FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.64 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.656 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 60 -50FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.576 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.59 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 60 -55FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.5236 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.5367 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 60 -60FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x7994DF0] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x7994F14] - value_type: float - value: 0.48 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x7994E84] - value_type: float - value: 0.492 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x85F74E0] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml b/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml index dfc6bdd..5a0badc 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003CD01299E000/4232D493269475B2.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x2CDFCBC] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CDFCBC] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4BC4A8A814FD46A4.yaml b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4BC4A8A814FD46A4.yaml index 31971cc..b297814 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4BC4A8A814FD46A4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4BC4A8A814FD46A4.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01003D100E9C6000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml b/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml index 86a38e5..ae9fc4b 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003E3014AFE000/69CACEEC5F01C41B.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x2A149BC] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2A149BC] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/01003E800A102000/283095029A5AB467.yaml b/SaltySD/plugins/FPSLocker/patches/01003E800A102000/283095029A5AB467.yaml new file mode 100644 index 0000000..05ce9d4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003E800A102000/283095029A5AB467.yaml @@ -0,0 +1,34 @@ +# Trials Rising 1.0.13 +# BID: 283095029A5AB467 +# Double buffer is reserved line by line inside class array, so requires ton of patching + +unsafeCheck: true + +MASTER_WRITE: + # Force game to use dynamic speed instead of fixed speed + - + type: bytes + main_offset: 0xE7BC90 + value_type: uint32 + value: 0x52800048 + # Redirect DR timing to MAIN + 0x9DBAEB8 + - + type: bytes + main_offset: 0xE88250 + value_type: uint32 + value: + - 0xD0047988 + - 0xBD4EB900 + # Default value + - + type: bytes + main_offset: 0x9DBAEB8 + value_type: float + value: 33.3333333333 +ALL_FPS: + # DR timing + - + type: evaluate_write + address: [MAIN, 0x9DBAEB8] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/0D28F064B3A5D030.yaml b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/0D28F064B3A5D030.yaml new file mode 100644 index 0000000..0f8e2d0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/0D28F064B3A5D030.yaml @@ -0,0 +1,39 @@ +# MEGATON MUSASHI W: WIRED 3.0.3 +# BID: 0D28F064B3A5D030 + +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 + - + type: evaluate_write + address: [MAIN, 0xC809DA0, 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, 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" diff --git a/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/4183AB952B599826.yaml b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/4183AB952B599826.yaml new file mode 100644 index 0000000..e531562 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003EB01C2F0000/4183AB952B599826.yaml @@ -0,0 +1,39 @@ +# MEGATON MUSASHI W: WIRED 3.1.0 +# BID: 4183AB952B599826 + +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 + - + type: evaluate_write + address: [MAIN, 0xC841820, 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, 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" diff --git a/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml b/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml index aebaa0e..8613b40 100644 --- a/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01003FB00C5A8000/DCDFA5A4AD9A175D.yaml @@ -91,79 +91,10 @@ MASTER_WRITE: - 0xF94013F5 - 0xA9434FF4 - 0x910143FF -15FPS: +ALL_FPS: # Interval - - type: write + type: evaluate_write address: [MAIN, 0x99CB08, 0] value_type: int32 - value: 3 - - - type: block - what: timing -20FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 2 - - - type: block - what: timing -25FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 1 -30FPS: - # Interval (default value) - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 1 -35FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 -40FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 -45FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 -50FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 -55FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 -60FPS: - # Interval - - - type: write - address: [MAIN, 0x99CB08, 0] - value_type: int32 - value: 0 \ No newline at end of file + value: VSYNC_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml index c4ce8a8..bcc80a4 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100416004C00000/01ACE43E724259C3.yaml @@ -3,310 +3,31 @@ unsafeCheck: true -15FPS: +ALL_FPS: # rs_460Threshold (default) - type: write address: [MAIN, 0x87AEC74] value_type: float - value: 0.285 - # rs_raiseMilliseconds (32.2/(1000/30))*(1000/FPS) + value: 1 + # rs_raiseMilliseconds - - type: write + type: evaluate_write address: [MAIN, 0x87AF0B4] value_type: float - value: 64.4 + value: "0.966 * FRAMETIME_TARGET" # rs_dropMilliseconds (33/(1000/30))*(1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x87AF02C] value_type: float - value: 66 + value: "0.99 * FRAMETIME_TARGET" # com_adaptiveTickMaxHz (default) - type: write address: [MAIN, 0x74B2680] value_type: int32 - value: 30 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -20FPS: - # rs_460Threshold (default) - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 0.285 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 48.3 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 49.5 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 30 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -25FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 0.285 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 38.64 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 39.6 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 30 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -30FPS: - # rs_460Threshold (default) - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 0.285 - # rs_raiseMilliseconds (default) - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 32.2 - # rs_dropMilliseconds (default) - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 33 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 30 - # com_adaptiveTickMinHz (default) - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 30 -35FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 27.6 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 28.28 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -40FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 24.15 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 24.75 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -45FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 21.46 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 22 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -50FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 19.32 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 19.8 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -55FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 17.56 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 18 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 - # com_adaptiveTickMinHz - - - type: write - address: [MAIN, 0x74B25F8] - value_type: int32 - value: 15 -60FPS: - # rs_460Threshold - - - type: write - address: [MAIN, 0x87AEC74] - value_type: float - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x87AF0B4] - value_type: float - value: 16.1 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x87AF02C] - value_type: float - value: 16.5 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x74B2680] - value_type: int32 - value: 60 + value: 120 # com_adaptiveTickMinHz - type: write diff --git a/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml b/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml deleted file mode 100644 index 9cae215..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010042D00D900000/C6901CE5426C704A.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# LEGO Star Wars: The Skywalker Saga 1.0.8 -# BID: C6901CE5426C704A - -unsafeCheck: true - -15FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 3 -20FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 3 -25FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 3 -30FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 3 -35FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 -40FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 -45FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 -50FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 -55FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 -60FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xA9FAE80] - value_type: int32 - value: 2 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010042D00D900000/EC593A5F9552100A.yaml b/SaltySD/plugins/FPSLocker/patches/010042D00D900000/EC593A5F9552100A.yaml index d7522ac..5bcad00 100644 --- a/SaltySD/plugins/FPSLocker/patches/010042D00D900000/EC593A5F9552100A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010042D00D900000/EC593A5F9552100A.yaml @@ -28,59 +28,7 @@ MASTER_WRITE: main_offset: 0xC3C0A50 value_type: float value: [24, 31] -15FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 3 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [48, 62] -20FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 3 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [36, 46.5] -25FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 3 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [28.8, 37.2] -30FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 3 - # Min + max dynamic resolution timing in ms (default for 30 FPS) - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [24, 31] -35FPS: +ALL_FPS: # g_video_swap_mode - type: write @@ -89,72 +37,7 @@ MASTER_WRITE: value: 2 # Min + max dynamic resolution timing in ms - - type: write + type: evaluate_write address: [MAIN, 0xC3C0A50] value_type: float - value: [20.57, 26.57] -40FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 2 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [18, 23.25] -45FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 2 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [16, 20.67] -50FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 2 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [14.4, 18.6] -55FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 2 - # Min + max dynamic resolution timing in ms - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [13.09, 16.9] -60FPS: - # g_video_swap_mode - - - type: write - address: [MAIN, 0xAA62FF0] - value_type: int32 - value: 2 - # Min + max dynamic resolution timing in ms (default for 60 FPS) - - - type: write - address: [MAIN, 0xC3C0A50] - value_type: float - value: [12, 15.5] + value: ["0.72 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml b/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml index 218cf2a..052d479 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100438012EC8000/1A0EAEC3AE90B018.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x86FEF50, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x87519B0, 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, 0x86FEF50, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [25.714, 25.714] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [16.3636, 16.3636] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x86FEF50, 0] - value_type: float - value: [15, 15] - # t.MaxFPS - - - type: write - address: [MAIN, 0x87519B0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml b/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml index cc0e691..be80392 100644 --- a/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010044500CF8E000/9B3DDF2FB9100E51.yaml @@ -1,161 +1,23 @@ # Hellblade: Senua's Sacrifice 1.1.0 # BID: 9B3DDF2FB9100E51 -unsafeCheck: true +unsafeCheck: false -15FPS: +ALL_FPS: # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) # MAX = (1/FPS) * 0.95 # MIN = (1/FPS) * 0.9 - - type: write + type: evaluate_write address: [MAIN, 0x520BBE0, 0x40] value_type: float - value: [0.0633333333, 0.06] + value: ["(1 / FPS_TARGET) * 0.95", "(1 / FPS_TARGET) * 0.9"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x521F7A0, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0475, 0.045] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.038, 0.036] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) (default value) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0316666666, 0.03] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [0, 0] -35FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0271428571, 0.0257142857] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.02375, 0.0225] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0211111111, 0.02] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.019, 0.018] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0172727272, 0.0163636363] - # t.MaxFPS - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Custom Dynamic Resolution implementation - Frame Time (MAX/MIN) - - - type: write - address: [MAIN, 0x520BBE0, 0x40] - value_type: float - value: [0.0158333333, 0.015] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x521F7A0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml b/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml index a01a201..2467c5d 100644 --- a/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010044700DEB0001/3DEF0E36AA8C6592.yaml @@ -19,63 +19,9 @@ MASTER_WRITE: main_offset: 0x61EE400 value_type: float value: 1000 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x61EE400] value_type: float - value: 2000 -20FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 1500 -25FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 1200 -30FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 1000 -35FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 857 -40FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 750 -45FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 666 -50FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 600 -55FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 545 -60FPS: - - - type: write - address: [MAIN, 0x61EE400] - value_type: float - value: 500 \ No newline at end of file + value: "(FPS_TARGET / 30) * 1000" diff --git a/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml b/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml new file mode 100644 index 0000000..3728afd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100459009A2A000/ACF717E72EA920C2.yaml @@ -0,0 +1,28 @@ +# GRIP 1.0.8 +# BID: ACF717E72EA920C2 + +unsafeCheck: true + +MASTER_WRITE: + # Remove double buffer (nvn.NumBufferedFrames) + - + type: bytes + main_offset: 0x4F3245C + value_type: uint32 + value: 3 +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x5042FC8, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x58ECCE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml b/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml index 06971c2..e955057 100644 --- a/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010046000EE40000/8F6B002FEB5D0F8E.yaml @@ -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, 0x61B1940, 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, 0x61D5FE8, 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, 0x61B1940, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 31) - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x61B1940, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x61D5FE8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml deleted file mode 100644 index ef3dae2..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/2058227F80E9B40C.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# Master Detective Archives: RAIN CODE 1.3.0 -# BID: 2058227F80E9B40C - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value at first game boot, with next boot it's 30) - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB4888, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml deleted file mode 100644 index 551d6ef..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/6D722DED660CD6E3.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# Master Detective Archives: RAIN CODE 1.3.2 -# BID: 6D722DED660CD6E3 - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value at first game boot, with next boot it's 30) - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml deleted file mode 100644 index d66da7b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/B1C54D7E3540577B.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# Master Detective Archives: RAIN CODE 1.3.3 -# BID: B1C54D7E3540577B - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value at first game boot, with next boot it's 30) - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7FB5888, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/F4685ACC91FEDB12.yaml b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/F4685ACC91FEDB12.yaml index f1edb54..45db425 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004800197F0000/F4685ACC91FEDB12.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004800197F0000/F4685ACC91FEDB12.yaml @@ -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] diff --git a/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml b/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml index 4bd50aa..e5bbcde 100644 --- a/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010049B017774000/2F81A2EC9B298B37.yaml @@ -1,9 +1,9 @@ # DRAGON QUEST TREASURES 1.0.1 # BID: 2F81A2EC9B298B37 -unsafeCheck: true +unsafeCheck: false -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write @@ -17,148 +17,10 @@ unsafeCheck: true value: 7 # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7E119A8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x7E110D8, 0x7C0] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x7E119A8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml b/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml index 2948ede..a8b0e1c 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004AB00A260000/DF3766A2BB651A3E.yaml @@ -36,60 +36,17 @@ MASTER_WRITE: main_offset: 0x55E9A08 value_type: float value: 0.0333333333 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x55E9A00] value_type: double - value: 15 + value: FPS_LOCK_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x55E9A08] value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x55E9A00] - value_type: double - value: 20 - - - type: write - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x55E9A00] - value_type: double - value: 25 - - - type: write - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: write - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.033333333 -35FPS: + value: "1/FPS_TARGET" - type: compare compare_address: [MAIN, 0x4543788, 0x470] @@ -108,221 +65,6 @@ MASTER_WRITE: address: [MAIN, 0x55E9A08] value_type: float value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 35 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.028571 - type: block what: timing -40FPS: - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 40 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 45 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -50FPS: - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 50 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -55FPS: - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 55 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0181818181 - - - type: block - what: timing -60FPS: - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 30 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "==" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0333333333 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A00] - value_type: double - value: 60 - - - type: compare - compare_address: [MAIN, 0x4543788, 0x470] - compare_type: "!=" - compare_value_type: int32 - compare_value: 1 - address: [MAIN, 0x55E9A08] - value_type: float - value: 0.0166666666 diff --git a/SaltySD/plugins/FPSLocker/patches/01004AD014BF0000/D7A05D106FF46FC0.yaml b/SaltySD/plugins/FPSLocker/patches/01004AD014BF0000/D7A05D106FF46FC0.yaml index 8ff2495..4dcc10d 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004AD014BF0000/D7A05D106FF46FC0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004AD014BF0000/D7A05D106FF46FC0.yaml @@ -6,73 +6,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Internal FPS Lock - - type: write + type: evaluate_write address: [MAIN, 0x4CA3F20, 0x14] value_type: float - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 25 -30FPS: - # Internal FPS Lock (default value) - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 35 -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 40 -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 45 -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 50 -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 55 -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x4CA3F20, 0x14] - value_type: float - value: 0 \ No newline at end of file + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/4B86FC4FDF7B1A70.yaml b/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/4B86FC4FDF7B1A70.yaml new file mode 100644 index 0000000..6c52d8f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/4B86FC4FDF7B1A70.yaml @@ -0,0 +1,27 @@ +# Biomutant 1.0.1 +# BID: 4B86FC4FDF7B1A70 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x78AF2F0, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x807D008, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x80A2F60, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/5BE02E1373BDE2CC.yaml b/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/5BE02E1373BDE2CC.yaml new file mode 100644 index 0000000..3ecb26e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004BA017CD6000/5BE02E1373BDE2CC.yaml @@ -0,0 +1,27 @@ +# Biomutant 1.0.2 +# BID: 5BE02E1373BDE2CC + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x78B4300, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x8082008, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x80A7F60, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml b/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml index 1ca4292..8b6a28a 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004BC0166CC000/44D207EA6428E3F1.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x96CFDA8, 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, 0x96FDCD0, 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, 0x96CFDA8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x96CFDA8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x96FDCD0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml index 7c769ef..e0af86c 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml @@ -1,7 +1,6 @@ # Kirby and the Forgotten Land 1.0.0 # BID: D9BA7DB72FFAFECD # Thanks to Hazerou for finding interval offsets -# Game speed is tied to framerate, no proper support for anything between 30 and 60 FPS unsafeCheck: false @@ -73,139 +72,16 @@ MASTER_WRITE: - 0x91208114 - 0xD37DF14C - 0xF9000289 -15FPS: - # Interval +ALL_FPS: + # Interval (Setting it to 0 unlocks framerate and sets dynamic game speed) - type: write address: [MAIN, 0xA72628, 0x50] value_type: int32 - value: 4 + value: 0 # Dynamic Resolution GPU Frametiming Max / Min (Max = 1.95 * (30/FPS), Min = 1.7 * (30/FPS)) - - type: write + type: evaluate_write address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] value_type: float - value: [3.9, 3.4] - - - type: block - what: timing -20FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 3 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [2.925, 2.55] - - - type: block - what: timing -25FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 2 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [2.34, 2.04] -30FPS: - # Interval (default value) - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 2 - # Dynamic Resolution GPU Frametiming (default values) - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.95, 1.7] -35FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.67, 1.45] -40FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.4625, 1.275] -45FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.3, 1.13] -50FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.17, 1.02] -55FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [1.06, 0.92] -60FPS: - # Interval - - - type: write - address: [MAIN, 0xA72628, 0x50] - value_type: int32 - value: 1 - # Dynamic Resolution GPU Frametiming - - - type: write - address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] - value_type: float - value: [0.975, 0.85] \ No newline at end of file + value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"] diff --git a/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml b/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml index 6ed4c13..fb7e8b7 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004DC00D936000/31CDAD67EA25CC16.yaml @@ -1,73 +1,10 @@ -# SENRAN KAGURA Peach Ball +# SENRAN KAGURA Peach Ball 1.0.0 # BID: 31CDAD67EA25CC16 unsafeCheck: true -15FPS: - # CRendSpanMgr:[SpanType_30FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 1 -20FPS: - # CRendSpanMgr:[SpanType_30FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 1 -25FPS: - # CRendSpanMgr:[SpanType_30FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 1 -30FPS: - # CRendSpanMgr:[SpanType_30FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 1 -35FPS: - # CRendSpanMgr:[SpanType_60FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 0 -40FPS: - # CRendSpanMgr:[SpanType_60FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 0 -45FPS: - # CRendSpanMgr:[SpanType_60FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 0 -50FPS: - # CRendSpanMgr:[SpanType_60FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 0 -55FPS: - # CRendSpanMgr:[SpanType_60FPS] - - - type: write - address: [MAIN, 0x62D8CC] - value_type: int32 - value: 0 -60FPS: - # CRendSpanMgr:[SpanType_60FPS] +ALL_FPS: + # CRendSpanMgr:[SpanType_30FPS] = 1, CRendSpanMgr:[SpanType_60FPS] = 0 - type: write address: [MAIN, 0x62D8CC] diff --git a/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/5507B771E68E9DB9.yaml b/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/5507B771E68E9DB9.yaml deleted file mode 100644 index c0d0ed6..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/5507B771E68E9DB9.yaml +++ /dev/null @@ -1,153 +0,0 @@ -# Song of Nunu: A League of Legends Story 1.0.1 -# BID: 5507B771E68E9DB9 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA238, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/DF2D64FB63F1BD00.yaml b/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/DF2D64FB63F1BD00.yaml index 7186625..5dd0adb 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/DF2D64FB63F1BD00.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004F401BEBE000/DF2D64FB63F1BD00.yaml @@ -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, 0x7BC0278, 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, 0x7BFA240, 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, 0x7BC0278, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7BC0278, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7BFA240, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x73FEAE8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml b/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml index 6033c3d..a3c0d4d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100500012AB4000/118AA7B71E824B3B.yaml @@ -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, 0x7426EF0, 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, 0x7451B78, 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, 0x7426EF0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7426EF0, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7451B78, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml b/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml index 12d5c98..08015e1 100644 --- a/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010051B0131F0000/E0E9D0429A2458E1.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x6DD50F8, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6DF7F90, 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, 0x6DD50F8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6DD50F8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6DF7F90, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/0C1B09D4D2FD0972.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/0C1B09D4D2FD0972.yaml deleted file mode 100644 index b059306..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/0C1B09D4D2FD0972.yaml +++ /dev/null @@ -1,278 +0,0 @@ -# DRAGON BALL Z: KARAKOR + A NEW POWER AWAKENS SET 1.41 -# BID: 0C1B09D4D2FD0972 - -unsafeCheck: true - -15FPS: - # Disable bUseFixedFrameRate in cutscenes to unlock framerate - - - type: write - address: [MAIN, 0x92C9538, 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 = 1000/FPS - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [0, 0] - # r.VSync (disabling it since it hampers performance for no benefit) - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92C9538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9294478, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x92C9DE8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x8735F48, 0] - value_type: int32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml deleted file mode 100644 index 93def47..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/13B450093A7DA8E2.yaml +++ /dev/null @@ -1,164 +0,0 @@ -# DRAGON BALL Z: KARAKOR + A NEW POWER AWAKENS SET 1.32 -# BID: 13B450093A7DA8E2 - -unsafeCheck: true - -15FPS: - # Disable bUseFixedFrameRate in cutscenes to unlock framerate - - - type: write - address: [MAIN, 0x8DED498, 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 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x8DED498, 0x810] - value_type: uint32 - value: 7 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8DEDD48, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/20503FA77FA416B7.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/20503FA77FA416B7.yaml index 099df32..9821cba 100644 --- a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/20503FA77FA416B7.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/20503FA77FA416B7.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate in cutscenes to unlock framerate - type: write @@ -15,261 +15,18 @@ unsafeCheck: true # bOptimizeAnimBlueprintMemberVariableAccess |= 2 # bCanBlueprintsTickByDefault |= 1 value: 7 - # r.DynamicRes.FrameTimeBudget = 1000/FPS - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [15, 15] - # r.VSync (disabling it since it hampers performance for no benefit) - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 # r.DynamicRes.FrameTimeBudget - - type: write + type: evaluate_write address: [MAIN, 0x9421478, 0] value_type: float - value: [50, 50] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x9456DE8, 0] value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x88C2C08, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x9456538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9421478, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x9456DE8, 0] - value_type: float - value: [0, 0] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write diff --git a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/FFD9B653EAE305F7.yaml b/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/FFD9B653EAE305F7.yaml deleted file mode 100644 index a49859d..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010051C0134F8000/FFD9B653EAE305F7.yaml +++ /dev/null @@ -1,278 +0,0 @@ -# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.42 -# BID: FFD9B653EAE305F7 - -unsafeCheck: true - -15FPS: - # Disable bUseFixedFrameRate in cutscenes to unlock framerate - - - type: write - address: [MAIN, 0x92BF538, 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 = 1000/FPS - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [0, 0] - # r.VSync (disabling it since it hampers performance for no benefit) - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x92BF538, 0x810] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x928A478, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x92BFDE8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x872BF28, 0] - value_type: int32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml b/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml index 724596b..0535513 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100521017B2A000/249EAB9BF046C5EA.yaml @@ -1,159 +1,21 @@ -# Hellblade: Senua's Sacrifice 1.1.0 -# BID: 9B3DDF2FB9100E51 +# HARVESTELLA 1.0.2 +# BID: 249EAB9BF046C5EA unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x7B279E8, 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, 0x7B555E8, 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, 0x7B279E8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7B279E8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7B555E8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010053E002EA2000/76EC789B99A25BA5.yaml b/SaltySD/plugins/FPSLocker/patches/010053E002EA2000/76EC789B99A25BA5.yaml index 4b7b107..26fa0f4 100644 --- a/SaltySD/plugins/FPSLocker/patches/010053E002EA2000/76EC789B99A25BA5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010053E002EA2000/76EC789B99A25BA5.yaml @@ -11,64 +11,10 @@ MASTER_WRITE: main_offset: 0x55DFDC value_type: uint32 value: 0xD2800068 -15FPS: +ALL_FPS: # DUMMY - type: write address: [MAIN, 0x25CCF00] value_type: uint8 value: 0 -20FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x25CCF00] - value_type: uint8 - value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml b/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml index 59481b2..4728326 100644 --- a/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01005420101DA000/134EC3D8BE75126F.yaml @@ -57,87 +57,9 @@ MASTER_WRITE: main_offset: 0x2B31204 value_type: float value: 0.0333333333 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x2B31200] value_type: uint32 - value: 66666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 50000000 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 40000000 - - - type: block - what: timing -30FPS: - - # default value - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 33333333 -35FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 28571428 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 25000000 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 22222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 20000000 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 18181818 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x2B31200] - value_type: uint32 - value: 16666666 + value: 11111111 diff --git a/SaltySD/plugins/FPSLocker/patches/0100559011740000/44C9289FBB51455F.yaml b/SaltySD/plugins/FPSLocker/patches/0100559011740000/44C9289FBB51455F.yaml deleted file mode 100644 index 4d90786..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100559011740000/44C9289FBB51455F.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise JP 16.0.0 -# BID: 44C9289FBB51455F - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x129FC348, 0x434] - value_type: float - value: 60 - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml b/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml deleted file mode 100644 index 62552a2..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100559011740000/5CE1FFBE4B433343.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise JP 15.0.1 -# BID: 5CE1FFBE4B433343 - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 60 - - - type: block - what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100559011740000/92DF51D37268A38C.yaml b/SaltySD/plugins/FPSLocker/patches/0100559011740000/92DF51D37268A38C.yaml deleted file mode 100644 index a28687d..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100559011740000/92DF51D37268A38C.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise JP 16.0.1 -# BID: 92DF51D37268A38C - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x129F6348, 0x434] - value_type: float - value: 60 - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100559011740000/D2FD97779381FB9A.yaml b/SaltySD/plugins/FPSLocker/patches/0100559011740000/D2FD97779381FB9A.yaml index c4f6e25..e63757a 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100559011740000/D2FD97779381FB9A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100559011740000/D2FD97779381FB9A.yaml @@ -3,94 +3,13 @@ unsafeCheck: false -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: +ALL_FPS: + # Internal FPS lock - - type: write + type: evaluate_write address: [MAIN, 0x12B2E5C8, 0x434] value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x12B2E5C8, 0x434] - value_type: float - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml new file mode 100644 index 0000000..f3c4478 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010055B01AA08000/4CBD150A248DA39C.yaml @@ -0,0 +1,21 @@ +# CRYMACHINA 1.0.8 +# BID: 4CBD150A248DA39C + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x7538918, 0] + value_type: int32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7D33D38, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010055D009F78000/89048449BA238C8C.yaml b/SaltySD/plugins/FPSLocker/patches/010055D009F78000/89048449BA238C8C.yaml index 83267eb..484fee9 100644 --- a/SaltySD/plugins/FPSLocker/patches/010055D009F78000/89048449BA238C8C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010055D009F78000/89048449BA238C8C.yaml @@ -25,63 +25,9 @@ MASTER_WRITE: main_offset: 0x21E4F30 value_type: float value: [34, 25] -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x21E4F30] value_type: float - value: [68, 50] -20FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [51, 37.5] -25FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [40.8, 30] -30FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [34, 25] -35FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [29.14, 26.14] -40FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [25.5, 22.5] -45FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [22.2, 19.67] -50FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [20, 17.4] -55FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [18.05, 15.55] -60FPS: - - - type: write - address: [MAIN, 0x21E4F30] - value_type: float - value: [16.5, 14] \ No newline at end of file + value: ["0.99 * FRAMETIME_TARGET", "0.84 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml b/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml index 7d917e8..82c92ad 100644 --- a/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010056E00853A000/746F0D697EEEE2DD.yaml @@ -3,97 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # MaxSmoothedFrameRate - - type: write + type: evaluate_write address: [MAIN, 0x2265248, 0x71C] value_type: float - value: 15 - - - type: block - what: timing -20FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # MaxSmoothedFrameRate (default is 32) - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 30 -35FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - # MaxSmoothedFrameRate - - - type: write - address: [MAIN, 0x2265248, 0x71C] - value_type: float - value: 60 \ No newline at end of file + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/010057D006492000/67DACC049CEEE858.yaml b/SaltySD/plugins/FPSLocker/patches/010057D006492000/67DACC049CEEE858.yaml new file mode 100644 index 0000000..437abad --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010057D006492000/67DACC049CEEE858.yaml @@ -0,0 +1,15 @@ +# OCTOPATH TRAVELER 1.0.5 +# BID: 67DACC049CEEE858 + +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 diff --git a/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml b/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml deleted file mode 100644 index 91cae45..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010057D006492000/B88A8D8E5516DDE9.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# OCTOPATH TRAVELER 1.0.4 -# BID: B88A8D8E5516DDE9 - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x50B5698, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml b/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml index 00997d7..2e643e8 100644 --- a/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010057E00AC56000/2D5B93C856CDF009.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # FPS Lock - - type: write + type: evaluate_write address: [MAIN, 0x2495500, 0x304C] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 30 -35FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - # FPS Lock - - - type: write - address: [MAIN, 0x2495500, 0x304C] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml b/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml index e794533..cc3c580 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100582010AE0000/B3967105033ACC08.yaml @@ -76,457 +76,49 @@ MASTER_WRITE: main_offset: 0x453B318 value_type: float value: [28.75, 29.75] -15FPS: +ALL_FPS: # sys_MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x43E0B14] value_type: int32 - value: 15 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.033 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 63 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 65 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [66, 66] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [64, 64] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [57.5, 57.5] - - - type: block - what: timing -20FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 20 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.033 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 47.25 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 48.75 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [49.5, 49.5] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [48, 48] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [43.125, 43.125] - - - type: block - what: timing -25FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 25 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.033 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 37.8 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 39 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [39.6, 39.6] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [38.4, 38.4] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [34.5, 34.5] - - - type: block - what: timing -30FPS: - # sys_MaxFPS (default value) - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 30 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.033 - # MAIN + 0x333FAFC (default value) - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 31.5 - # MAIN + 0x333F844 (default value) - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 32.5 - # MAIN + 0x333E360 (default value) - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [33, 35] - # MAIN + 0x333E258 (default value) - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [32, 33.5] - # MAIN + 0x333E9F8 (default value) - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [28.75, 29.75] -35FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 35 + value: FPS_LOCK_TARGET # Renderer thread delay - type: write address: [MAIN, 0x444A0D8] value_type: float - value: 0.015 + value: 0.01 # MAIN + 0x333FAFC - - type: write + type: evaluate_write address: [MAIN, 0x453B300] value_type: float - value: 27 + value: "0.945 * FRAMETIME_TARGET" # MAIN + 0x333F844 - - type: write + type: evaluate_write address: [MAIN, 0x453B304] value_type: float - value: 27.8571 + value: "0.975 * FRAMETIME_TARGET" # MAIN + 0x333E360 - - type: write + type: evaluate_write address: [MAIN, 0x453B308] value_type: float - value: [28.2857, 28.2857] + value: ["0.99 * FRAMETIME_TARGET", "0.99 * FRAMETIME_TARGET"] # MAIN + 0x333E258 - - type: write + type: evaluate_write address: [MAIN, 0x453B310] value_type: float - value: [27.4286, 27.4286] + value: ["0.96 * FRAMETIME_TARGET", "0.96 * FRAMETIME_TARGET"] # MAIN + 0x333E9F8 - - type: write + type: evaluate_write address: [MAIN, 0x453B318] value_type: float - value: [24.6429, 24.6429] + value: ["0.8625 * FRAMETIME_TARGET", "0.8625 * FRAMETIME_TARGET"] - type: block what: timing -40FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 40 - # Renderer thread delay - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.015 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 23.625 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 24.375 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [24.75, 24.75] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [24, 24] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [21.5625, 21.5625] - - - type: block - what: timing -45FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 45 - # Renderer thread delay - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.015 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 21 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 21.6667 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [22, 22] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [21.3333, 21.3333] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [19.1667, 19.1667] - - - type: block - what: timing -50FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 50 - # Renderer thread delay - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.015 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 18.9 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 19.5 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [19.8, 19.8] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [19.2, 19.2] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [17.25, 17.25] - - - type: block - what: timing -55FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 55 - # Renderer thread delay - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.015 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 17.1818 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 17.7273 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [18, 18] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [17.4545, 17.4545] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [15.6818, 15.6818] - - - type: block - what: timing -60FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x43E0B14] - value_type: int32 - value: 60 - # Renderer thread delay - - - type: write - address: [MAIN, 0x444A0D8] - value_type: float - value: 0.015 - # MAIN + 0x333FAFC - - - type: write - address: [MAIN, 0x453B300] - value_type: float - value: 15 - # MAIN + 0x333F844 - - - type: write - address: [MAIN, 0x453B304] - value_type: float - value: 15.5 - # MAIN + 0x333E360 - - - type: write - address: [MAIN, 0x453B308] - value_type: float - value: [16.5, 16.5] - # MAIN + 0x333E258 - - - type: write - address: [MAIN, 0x453B310] - value_type: float - value: [16, 16] - # MAIN + 0x333E9F8 - - - type: write - address: [MAIN, 0x453B318] - value_type: float - value: [14.375, 14.375] diff --git a/SaltySD/plugins/FPSLocker/patches/01005D2016934000/0515F2089A2FC744.yaml b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/0515F2089A2FC744.yaml deleted file mode 100644 index b340e4a..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01005D2016934000/0515F2089A2FC744.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Ghostbusters: Spirits Unleashed Ecto Edition 1.7.3 -# BID: 0515F2089A2FC744 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xBBA7F70, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0xBBCDB48, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0xB3D79B8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005D2016934000/4D6E50FF58BF7486.yaml b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/4D6E50FF58BF7486.yaml new file mode 100644 index 0000000..1d35990 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/4D6E50FF58BF7486.yaml @@ -0,0 +1,27 @@ +# Ghostbusters: Spirits Unleashed Ecto Edition 1.9.0 +# BID: 4D6E50FF58BF7486 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0xBBFAF70, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xBC20B48, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0xB42A9B8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005D2016934000/579CCC60D8E3DAF1.yaml b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/579CCC60D8E3DAF1.yaml new file mode 100644 index 0000000..1ae264b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/579CCC60D8E3DAF1.yaml @@ -0,0 +1,27 @@ +# Ghostbusters: Spirits Unleashed Ecto Edition 1.8.0 +# BID: 579CCC60D8E3DAF1 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0xBBF7F70, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xBC1DB48, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0xB4279B8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml b/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml index 73d87a6..dcc2743 100644 --- a/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01005DF00DC26000/029C2837B0EEE8A9.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x7D78510, 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, 0x7D9D178, 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, 0x7D78510, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7D78510, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D9D178, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml deleted file mode 100644 index 38add66..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/448B5EEE940FF0B0.yaml +++ /dev/null @@ -1,224 +0,0 @@ -# Warhammer 40,000: Boltgun 1.0.0.2 -# BID: 448B5EEE940FF0B0 - -unsafeCheck: true - -15FPS: - # Disable bUseFixedFrameRate to unlock framerate - - - type: write - address: [MAIN, 0x70F99C8, 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.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate (default is 0x47) - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x70F99C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70CC628, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x70FA2E8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/7C992B6A003C599F.yaml b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/7C992B6A003C599F.yaml index d55d1f8..fc18676 100644 --- a/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/7C992B6A003C599F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01005FD017E60000/7C992B6A003C599F.yaml @@ -3,7 +3,7 @@ unsafeCheck: false -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to unlock framerate - type: write @@ -17,16 +17,16 @@ unsafeCheck: false value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x70DF628, 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, 0x710D2E8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -36,249 +36,3 @@ unsafeCheck: false - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate (default is 0x47) - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [33.33, 33.33] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x710C9C8, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x70DF628, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x710D2E8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6910358, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml b/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml index 725fab3..d74696a 100644 --- a/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010060700AC50000/E853C44FDF18B88F.yaml @@ -19,193 +19,22 @@ MASTER_WRITE: main_offset: 0x4FC0E00 value_type: float value: 0.0166666666 -15FPS: +ALL_FPS: # Internal Vsync (default value) - - type: write + type: evaluate_write address: [MAIN, 0x45A7410] value_type: int32 - value: [2, 2] + value: [VSYNC_TARGET, VSYNC_TARGET] # Game Speed = FPS - - type: write + type: evaluate_write address: [MAIN, 0x45A71F0] value_type: float - value: 15 + value: FPS_TARGET # DR GPU time factor - - type: write + type: evaluate_write address: [MAIN, 0x4FC0E00] value_type: float - value: 0.0333333333 -20FPS: - # Internal Vsync (default value) - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [2, 2] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 20 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.025 -25FPS: - # Internal Vsync (default value) - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [2, 2] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 25 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.02 -30FPS: - # Internal Vsync (default value) - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [2, 2] - # Game Speed (default value) - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 30 - # DR GPU time factor (default value) - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.0166666666 -35FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 35 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.01428 -40FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 40 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.0125 -45FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 45 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.0111111111 -50FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 50 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.01 -55FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 55 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.009009009 -60FPS: - # Internal Vsync - - - type: write - address: [MAIN, 0x45A7410] - value_type: int32 - value: [1, 1] - # Game Speed - - - type: write - address: [MAIN, 0x45A71F0] - value_type: float - value: 60 - # DR GPU time factor - - - type: write - address: [MAIN, 0x4FC0E00] - value_type: float - value: 0.0083333333 \ No newline at end of file + value: "0.5 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml b/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml index ba1bee5..b7314b0 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100626011656000/761CD556AB357C87.yaml @@ -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, 0x7A4AE48, 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, 0x7A70080, 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, 0x7A4AE48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7A4AE48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7A70080, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100628004BCE000/81DA4F9E1E961CA6.yaml b/SaltySD/plugins/FPSLocker/patches/0100628004BCE000/81DA4F9E1E961CA6.yaml index ab3a85b..07f829d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100628004BCE000/81DA4F9E1E961CA6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100628004BCE000/81DA4F9E1E961CA6.yaml @@ -18,64 +18,10 @@ MASTER_WRITE: - 0x52800076 - 0xB9000836 - 0x17FFFB2E -15FPS: +ALL_FPS: # DUMMY - type: write address: [MAIN, 0x13E5400] value_type: uint8 value: 0 -20FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x13E5400] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml b/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml index e8e38fd..1ff0489 100644 --- a/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010064400B138000/EB8A679B5DDD0060.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x20A0E44] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x20A0E44] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/0100650018FE0000/7A450848CFDEC18E.yaml b/SaltySD/plugins/FPSLocker/patches/0100650018FE0000/7A450848CFDEC18E.yaml index 712c4f2..d6903ae 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100650018FE0000/7A450848CFDEC18E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100650018FE0000/7A450848CFDEC18E.yaml @@ -29,217 +29,25 @@ MASTER_WRITE: main_offset: 0x56FF9C8 value_type: float value: [32.5, 30.5, 31.5, 28.5, 33.5] -15FPS: +ALL_FPS: # sys_MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x56FD1C8] value_type: int32 - value: 15 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [65, 61, 63, 57, 67] - - - type: block - what: timing -20FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 20 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [48.75, 45.75, 47.25, 42.75, 50.25] - - - type: block - what: timing -25FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 25 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [39, 36.6, 37.8, 34.2, 40.2] - - - type: block - what: timing -30FPS: - # sys_MaxFPS (default value) - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 30 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings (default values) - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [32.5, 30.5, 31.5, 28.5, 33.5] -35FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 35 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [27.8571, 26.1429, 27, 24.4286, 28.7143] - - - type: block - what: timing -40FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 40 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [24.375, 22.875, 23.625, 21.375, 25.125] - - - type: block - what: timing -45FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 45 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.022 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [21.6667, 20.3333, 21, 19, 22.3333] - - - type: block - what: timing -50FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 50 + value: FPS_LOCK_TARGET # Renderer thread delay - type: write address: [MAIN, 0x5704028] value_type: float - value: 0.015 + value: 0.01 # DR timings - - type: write + type: evaluate_write address: [MAIN, 0x56FF9C8] value_type: float - value: [19.5, 18.3, 18.9, 17.1, 20.1] + value: ["FRAMETIME_TARGET * 0.975", "FRAMETIME_TARGET * 0.915", "FRAMETIME_TARGET * 0.945", "FRAMETIME_TARGET * 0.855", "FRAMETIME_TARGET * 1.005"] - type: block what: timing -55FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 55 - # Renderer thread delay - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.015 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [17.7273, 16.6364, 17.1818, 15.5455, 18.2727] - - - type: block - what: timing -60FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x56FD1C8] - value_type: int32 - value: 60 - # Renderer thread delay - - - type: write - address: [MAIN, 0x5704028] - value_type: float - value: 0.015 - # DR timings - - - type: write - address: [MAIN, 0x56FF9C8] - value_type: float - value: [16.25, 15.25, 15.75, 14.25, 16.75] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml b/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml index 6492183..64cdebc 100644 --- a/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010065A014024000/6FB56071CCB321B6.yaml @@ -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, 0x7952298, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7976FE0, 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, 0x7952298, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 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, 0x7952298, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7952298, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7976FE0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml index c5320ee..9f5a956 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/D45B9332B5742A70.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.969) - - type: write + type: evaluate_write address: [MAIN, 0x8549648, 0] value_type: float - value: [64.6, 64.6] + value: ["0.969 * FRAMETIME_TARGET", "0.969 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x8577218, 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, 0x8549648, 0] - value_type: float - value: [48.45, 48.45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [38.76, 38.76] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [32.3, 32.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [27.6857, 27.6857] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [24.225, 24.225] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [21.53, 21.53] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [19.38, 19.38] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [17.61, 17.61] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8549648, 0] - value_type: float - value: [16.15, 16.15] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8577218, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/E47783ECB944D857.yaml b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/E47783ECB944D857.yaml new file mode 100644 index 0000000..6497f21 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100664016D5C000/E47783ECB944D857.yaml @@ -0,0 +1,27 @@ +# Redout 2 1.0.7 +# BID: E47783ECB944D857 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.969) + - + type: evaluate_write + address: [MAIN, 0x8556648, 0] + value_type: float + value: ["0.969 * FRAMETIME_TARGET", "0.969 * FRAMETIME_TARGET"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8584218, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7D89648, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml deleted file mode 100644 index 2fdee03..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/224357DED42E86ED.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Casette Beasts 1.4.0 -# BID: 224357DED42E86ED - -unsafeCheck: true - -15FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 15 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 20 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 25 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # physics/common/physics_fps (default value) - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 30 - # debug/settings/fps/force_fps (default value is 30) - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 0 -35FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 35 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 40 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 45 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 50 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 55 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x24] - value_type: int32 - value: 60 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33DCB78, 0x30] - value_type: int32 - value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/2C58E765387F9DDA.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/2C58E765387F9DDA.yaml new file mode 100644 index 0000000..a4b5501 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/2C58E765387F9DDA.yaml @@ -0,0 +1,21 @@ +# Cassette Beasts 1.6.4 +# BID: 2C58E765387F9DDA + +unsafeCheck: true + +ALL_FPS: + # physics/common/physics_fps + - + type: evaluate_write + address: [MAIN, 0x33E4B78, 0x24] + value_type: int32 + value: FPS_LOCK_TARGET + # debug/settings/fps/force_fps + - + type: evaluate_write + address: [MAIN, 0x33E4B78, 0x30] + value_type: int32 + value: FPS_LOCK_TARGET + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml new file mode 100644 index 0000000..5644d85 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/58C1B2EA8257D5F1.yaml @@ -0,0 +1,21 @@ +# Cassette Beasts 1.6.3 +# BID: 58C1B2EA8257D5F1 + +unsafeCheck: true + +ALL_FPS: + # physics/common/physics_fps + - + type: evaluate_write + address: [MAIN, 0x33E4B78, 0x24] + value_type: int32 + value: FPS_LOCK_TARGET + # debug/settings/fps/force_fps + - + type: evaluate_write + address: [MAIN, 0x33E4B78, 0x30] + value_type: int32 + value: FPS_LOCK_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/65688736640651F6.yaml b/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/65688736640651F6.yaml deleted file mode 100644 index f65b75e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010066F01A0E0000/65688736640651F6.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Casette Beasts 1.5.0 -# BID: 65688736640651F6 - -unsafeCheck: true - -15FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 15 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 20 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 25 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # physics/common/physics_fps (default value) - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 30 - # debug/settings/fps/force_fps (default value is 30) - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 0 -35FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 35 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 40 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 45 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 50 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 55 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # physics/common/physics_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x24] - value_type: int32 - value: 60 - # debug/settings/fps/force_fps - - - type: write - address: [MAIN, 0x33E3B78, 0x30] - value_type: int32 - value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml index 8cc51e8..b9fec0e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482000/824B38A25986B2AB.yaml @@ -22,63 +22,9 @@ MASTER_WRITE: main_offset: 0x3B4D800 value_type: float value: 1 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x3B4D800] value_type: float - value: 0.5 -20FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 0.6666666666 -25FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 0.8333333333 -30FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1 -35FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1.1666666666 -40FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1.3333333333 -45FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1.5 -50FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1.6666666666 -55FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 1.8333333333 -60FPS: - - - type: write - address: [MAIN, 0x3B4D800] - value_type: float - value: 2 + value: "FPS_TARGET / 30" diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml index 4396ff6..d238e05 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482001/2B59D6C677258A2A.yaml @@ -27,63 +27,9 @@ MASTER_WRITE: main_offset: 0x4276B00 value_type: float value: 1 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x4276B00] value_type: float - value: 0.5 -20FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 0.6666666666 -25FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 0.8333333333 -30FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1 -35FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1.1666666666 -40FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1.3333333333 -45FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1.5 -50FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1.6666666666 -55FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 1.8333333333 -60FPS: - - - type: write - address: [MAIN, 0x4276B00] - value_type: float - value: 2 + value: "FPS_TARGET / 30" diff --git a/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml b/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml index 653d1f4..ca298a8 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100670014482002/0AE4D1770B196094.yaml @@ -20,63 +20,9 @@ MASTER_WRITE: main_offset: 0x4422800 value_type: float value: 1000 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x4422800] value_type: float - value: 2000 -20FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 1500 -25FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 1200 -30FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 1000 -35FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 857 -40FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 750 -45FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 666 -50FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 600 -55FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 545 -60FPS: - - - type: write - address: [MAIN, 0x4422800] - value_type: float - value: 500 + value: "(FPS_TARGET / 30) * 1000" diff --git a/SaltySD/plugins/FPSLocker/patches/010067B017588000/E5EFB5ABA3601B97.yaml b/SaltySD/plugins/FPSLocker/patches/010067B017588000/E5EFB5ABA3601B97.yaml new file mode 100644 index 0000000..3ac76ec --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010067B017588000/E5EFB5ABA3601B97.yaml @@ -0,0 +1,71 @@ +# Endless Ocean Luminous 1.0.1 +# BID: E5EFB5ABA3601B97 +# Some things are still tied to framerate, but nothing game breaking it seems. +# Game is using double buffer, trying to enable triple buffer results in crash. + +unsafeCheck: true + +MASTER_WRITE: + # Swap 30 FPS target with 60 + - + type: bytes + main_offset: 0x15C140E + value_type: uint8 + value: 0x33 + - + type: bytes + main_offset: 0x162E1B2 + value_type: uint8 + value: 0x36 + # Allow variable game speed instead of fixed + - + type: bytes + main_offset: 0x36D880 + value_type: uint32 + value: + - 0xF0009308 + - 0x91203108 + - + type: bytes + main_offset: 0x36D88C + value_type: uint32 + value: 0x528002C9 + - + type: bytes + main_offset: 0x36D894 + value_type: uint32 + value: + - 0x90009308 + - 0x91042508 + - + type: bytes + main_offset: 0x36D89C + value_type: uint32 + value: 0x52800269 + # Force interval to 2 to maintain original 30 FPS lock by default + - + type: bytes + main_offset: 0x92BB84 + value_type: uint32 + value: 0x52800055 + # Redirect DR timing target to MAIN + 0x1C5DF00 + - + type: bytes + main_offset: 0xA38B18 + value_type: uint32 + value: + - 0xB0009121 + - 0xBD4F0020 +ALL_FPS: + # DR timing = 1/FPS + - + type: evaluate_write + address: [MAIN, 0x1C5DF00] + value_type: float + value: "1 / FPS_TARGET" + # vsync target + - + type: evaluate_write + address: [MAIN, 0x1C49DD0, 0x39E0] + value_type: uint32 + value: "VSYNC_TARGET - 1" diff --git a/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml b/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml index 05f6419..c3d867c 100644 --- a/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010069100B7F0000/A953B35A45BEA33D.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x5CF2530, 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, 0x5D170A8, 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, 0x5CF2530, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CF2530, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5D170A8, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml b/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml index c8ba1fd..13dbf44 100644 --- a/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010069500DD86000/5AD84EFD9D28FDDE.yaml @@ -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, 0x5934540, 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, 0x59590A8, 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, 0x5934540, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5934540, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x59590A8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/541F680F325BD5AC.yaml b/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/541F680F325BD5AC.yaml new file mode 100644 index 0000000..31a6d09 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/541F680F325BD5AC.yaml @@ -0,0 +1,31 @@ +# SHIN MEGAMI TENSEI V: Vengeance 1.0.1 US/EUR +# BID: 541F680F325BD5AC + +unsafeCheck: true + +MASTER_WRITE: + # Block from reapplying t.MaxFPS by game, REF: 01 E4 00 2F 00 AC 21 1E 08 00 40 F9 08 75 41 F9 + - + type: bytes + main_offset: 0x377E820 + value_type: uint32 + value: 0xD503201F +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x7AAABB8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # r.VSync + - + type: write + address: [MAIN, 0x726F260, 0] + value_type: uint32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7AD0858, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml b/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml index 724e0eb..7a0f9a8 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006C300E9F0000/1719AABFA5EAE42B.yaml @@ -3,337 +3,37 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicResolution.MaxTimeBudget = 0.99 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x84ECDD8, 0] value_type: float - value: [66, 66] + value: ["0.99 * FRAMETIME_TARGET", "0.99 * FRAMETIME_TARGET"] # r.DynamicResolution.MinTimeBudget = 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x84ECDF0, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # r.DynamicResolution.HeavyTimeBudget = 1.05 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x84ECE08, 0] value_type: float - value: [70, 70] + value: ["1.05 * FRAMETIME_TARGET", "1.05 * FRAMETIME_TARGET"] # r.DynamicResolution.LightTimeBudget = 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x84ECE20, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x8501C48, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [49.5, 49.5] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [45, 45] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [52.5, 52.5] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [39.6, 39.6] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [36, 36] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [42, 42] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicResolution.MaxTimeBudget (default value) - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [33, 33] - # r.DynamicResolution.MinTimeBudget (default value) - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [30, 30] - # r.DynamicResolution.HeavyTimeBudget (default value) - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [35, 35] - # r.DynamicResolution.LightTimeBudget (default value) - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [28.29, 28.29] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [25.71, 25.71] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [30, 30] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [25.71, 25.71] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [24.75, 24.75] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [22.5, 22.5] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [26.25, 26.25] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [22, 22] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [20, 20] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [23.33, 23.33] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [19.8, 19.8] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [18, 18] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [21, 21] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [18, 18] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [16.36, 16.36] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [19.09, 19.09] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [16.36, 16.36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -60FPS: - # r.DynamicResolution.MaxTimeBudget - - - type: write - address: [MAIN, 0x84ECDD8, 0] - value_type: float - value: [16.5, 16.5] - # r.DynamicResolution.MinTimeBudget - - - type: write - address: [MAIN, 0x84ECDF0, 0] - value_type: float - value: [15, 15] - # r.DynamicResolution.HeavyTimeBudget - - - type: write - address: [MAIN, 0x84ECE08, 0] - value_type: float - value: [17.5, 17.5] - # r.DynamicResolution.LightTimeBudget - - - type: write - address: [MAIN, 0x84ECE20, 0] - value_type: float - value: [15, 15] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8501C48, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml b/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml index 3a7bcff..4cab005 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006C600E46E000/6D5DB3434CCF63F2.yaml @@ -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, 0x6FC5558, 0] value_type: float - value: [66.6, 66.6] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6FEB028, 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, 0x6FC5558, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6FC5558, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FEB028, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml b/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml index 40a3dc5..65eb39d 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006CB010840000/9F2F187D1C6E44EC.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: - # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - 1.2 - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [65.4, 65.4] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x51E80D8, 0] value_type: float - value: [48.8, 48.8] + value: ["TruncDec(FRAMETIME_TARGET * 0.963, 1)", "TruncDec(FRAMETIME_TARGET * 0.963, 1)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x52122E0, 0] value_type: float - value: [20, 20] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [38.8, 38.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [32.1, 32.1] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [27.3, 27.3] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [23.8, 23.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [18.8, 18.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [16.9, 16.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x51E80D8, 0] - value_type: float - value: [15.4, 15.4] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x52122E0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml b/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml index ab193e7..afb07c0 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006CC01182C000/C31E59266A218855.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) with cutted decimals - - type: write + type: evaluate_write address: [MAIN, 0x5CC7310, 0] value_type: float - value: [66, 66] + value: ["TruncDec(FRAMETIME_TARGET, 0)", "TruncDec(FRAMETIME_TARGET, 0)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5CEB9F8, 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, 0x5CC7310, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [33, 33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [28, 28] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [22, 22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5CC7310, 0] - value_type: float - value: [16, 16] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CEB9F8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml b/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml index 787e26c..5839d1f 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006DC010326000/05DE5A7F20BD1532.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x72AEE90, 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, 0x73050F0, 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, 0x72AEE90, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x72AEE90, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x73050F0, 0] - value_type: float - value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml b/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml index c3893d8..fe42e68 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006EC00F2CC000/F199FFD7D83F399E.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x55B1690, 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, 0x55D8100, 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, 0x55B1690, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x55B1690, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x55D8100, 0] - value_type: float - value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml new file mode 100644 index 0000000..0d7de91 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/6C91A8A476E70C5D.yaml @@ -0,0 +1,21 @@ +# Grounded 1.05 +# BID: 6C91A8A476E70C5D + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal + - + type: evaluate_write + address: [MAIN, 0x8DE73D8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8E0D520, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/97D2B53D2C0B35EA.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/97D2B53D2C0B35EA.yaml new file mode 100644 index 0000000..045b284 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/97D2B53D2C0B35EA.yaml @@ -0,0 +1,21 @@ +# Grounded 1.07 +# BID: 97D2B53D2C0B35EA + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal + - + type: evaluate_write + address: [MAIN, 0x8E043E8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8E2A530, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/A0FE04D33C315329.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/A0FE04D33C315329.yaml deleted file mode 100644 index 1b1ae2b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/A0FE04D33C315329.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Grounded 1.0 -# BID: A0FE04D33C315329 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [66.6, 66.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8DA2388, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8DC84B8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml b/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml new file mode 100644 index 0000000..d522365 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006F401D934000/8AA7D10343CB3870.yaml @@ -0,0 +1,21 @@ +# Twilight Survivors 0.22.2 +# BID: 8AA7D10343CB3870 + +unsafeCheck: true + +ALL_FPS: + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6495898, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x5C99348, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/C8E123AFDB73E936.yaml b/SaltySD/plugins/FPSLocker/patches/01006F401D934000/C8E123AFDB73E936.yaml deleted file mode 100644 index 960ab28..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01006F401D934000/C8E123AFDB73E936.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Twilight Survivors 0.2 -# BID: C8E123AFDB73E936 - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6483898, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x5C870A8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F901C7F2000/406F004D76F961F3.yaml b/SaltySD/plugins/FPSLocker/patches/01006F901C7F2000/406F004D76F961F3.yaml index 5663bf8..5670873 100644 --- a/SaltySD/plugins/FPSLocker/patches/01006F901C7F2000/406F004D76F961F3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01006F901C7F2000/406F004D76F961F3.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.VSync - type: write @@ -12,208 +12,16 @@ unsafeCheck: true value: [0, 0] # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x7594F48, 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, 0x75C2C08, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 10000) - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x6DC65E8, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7594F48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75C2C08, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml index 7acacc6..d88d1fc 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/2C7A626BA5F25D5F.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0xB149FF8, 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, 0xB149FF8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 24) - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS (default) - - - type: write - address: [MAIN, 0xB149FF8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml b/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml deleted file mode 100644 index 7c78120..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100711017B30000/D7D0827ABE36A00D.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# The Dark Pictures Anthology: Man of Medan 1.0.0 -# BID: D7D0827ABE36A00D - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 24) - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS (default) - - - type: write - address: [MAIN, 0xB129FF8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml b/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml index b33b086..b582e70 100644 --- a/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010071800BA98000/173E2EDEA9E5D940.yaml @@ -3,133 +3,16 @@ unsafeCheck: true -15FPS: +ALL_FPS: # gNXHighThresholdUS_hidden 930*(1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x3293F94] value_type: int32 - value: 62000 + value: "930 * FRAMETIME_TARGET" # gNXLowThresholdUS_hidden 870*(1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x3293F98] value_type: int32 - value: 58000 -20FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 46500 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 43500 -25FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 37200 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 34800 -30FPS: - # gNXHighThresholdUS_hidden (default) - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 31000 - # gNXLowThresholdUS_hidden (default) - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 29000 -35FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 26571 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 24857 -40FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 23250 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 21750 -45FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 20666 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 19333 -50FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 18600 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 17400 -55FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 16909 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 15818 -60FPS: - # gNXHighThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F94] - value_type: int32 - value: 15500 - # gNXLowThresholdUS_hidden - - - type: write - address: [MAIN, 0x3293F98] - value_type: int32 - value: 14500 + value: "870 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml index 7bf19e3..b948740 100644 --- a/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml @@ -70,114 +70,14 @@ MASTER_WRITE: main_offset: 0x5FBAF28 value_type: float value: 33 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x5FBAF20] value_type: uint32 - value: 4 + value: VSYNC_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x5FBAF28] value_type: float - value: 16.5 -20FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 3 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 22 -25FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 2 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 27.5 -30FPS: - - # Default in races - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 2 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 33 -35FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 38.5 -40FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 44 -45FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 49.5 -50FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 55 -55FPS: - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 60.5 -60FPS: - # Default for menus - - - type: write - address: [MAIN, 0x5FBAF20] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x5FBAF28] - value_type: float - value: 66 + value: "1.1 * FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml b/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml index 1a25054..ca647d3 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml @@ -28,63 +28,9 @@ MASTER_WRITE: value_type: uint32 value: - 0xD503201F -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0xCCB7AF0, 0x420] value_type: uint32 - value: 3 -20FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 2 -25FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 1 -30FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 1 -35FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0xCCB7AF0, 0x420] - value_type: uint32 - value: 0 \ No newline at end of file + value: "VSYNC_TARGET - 1" diff --git a/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml b/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml index ffa59d6..eab3000 100644 --- a/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010073401175E000/E8DB38F170B0149D.yaml @@ -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, 0x7AE3340, 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, 0x7B0DEB0, 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, 0x7AE3340, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7AE3340, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7B0DEB0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml deleted file mode 100644 index 575006a..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100739018020000/035715948447A762.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# LEGO 2K Drive 1.4 -# BID: 035715948447A762 - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x923DD10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9A49C48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9A6FDC0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/6DBC20263D224B3C.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/6DBC20263D224B3C.yaml deleted file mode 100644 index d03658c..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100739018020000/6DBC20263D224B3C.yaml +++ /dev/null @@ -1,220 +0,0 @@ -# LEGO 2K Drive 1.13 -# BID: 6DBC20263D224B3C - - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x950CD00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D18CE8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D3EE60, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/AA906741384B10CC.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/AA906741384B10CC.yaml deleted file mode 100644 index 3e19fff..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100739018020000/AA906741384B10CC.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# LEGO 2K Drive 1.14 -# BID: AA906741384B10CC - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9516D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D22CE8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9D48E60, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/B75E7D3DB78D69C1.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/B75E7D3DB78D69C1.yaml new file mode 100644 index 0000000..9a77048 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100739018020000/B75E7D3DB78D69C1.yaml @@ -0,0 +1,27 @@ +# LEGO 2K Drive 1.17 +# BID: B75E7D3DB78D69C1 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x957FD00, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x9D8BCF8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x9DB1E70, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/CE1D6113B65F2914.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/CE1D6113B65F2914.yaml deleted file mode 100644 index bbe2de4..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100739018020000/CE1D6113B65F2914.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# LEGO 2K Drive 1.16 -# BID: CE1D6113B65F2914 - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9577D00, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9D83CF8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9DA9E70, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml b/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml deleted file mode 100644 index e34e54a..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100739018020000/E93D49581521E084.yaml +++ /dev/null @@ -1,220 +0,0 @@ -# LEGO 2K Drive 1.7 -# BID: E93D49581521E084 - - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x9323D10, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9B2FC48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9B55DC0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010073C01B7FE000/F294A4EBE966E8A9.yaml b/SaltySD/plugins/FPSLocker/patches/010073C01B7FE000/F294A4EBE966E8A9.yaml index cb6dffd..c52bc7c 100644 --- a/SaltySD/plugins/FPSLocker/patches/010073C01B7FE000/F294A4EBE966E8A9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010073C01B7FE000/F294A4EBE966E8A9.yaml @@ -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, 0x75B2628, 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, 0x75E02F8, 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, 0x75B2628, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75B2628, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x75E02F8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6DE2CE8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml deleted file mode 100644 index 4dee12f..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/75960383063ABB4E.yaml +++ /dev/null @@ -1,224 +0,0 @@ -# Redemption Reapers 1.3.0 -# BID: 75960383063ABB4E - -unsafeCheck: true - -15FPS: - # Disable bUseFixedFrameRate to untie game speed from framerate - - - type: write - address: [MAIN, 0x750B478, 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.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 30 in handheld, 60 in docked) - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x750B478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74DE1C8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x750BD98, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml index e62f4b1..43323e1 100644 --- a/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010073F0197DA000/955DF07AA5F4497B.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to untie game speed from framerate - type: write @@ -17,208 +17,16 @@ unsafeCheck: true value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x74EF1C8, 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, 0x751CD98, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 30 in handheld, 60 in docked) - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x751C478, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74EF1C8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x751CD98, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml deleted file mode 100644 index 6764afe..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010074F013262000/0AE74B263D8AC3CF.yaml +++ /dev/null @@ -1,444 +0,0 @@ -# Xenoblade Chronicles 3 2.1.1 -# BID: 0AE74B263D8AC3CF - -unsafeCheck: true - -MASTER_WRITE: - # Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00] - - - type: bytes - main_offset: 0x124E9A8 - value_type: uint32 - value: - - 0x900088E8 - - 0xBD4B0100 - # Original DR frametime target - - - type: bytes - main_offset: 0x236AB00 - value_type: float - value: - - 0.0166666666 - # Fix crash when gathering big amount of ether for > 30 FPS - - # Code cave at 0x1295300 - type: bytes - main_offset: 0x67370 - value_type: uint32 - value: 0x9448B7E4 - - # Push fixed 1/30 float to game speed pointer late enough to not affect it - type: bytes - main_offset: 0x1295300 - value_type: uint32 - value: - - 0xF9400015 - - 0x1E2E1001 - - 0x1E27D002 - - 0x1E221821 - - 0xBD0216A1 - - 0xD65F03C0 -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: - # vsync - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [4, 4] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - # UI speed - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [3, 3] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.02 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.04 -30FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.024 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.028571 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -40FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.021 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.025 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -45FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.018 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0222222222 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -50FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.016 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.02 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -55FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.014 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.01818181818 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -60FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.000001 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/82D187FE9EF9BE92.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/82D187FE9EF9BE92.yaml index f928b65..65d1886 100644 --- a/SaltySD/plugins/FPSLocker/patches/010074F013262000/82D187FE9EF9BE92.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010074F013262000/82D187FE9EF9BE92.yaml @@ -36,408 +36,86 @@ MASTER_WRITE: - 0x1E221821 - 0xBD0216A1 - 0xD65F03C0 -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: +ALL_FPS: # vsync - - type: write + type: evaluate_write address: [MAIN, 0x1B42DB0] value_type: int32 - value: [4, 4] + value: [VSYNC_TARGET, VSYNC_TARGET] + # DR Timing (relative to vsync) - - type: write + type: evaluate_write address: [MAIN, 0x236AB00] value_type: float - value: 0.0166666666 + value: "((1 / FPS_TARGET) / VSYNC_TARGET) * 0.78" # UI speed - - type: write + type: evaluate_write address: [MAIN, 0x1BA1A90, 128] value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [3, 3] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.02 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.04 -30FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: + value: "1 / FPS_TARGET" - type: compare compare_address: [MAIN, 0x1BA1A98] compare_type: "!=" compare_value_type: int8 - compare_value: 1 + compare_value: 0 + address: [MAIN, 0x1B42DB0] + value_type: int32 + value: [2, 2] + - + type: evaluate_compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x236AB00] + value_type: float + value: "(1 / 30) / 2" + - + type: evaluate_compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 + address: [MAIN, 0x1BA1A90, 128] + value_type: float + value: "(1 / 30) / 2" +ALL_REFRESH_RATES: + - + type: compare + compare_address: [MAIN, 0x1BA1A98] + compare_type: "!=" + compare_value_type: int8 + compare_value: 0 address: [MAIN, 0x1B42DB0] value_type: int32 value: [1, 1] - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.024 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare + type: evaluate_compare compare_address: [MAIN, 0x1BA1A98] compare_type: "!=" compare_value_type: int8 compare_value: 0 address: [MAIN, 0x236AB00] value_type: float - value: 0.0166666666 + value: "1 / 30" - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.028571 - - - type: compare + type: evaluate_compare compare_address: [MAIN, 0x1BA1A98] compare_type: "!=" compare_value_type: int8 compare_value: 0 address: [MAIN, 0x1BA1A90, 128] value_type: float - value: 0.0333333333 -40FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.021 + value: "1 / 30" - type: compare compare_address: [MAIN, 0x1BA1A98] compare_type: "!=" compare_value_type: int8 compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.025 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -45FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.018 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0222222222 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -50FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.016 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.02 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -55FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.014 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.01818181818 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -60FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.013 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 \ No newline at end of file + address: [MAIN] + value_type: refresh_rate + value: 30 diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml deleted file mode 100644 index 904ad21..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010074F013262000/8E18600222CE90C2.yaml +++ /dev/null @@ -1,427 +0,0 @@ -# Xenoblade Chronicles 3 2.0.0 -# BID: 8E18600222CE90C2 - -unsafeCheck: true - -MASTER_WRITE: - # Redirect DR frametime target reading to .bss code cave [MAIN, 0x2369B00] - - - type: bytes - main_offset: 0x124E638 - value_type: uint32 - value: - - 0xF00088C8 - - 0xBD4B0100 - # Original DR frametime target - - - type: bytes - main_offset: 0x2369B00 - value_type: float - value: - - 0.0166666666 -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: - # vsync - - - type: write - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [4, 4] - - - type: write - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - # UI speed - - - type: write - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [3, 3] - - - type: write - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x2369B00] - value_type: float - value: 0.02 - - - type: write - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.04 -30FPS: - - - type: write - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.024 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.028571 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 -40FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.021 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.025 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 -45FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.018 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0222222222 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 -50FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.016 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.02 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 -55FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.014 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.01818181818 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 -60FPS: - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B41DB0] - value_type: int32 - value: [2, 2] - # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.000001 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x2369B00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA0A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA0A90, 128] - value_type: float - value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml deleted file mode 100644 index 9b3f1f4..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B6BE4A6B83D4F237.yaml +++ /dev/null @@ -1,427 +0,0 @@ -# Xenoblade Chronicles 3 2.1.0 -# BID: B6BE4A6B83D4F237 - -unsafeCheck: true - -MASTER_WRITE: - # Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00] - - - type: bytes - main_offset: 0x124E968 - value_type: uint32 - value: - - 0x900088E8 - - 0xBD4B0100 - # Original DR frametime target - - - type: bytes - main_offset: 0x236AB00 - value_type: float - value: - - 0.0166666666 -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: - # vsync - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [4, 4] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - # UI speed - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [3, 3] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.02 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.04 -30FPS: - - - type: write - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: write - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: write - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.024 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.028571 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -40FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.021 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.025 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -45FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.018 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0222222222 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -50FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.016 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.02 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -55FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.014 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.01818181818 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 -60FPS: - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1B42DB0] - value_type: int32 - value: [2, 2] - # Set lowest possible resolution since DR is glitching framebuffer on 60 FPS if we allow even small changes in res - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.000001 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x236AB00] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0166666666 - - - type: compare - compare_address: [MAIN, 0x1BA1A98] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1BA1A90, 128] - value_type: float - value: 0.0333333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml b/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml deleted file mode 100644 index 913ba55..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010074F013262000/B76CD24AF02ACEA2.yaml +++ /dev/null @@ -1,152 +0,0 @@ -# Xenoblade Chronicles 3 1.3.0 -# BID: B76CD24AF02ACEA2 - -unsafeCheck: true - -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: - - - type: write - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [4, 4] - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [3, 3] - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -30FPS: - - - type: write - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -40FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -45FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -50FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -55FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] -60FPS: - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 1 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [1, 1] - - - type: compare - compare_address: [MAIN, 0x1A65958] - compare_type: "!=" - compare_value_type: int8 - compare_value: 0 - address: [MAIN, 0x1A08F98] - value_type: int32 - value: [2, 2] diff --git a/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml b/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml index dacb72c..11ea076 100644 --- a/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010075A00BA14000/6888027D61CF603D.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: - # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 60 -20FPS: +ALL_FPS: # Dynamic Resolution frame time target - - type: write + type: evaluate_write address: [MAIN, 0xF39748, 4] value_type: float - value: 45 -25FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 36 -30FPS: - # Dynamic Resolution frame time target (default value) - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 30 -35FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 25.71 -40FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 22.5 -45FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 20 -50FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 18 -55FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 16.36 -60FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xF39748, 4] - value_type: float - value: 15 \ No newline at end of file + value: "0.9 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml b/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml index 4d0216d..bcc1e48 100644 --- a/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010077A012A5C000/F5ECE696120B65B3.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.9) - - type: write + type: evaluate_write address: [MAIN, 0x56A9C78, 0] value_type: float - value: [60, 60] + value: ["FRAMETIME_TARGET * 0.9", "FRAMETIME_TARGET * 0.9"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x56D3EA0, 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, 0x56A9C78, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [25.7142, 25.7142] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [16.363636, 16.363636] - # t.MaxFPS - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x56A9C78, 0] - value_type: float - value: [15, 15] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x56D3EA0, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml b/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml index 5d62a68..1e36520 100644 --- a/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010077B00E046000/D2775FAFCF4835CB.yaml @@ -3,7 +3,7 @@ unsafeCheck: false -15FPS: +ALL_FPS: # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate - type: write @@ -17,208 +17,16 @@ unsafeCheck: false value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x69B6780, 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, 0x69DAC78, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x69DA1A8, 0x778] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69B6780, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x69DAC78, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010078C01769A000/7BA282E94D34C620.yaml b/SaltySD/plugins/FPSLocker/patches/010078C01769A000/7BA282E94D34C620.yaml index e31d669..dd63d8b 100644 --- a/SaltySD/plugins/FPSLocker/patches/010078C01769A000/7BA282E94D34C620.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010078C01769A000/7BA282E94D34C620.yaml @@ -3,208 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x71160E0, 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, 0x71C39F0, 0] value_type: float - value: [0, 0] - # r.VSync (disabling it improves performance, by default it's enabled) - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write diff --git a/SaltySD/plugins/FPSLocker/patches/01007A3009184000/928EFE2954F68055.yaml b/SaltySD/plugins/FPSLocker/patches/01007A3009184000/928EFE2954F68055.yaml index 4b7ffb9..c2fcb2d 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007A3009184000/928EFE2954F68055.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007A3009184000/928EFE2954F68055.yaml @@ -3,19 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0xAE825E8, 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, 0xAEB02A8, 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, 0xAE825E8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 0) - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [32, 32] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE825E8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (game is using bSmoothFrameRate locked to 24 FPS when cutscenes are played, setting it to anything else than 0 allows overriding it) - - - type: write - address: [MAIN, 0xAEB02A8, 0] - value_type: float - value: [62, 62] - # r.VSync - - - type: write - address: [MAIN, 0xA6B2D18, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007B0017C90000/55DFB4A664D8B596.yaml b/SaltySD/plugins/FPSLocker/patches/01007B0017C90000/55DFB4A664D8B596.yaml new file mode 100644 index 0000000..509c9e9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01007B0017C90000/55DFB4A664D8B596.yaml @@ -0,0 +1,27 @@ +# Morbid: The Lords of Ire 1.02 +# BID: 55DFB4A664D8B596 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x5DAC3D8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x657FEE8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x65AD888, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/4A5D86DA05A4E7BB.yaml b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/4A5D86DA05A4E7BB.yaml index 6e2854d..31d5c3b 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/4A5D86DA05A4E7BB.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/4A5D86DA05A4E7BB.yaml @@ -3,13 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x9798700, 0] value_type: float - value: [66.66, 66.66] + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] # r.VSync - type: write @@ -18,196 +18,10 @@ unsafeCheck: true value: [0, 0] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x97BD5F8, 0] value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [25, 25] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [33.33, 33.33] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [28.51, 28.51] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [22.22, 22.22] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [18.18, 18.18] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x9798700, 0] - value_type: float - value: [16.66, 16.66] - # r.VSync - - - type: write - address: [MAIN, 0x90055A8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97BD5F8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml deleted file mode 100644 index 6c5f4ee..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/C56FA2C9627A26CF.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Sifu 1.13_842 -# BID: C56FA2C9627A26CF - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [66.66, 66.66] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [33.33, 33.33] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [28.51, 28.51] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [22.22, 22.22] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [18.18, 18.18] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x94CD848, 0] - value_type: float - value: [16.66, 16.66] - # r.VSync - - - type: write - address: [MAIN, 0x8D39378, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x94F2858, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml b/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml deleted file mode 100644 index af8d597..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01007B5017A12000/CE14D183190A44D2.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Sifu 1.22_1197 -# BID: CE14D183190A44D2 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [66.66, 66.66] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [33.33, 33.33] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [28.51, 28.51] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [22.22, 22.22] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [18.18, 18.18] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x973F690, 0] - value_type: float - value: [16.66, 16.66] - # r.VSync - - - type: write - address: [MAIN, 0x8FAC338, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x9764588, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml b/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml index 8ec12a5..74345e5 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007E3006DDA000/D55608916FA56C18.yaml @@ -93,79 +93,10 @@ MASTER_WRITE: main_offset: 0x5A4C value_type: uint32 value: 0xD503201F -15FPS: +ALL_FPS: # Interval - - type: write + type: evaluate_write address: [MAIN, 0x54C5B0, 0] value_type: int32 - value: 3 - - - type: block - what: timing -20FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 2 - - - type: block - what: timing -25FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 1 -30FPS: - # Interval (default value) - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 1 -35FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 -40FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 -45FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 -50FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 -55FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 -60FPS: - # Interval - - - type: write - address: [MAIN, 0x54C5B0, 0] - value_type: int32 - value: 0 + value: "VSYNC_TARGET - 1" diff --git a/SaltySD/plugins/FPSLocker/patches/01007EF00011E000/8E9978D50BDD20B4.yaml b/SaltySD/plugins/FPSLocker/patches/01007EF00011E000/8E9978D50BDD20B4.yaml index f21c3ee..1237cb4 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007EF00011E000/8E9978D50BDD20B4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007EF00011E000/8E9978D50BDD20B4.yaml @@ -193,124 +193,27 @@ MASTER_WRITE: main_offset: 0x2D65C94 value_type: int32 value: -2 -15FPS: +ALL_FPS: # DR GPU Time Factor - - type: write + type: evaluate_write address: [MAIN, 0x2D65C80] value_type: float - value: 0.0005 - # DR GPU Time Factor + value: "(FPS_TARGET / 30) * 0.001" + # Default vsync - - type: write + type: evaluate_write address: [MAIN, 0x2D65C94] value_type: int32 - value: -4 -20FPS: - # DR GPU Time Factor + value: "VSYNC_TARGET * -1" +ALL_REFRESH_RATES: + # Prerendered cutscenes must be played at 30 FPS - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.000667 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -3 -25FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.000834 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -2 -30FPS: - # DR GPU Time Factor (default value) - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.001 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -2 -35FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.00117 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 -40FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.00134 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 -45FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.0015 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 -50FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.00167 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 -55FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.00184 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 -60FPS: - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x2D65C80] - value_type: float - value: 0.002 - - - type: write - address: [MAIN, 0x2D65C94] - value_type: int32 - value: -1 \ No newline at end of file + type: compare + compare_address: [MAIN, 0x2D65C90] + compare_type: "==" + compare_value_type: uint32 + compare_value: 1 + address: [MAIN] + value_type: refresh_rate + value: 30 diff --git a/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml b/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml index 663b53a..fff96d2 100644 --- a/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01007FB010DC8000/D3744AF2C376CDC4.yaml @@ -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, 0x715EDB8, 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, 0x718C9B8, 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, 0x715EDB8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x715EDB8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x718C9B8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml b/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml index d977000..dc86264 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100801011C3E000/C4DF04F647BDC727.yaml @@ -3,185 +3,17 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x1D584F8] value_type: int32 - value: [15, 2] + value: [FPS_LOCK_TARGET, "1"] - - type: write + type: evaluate_write address: [MAIN, 0x1D6BFA0] value_type: float - value: 15 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 1 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [20, 2] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 20 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 1 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [25, 2] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 25 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 1 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [30, 2] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 30 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 1 -35FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [35, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 35 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 0 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [40, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 40 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 0 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [45, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 45 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 0 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [50, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 50 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 0 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [55, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 55 - - - type: write - address: [MAIN, 0x2AEFB30] - value_type: int32 - value: 0 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x1D584F8] - value_type: int32 - value: [60, 1] - - - type: write - address: [MAIN, 0x1D6BFA0] - value_type: float - value: 60 + value: FPS_TARGET - type: write address: [MAIN, 0x2AEFB30] diff --git a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/20A5199D55EA5E93.yaml b/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/20A5199D55EA5E93.yaml deleted file mode 100644 index 4d1a849..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/20A5199D55EA5E93.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Bang-On Balls: Chronicles v1.0.2 -# BID: 20A5199D55EA5E93 - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 0) - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/25D3C2E9040D1A9A.yaml b/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/25D3C2E9040D1A9A.yaml index 9605f1c..7162490 100644 --- a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/25D3C2E9040D1A9A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/25D3C2E9040D1A9A.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.VSync - type: write @@ -12,208 +12,16 @@ unsafeCheck: true value: [0, 0] # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x702A818, 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, 0x7058338, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 0) - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x685AE88, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x702A818, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7058338, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/6B5E31BAA58DB229.yaml b/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/6B5E31BAA58DB229.yaml deleted file mode 100644 index ac60f78..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010081E01A45C000/6B5E31BAA58DB229.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Bang-On Balls: Chronicles v1.0.1 -# BID: 6B5E31BAA58DB229 - -unsafeCheck: true - -15FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 0) - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x668BD38, 0] - value_type: int32 - value: [0, 0] - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E5A978, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6E88498, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010082901D6F2000/FCA830BAE649B898.yaml b/SaltySD/plugins/FPSLocker/patches/010082901D6F2000/FCA830BAE649B898.yaml new file mode 100644 index 0000000..5471597 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010082901D6F2000/FCA830BAE649B898.yaml @@ -0,0 +1,34 @@ +# Neptunia Game Maker R:Evolution 1.00 +# BID: FCA830BAE649B898 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR timing range to MAIN + 0x878B800 + - + type: bytes + main_offset: 0x4451E88 + value_type: uint32 + value: + - 0xD00219C8 + - 0xB9480108 + - + type: bytes + main_offset: 0x4451ED4 + value_type: uint32 + value: + - 0xD00219C8 + - 0xB9480508 + # Default values + - + type: bytes + main_offset: 0x878B800 + value_type: float + value: [33.33, 28.57] +ALL_FPS: + # DR timing + - + type: evaluate_write + address: [MAIN, 0x878B800] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(1000 / (FPS_TARGET + 5), 2)"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml b/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml index 05414a0..580cb12 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100830004FB6000/40F973CE3B5EC8D7.yaml @@ -3,133 +3,16 @@ unsafeCheck: false -15FPS: - # Game speed ((FPS/30) * 59.94) +ALL_FPS: + # Game speed - - type: write + type: evaluate_write address: [MAIN, 0x1A32900, 0xA0] value_type: float - value: 29.97 + value: "(FPS_TARGET * 2) / 1.001" # Frameskipping (otherwise you will get slowdowns at framedrops) - type: write address: [MAIN, 0x1A5BE70] value_type: int8 value: 1 -20FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 39.96 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -25FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 49.95 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -30FPS: - # Game speed (default) - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 59.94 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -35FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 69.93 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -40FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 79.92 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -45FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 89.91 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -50FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 99.9 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -55FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 109.89 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 -60FPS: - # Game speed - - - type: write - address: [MAIN, 0x1A32900, 0xA0] - value_type: float - value: 119.88 - # Frameskipping - - - type: write - address: [MAIN, 0x1A5BE70] - value_type: int8 - value: 1 diff --git a/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml b/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml index 471625a..4aeb767 100644 --- a/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010083501AB36000/0959D87753F9FED4.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals - - type: write + type: evaluate_write address: [MAIN, 0x6577290, 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, 0x65A2138, 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, 0x6577290, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6577290, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x65A2138, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010083A018262000/59AF76C13F680B7C.yaml b/SaltySD/plugins/FPSLocker/patches/010083A018262000/59AF76C13F680B7C.yaml new file mode 100644 index 0000000..1bda5b2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010083A018262000/59AF76C13F680B7C.yaml @@ -0,0 +1,34 @@ +# Hitman: Blood Money - Reprisal 1.2_71586 +# BID: 59AF76C13F680B7C +# Fix aiming speed by tweaking it in game settings +# Videos / prerendered cutscenes are played at 30 FPS + +unsafeCheck: true + +MASTER_WRITE: + # Block FPS lock being constantly updated + - + type: bytes + main_offset: 0x27CE38 + value_type: uint32 + value: 0xD503201F +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0x1D608B8, 0x10] + value_type: uint32 + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: evaluate_write + address: [MAIN, 0x1D608B8, 0x40] + value_type: uint32 + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: evaluate_write + address: [MAIN, 0x1D608B8, 0x70] + value_type: uint32 + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010083A018262000/688C23D524730AB8.yaml b/SaltySD/plugins/FPSLocker/patches/010083A018262000/688C23D524730AB8.yaml deleted file mode 100644 index 3cedb6d..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010083A018262000/688C23D524730AB8.yaml +++ /dev/null @@ -1,201 +0,0 @@ -# Hitman: Blood Money - Reprisal 1.0_68328 -# BID: 688C23D524730AB8 -# Fix aiming speed by tweaking it in game settings -# Videos / prerendered cutscenes are played at 30 FPS - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [15, 15] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [15, 15] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [15, 15] - - - type: block - what: timing -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [20, 20] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [20, 20] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [20, 20] - - - type: block - what: timing -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [25, 25] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [25, 25] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [25, 25] - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value) - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [30, 30] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [30, 30] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [30, 30] -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [35, 35] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [35, 35] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [35, 35] - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [40, 40] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [40, 40] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [40, 40] - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [45, 45] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [45, 45] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [45, 45] - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [50, 50] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [50, 50] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [50, 50] - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [55, 55] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [55, 55] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [55, 55] - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0x20AA038, 0x10] - value_type: uint32 - value: [60, 60] - - - type: write - address: [MAIN, 0x20AA038, 0x40] - value_type: uint32 - value: [60, 60] - - - type: write - address: [MAIN, 0x20AA038, 0x70] - value_type: uint32 - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml b/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml index 07d5fbd..2646775 100644 --- a/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010084F017B32000/2BFF5F7711EE6C9F.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0xB4E7838, 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, 0xB4E7838, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 24) - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS (default) - - - type: write - address: [MAIN, 0xB4E7838, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/48391605F5BDF634.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/48391605F5BDF634.yaml deleted file mode 100644 index af575a6..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/48391605F5BDF634.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# No Man's Sky 4.6.4 -# BID: 48391605F5BDF634 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x4A96400 - - - type: bytes - main_offset: 0x1E5595C - value_type: uint32 - value: 0xD503201F - - - type: bytes - main_offset: 0x1E55968 - value_type: uint32 - value: - - 0xB0016212 - - 0xB9400408 - - 0xBD44024B - # default value - - - type: bytes - main_offset: 0x4A96400 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x4A96400] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/591B871234DE6100.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/591B871234DE6100.yaml deleted file mode 100644 index 88fe96e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/591B871234DE6100.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# No Man's Sky 4.5.2 -# BID: 591B871234DE6100 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x4A3C400 - - - type: bytes - main_offset: 0x1E165AC - value_type: uint32 - value: 0xD503201F - - - type: bytes - main_offset: 0x1E165B8 - value_type: uint32 - value: - - 0xD0016132 - - 0xB9400408 - - 0xBD44024B - # default value - - - type: bytes - main_offset: 0x4A3C400 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x4A3C400] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/8F6376506EA4E8D5.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/8F6376506EA4E8D5.yaml new file mode 100644 index 0000000..b0420f9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/8F6376506EA4E8D5.yaml @@ -0,0 +1,32 @@ +# No Man's Sky 4.7.0 +# BID: 8F6376506EA4E8D5 + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x4735400 + - + type: bytes + main_offset: 0x1D4D3AC + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1D4D3B8 + value_type: uint32 + value: + - 0x90014F52 + - 0xB9400408 + - 0xBD44024B + # default value + - + type: bytes + main_offset: 0x4735400 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x4735400] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/A0C0DD9E26541179.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/A0C0DD9E26541179.yaml deleted file mode 100644 index 3fa1034..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/A0C0DD9E26541179.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# No Man's Sky 4.4.7 -# BID: A0C0DD9E26541179 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x498C350 - - - type: bytes - main_offset: 0x1D9DE7C - value_type: uint32 - value: 0xD503201F - - - type: bytes - main_offset: 0x1D9DE88 - value_type: uint32 - value: - - 0xF0015F72 - - 0xB9400408 - - 0xBD43524B - # default value - - - type: bytes - main_offset: 0x498C350 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x498C350] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/BCC5B216CC47134F.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/BCC5B216CC47134F.yaml deleted file mode 100644 index ec8cc41..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/BCC5B216CC47134F.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# No Man's Sky 4.5.0 -# BID: BCC5B216CC47134F - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x4A35400 - - - type: bytes - main_offset: 0x1E10DEC - value_type: uint32 - value: 0xD503201F - - - type: bytes - main_offset: 0x1E10DF8 - value_type: uint32 - value: - - 0xB0016132 - - 0xB9400408 - - 0xBD44024B - # default value - - - type: bytes - main_offset: 0x4A35400 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x4A35400] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/C9ABDB1674CBED09.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/C9ABDB1674CBED09.yaml new file mode 100644 index 0000000..cd517e6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/C9ABDB1674CBED09.yaml @@ -0,0 +1,32 @@ +# No Man's Sky 4.7.2 +# BID: C9ABDB1674CBED09 + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x4736400 + - + type: bytes + main_offset: 0x1D4DF5C + value_type: uint32 + value: 0xD503201F + - + type: bytes + main_offset: 0x1D4DF68 + value_type: uint32 + value: + - 0xB0014F52 + - 0xB9400408 + - 0xBD44024B + # default value + - + type: bytes + main_offset: 0x4736400 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x4736400] + value_type: float + value: FRAMETIME_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml deleted file mode 100644 index bded4bb..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/DA7D68D91AB5FA3C.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# No Man's Sky 4.4.5 -# BID: DA7D68D91AB5FA3C - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x49ACD00 - - - type: bytes - main_offset: 0x1D927B0 - value_type: uint32 - value: 0xD503201F - - - type: bytes - main_offset: 0x1D927BC - value_type: uint32 - value: - - 0xD00160D2 - - 0xB9400408 - - 0xBD4D024A - # default value - - - type: bytes - main_offset: 0x49ACD00 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x49ACD00] - value_type: float - value: 16.6666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/010085401A454000/372BF1E32FC51836.yaml b/SaltySD/plugins/FPSLocker/patches/010085401A454000/372BF1E32FC51836.yaml deleted file mode 100644 index b67298f..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010085401A454000/372BF1E32FC51836.yaml +++ /dev/null @@ -1,279 +0,0 @@ -# Jujutsu Kaisen Cursed Clash EUR 1.0.1 -# BID: 372BF1E32FC51836 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 2 decimals - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 60) - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x8013A48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x8056F50, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x73980C8, 0] - value_type: uint32 - value: [0, 0] - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x80567A8, 0x9C4] - value_type: uint32 - value: 7 diff --git a/SaltySD/plugins/FPSLocker/patches/010085401A454000/95761555A341B190.yaml b/SaltySD/plugins/FPSLocker/patches/010085401A454000/95761555A341B190.yaml new file mode 100644 index 0000000..9689065 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010085401A454000/95761555A341B190.yaml @@ -0,0 +1,33 @@ +# Jujutsu Kaisen Cursed Clash EUR 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 diff --git a/SaltySD/plugins/FPSLocker/patches/010085401A454000/EA01C4BA969E8159.yaml b/SaltySD/plugins/FPSLocker/patches/010085401A454000/EA01C4BA969E8159.yaml deleted file mode 100644 index 3968781..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010085401A454000/EA01C4BA969E8159.yaml +++ /dev/null @@ -1,279 +0,0 @@ -# Jujutsu Kaisen Cursed Clash EUR 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 diff --git a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010085500E9D0000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml b/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml index 281e01e..b262b00 100644 --- a/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010086C00AF7C000/C7DAB27F22ACD2ED.yaml @@ -24,64 +24,10 @@ MASTER_WRITE: value: - 0xD503201F - 0xD503201F -15FPS: +ALL_FPS: # DUMMY - type: write address: [MAIN, 0x6AE8500] value_type: uint8 value: 0 -20FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x6AE8500] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml b/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml index eb5b13e..b2de31f 100644 --- a/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010087800DCEA000/6B0B26802F0DAAAF.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x22F50FC] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x22F50FC] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/010088801B324000/919A5D41DCD21F9E.yaml b/SaltySD/plugins/FPSLocker/patches/010088801B324000/919A5D41DCD21F9E.yaml deleted file mode 100644 index 89a9eb5..0000000 --- a/SaltySD/plugins/FPSLocker/patches/010088801B324000/919A5D41DCD21F9E.yaml +++ /dev/null @@ -1,219 +0,0 @@ -# Gungrave G.O.R.E Ultimate Enhanced Edition 1.0.3 -# BID: 919A5D41DCD21F9E - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010088801B324000/9B743181AB8A26F9.yaml b/SaltySD/plugins/FPSLocker/patches/010088801B324000/9B743181AB8A26F9.yaml index 94d2d83..c75e1c3 100644 --- a/SaltySD/plugins/FPSLocker/patches/010088801B324000/9B743181AB8A26F9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010088801B324000/9B743181AB8A26F9.yaml @@ -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, 0x756FE78, 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, 0x759DB18, 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, 0x756FE78, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x756FE78, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x759DB18, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6DA1A88, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml b/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml index c36de5d..e71b1cf 100644 --- a/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008C8012920000/8C93B930348C9787.yaml @@ -73,63 +73,9 @@ MASTER_WRITE: main_offset: 0x4113D10 value_type: float value: 0.0324675 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x4113D00] value_type: float - value: [0.068, 0.056, 0.057971, 0.0526316, 0.064935] -20FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.051, 0.042, 0.04347825, 0.0394737, 0.04870125] -25FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.0408, 0.0336, 0.0347826, 0.03157896, 0.038961] -30FPS: - - # default values - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.034, 0.028, 0.0289855, 0.0263158, 0.0324675] -35FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.02914286, 0.024, 0.02484471, 0.0225564, 0.02782929] -40FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.0255, 0.021, 0.02173913, 0.01973685, 0.02435063] -45FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.02266667, 0.01866667, 0.01932367, 0.01754387, 0.021645] -50FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.0204, 0.0168, 0.0173913, 0.01578948, 0.0194805] -55FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.01854545, 0.01527273, 0.01581027, 0.01435407, 0.01770955] -60FPS: - - - type: write - address: [MAIN, 0x4113D00] - value_type: float - value: [0.017, 0.014, 0.01449275, 0.0131579, 0.01623375] + value: ["(1 / FPS_TARGET) * 1.02", "(1 / FPS_TARGET) * 0.84", "(1 / FPS_TARGET) * 0.87", "(1 / FPS_TARGET) * 0.79", "(1 / FPS_TARGET) * 0.974"] diff --git a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/7735C8DD89D145F2.yaml b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/7735C8DD89D145F2.yaml new file mode 100644 index 0000000..70653f4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/7735C8DD89D145F2.yaml @@ -0,0 +1,85 @@ +# The Legend of Heroes: Trails into Reverie 1.0.4 +# BID: 7735C8DD89D145F2 + +unsafeCheck: true + +MASTER_WRITE: + # Force FPS lock to 60 + - + type: bytes + main_offset: 0x81AB0 + value_type: uint32 + value: 0x72A79108 + # Force refreshing camera to 60 Hz + - + type: bytes + main_offset: 0x81AE4 + value_type: uint32 + value: 0x72A79109 + # Properly scale frametime for FPS drops + - + type: bytes + main_offset: 0x81AEC + value_type: uint32 + value: 0x72B7910A +# Read actual frametime instead of hardcoded 1/30 + # Store actual frametime as float in seconds to MAIN+0x7A52478 + # It sets minimum delta to 1/60 and maximum delta to 1/15 + - + type: bytes + main_offset: 0x8192C + value_type: uint32 + value: 0x14339A82 + - + type: bytes + main_offset: 0xD682D0 + value_type: uint32 + value: + - 0xD0000CE9 + - 0xBD4F0121 + - 0xBD4E0922 + - 0x97FFF941 + - 0xD0036749 + - 0xF942392A + - 0xF9023920 + - 0xCB0A000A + - 0x9E230143 + - 0x528F8009 + - 0x72A97249 + - 0x1E270124 + - 0x1E241864 + - 0xD0036749 + - 0x1E212080 + - 0x54000068 + - 0x1E204024 + - 0x14000004 + - 0x1E222080 + - 0x5400004B + - 0x1E204044 + - 0xBD047924 + - 0x52835E08 + - 0xAA1403E0 + - 0x17CC6580 + - 0xAA0003F4 + - 0x17FFFFE6 + # Read actual frametime as float in seconds from MAIN+0x7A52478 + - + type: bytes + main_offset: 0x81B50 + value_type: uint32 + value: + - 0xB003CE8B + - 0xB944796B + # Default value + - + type: bytes + main_offset: 0x7A52478 + value_type: float + value: 0.033333333333 +ALL_FPS: + # DUMMY + - + type: write + address: [MAIN, 0x7A52500] + value_type: uint8 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml deleted file mode 100644 index af52c40..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/A3E80F5FE073639D.yaml +++ /dev/null @@ -1,132 +0,0 @@ -# The Legend of Heroes: Trails into Reverie 1.0.2 -# BID: A3E80F5FE073639D - -unsafeCheck: true - -MASTER_WRITE: - # Read FPS lock time to MAIN+0x7A51500 - - - type: bytes - main_offset: 0x80DCC - value_type: uint32 - value: - - 0xB003CE88 - - 0xB9450108 - - - type: bytes - main_offset: 0x80E00 - value_type: uint32 - value: - - 0xB003CE89 - - 0xB9450129 - # Default value - - - type: bytes - main_offset: 0x7A51500 - value_type: float - value: 0.0333333333 - # Write game's loop time as float to MAIN+0x7A51504 - - - type: bytes - main_offset: 0x80DD4 - value_type: uint32 - value: 0x94339A8B - - - type: bytes - main_offset: 0xD67800 - value_type: uint32 - value: - - 0x1E227821 - - 0xD0036754 - - 0xBD050681 - - 0xD65F03C0 - - # Read lowest timing float factor from MAIN+0x7A51504 - type: bytes - main_offset: 0x80E70 - value_type: uint32 - value: - - 0xB003CE8B - - 0xB945056B - - # Default value - type: bytes - main_offset: 0x7A51504 - value_type: float - value: 0.0333333333 -15FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.0666666666 -20FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.05 -25FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - # default value - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.0333333333 -35FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.028571428 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.0181818181 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x7A51500] - value_type: float - value: 0.0166666666 diff --git a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/BC3750610F6BCA5C.yaml b/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/BC3750610F6BCA5C.yaml deleted file mode 100644 index d4c77c6..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01008CB0156BC000/BC3750610F6BCA5C.yaml +++ /dev/null @@ -1,132 +0,0 @@ -# The Legend of Heroes: Trails into Reverie 1.0.3 -# BID: BC3750610F6BCA5C - -unsafeCheck: true - -MASTER_WRITE: - # Read FPS lock time to MAIN+0x7A52500 - - - type: bytes - main_offset: 0x8142C - value_type: uint32 - value: - - 0xB003CE88 - - 0xB9450108 - - - type: bytes - main_offset: 0x81460 - value_type: uint32 - value: - - 0xB003CE89 - - 0xB9450129 - # Default value - - - type: bytes - main_offset: 0x7A52500 - value_type: float - value: 0.0333333333 - # Write game's loop time as float to MAIN+0x7A52504 - - - type: bytes - main_offset: 0x81434 - value_type: uint32 - value: 0x94339A8B - - - type: bytes - main_offset: 0xD67E60 - value_type: uint32 - value: - - 0x1E227821 - - 0xF0036754 - - 0xBD050681 - - 0xD65F03C0 - - # Read lowest timing float factor from MAIN+0x7A52504 - type: bytes - main_offset: 0x814D0 - value_type: uint32 - value: - - 0xB003CE8B - - 0xB945056B - - # Default value - type: bytes - main_offset: 0x7A52504 - value_type: float - value: 0.0333333333 -15FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.0666666666 -20FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.05 -25FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - # default value - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.0333333333 -35FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.028571428 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.0181818181 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x7A52500] - value_type: float - value: 0.0166666666 diff --git a/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/B9CC2F4DE53D4F94.yaml b/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/B9CC2F4DE53D4F94.yaml index e34d242..a1b8642 100644 --- a/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/B9CC2F4DE53D4F94.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/B9CC2F4DE53D4F94.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # fixedDeltaTime = 1/FPS - - type: write + type: evaluate_write address: [MAIN, 0x60E4E60, 0x48] value_type: float - value: 0.0666666666 -20FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.05 -25FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.04 -30FPS: - # fixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.0333333333 -35FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.0285714 -40FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.025 -45FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.0222222222 -50FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.02 -55FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.0181818181 -60FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x60E4E60, 0x48] - value_type: float - value: 0.0166666666 \ No newline at end of file + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml b/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml deleted file mode 100644 index 573e8eb..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01008CD0172D6000/D16558D855603353.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# Dredge 1.1.0 -# BID: D16558D855603353 - -unsafeCheck: true - -15FPS: - # fixedDeltaTime = 1/FPS - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0666666666 -20FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.05 -25FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.04 -30FPS: - # fixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0333333333 -35FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0285714 -40FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.025 -45FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0222222222 -50FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.02 -55FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0181818181 -60FPS: - # fixedDeltaTime - - - type: write - address: [MAIN, 0x5E7FE60, 0x48] - value_type: float - value: 0.0166666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008D0016AF4000/FB827BF029E0778A.yaml b/SaltySD/plugins/FPSLocker/patches/01008D0016AF4000/FB827BF029E0778A.yaml index 99bc362..bf973cb 100644 --- a/SaltySD/plugins/FPSLocker/patches/01008D0016AF4000/FB827BF029E0778A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008D0016AF4000/FB827BF029E0778A.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 1 -20FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 1 -25FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 1 -30FPS: - # 30FPS lock bool (default value) - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 1 -35FPS: +ALL_FPS: # 30FPS lock bool - type: write address: [MAIN, 0x9E8D10, 8, 0x6C] value_type: int32 value: 0 -40FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 0 -45FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 0 -50FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 0 -55FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 0 -60FPS: - # 30FPS lock bool - - - type: write - address: [MAIN, 0x9E8D10, 8, 0x6C] - value_type: int32 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008D4007A1E000/C3D46BB3C7059DB1.yaml b/SaltySD/plugins/FPSLocker/patches/01008D4007A1E000/C3D46BB3C7059DB1.yaml index 9e41e43..e3ab78a 100644 --- a/SaltySD/plugins/FPSLocker/patches/01008D4007A1E000/C3D46BB3C7059DB1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008D4007A1E000/C3D46BB3C7059DB1.yaml @@ -25,64 +25,10 @@ MASTER_WRITE: main_offset: 0xB52A14 value_type: uint32 value: 0x52800061 -15FPS: +ALL_FPS: # DUMMY - type: write address: [MAIN, 0x36BF100] value_type: uint8 value: 0 -20FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x36BF100] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml b/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml index a00dfd0..462fde6 100644 --- a/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01008D4015904000/CA77083E259D87A2.yaml @@ -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, 0x7984A48, 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, 0x79B22F8, 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, 0x7984A48, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7984A48, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x79B22F8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml b/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml index bb822f0..0c3498b 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009040091E0000/F2FE5EF877839F4F.yaml @@ -3,253 +3,28 @@ unsafeCheck: true -15FPS: +ALL_FPS: # rs_force460 (default) - type: write address: [MAIN, 0x60E0170] value_type: int32 - value: 0 + value: 1 # rs_raiseMilliseconds (32/(1000/30))*(1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x60E0294] value_type: float - value: 64 + value: "0.96 * FRAMETIME_TARGET" # rs_dropMilliseconds (32.8/(1000/30))*(1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x60E0204] value_type: float - value: 65.6 + value: "0.984 * FRAMETIME_TARGET" # com_adaptiveTickMaxHz (default) - - type: write + type: evaluate_write address: [MAIN, 0x62D0570] value_type: int32 - value: 30 -20FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 0 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 48 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 49.2 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 30 -25FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 0 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 38.4 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 39.36 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 30 -30FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 0 - # rs_raiseMilliseconds (default) - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 32 - # rs_dropMilliseconds (default) - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 32.8 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 30 -35FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 27.43 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 28.11 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 -40FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 24 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 24.6 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 -45FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 21.33 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 21.86 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 -50FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 19.2 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 19.68 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 -55FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 17.45 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 17.89 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 -60FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x60E0170] - value_type: int32 - value: 1 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x60E0294] - value_type: float - value: 16 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x60E0204] - value_type: float - value: 16.4 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x62D0570] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml b/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml index e5cebd2..6193a39 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100906014C3C000/EAB1DC1D53E319F9.yaml @@ -4,87 +4,12 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0xB05B70] value_type: float - value: 0.06666666666 + value: "1 / FPS_TARGET" - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.03333333333 -35FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.02857142857 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.022222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.0181818181818 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0xB05B70] - value_type: float - value: 0.016666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/010090F012916000/D3DD5B220DCEB626.yaml b/SaltySD/plugins/FPSLocker/patches/010090F012916000/D3DD5B220DCEB626.yaml index 8c6d7f8..1a113ff 100644 --- a/SaltySD/plugins/FPSLocker/patches/010090F012916000/D3DD5B220DCEB626.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010090F012916000/D3DD5B220DCEB626.yaml @@ -3,151 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.93 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x6B0C480, 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, 0x6B35A08, 0] value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [46.5, 46.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [37.2, 37.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [25, 25] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value is 31) - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [26.57, 26.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [23.25, 23.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [20.67, 20.67] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [18.6, 18.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [16.91, 16.91] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6B0C480, 0] - value_type: float - value: [15.5, 15.5] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6B35A08, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/8EACFE3E9E92B0FE.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/8EACFE3E9E92B0FE.yaml index 655cf64..b11f77e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100926016012000/8EACFE3E9E92B0FE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100926016012000/8EACFE3E9E92B0FE.yaml @@ -3,73 +3,10 @@ unsafeCheck: false -15FPS: +ALL_FPS: # FuturLab.SingletonMonoBehaviour_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit) - - type: write + type: evaluate_write address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] value_type: int32 - value: 15 -20FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 20 -25FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 25 -30FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (default) - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 30 -35FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 35 -40FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 40 -45FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 45 -50FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 50 -55FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 55 -60FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5F1DC68, 0xB8, 0, 0x28] - value_type: int32 - value: 60 \ No newline at end of file + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml deleted file mode 100644 index 6b9bc6e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100926016012000/E44D9EFDB2F1D0A6.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# PowerWash Simulator 1.2.1 -# BID: E44D9EFDB2F1D0A6 - -unsafeCheck: false - -15FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit) - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 15 -20FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 20 -25FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 25 -30FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (default) - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 30 -35FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 35 -40FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 40 -45FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 45 -50FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 50 -55FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 55 -60FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5833168, 0xB8, 0, 0x28] - value_type: int32 - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/E71C3103420D9574.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/E71C3103420D9574.yaml deleted file mode 100644 index acec67b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100926016012000/E71C3103420D9574.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# PowerWash Simulator 1.6.0 -# BID: E71C3103420D9574 - -unsafeCheck: false - -15FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit) - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 15 -20FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 20 -25FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 25 -30FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (default) - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 30 -35FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 35 -40FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 40 -45FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 45 -50FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 50 -55FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 55 -60FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5CE5C88, 0xB8, 0, 0x28] - value_type: int32 - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/FCFC7462E8DC0E6D.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/FCFC7462E8DC0E6D.yaml deleted file mode 100644 index 014718d..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100926016012000/FCFC7462E8DC0E6D.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# PowerWash Simulator 1.5.2 -# BID: FCFC7462E8DC0E6D - -unsafeCheck: false - -15FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit) - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 15 -20FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 20 -25FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 25 -30FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo (default) - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 30 -35FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 35 -40FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 40 -45FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 45 -50FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 50 -55FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 55 -60FPS: - # FuturLab.SingletonMonoBehaviour_TypeInfo - - - type: write - address: [MAIN, 0x5B2AEA0, 0xB8, 0, 0x28] - value_type: int32 - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml b/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml index 3c19a99..a19687c 100644 --- a/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010092A0172E4000/C4067E8CB3258656.yaml @@ -4,162 +4,25 @@ unsafeCheck: true MASTER_WRITE: + # Set Triple Buffer - type: bytes main_offset: 0x8AA9FBC value_type: int8 value: 0x53 -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.87 * (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0xACCB3D8, 0] value_type: float - value: [58, 58] + value: ["TruncDec(0.87 * FRAMETIME_TARGET, 2)", "TruncDec(0.87 * FRAMETIME_TARGET, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0xACF9130, 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, 0xACCB3D8, 0] - value_type: float - value: [43.5, 43.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [34.8, 34.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [29, 29] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [24.85, 24.85] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [21.75, 21.75] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [19.33, 19.33] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [17.4, 17.4] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [15.81, 15.81] - # t.MaxFPS - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xACCB3D8, 0] - value_type: float - value: [14.5, 14.5] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xACF9130, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml b/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml index 70a3659..abd1d0a 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100956016464000/F9C83728910E28A4.yaml @@ -3,208 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x71160E0, 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, 0x71C39F0, 0] value_type: float - value: [0, 0] - # r.VSync (disabling it improves performance, by default it's enabled) - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x696CDD8, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71160E0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x71C39F0, 0] - value_type: float - value: [0, 0] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write diff --git a/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml b/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml index b4deab0..4d84936 100644 --- a/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010097100EDD6000/7F4216B6E784A4B2.yaml @@ -3,154 +3,19 @@ unsafeCheck: true -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 4 decimals - - type: write + type: evaluate_write address: [MAIN, 0x74A0370, 0] value_type: float - value: [66.6666, 66.6666] - # t.MaxFPS (game needs to be forced to run under 20 FPS, then it slows down) + value: ["TruncDec(FRAMETIME_TARGET, 4)", "TruncDec(FRAMETIME_TARGET, 4)"] + # t.MaxFPS (it slows down below 20 FPS) - - type: write + type: evaluate_write address: [MAIN, 0x74CC710, 0] value_type: float - value: [15, 15] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [20, 20] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [33.3333, 33.3333] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [28.5714, 28.5714] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [22.2222, 22.2222] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74A0370, 0] - value_type: float - value: [16.6666, 16.6666] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x74CC710, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/010097F018538000/2E3EAEB4B6834BEF.yaml b/SaltySD/plugins/FPSLocker/patches/010097F018538000/2E3EAEB4B6834BEF.yaml new file mode 100644 index 0000000..e25e908 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097F018538000/2E3EAEB4B6834BEF.yaml @@ -0,0 +1,13 @@ +# DAVE THE DIVER 1.0.2.812 +# BID: 2E3EAEB4B6834BEF + +unsafeCheck: true + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + # Required for different refresh rates to not jitter + - + type: evaluate_write + address: [MAIN, 0x94E3C00, 0x48] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100982019374000/9DD9149968A0B8D3.yaml b/SaltySD/plugins/FPSLocker/patches/0100982019374000/9DD9149968A0B8D3.yaml index 182f198..5bf4556 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100982019374000/9DD9149968A0B8D3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100982019374000/9DD9149968A0B8D3.yaml @@ -5,77 +5,14 @@ unsafeCheck: false -15FPS: +ALL_FPS: # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) # max ms = 0.925 * (1000/FPS) # optimal ms = 0.9 * (1000/FPS) # min ms = 0.875 * (1000/FPS) - # cris min ms = 0.85 * (1000/FPS) + # crit ms = 0.85 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] value_type: float - value: [61.6667, 60, 58.3333, 56.6667] -20FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [46.25, 45, 43.75, 42.5] -25FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [37, 36, 35, 34] -30FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) (default values) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [30.8333, 30, 29.1667, 28.3333] -35FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [26.4286, 25.7143, 25, 24.2857] -40FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [23.125, 22.5, 21.875, 21.25] -45FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [20.5556, 20, 19.4444, 18.8889] -50FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [18.5, 18, 17.5, 17] -55FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [16.8182, 16.3636, 15.9091, 15.4545] -60FPS: - # Dynamic resolution targets (max ms, optimal ms, min ms, crit ms) - - - type: write - address: [MAIN, 0x4E1BF70, 0x7B0, 0x7F0, 0x20, 0x30] - value_type: float - value: [15.4167, 15, 14.5833, 14.1667] + value: ["0.925 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET", "0.875 * FRAMETIME_TARGET", "0.85 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml b/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml index cb201f0..4afc3ef 100644 --- a/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010099900CAB2000/F2F739A2F1CAFF72.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x171DE2C] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x171DE2C] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml b/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml index caa42a7..df63dce 100644 --- a/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010099C01896C000/60B9AE6094566A23.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.VSync - type: write @@ -12,148 +12,10 @@ unsafeCheck: true value: [0, 0] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7AE9F08, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.VSync (default value is 1, but it's crippling performance for no benefit) - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [0, 0] -35FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.VSync - - - type: write - address: [MAIN, 0x72ED6D8, 0] - value_type: int32 - value: [0, 0] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7AE9F08, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml b/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml index 18b3f92..a765f9f 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009E701356A000/72E8F20EBBDBA296.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x66C53A0, 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, 0x66ED320, 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, 0x66C53A0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66C53A0, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x66ED320, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/E1F0CFC02F449EF3.yaml b/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/E1F0CFC02F449EF3.yaml index 6211e8c..bc7fc0a 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/E1F0CFC02F449EF3.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/E1F0CFC02F449EF3.yaml @@ -10,13 +10,13 @@ MASTER_WRITE: main_offset: 0x41BBB70 value_type: int8 value: 0x53 -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5076DB0, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write @@ -26,135 +26,3 @@ MASTER_WRITE: - type: block what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [30, 30] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5076DB0, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x47DC3F8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml b/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml deleted file mode 100644 index 55529b0..0000000 --- a/SaltySD/plugins/FPSLocker/patches/01009EE0111CC000/EE20B8DD92B8F9B4.yaml +++ /dev/null @@ -1,106 +0,0 @@ -# Ancestors Legacy 1.1.0 -# BID: EE20B8DD92B8F9B4 - -unsafeCheck: true - -# Disable setting double buffer -MASTER_WRITE: - - - type: bytes - main_offset: 0x41BAB80 - value_type: int8 - value: 0x53 -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [30, 30] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5075DB0, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml b/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml index 05095f8..3497139 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009F8017F48000/69EE5F71F187EAA9.yaml @@ -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, 0xAE271C8, 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, 0xAE54F58, 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, 0xAE271C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAE271C8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xAE54F58, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/01009FB0172F4000/F712547C68C66A0A.yaml b/SaltySD/plugins/FPSLocker/patches/01009FB0172F4000/F712547C68C66A0A.yaml index 2c1d75a..86f2f3c 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009FB0172F4000/F712547C68C66A0A.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009FB0172F4000/F712547C68C66A0A.yaml @@ -3,19 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x83D18D8, 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, 0x83FF4B8, 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, 0x83D18D8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x83D18D8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x83FF4B8, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x7C02C68, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml b/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml index 88b8f62..3b81a44 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009FE010876000/407978D722447B25.yaml @@ -3,185 +3,17 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x1D07538] value_type: int32 - value: [15, 2] + value: [FPS_LOCK_TARGET, "1"] - - type: write + type: evaluate_write address: [MAIN, 0x1D1AFC8] value_type: float - value: 15 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 1 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [20, 2] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 20 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 1 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [25, 2] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 25 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 1 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [30, 2] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 30 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 1 -35FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [35, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 35 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 0 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [40, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 40 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 0 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [45, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 45 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 0 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [50, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 50 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 0 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [55, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 55 - - - type: write - address: [MAIN, 0x2A7A8D0] - value_type: int32 - value: 0 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x1D07538] - value_type: int32 - value: [60, 1] - - - type: write - address: [MAIN, 0x1D1AFC8] - value_type: float - value: 60 + value: FPS_TARGET - type: write address: [MAIN, 0x2A7A8D0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A0800E9C4000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/3980F76403AE4CF2.yaml b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/3980F76403AE4CF2.yaml new file mode 100644 index 0000000..e433ed5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/3980F76403AE4CF2.yaml @@ -0,0 +1,80 @@ +# Another Crab's Treasure 1.0.101.1 +# BID: 3980F76403AE4CF2 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect updating various deltas to read frametime target from UnityEngine.Application::targetFrameRate, REF: 08 10 91 52 08 A1 A7 72 + - + type: bytes + main_offset: 0x18A98F0 + value_type: uint32 + value: + - 0xF001EB68 + - 0xB944E908 + - 0x1E230101 + - 0x1E2E1000 + - 0x1E211800 + - + type: bytes + main_offset: 0x18A61B8 + value_type: uint32 + value: + - 0xD001EB88 + - 0xB944E908 + - 0x1E230101 + - 0x1E2E1000 + - 0x1E211800 + # Redirect Dynamic Resolution GPU Timing target in DynamicResolutionScaler::Update to MAIN+0x5A8D908 + - + type: bytes + main_offset: 0x1B06D44 + value_type: uint32 + value: + - 0xF001FC28 + - 0xF9448508 + - 0xD503201F + - 0xD503201F + - + type: bytes + main_offset: 0x1B06DC4 + value_type: uint32 + value: + - 0xF001FC28 + - 0xF9448508 + - 0xBD402A60 + - 0xD503201F + - 0xD503201F + - + type: bytes + main_offset: 0x1B06E38 + value_type: uint32 + value: + - 0xF001FC28 + - 0xF9448508 + - 0xD503201F + - 0xD503201F + # Default values + - + type: bytes + main_offset: 0x56184E8 + value_type: uint32 + value: 30 + - + type: bytes + main_offset: 0x5A8D908 + value_type: double + value: 28.57142857142857 +ALL_FPS: + # UnityEngine.Application::targetFrameRate + - + type: evaluate_write + address: [MAIN, 0x56184E8] + value_type: uint32 + value: FPS_TARGET + # GPU Timing Target + - + type: evaluate_write + address: [MAIN, 0x5A8D908] + value_type: double + value: "1 / (FPS_TARGET + 5)" diff --git a/SaltySD/plugins/FPSLocker/patches/0100A2A01A026000/008F995D1A63B383.yaml b/SaltySD/plugins/FPSLocker/patches/0100A2A01A026000/008F995D1A63B383.yaml index 2b33c93..878c967 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A2A01A026000/008F995D1A63B383.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A2A01A026000/008F995D1A63B383.yaml @@ -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, 0x6D2CBF8, 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, 0x6D5A568, 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, 0x6D2CBF8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 60) - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6D2CBF8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value is 60) - - - type: write - address: [MAIN, 0x6D5A568, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x655EC68, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml new file mode 100644 index 0000000..06314f7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/0D9649011312F62E.yaml @@ -0,0 +1,21 @@ +# OCTOPATH TRAVELER II 1.1.1 +# BID: 0D9649011312F62E + +unsafeCheck: true + +ALL_FPS: + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x76FEF68, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6F017E8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml b/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml deleted file mode 100644 index 5af8e17..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100A3501946E000/BB891294DA55675E.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# OCTOPATH TRAVELER II 1.0.2 -# BID: BB891294DA55675E - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [15, 15] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default is 30) - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x76C9F68, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6ECD018, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml b/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml index b8f077e..ca96f03 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A55019C38000/B9DB6040F70BE58F.yaml @@ -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, 0x69973C8, 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, 0x69C4C68, 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, 0x69973C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x69973C8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x69C4C68, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A6301214E000/8C08B9719E085F91.yaml b/SaltySD/plugins/FPSLocker/patches/0100A6301214E000/8C08B9719E085F91.yaml index 15197af..3450a4c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A6301214E000/8C08B9719E085F91.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A6301214E000/8C08B9719E085F91.yaml @@ -5,193 +5,22 @@ unsafeCheck: false -15FPS: +ALL_FPS: # UnityEngine.QualitySettings::vSyncCount - - type: write + type: evaluate_write address: [MAIN, 0x65ABCA0, 0x30, 0x68] value_type: uint32 - value: 4 + value: VSYNC_TARGET # Internal vSyncCount - - type: write + type: evaluate_write address: [MAIN, 0x62035A0] value_type: uint32 - value: 4 + value: VSYNC_TARGET # App.HubUtil_TypeInfo - - type: write + type: evaluate_write address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] value_type: float - value: 0.28 -20FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 3 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 3 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.21 -25FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 2 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 2 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.168 -30FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 2 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 2 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.14 -35FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.12 -40FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.105 -45FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.0933 -50FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.084 -55FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.0763 -60FPS: - # UnityEngine.QualitySettings::vSyncCount - - - type: write - address: [MAIN, 0x65ABCA0, 0x30, 0x68] - value_type: uint32 - value: 1 - # Internal vSyncCount - - - type: write - address: [MAIN, 0x62035A0] - value_type: uint32 - value: 1 - # App.HubUtil_TypeInfo - - - type: write - address: [MAIN, 0x6157F28, 0xB8, 0, 0x20] - value_type: float - value: 0.07 + value: "(30 / FPS_TARGET) * 0.14" diff --git a/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml b/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml index 7626347..fed4717 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A6B01900E000/9E0901B84058B5B4.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x74CD708, 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, 0x74CD708, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x74CD708, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml b/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml index b5fa8b2..b5576d6 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A73016576000/4E2AA28721AFF2C1.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Dynamic resolution frametime target in ms = (1000/FPS) minus 2 with cutted decimals - - type: write + type: evaluate_write address: [MAIN, 0x53C9710, 0x44F8] value_type: double - value: 64 -20FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 48 -25FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 38 -30FPS: - # Dynamic resolution frametime target in ms (default is 33, but because required difference for DR to really kick in is 2ms, we will lower it to get better performance) - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 31 -35FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 27 -40FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 23 -45FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 20 -50FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 18 -55FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 16 -60FPS: - # Dynamic resolution frametime target in ms - - - type: write - address: [MAIN, 0x53C9710, 0x44F8] - value_type: double - value: 14 + value: "TruncDec(FRAMETIME_TARGET - 2, 0)" diff --git a/SaltySD/plugins/FPSLocker/patches/0100A88012504000/0D17FD76B32F3040.yaml b/SaltySD/plugins/FPSLocker/patches/0100A88012504000/0D17FD76B32F3040.yaml index 3440f12..264a120 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A88012504000/0D17FD76B32F3040.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A88012504000/0D17FD76B32F3040.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DynamicResolutionManager_TypeInfo - - type: write + type: evaluate_write address: [MAIN, 0x6A6E2D8, 0xB8, 4] value_type: float - value: 15 -20FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 20 -25FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 25 -30FPS: - # DynamicResolutionManager_TypeInfo (default value) - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 30 -35FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 36 -40FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 41 -45FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 46 -50FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 51 -55FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 56 -60FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x6A6E2D8, 0xB8, 4] - value_type: float - value: 61 + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml b/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml deleted file mode 100644 index acc639e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100A88012504000/116535367286904C.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# art of rally 1.1.6 -# BID: 116535367286904C - -unsafeCheck: true - -15FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 15 -20FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 20 -25FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 25 -30FPS: - # DynamicResolutionManager_TypeInfo (default value) - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 30 -35FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 36 -40FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 41 -45FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 46 -50FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 51 -55FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 56 -60FPS: - # DynamicResolutionManager_TypeInfo - - - type: write - address: [MAIN, 0x5F43270, 0xB8, 4] - value_type: float - value: 61 diff --git a/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml index 1868803..94d7349 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A8B00F0B4000/92511355705EA8C5.yaml @@ -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, 0x66951B0, 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, 0x66BBA30, 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, 0x66951B0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x66951B0, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x66BBA30, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml b/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml index e3d195f..0878510 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A8E016236000/82AF4E16BBC0BEC8.yaml @@ -129,79 +129,10 @@ MASTER_WRITE: - 0xD37DF14C - 0x9120A114 - 0xF9000289 -15FPS: +ALL_FPS: # Interval - - type: write + type: evaluate_write address: [MAIN, 0xBEBFD8, 0] value_type: int32 - value: 4 - - - type: block - what: timing -20FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 3 - - - type: block - what: timing -25FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 2 -30FPS: - # Interval (default value) - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 2 -35FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 -40FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 -45FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 -50FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 -55FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 -60FPS: - # Interval - - - type: write - address: [MAIN, 0xBEBFD8, 0] - value_type: int32 - value: 1 + value: VSYNC_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100A9001C042000/3565E26E8827C846.yaml b/SaltySD/plugins/FPSLocker/patches/0100A9001C042000/3565E26E8827C846.yaml new file mode 100644 index 0000000..683c8b3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A9001C042000/3565E26E8827C846.yaml @@ -0,0 +1,34 @@ +# Neptunia: Sisters VS Sisters 1.0.0 +# BID: 3565E26E8827C846 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR timing range to MAIN + 0x86B9F00 + - + type: bytes + main_offset: 0x3DC5E90 + value_type: uint32 + value: + - 0x900247A8 + - 0xB94F0108 + - + type: bytes + main_offset: 0x3DC5EFC + value_type: uint32 + value: + - 0x900247A8 + - 0xB94F0508 + # Default values + - + type: bytes + main_offset: 0x86B9F00 + value_type: float + value: [33.33, 28.57] +ALL_FPS: + # DR timing + - + type: evaluate_write + address: [MAIN, 0x86B9F00] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(1000 / (FPS_TARGET + 5), 2)"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml b/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml index 974eb50..036e477 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100A93016BF4000/770A07C35E631CB2.yaml @@ -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, 0x74F84C8, 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, 0x7526058, 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, 0x74F84C8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74F84C8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7526058, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml b/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml index 0ca5443..7a0e04a 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AA400A238000/14D7D1537BD5A986.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x5C63550, 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, 0x5C880D8, 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, 0x5C63550, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5C63550, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5C880D8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml b/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml index 7be0586..f84fedf 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AA60136D2000/F73C6504D378C38B.yaml @@ -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, 0x978D988, 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, 0x97BB4E0, 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, 0x978D988, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x978D988, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97BB4E0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AC601DCA8000/4584432786F462DB.yaml b/SaltySD/plugins/FPSLocker/patches/0100AC601DCA8000/4584432786F462DB.yaml index f6e72ad..d5a1d70 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AC601DCA8000/4584432786F462DB.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AC601DCA8000/4584432786F462DB.yaml @@ -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, 0x6EE85F8, 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, 0x6F16298, 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, 0x6EE85F8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6EE85F8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6F16298, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x6719188, 0] - value_type: uint32 - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml b/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml index 8f26884..fc86e57 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AD0014AB4000/AC8C8EC9DB1A8EF4.yaml @@ -4,87 +4,12 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x80C9F0] value_type: float - value: 0.06666666666 + value: "1 / FPS_TARGET" - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.03333333333 -35FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.02857142857 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.022222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.0181818181818 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x80C9F0] - value_type: float - value: 0.016666666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml b/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml index da6d0ad..024304e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AD10102B2000/D89FFAA2062E373D.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Dynamic resolution FPS factor - - type: write + type: evaluate_write address: [MAIN, 0x29B4BA0, 0] value_type: float - value: 15 -20FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 20 -25FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 25 -30FPS: - # Dynamic resolution FPS factor (default) - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 30 -35FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 35 -40FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 40 -45FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 45 -50FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 50 -55FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 55 -60FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x29B4BA0, 0] - value_type: float - value: 60 + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml b/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml index 39bf8ea..03c416a 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100AE7010434000/5915CDDDC4EEA6CD.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x63C5618, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x63F25B0, 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, 0x63C5618, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [25.714, 25.714] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [16.3636, 16.3636] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63C5618, 0] - value_type: float - value: [15, 15] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63F25B0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml deleted file mode 100644 index e78349b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/11C9CE3F0676EEFD.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise 14.0.0 -# BID: 11C9CE3F0676EEFD - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x12257C30, 0x434] - value_type: float - value: 60 - - - type: block - what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml deleted file mode 100644 index 00fe078..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/55D50CA1805E9C5B.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise 16.0.1 -# BID: 55D50CA1805E9C5B - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x12950348, 0x434] - value_type: float - value: 60 - - - type: block - what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml deleted file mode 100644 index 4a066f9..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/60EFBA0CB724E3FE.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise 15.0.0 -# BID: 60EFBA0CB724E3FE - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x128CEEB8, 0x434] - value_type: float - value: 60 - - - type: block - what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml deleted file mode 100644 index 14ad90b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/9B50DDD970E50DD5.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# Monster Hunter Rise 15.0.1 -# BID: 9B50DDD970E50DD5 - -unsafeCheck: false - -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 15 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x12839EB8, 0x434] - value_type: float - value: 60 - - - type: block - what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/C9A3DD7702075ECD.yaml b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/C9A3DD7702075ECD.yaml index d874447..28cf44f 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B04011742000/C9A3DD7702075ECD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B04011742000/C9A3DD7702075ECD.yaml @@ -3,94 +3,13 @@ unsafeCheck: false -# Disable NX-FPS delay function to prioritize game's own FPS lock. -15FPS: +ALL_FPS: + # Internal FPS lock - - type: write + type: evaluate_write address: [MAIN, 0x1295B3F0, 0x434] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x1295B3F0, 0x434] - value_type: float - value: 60 - - - type: block - what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml b/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml index 7af9919..53d5e6b 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B16009C10000/490D681909609015.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate - type: write @@ -17,148 +17,10 @@ unsafeCheck: true value: 7 # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5CCEBA8, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5CCE320, 0x750] - value_type: uint32 - value: 7 - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5CCEBA8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml b/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml deleted file mode 100644 index ef7471f..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/5AF6F31EAC42D8C0.yaml +++ /dev/null @@ -1,375 +0,0 @@ -# DOOM Eternal 1.13 -# BID: 5AF6F31EAC42D8C0 - -unsafeCheck: true - -15FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold = 0.948 * (30/FPS) - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 1.896 - # rs_dropThreshold = 0.97 * (30/FPS) - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 1.94 - # rs_raiseMilliseconds = 0.96 * (1000/FPS) - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 64 - # rs_dropMilliseconds = 0.99 * (1000/FPS) - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 66 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 30 -20FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 1.455 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 1.428 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 48 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 49.5 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 30 -25FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 1.1376 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 1.164 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 38.4 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 39.6 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 30 -30FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold (default) - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.948 - # rs_dropThreshold (default) - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.97 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 32 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 33 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 30 -35FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.81 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.831 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 27.428 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 28.285 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 -40FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.7095 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.7275 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 24 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 24.75 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 -45FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.63 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.646 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 21.33 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 22 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 -50FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.576 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.582 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 0.5676 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 19.8 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 -55FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.516 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.529 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 17.45 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 18 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 -60FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x792F238, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x792E9C8, 0xC] - value_type: float - value: 0.473 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x792E950, 0xC] - value_type: float - value: 0.485 - # rs_raiseMilliseconds (exefs default) - - - type: write - address: [MAIN, 0x792E578, 0xC] - value_type: float - value: 16 - # rs_dropMilliseconds (exefs default) - - - type: write - address: [MAIN, 0x792E500, 0xC] - value_type: float - value: 16.5 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A674F8, 8] - value_type: int32 - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/B059C2C77AD834B8.yaml b/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/B059C2C77AD834B8.yaml index df3cc53..7f2d600 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/B059C2C77AD834B8.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B1A00D8CE000/B059C2C77AD834B8.yaml @@ -3,373 +3,40 @@ unsafeCheck: true -15FPS: +ALL_FPS: # rs_force460 (default) - type: write address: [MAIN, 0x78DAC38, 8] value_type: int32 - value: 0 + value: 1 # rs_raiseThreshold = 0.948 * (30/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x78DA3C8, 0xC] value_type: float - value: 1.896 + value: "(30 / FPS_TARGET) * 0.948" # rs_dropThreshold = 0.97 * (30/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x78DA350, 0xC] value_type: float - value: 1.94 + value: "(30 / FPS_TARGET) * 0.97" # rs_raiseMilliseconds = 0.96 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x78D9F78, 0xC] value_type: float - value: 64 + value: "0.96 * FRAMETIME_TARGET" # rs_dropMilliseconds = 0.99 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x78D9F00, 0xC] value_type: float - value: 66 + value: "0.99 * FRAMETIME_TARGET" # com_adaptiveTickMaxHz (default) - type: write address: [MAIN, 0x6A12F38, 8] value_type: int32 - value: 30 -20FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 1.455 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 1.428 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 48 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 49.5 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 30 -25FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 1.1376 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 1.164 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 38.4 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 39.6 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 30 -30FPS: - # rs_force460 (default) - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 0 - # rs_raiseThreshold (default) - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.948 - # rs_dropThreshold (default) - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.97 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 32 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 33 - # com_adaptiveTickMaxHz (default) - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 30 -35FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.81 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.831 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 27.428 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 28.285 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 -40FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.7095 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.7275 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 24 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 24.75 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 -45FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.63 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.646 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 21.33 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 22 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 -50FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.576 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.582 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 0.5676 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 19.8 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 -55FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.516 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.529 - # rs_raiseMilliseconds - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 17.45 - # rs_dropMilliseconds - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 18 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 -60FPS: - # rs_force460 - - - type: write - address: [MAIN, 0x78DAC38, 8] - value_type: int32 - value: 1 - # rs_raiseThreshold - - - type: write - address: [MAIN, 0x78DA3C8, 0xC] - value_type: float - value: 0.473 - # rs_dropThreshold - - - type: write - address: [MAIN, 0x78DA350, 0xC] - value_type: float - value: 0.485 - # rs_raiseMilliseconds (exefs default) - - - type: write - address: [MAIN, 0x78D9F78, 0xC] - value_type: float - value: 16 - # rs_dropMilliseconds (exefs default) - - - type: write - address: [MAIN, 0x78D9F00, 0xC] - value_type: float - value: 16.5 - # com_adaptiveTickMaxHz - - - type: write - address: [MAIN, 0x6A12F38, 8] - value_type: int32 - value: 60 + value: 120 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml b/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml index b12dfdb..fc4636c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B28014132000/810CBA3D7DB83EC0.yaml @@ -30,237 +30,27 @@ MASTER_WRITE: main_offset: 0x1240E2C value_type: uint32 value: 0xBD41F100 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x1E761E0] value_type: int32 - value: 4 + value: VSYNC_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x1E761E4] value_type: float - value: 15 + value: FPS_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x1E761E8] value_type: int32 - value: [4, 15] + value: [VSYNC_TARGET, FPS_LOCK_TARGET] - - type: write + type: evaluate_write address: [MAIN, 0x1E761F0] value_type: float - value: 15 + value: FPS_TARGET - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 3 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 20 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [3, 20] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 2 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 25 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [2, 30] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 30 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 2 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 30 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [2, 30] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 30 -35FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 35 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 40 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 45 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 50 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 55 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x1E761E0] - value_type: int32 - value: 1 - - - type: write - address: [MAIN, 0x1E761E4] - value_type: float - value: 60 - - - type: write - address: [MAIN, 0x1E761E8] - value_type: int32 - value: [1, 60] - - - type: write - address: [MAIN, 0x1E761F0] - value_type: float - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml b/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml index 514f6d9..42cb969 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B2B00E7AA000/FAD1AF4EDC6DB267.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bSmoothFrameRate and bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write @@ -17,208 +17,16 @@ unsafeCheck: true value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x5354210, 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, 0x537A880, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bSmoothFrameRate and bUseFixedFrameRate - - - type: write - address: [MAIN, 0x5379338, 0x780] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5354210, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x537A880, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml b/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml deleted file mode 100644 index 8165ef2..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/CEE6B8B19D3A863E.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# MotoGP 23 1.0.3 -# BID: CEE6B8B19D3A863E - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD51FD8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xAD80450, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/FF0DDCCB9C3B9375.yaml b/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/FF0DDCCB9C3B9375.yaml index 43bc844..bb8ce2f 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/FF0DDCCB9C3B9375.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B750198C6000/FF0DDCCB9C3B9375.yaml @@ -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, 0xAD6AFD8, 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, 0xAD99450, 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, 0xAD6AFD8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xAD6AFD8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xAD99450, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0xA5962D8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B76011DAA000/C5D73D3EDAADACB2.yaml b/SaltySD/plugins/FPSLocker/patches/0100B76011DAA000/C5D73D3EDAADACB2.yaml index f2d858f..fc175b1 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B76011DAA000/C5D73D3EDAADACB2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B76011DAA000/C5D73D3EDAADACB2.yaml @@ -3,164 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x678E840, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x67C2EC0, 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, 0x678E840, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [20, 20] - - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [25, 25] - - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [25.71, 25.71] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [35, 35] - - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [40, 40] - - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [45, 45] - - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [50, 50] - - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [16.36, 16.36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [55, 55] - - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x678E840, 0] - value_type: float - value: [15, 15] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x67C2EC0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml b/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml index a458556..62a3e17 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B7A01386E000/39F1BCCB912A12DF.yaml @@ -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, 0x75E5BF8, 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, 0x7613BF8, 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, 0x75E5BF8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75E5BF8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7613BF8, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml b/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml index a297c4e..6838abe 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B8501771A000/78BF042012CF9EE8.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals - - type: write + type: evaluate_write address: [MAIN, 0x797AA98, 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, 0x79A7F48, 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, 0x797AA98, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x797AA98, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x79A7F48, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml b/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml index 22f0a51..b2effd2 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100B870126CE000/019FBFE7738EA314.yaml @@ -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, 0x75F81D0, 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, 0x7621D70, 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, 0x75F81D0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (by default it's 40, obviously we don't want that) - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value for cutscenes is 30, everything else is 0) - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75F81D0, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7621D70, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml b/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml index e0a9bf7..8e7b7ef 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100BB000A3AA000/B61F280560A937D2.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: - # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 60 -20FPS: +ALL_FPS: # Dynamic Resolution frame time target - - type: write + type: evaluate_write address: [MAIN, 0x155A880, 4] value_type: float - value: 45 -25FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 36 -30FPS: - # Dynamic Resolution frame time target (default value) - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 30 -35FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 25.71 -40FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 22.5 -45FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 20 -50FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 18 -55FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 16.36 -60FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x155A880, 4] - value_type: float - value: 15 \ No newline at end of file + value: "0.9 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100BC501355A000/7C9F89C3743F202F.yaml b/SaltySD/plugins/FPSLocker/patches/0100BC501355A000/7C9F89C3743F202F.yaml index 5283664..8f83067 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100BC501355A000/7C9F89C3743F202F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100BC501355A000/7C9F89C3743F202F.yaml @@ -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, 0x592B098, 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, 0x5957B60, 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, 0x592B098, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x592B098, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5957B60, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x51EF3A8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml b/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml index 124a55a..22871b9 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100BD000CB2C000/1F1363EC8CC83C73.yaml @@ -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, 0x674CAA0, 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, 0x6791950, 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, 0x674CAA0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674CAA0, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6791950, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/1CE25F1C48FE03E0.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/1CE25F1C48FE03E0.yaml deleted file mode 100644 index 2c3c069..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/1CE25F1C48FE03E0.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.56.39f6 -# BID: 1CE25F1C48FE03E0 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/211F141951057FBA.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/211F141951057FBA.yaml deleted file mode 100644 index cd15e42..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/211F141951057FBA.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.56.46a8 -# BID: 211F141951057FBA - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/29D2EC9632DE7D8C.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/29D2EC9632DE7D8C.yaml deleted file mode 100644 index 224381b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/29D2EC9632DE7D8C.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.56.a976 -# BID: 29D2EC9632DE7D8C - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/355CD175B2498C22.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/355CD175B2498C22.yaml deleted file mode 100644 index 7a594be..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/355CD175B2498C22.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.55.6363 -# BID: 355CD175B2498C22 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD65E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/51D25A22EBBBAB37.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/51D25A22EBBBAB37.yaml deleted file mode 100644 index e3ca400..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/51D25A22EBBBAB37.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.55.bc14 -# BID: 51D25A22EBBBAB37 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD69E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/538BB4DE29BF89F3.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/538BB4DE29BF89F3.yaml deleted file mode 100644 index b1b45e7..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/538BB4DE29BF89F3.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.55.7eb0 -# BID: 538BB4DE29BF89F3 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD68E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml deleted file mode 100644 index bb43060..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/58636D33E56B931B.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# EA SPORTS FC 24 1.54.2d45 -# BID: 58636D33E56B931B - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 15 - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 20 - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 30 -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD52EC0, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/59BAA4874FE56C9A.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/59BAA4874FE56C9A.yaml deleted file mode 100644 index 631c620..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/59BAA4874FE56C9A.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.54.872c -# BID: 59BAA4874FE56C9A - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD53E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml deleted file mode 100644 index 0ed5574..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/6B6D4D60E3187FFC.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# EA SPORTS FC 24 1.0.0 -# BID: 6B6D4D60E3187FFC - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 15 - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 20 - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 30 -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD17BE0, 8] - value_type: double - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/9C33602289E55F7A.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/9C33602289E55F7A.yaml deleted file mode 100644 index 2692913..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/9C33602289E55F7A.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.54.6f8d -# BID: 9C33602289E55F7A - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD45EC0, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A5513651324F6B73.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A5513651324F6B73.yaml new file mode 100644 index 0000000..96699f4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A5513651324F6B73.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.59.4045 +# BID: A5513651324F6B73 + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDEBE20, 8] + value_type: double + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml deleted file mode 100644 index 68241ef..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/A8D4FEE18023F15C.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# EA SPORTS FC 24 1.53.dd6d -# BID: A8D4FEE18023F15C - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 15 - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 20 - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 30 -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xB89BE98, 8] - value_type: double - value: 60 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/B66D2F51A32F54A5.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/B66D2F51A32F54A5.yaml deleted file mode 100644 index eaa9ba6..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/B66D2F51A32F54A5.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.57.20c8 -# BID: B66D2F51A32F54A5 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/C621E3FB41BF3858.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/C621E3FB41BF3858.yaml deleted file mode 100644 index 94764ed..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/C621E3FB41BF3858.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.54.e482 -# BID: C621E3FB41BF3858 - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD5FE20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml deleted file mode 100644 index 5780e46..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E0A5A92EA4F37A3A.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# EA SPORTS FC 24 1.54.1d19 -# BID: E0A5A92EA4F37A3A - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 15 - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 20 - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 30 -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0xCD40E00, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E6943FAD2661916E.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E6943FAD2661916E.yaml deleted file mode 100644 index 7aced85..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/E6943FAD2661916E.yaml +++ /dev/null @@ -1,93 +0,0 @@ -# EA SPORTS FC 24 1.56.d68f -# BID: E6943FAD2661916E - -unsafeCheck: true - -15FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 15 -20FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 20 -25FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 25 - - - type: block - what: timing -30FPS: - # Internal FPS Lock (default value is 30) - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 30 -35FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 35 - - - type: block - what: timing -40FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 40 - - - type: block - what: timing -45FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 45 - - - type: block - what: timing -50FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 50 - - - type: block - what: timing -55FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 55 - - - type: block - what: timing -60FPS: - # Internal FPS Lock - - - type: write - address: [MAIN, 0xCD73E20, 8] - value_type: double - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/EC2417892C9BCC7E.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/EC2417892C9BCC7E.yaml new file mode 100644 index 0000000..fdfae80 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/EC2417892C9BCC7E.yaml @@ -0,0 +1,12 @@ +# EA SPORTS FC 24 1.59.1a28 +# BID: EC2417892C9BCC7E + +unsafeCheck: true + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xCDEAE20, 8] + value_type: double + value: FPS_LOCK_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml deleted file mode 100644 index c72e939..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/12E0B62494B22F62.yaml +++ /dev/null @@ -1,166 +0,0 @@ -# Bloodstained: Ritual of the Night 1.40 -# BID: 12E0B62494B22F62 - -unsafeCheck: true - -MASTER_WRITE: - # Disable double buffer - - - type: bytes - main_offset: 0xABD8294 - value_type: int8 - value: 0x53 -15FPS: - # r.DynamicRes.FrameTimeBudget = 0.84 * (1000/FPS) - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [56, 56] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [42, 42] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [33.6, 33.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [28, 28] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [24, 24] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [18.66, 18.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [16.8, 16.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [15.27, 15.27] - # t.MaxFPS - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xCF57E90, 0] - value_type: float - value: [14, 14] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xCF7EC80, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/E380EB35262B4F9C.yaml b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/E380EB35262B4F9C.yaml new file mode 100644 index 0000000..dcb678f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/E380EB35262B4F9C.yaml @@ -0,0 +1,34 @@ +# Bloodstained: Ritual of the Night 1.50 +# BID: E380EB35262B4F9C + +unsafeCheck: true + +MASTER_WRITE: + # Disable double buffer + - + type: bytes + main_offset: 0xB06BD54 + value_type: int8 + value: 0x53 +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0xCC0BCA8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0xD43BE90, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xD462F10, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml deleted file mode 100644 index d5e8fc8..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4FFB62F1CD9E17F8.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml index 3c88651..7473097 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml b/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml index 46241aa..bfc8f94 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml @@ -6,73 +6,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Interval - - type: write + type: evaluate_write address: [MAIN, 0x8C4534] value_type: int32 - value: 4 -20FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 3 -25FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 2 -30FPS: - # Interval (default value in gameplay) - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 2 -35FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 -40FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 -45FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 -50FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 -55FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 -60FPS: - # Interval - - - type: write - address: [MAIN, 0x8C4534] - value_type: int32 - value: 1 + value: VSYNC_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml b/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml index 9fcb229..ad5f3f1 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C09014530000/D92F465FE9920BB6.yaml @@ -19,73 +19,10 @@ MASTER_WRITE: main_offset: 0x5E9AFF0 value_type: float value: 28 -15FPS: +ALL_FPS: # DynamicResolution.Settings$$get_TargetFPS - - type: write + type: evaluate_write address: [MAIN, 0x5E9AFF0] value_type: float - value: 15 -20FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 20 -25FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 25 -30FPS: - # DynamicResolution.Settings$$get_TargetFPS (default is 28) - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 30 -35FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 35 -40FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 40 -45FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 45 -50FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 50 -55FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 55 -60FPS: - # DynamicResolution.Settings$$get_TargetFPS - - - type: write - address: [MAIN, 0x5E9AFF0] - value_type: float - value: 60 + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml b/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml index 4c81773..ed4a50d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C0F0020E8000/D0798521F563E6A7.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x49012B8, 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, 0x49012B8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [30, 30] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x49012B8, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml index 716d5b7..5517932 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C1300BBC6000/59719CFCD1671B98.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6228EE0, 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, 0x6228EE0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x6228EE0, 0] - value_type: float - value: [60, 60] diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/27BB06DD145F39F5.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/27BB06DD145F39F5.yaml index 3ab6e46..0045f92 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/27BB06DD145F39F5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/27BB06DD145F39F5.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - type: write @@ -16,123 +16,10 @@ unsafeCheck: true address: [MAIN, 0x38D2780, 0x100] value_type: float value: 0.0666666666 + # fixedDeltaTime + # Fixes an issue with player character jittering at different refresh rates - - type: block - what: timing -20FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] + type: evaluate_write + address: [MAIN, 0x38D2780, 0x48] value_type: float - value: 0.0666666666 -25FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -30FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo (by default it's 2, but this will be locked to nvn interval by FPSLocker when active) - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0333333333 -35FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -40FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -45FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -50FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -55FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -60FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 \ No newline at end of file + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/5F0C6E385D6E3F8D.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/5F0C6E385D6E3F8D.yaml deleted file mode 100644 index a3cba3e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/5F0C6E385D6E3F8D.yaml +++ /dev/null @@ -1,138 +0,0 @@ -# Raccoo Venture 1.0.2 -# BID: 5F0C6E385D6E3F8D - -unsafeCheck: true - -15FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime, ref: UnityEngine.Time::get_timeScale - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 - - - type: block - what: timing -20FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -25FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -30FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo (by default it's 2, but this will be locked to nvn interval by FPSLocker when active) - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0333333333 -35FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -40FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -45FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -50FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -55FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 -60FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x3482FB0, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38D2780, 0x100] - value_type: float - value: 0.0666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/7CDFB80365E4D30C.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/7CDFB80365E4D30C.yaml deleted file mode 100644 index ca39da1..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100C1E01CDEE000/7CDFB80365E4D30C.yaml +++ /dev/null @@ -1,138 +0,0 @@ -# Raccoo Venture 1.0.1 -# BID: 7CDFB80365E4D30C - -unsafeCheck: true - -15FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime, ref: UnityEngine.Time::get_timeScale - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 - - - type: block - what: timing -20FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -25FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -30FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo (by default it's 2, but this will be locked to nvn interval by FPSLocker when active) - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime (default value) - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.0333333333 -35FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -40FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -45FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -50FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -55FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 -60FPS: - # _UnityEngine.Rendering.OnDemandRendering_TypeInfo - - - type: write - address: [MAIN, 0x347FD50, 0xB8, 0] - value_type: int32 - value: 1 - # maxFixedDeltaTime - - - type: write - address: [MAIN, 0x38CF640, 0x100] - value_type: float - value: 0.05 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml b/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml index 4f6b78c..29a801e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C3C012718000/2CF52C8DA4468946.yaml @@ -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, 0x74FD298, 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, 0x7521FE0, 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, 0x74FD298, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 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, 0x74FD298, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x74FD298, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7521FE0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml b/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml index dd62b61..d6cd145 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C6C010AE4000/FE211DBFAD6EA549.yaml @@ -3,68 +3,13 @@ unsafeCheck: false -15FPS: +ALL_FPS: # Dynamic Resolution GPU Frame Timing target in ms = 0.9 * (1000/FPS) # It was derived by hooking `PSH.DynamicResolutionManager$$ScaleResolutionToAchieveFrameRate` before its first use # at instruction `LDR d1, [x8, #0x18]` # Then Edizon-SE's Pointer Search was used to find reliable offset chain - - type: write + type: evaluate_write address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] value_type: double - value: 60 -20FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 45 -25FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 36 -30FPS: - # Default - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 30 -35FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 25.71 -40FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 22.5 -45FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 20 -50FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 18 -55FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 16.3636 -60FPS: - - - type: write - address: [MAIN, 0x3E8B368, 0x20, 0x620, 0x18] - value_type: double - value: 15 \ No newline at end of file + value: "0.9 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml b/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml index aa245b9..5a9073b 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C7300EEE4000/54211726D36A8D9C.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: - # Dynamic Resolution frame time target = (30/(1000/30)) * (1000/FPS) - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 60 -20FPS: +ALL_FPS: # Dynamic Resolution frame time target - - type: write + type: evaluate_write address: [MAIN, 0xDD9A88, 4] value_type: float - value: 45 -25FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 36 -30FPS: - # Dynamic Resolution frame time target (default value) - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 30 -35FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 25.71 -40FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 22.5 -45FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 20 -50FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 18 -55FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 16.36 -60FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0xDD9A88, 4] - value_type: float - value: 15 \ No newline at end of file + value: "0.9 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml b/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml deleted file mode 100644 index 79a1a6e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/32BF1643370F70AA.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# Sherlock Holmes The Awakened 1.0.0 -# BID: 32BF1643370F70AA - -unsafeCheck: true - -15FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D7E968, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/A1E1EFBA68B846A9.yaml b/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/A1E1EFBA68B846A9.yaml index 2339f9f..4fbdece 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/A1E1EFBA68B846A9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CA800F9B2000/A1E1EFBA68B846A9.yaml @@ -3,13 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7D81968, 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, 0x7D81968, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x7D81968, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x75811D8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml index a9ff2a3..086e40c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CC00102B4000/8AFCBE6A930CD42E.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 4 decimals - - type: write + type: evaluate_write address: [MAIN, 0x7DB2AB0, 0] value_type: float - value: [66.6666, 66.6666] + value: ["TruncDec(FRAMETIME_TARGET, 4)", "TruncDec(FRAMETIME_TARGET, 4)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x7DDEF90, 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, 0x7DB2AB0, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [33.3333, 33.3333] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [30, 30] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [28.5714, 28.5714] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [22.2222, 22.2222] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [18.1818, 18.1818] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7DB2AB0, 0] - value_type: float - value: [16.6666, 16.6666] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7DDEF90, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC3014886000/9265FE6C4DE9600E.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC3014886000/9265FE6C4DE9600E.yaml index 9df4ee4..fa2d717 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CC3014886000/9265FE6C4DE9600E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CC3014886000/9265FE6C4DE9600E.yaml @@ -3,13 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x5F9DBA0, 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, 0x5F9DBA0, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5F9DBA0, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x5413CD8, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml deleted file mode 100644 index e8e0e32..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/2AA7F33234696651.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Triangle Strategy 1.0.2 -# BID: 2AA7F33234696651 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [63, 63] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [47.25, 47.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [37.8, 37.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [27, 27] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [23.625, 23.625] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [18.9, 18.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [17.18, 17.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/9CB4490E8A718BAE.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/9CB4490E8A718BAE.yaml index 2d19c98..7289d8c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/9CB4490E8A718BAE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/9CB4490E8A718BAE.yaml @@ -3,151 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) - - type: write + type: evaluate_write address: [MAIN, 0x7473838, 0] value_type: float - value: [63, 63] + value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x74A1408, 0] value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [47.25, 47.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [37.8, 37.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [25, 25] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [27, 27] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [23.625, 23.625] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [18.9, 18.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [17.18, 17.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7473838, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x74A1408, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml deleted file mode 100644 index 39da7d4..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100CC80140F8000/F7C20294EFF7E6FA.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# Triangle Strategy 1.0.3 -# BID: F7C20294EFF7E6FA - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [63, 63] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [47.25, 47.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [37.8, 37.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [27, 27] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [23.625, 23.625] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [18.9, 18.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [17.18, 17.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x745D838, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x748B408, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml b/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml index d3e387b..42d1840 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CD3010AE2000/53EA0196A4AEB260.yaml @@ -66,447 +66,48 @@ MASTER_WRITE: main_offset: 0x3608E0C value_type: float value: [31.5, 33.25] -15FPS: +ALL_FPS: # sys_MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x34382D8] value_type: int32 - value: 15 + value: FPS_LOCK_TARGET # Renderer thread delay (default value) - type: write address: [MAIN, 0x3466BB0] value_type: float - value: 0.022 + value: 0.01 - - type: write + type: evaluate_write address: [MAIN, 0x3443CA4] value_type: float - value: 57 + value: "0.855 * FRAMETIME_TARGET" # MAIN + 0x22EA494 - - type: write + type: evaluate_write address: [MAIN, 0x3608E00] value_type: float - value: 67 + value: "1.005 * FRAMETIME_TARGET" # MAIN + 0x22EAE14 - - type: write + type: evaluate_write address: [MAIN, 0x3608E04] value_type: float - value: 61 + value: "0.915 * FRAMETIME_TARGET" # MAIN + 0x22EAB58 - - type: write + type: evaluate_write address: [MAIN, 0x3608E08] value_type: float - value: 65 + value: "0.975 * FRAMETIME_TARGET" # MAIN + 0x22E9E48 - - type: write + type: evaluate_write address: [MAIN, 0x3608E0C] value_type: float - value: [63, 63] + value: ["0.945 * FRAMETIME_TARGET", "0.945 * FRAMETIME_TARGET"] - type: block what: timing -20FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 20 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 42.75 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 50.25 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 45.75 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 48.75 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [47.25, 47.25] - - - type: block - what: timing -25FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 25 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 34.2 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 40.2 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 36.6 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 39 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [37.8, 37.8] - - - type: block - what: timing -30FPS: - # sys_MaxFPS (default value) - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 30 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - # default value - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 28.5 - # MAIN + 0x22EA494 (default value) - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 33.5 - # MAIN + 0x22EAE14 (default value) - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 30.5 - # MAIN + 0x22EAB58 (default value) - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 32.5 - # MAIN + 0x22E9E48 (default value) - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [31.5, 33.25] -35FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 35 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 24.4286 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 28.7143 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 26.1429 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 27.8571 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [27, 27] - - - type: block - what: timing -40FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 40 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 21.375 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 25.125 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 22.875 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 24.375 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [23.625, 23.625] - - - type: block - what: timing -45FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 45 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.022 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 19 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 22.3333 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 20.3333 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 21.6667 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [21, 21] - - - type: block - what: timing -50FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 50 - # Renderer thread delay - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.015 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 17.1 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 20.1 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 18.3 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 19.5 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [18.9, 18.9] - - - type: block - what: timing -55FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 55 - # Renderer thread delay - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.015 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 15.5455 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 18.2727 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 16.6364 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 17.7273 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [17.1818, 17.1818] - - - type: block - what: timing -60FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x34382D8] - value_type: int32 - value: 60 - # Renderer thread delay - - - type: write - address: [MAIN, 0x3466BB0] - value_type: float - value: 0.015 - - - type: write - address: [MAIN, 0x3443CA4] - value_type: float - value: 14.25 - # MAIN + 0x22EA494 - - - type: write - address: [MAIN, 0x3608E00] - value_type: float - value: 16.75 - # MAIN + 0x22EAE14 - - - type: write - address: [MAIN, 0x3608E04] - value_type: float - value: 15 - # MAIN + 0x22EAB58 - - - type: write - address: [MAIN, 0x3608E08] - value_type: float - value: 15.75 - # MAIN + 0x22E9E48 - - - type: write - address: [MAIN, 0x3608E0C] - value_type: float - value: [15.5, 15.5] diff --git a/SaltySD/plugins/FPSLocker/patches/0100CD4012DCA000/B067B077906C6208.yaml b/SaltySD/plugins/FPSLocker/patches/0100CD4012DCA000/B067B077906C6208.yaml index 0597473..b830081 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CD4012DCA000/B067B077906C6208.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CD4012DCA000/B067B077906C6208.yaml @@ -41,187 +41,22 @@ MASTER_WRITE: main_offset: 0x2B92808 value_type: float value: 0.0333333333 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x2B92800] value_type: uint32 - value: 15 + value: FPS_LOCK_TARGET - # Adjust max delta for menus, 0 - 30 FPS, 1 - 60 FPS, REF: 20 79 68 BC 01 10 2E 1E 00 D8 21 7E - type: write + type: evaluate_write address: [MAIN, 0x254EA80] value_type: uint32 - value: 0 + value: "FPS_TARGET / 60" - type: write address: [MAIN, 0x2B92808] value_type: float - value: 0.0666666666 + value: "1 / FPS_TARGET" - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 20 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 25 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 30 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.0333333333 -35FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 35 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.0285714 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 40 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 45 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 50 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 55 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.0181818181 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x2B92800] - value_type: uint32 - value: 60 - - - type: write - address: [MAIN, 0x254EA80] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2B92808] - value_type: float - value: 0.0166666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml b/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml index f62cd28..f0009e0 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100CDC013238000/D626F7A72AF54744.yaml @@ -4,133 +4,16 @@ unsafeCheck: true -15FPS: - # Dynamic Resolution Frame Target Max in ms +ALL_FPS: + # Dynamic Resolution Frame Target Max in ms (default is 38, so resolution is a priority over framerate) - - type: write + type: evaluate_write address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] value_type: float - value: 66.6 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 64 -20FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 50 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 48 -25FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 40 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 38 -30FPS: - # Dynamic Resolution Frame Target Max in ms (default is 38) - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 33.3 + value: "TruncDec(FRAMETIME_TARGET, 1)" # Dynamic Resolution Frame Target Min in ms (default is 33) - - type: write + type: evaluate_write address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] value_type: float - value: 31 -35FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 28.5 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 26 -40FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 25 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 23 -45FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 22.2 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 20 -50FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 20 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 18 -55FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 18.1 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 16 -60FPS: - # Dynamic Resolution Frame Target Max in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x38] - value_type: float - value: 16.6 - # Dynamic Resolution Frame Target Min in ms - - - type: write - address: [MAIN, 0x5F5B610, 0x738, 0x70, 0x3C] - value_type: float - value: 14 + value: "0.96 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/0C96F996FDE48DA8.yaml b/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/0C96F996FDE48DA8.yaml deleted file mode 100644 index 621cb88..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/0C96F996FDE48DA8.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# Contra: Operation Galuga 1.0.876634 -# BID: 0C96F996FDE48DA8 - -unsafeCheck: true - -MASTER_WRITE: - # Redirect DR Timing target to MAIN + 0x6D89A00, REF: 61 36 40 BD 60 3E 40 BD - - - type: bytes - main_offset: 0x3550208 - value_type: uint32 - value: 0x944C93BB - - - type: bytes - main_offset: 0x48750F4 - value_type: uint32 - value: - - 0x900128A8 - - 0xBD4A0100 - - 0xBD003E60 - - 0xD65F03C0 - # Default value - - - type: bytes - main_offset: 0x6D89A00 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 40 -30FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x6D89A00] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/5ECFB8F85105FE3C.yaml b/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/5ECFB8F85105FE3C.yaml new file mode 100644 index 0000000..a53d98f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CF401A98E000/5ECFB8F85105FE3C.yaml @@ -0,0 +1,33 @@ +# Contra: Operation Galuga 1.0.882291 +# BID: 5ECFB8F85105FE3C + +unsafeCheck: true + +MASTER_WRITE: + # Redirect DR Timing target to MAIN + 0x6D91A00, REF: 61 36 40 BD 60 3E 40 BD + - + type: bytes + main_offset: 0x3534598 + value_type: uint32 + value: 0x944D1AEB + - + type: bytes + main_offset: 0x487B144 + value_type: uint32 + value: + - 0xD00128A8 + - 0xBD4A0100 + - 0xBD003E60 + - 0xD65F03C0 + # Default value + - + type: bytes + main_offset: 0x6D91A00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x6D91A00] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/086789EC0FDA4BF1.yaml b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/086789EC0FDA4BF1.yaml new file mode 100644 index 0000000..34e4163 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/086789EC0FDA4BF1.yaml @@ -0,0 +1,27 @@ +# SOUTH PARK: SNOW DAY! 1.0.5 +# BID: 086789EC0FDA4BF1 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x7E3D398, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: evaluate_write + address: [MAIN, 0x8609488, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x862EEE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/2B7E5D5B9A730F77.yaml b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/2B7E5D5B9A730F77.yaml new file mode 100644 index 0000000..0e4176e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/2B7E5D5B9A730F77.yaml @@ -0,0 +1,27 @@ +# SOUTH PARK: SNOW DAY! 1.0.6 +# BID: 2B7E5D5B9A730F77 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x7E44058, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal + - + type: evaluate_write + address: [MAIN, 0x8610488, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8635EE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml b/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml index ca1e9e7..0094bde 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D210177C6000/9510D677DCCE4447.yaml @@ -1,75 +1,12 @@ # Oddworld Soulstorm 1.1.3 # BID: 9510D677DCCE4447 -unsafeCheck: false # At game's boot in this chain values are occuring that are not addresses +unsafeCheck: false -15FPS: +ALL_FPS: # Dynamic Resolution frame time target in ms cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] value_type: float - value: 66.6 -20FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 50 -25FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 40 -30FPS: - # Dynamic Resolution frame time target (Default value) - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 33.3 -35FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 28.5 -40FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 25 -45FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 22.2 -50FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 20 -55FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 18.1 -60FPS: - # Dynamic Resolution frame time target - - - type: write - address: [MAIN, 0x75DA2D0, 0, 0x10, 0x90, 0x28, 0x1C] - value_type: float - value: 16.6 \ No newline at end of file + value: "TruncDec(FRAMETIME_TARGET, 1)" diff --git a/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml b/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml index ea2d6f3..43f565c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D30010C42000/682F4A502035678D.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.97 * (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x6F8C6B0, 0] value_type: float - value: [64.66, 64.66] + value: ["TruncDec(FRAMETIME_TARGET * 0.97, 2)", "TruncDec(FRAMETIME_TARGET * 0.97, 2)"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x6FB45D8, 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, 0x6F8C6B0, 0] - value_type: float - value: [48.5, 48.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [38.8, 38.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [32.33, 32.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [27.71, 27.71] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [24.25, 24.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [21.55, 21.55] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [19.4, 19.4] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [17.63, 17.63] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6F8C6B0, 0] - value_type: float - value: [16.16, 16.16] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6FB45D8, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml b/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml index 0de7d8a..f68e1f6 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D3C010DE8000/59159483CF88330F.yaml @@ -54,87 +54,9 @@ MASTER_WRITE: main_offset: 0x3AF0804 value_type: float value: 0.0333333333 -15FPS: +ALL_FPS: - type: write address: [MAIN, 0x3AF0800] value_type: uint32 - value: 66666666 - - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 50000000 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 40000000 - - - type: block - what: timing -30FPS: - - # default value - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 33333333 -35FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 28571428 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 25000000 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 22222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 20000000 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 18181818 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x3AF0800] - value_type: uint32 - value: 16666666 + value: 11111111 diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml index 9bfd61a..a9057a2 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D4900E82C000/85C362CC9790F0ED.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Dynamic resolution FPS factor (0.989 * FPS) - - type: write + type: evaluate_write address: [MAIN, 0x17321D8] value_type: float - value: 14.835 -20FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 19.78 -25FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 24.725 -30FPS: - # Dynamic resolution FPS factor (default) - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 29.67 -35FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 34.615 -40FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 39.56 -45FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 44.505 -50FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 49.45 -55FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 54.395 -60FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 59.34 + value: "0.989 * FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml deleted file mode 100644 index 8c38e16..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/49F3DD78CB5490B5.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# ARK: Survival Evolved 2.0.10 -# BID: 49F3DD78CB5490B5 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [66.6, 66.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7943C38, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7971D48, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml deleted file mode 100644 index a96f79e..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/5418E22D160F766F.yaml +++ /dev/null @@ -1,159 +0,0 @@ -# ARK: Survival Evolved 2.0.7 -# BID: 5418E22D160F766F - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [66.6, 66.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [15, 15] - - - type: block - what: timing -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x78DE6D8, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x790C798, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/D1E3FFBA414F4929.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/D1E3FFBA414F4929.yaml index 9d4a3fa..51fa8f4 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/D1E3FFBA414F4929.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/D1E3FFBA414F4929.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal - - type: write + type: evaluate_write address: [MAIN, 0x7947C38, 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, 0x7975D48, 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, 0x7947C38, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7947C38, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7975D48, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml b/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml index 7416fa8..3d2bc4a 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D560102C8000/48681F1D90704F6C.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: - # Dynamic resolution FPS factor (FPS_Target + 1.5) +ALL_FPS: + # Dynamic resolution FPS factor (FPS_Target * 1.05) - - type: write + type: evaluate_write address: [MAIN, 0x28A8450, 0] value_type: float - value: 16.5 -20FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 21.5 -25FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 26.5 -30FPS: - # Dynamic resolution FPS factor (default) - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 31.5 -35FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 36.5 -40FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 41.5 -45FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 46.5 -50FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 51.5 -55FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 56.5 -60FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x28A8450, 0] - value_type: float - value: 61.5 + value: "FPS_TARGET * 1.05" diff --git a/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml b/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml index 26795a6..3c8659e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D77019324000/A52C9938956331C9.yaml @@ -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, 0x73F93F8, 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, 0x7426A18, 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, 0x73F93F8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x73F93F8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x7426A18, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml index d6b49c2..bc22bed 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D7F00FB1A000/D871B992E95B71C5.yaml @@ -3,100 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # FPS lock - - type: write + type: evaluate_write address: [MAIN, 0xCFA0F8, 0x4C] value_type: float - value: 15 + value: FPS_LOCK_TARGET - type: block what: timing -20FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 20 - - - type: block - what: timing -25FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 25 - - - type: block - what: timing -30FPS: - # FPS lock (default) - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 30 - - - type: block - what: timing -35FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 35 - - - type: block - what: timing -40FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 40 - - - type: block - what: timing -45FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 45 - - - type: block - what: timing -50FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 50 - - - type: block - what: timing -55FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 55 - - - type: block - what: timing -60FPS: - # FPS lock - - - type: write - address: [MAIN, 0xCFA0F8, 0x4C] - value_type: float - value: 60 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml index 2ffb267..ae04ef3 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100D8700B712000/C56E6F514FADC5C5.yaml @@ -3,187 +3,22 @@ unsafeCheck: true -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x14284E0] value_type: int32 - value: 15 + value: FPS_LOCK_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x155C640, 0x7E8, 0x49C] value_type: int32 - value: [15, 66] + value: [FPS_LOCK_TARGET, FRAMETIME_TARGET] - - type: write + type: evaluate_write address: [MAIN, 0x14E2320, 0x944] value_type: float - value: 12.5 + value: "(5/6) * FPS_TARGET" - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 20 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [20, 50] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 16.66666666666 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 25 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [25, 40] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 20.83333333333 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 100 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [100, 33] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 25 -35FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 35 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [35, 28] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 29.166666666 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 40 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [40, 25] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 33.3333333333 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 45 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [45, 22] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 37.555555555 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 50 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [50, 20] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 41.6666666666 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 55 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [55, 18] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 45.8333333333 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x14284E0] - value_type: int32 - value: 100 - - - type: write - address: [MAIN, 0x155C640, 0x7E8, 0x49C] - value_type: int32 - value: [100, 16] - - - type: write - address: [MAIN, 0x14E2320, 0x944] - value_type: float - value: 50 diff --git a/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml b/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml index dc77cc5..74baed8 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DC301186A000/EE295EAAEA7D31E4.yaml @@ -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, 0x674AF18, 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, 0x67758C0, 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, 0x674AF18, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x674AF18, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x67758C0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml b/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml index 6595086..f32399c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DCA0064A6000/79E5950FFA85ACF6.yaml @@ -17,97 +17,13 @@ MASTER_WRITE: main_offset: 0x1D164DC value_type: float value: 33.33333333 -15FPS: +ALL_FPS: # FPS Lock in ms - - type: write + type: evaluate_write address: [MAIN, 0x1D164DC] value_type: float - value: 66.66666666 + value: "1000 / FPS_LOCK_TARGET" - type: block what: timing -20FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 50 - - - type: block - what: timing -25FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 40 - - - type: block - what: timing -30FPS: - # FPS Lock in ms (default value) - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 33.33333333 -35FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 28.57142857 - - - type: block - what: timing -40FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 25 - - - type: block - what: timing -45FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 22.22222222 - - - type: block - what: timing -50FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 20 - - - type: block - what: timing -55FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 18.18181818 - - - type: block - what: timing -60FPS: - # FPS Lock in ms - - - type: write - address: [MAIN, 0x1D164DC] - value_type: float - value: 16.66666666 diff --git a/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml b/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml index b203bf9..fe4c483 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DCF0093EC000/71873FEB4648FA39.yaml @@ -1,159 +1,21 @@ -# Everspace +# Everspace 1.0.5 # BID: 71873FEB4648FA39 unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x5FAB540, 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, 0x5FD00A8, 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, 0x5FAB540, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [32, 32] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x5FAB540, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x5FD00A8, 0] - value_type: float - value: [60, 60] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100DE70085E8000/F18ACDA7A11CB287.yaml b/SaltySD/plugins/FPSLocker/patches/0100DE70085E8000/F18ACDA7A11CB287.yaml index a83fe23..5c93507 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DE70085E8000/F18ACDA7A11CB287.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DE70085E8000/F18ACDA7A11CB287.yaml @@ -25,64 +25,10 @@ MASTER_WRITE: main_offset: 0xF4623C value_type: uint32 value: 0x52800061 -15FPS: +ALL_FPS: # DUMMY - type: write address: [MAIN, 0x408B900] value_type: uint8 value: 0 -20FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -25FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -30FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -35FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -40FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -45FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -50FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -55FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 -60FPS: - - - type: write - address: [MAIN, 0x408B900] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml b/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml index 031b73b..c555213 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DFC00E472000/448C08A9533F3CAD.yaml @@ -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, 0x71A9000, 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, 0x71CCE48, 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, 0x71A9000, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default) - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default) - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x71A9000, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default) - - - type: write - address: [MAIN, 0x71CCE48, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml b/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml index 0299f16..79057e2 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E1C0148F8000/77C053D779EE97F6.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = 0.9 * (1000/FPS) - - type: write + type: evaluate_write address: [MAIN, 0x75EE8A8, 0] value_type: float - value: [60, 60] + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x761C478, 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, 0x75EE8A8, 0] - value_type: float - value: [45, 45] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [36, 36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [30, 30] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [25.71, 25.71] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [22.5, 22.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [18, 18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [16.36, 16.36] - # t.MaxFPS - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x75EE8A8, 0] - value_type: float - value: [15, 15] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x761C478, 0] - value_type: float - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml b/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml deleted file mode 100644 index 950747f..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/1F0710E2B6C1DEAD.yaml +++ /dev/null @@ -1,188 +0,0 @@ -# Trine 5: A Clockwork Conspiracy 1.0.3 -# BID: 1F0710E2B6C1DEAD -# To update dynamic resolution offsets look at fb::renderer::ResolutionScaler::update - -unsafeCheck: true - -MASTER_WRITE: - # Change double buffer to triple buffer - - - type: bytes - main_offset: 0x13D2CA4 - value_type: uint32 - value: 0x52800068 - # Allow changing dynamic resolution timings - # Max - changed address to MAIN + 0x7CA3200 - - - type: bytes - main_offset: 0x2620DD8 - value_type: uint32 - value: 0x1423399F - - - type: bytes - main_offset: 0x2EEF454 - value_type: uint32 - value: - - 0x90026DA8 - - 0xF9410108 - - 0x17DCC660 - # Min - changed address to MAIN + 0x7CA3208 - - - type: bytes - main_offset: 0x2620E50 - value_type: uint32 - value: 0x942343E0 - - - type: bytes - main_offset: 0x2620E8C - value_type: uint32 - value: 0x942343D1 - - - type: bytes - main_offset: 0x2EF1DD0 - value_type: uint32 - value: - - 0xD0026D8A - - 0xF941054A - - 0xD65F03C0 - # Default values - - - type: bytes - main_offset: 0x7CA3200 - value_type: double - value: 34.0 - - - type: bytes - main_offset: 0x7CA3208 - value_type: double - value: 32.0 -15FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 68.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 64.0 -20FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 51.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 48.0 -25FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 40.8 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 38.4 -30FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 34.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 32.0 -35FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 29.14 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 27.42 -40FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 25.5 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 24.0 -45FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 22.66 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 21.33 -50FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 20.4 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 19.2 -55FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 18.54 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 17.45 -60FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3200] - value_type: double - value: 17.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7CA3208] - value_type: double - value: 16.0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/8322528255D2CC63.yaml b/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/8322528255D2CC63.yaml index b57f8ad..06396a6 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/8322528255D2CC63.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E2701A888000/8322528255D2CC63.yaml @@ -50,133 +50,16 @@ MASTER_WRITE: main_offset: 0x7D05208 value_type: double value: 32.0 -15FPS: +ALL_FPS: # Max Dynamic Resolution Timing - - type: write + type: evaluate_write address: [MAIN, 0x7D05200] value_type: double - value: 68.0 + value: "1.02 * FRAMETIME_TARGET" # Min Dynamic Resolution Timing - - type: write + type: evaluate_write address: [MAIN, 0x7D05208] value_type: double - value: 64.0 -20FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 51.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 48.0 -25FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 40.8 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 38.4 -30FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 34.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 32.0 -35FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 29.14 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 27.42 -40FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 25.5 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 24.0 -45FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 22.66 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 21.33 -50FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 20.4 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 19.2 -55FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 18.54 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 17.45 -60FPS: - # Max Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05200] - value_type: double - value: 17.0 - # Min Dynamic Resolution Timing - - - type: write - address: [MAIN, 0x7D05208] - value_type: double - value: 16.0 \ No newline at end of file + value: "0.96 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100E2E0152E4000/13F322A6161F787C.yaml b/SaltySD/plugins/FPSLocker/patches/0100E2E0152E4000/13F322A6161F787C.yaml index 66d2838..d883bc8 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E2E0152E4000/13F322A6161F787C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E2E0152E4000/13F322A6161F787C.yaml @@ -4,19 +4,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x6E8C028, 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, 0x6EB9418, 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, 0x6E8C028, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [20, 20] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x6E8C028, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x6EB9418, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x66F5360, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml b/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml index 7e9c142..e95ed35 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E5900F49A000/A8BA2A8F93AAE647.yaml @@ -18,64 +18,10 @@ MASTER_WRITE: main_offset: 0x72C6500 value_type: float value: 41 -15FPS: +ALL_FPS: + # Game's priority is resolution over framerate with factor 1.23, I am changing that to 0.97 - - type: write + type: evaluate_write address: [MAIN, 0x72C6500] value_type: float - value: 65.6666 -20FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 49 -25FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 39 -30FPS: - # Default is 41, but it sucks - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 32.3333 -35FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 27.5714 -40FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 24 -45FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 21.2222 -50FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 19 -55FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 17.1818 -60FPS: - - - type: write - address: [MAIN, 0x72C6500] - value_type: float - value: 15.5 + value: "0.97 * FRAMETIME_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100E6300AA3A000/AAC6FB02E03062EF.yaml b/SaltySD/plugins/FPSLocker/patches/0100E6300AA3A000/AAC6FB02E03062EF.yaml index 01aa345..6b48b9d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E6300AA3A000/AAC6FB02E03062EF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E6300AA3A000/AAC6FB02E03062EF.yaml @@ -79,73 +79,10 @@ MASTER_WRITE: main_offset: 0x5F7C value_type: uint32 value: 0xD2A032A2 -15FPS: +ALL_FPS: # dummy - type: write address: [MAIN, 0x1887F00] value_type: uint8 value: 0 -20FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -25FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -30FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -35FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -40FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -45FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -50FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -55FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 -60FPS: - # dummy - - - type: write - address: [MAIN, 0x1887F00] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml b/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml index 7aacd2d..25cd732 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E66010ADE000/45CE2B6625A35771.yaml @@ -64,397 +64,43 @@ MASTER_WRITE: main_offset: 0x3DFAE14 value_type: float value: [33.5, 36] -15FPS: +ALL_FPS: # sys_MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x3CB4204] value_type: int32 - value: 15 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 57 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [64, 64] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [59, 59] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [67, 67] - - - type: block - what: timing -20FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 20 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 42.75 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [48, 48] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [44.25, 44.25] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [50.25, 50.25] - - - type: block - what: timing -25FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 25 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 34.2 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [38.4, 38.4] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [35.4, 35.4] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [40.2, 40.2] - - - type: block - what: timing -30FPS: - # sys_MaxFPS (default value) - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 30 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 (default value) - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 28.5 - # MAIN + 0x2C12B98 (default value) - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [32, 33] - # MAIN + 0x2C13130 (default value) - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [29.5, 32] - # MAIN + 0x2C12EF8 (default value) - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [33.5, 36] -35FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 35 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 24.4286 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [27.4286, 27.4286] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [25.2857, 25.2857] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [28.7143, 28.7143] - - - type: block - what: timing -40FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 40 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 21.375 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [24, 24] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [22.125, 22.125] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [25.125, 25.125] - - - type: block - what: timing -45FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 45 - # Renderer thread delay (default value) - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.022 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 19 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [21.3333, 21.3333] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [19.6666, 19.6666] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [22.3333, 22.3333] - - - type: block - what: timing -50FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 50 + value: FPS_LOCK_TARGET # Renderer thread delay - type: write address: [MAIN, 0x3CCF6A0] value_type: float - value: 0.015 + value: 0.01 # MAIN + 0x2C11728 - - type: write + type: evaluate_write address: [MAIN, 0x3DFAE00] value_type: float - value: 17.1 + value: "0.855 * FRAMETIME_TARGET" # MAIN + 0x2C12B98 - - type: write + type: evaluate_write address: [MAIN, 0x3DFAE04] value_type: float - value: [19.2, 19.2] + value: ["0.96 * FRAMETIME_TARGET", "0.96 * FRAMETIME_TARGET"] # MAIN + 0x2C13130 - - type: write + type: evaluate_write address: [MAIN, 0x3DFAE0C] value_type: float - value: [17.7, 17.7] + value: ["0.885 * FRAMETIME_TARGET", "0.885 * FRAMETIME_TARGET"] # MAIN + 0x2C12EF8 - - type: write + type: evaluate_write address: [MAIN, 0x3DFAE14] value_type: float - value: [20.1, 20.1] + value: ["1.005 * FRAMETIME_TARGET", "1.005 * FRAMETIME_TARGET"] - type: block what: timing -55FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 55 - # Renderer thread delay - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.015 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 15.5455 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [17.4545, 17.4545] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [16.0909, 16.0909] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [18.2727, 18.2727] - - - type: block - what: timing -60FPS: - # sys_MaxFPS - - - type: write - address: [MAIN, 0x3CB4204] - value_type: int32 - value: 60 - # Renderer thread delay - - - type: write - address: [MAIN, 0x3CCF6A0] - value_type: float - value: 0.015 - # MAIN + 0x2C11728 - - - type: write - address: [MAIN, 0x3DFAE00] - value_type: float - value: 14.25 - # MAIN + 0x2C12B98 - - - type: write - address: [MAIN, 0x3DFAE04] - value_type: float - value: [16, 16] - # MAIN + 0x2C13130 - - - type: write - address: [MAIN, 0x3DFAE0C] - value_type: float - value: [14.75, 14.75] - # MAIN + 0x2C12EF8 - - - type: write - address: [MAIN, 0x3DFAE14] - value_type: float - value: [16.75, 16.75] diff --git a/SaltySD/plugins/FPSLocker/patches/0100E67012924000/B151A224A429F9A7.yaml b/SaltySD/plugins/FPSLocker/patches/0100E67012924000/B151A224A429F9A7.yaml index 95cfc43..784a5f3 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E67012924000/B151A224A429F9A7.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E67012924000/B151A224A429F9A7.yaml @@ -3,222 +3,25 @@ unsafeCheck: true -15FPS: +ALL_FPS: # DRGameTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312B4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # DRCinematicTargetFrameTimeInMs - - type: write + type: evaluate_write address: [MAIN, 0x41312E4] value_type: float - value: 63 + value: "0.945 * FRAMETIME_TARGET" # LimitFPS - - type: write + type: evaluate_write address: [MAIN, 0x411DCFC] value_type: int32 - value: 15 - - - type: block - what: timing -20FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 47.25 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 47.25 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 20 - - - type: block - what: timing -25FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 37.8 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 37.8 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 25 - - - type: block - what: timing -30FPS: - # DRGameTargetFrameTimeInMs (original value) - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 31.5 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 31.5 - # LimitFPS (original value) - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 - -# For 35-60 FPS check if cutscene is played. If it is, set 30 FPS lock. If not, disable it. -35FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 27 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 27 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 35 - - - type: block - what: timing -40FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 23.625 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 23.625 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 40 - - - type: block - what: timing -45FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 21 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 21 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 45 - - - type: block - what: timing -50FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 18.9 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 18.9 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 50 - - - type: block - what: timing -55FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 17.1818181818 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 17.1818181818 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 55 - - - type: block - what: timing -60FPS: - # DRGameTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312B4] - value_type: float - value: 15.75 - # DRCinematicTargetFrameTimeInMs - - - type: write - address: [MAIN, 0x41312E4] - value_type: float - value: 15.75 - # LimitFPS - - - type: write - address: [MAIN, 0x411DCFC] - value_type: int32 - value: 60 + value: FPS_LOCK_TARGET - type: block what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/621EE66A6743D750.yaml b/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/621EE66A6743D750.yaml index fd1382e..c721b2d 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/621EE66A6743D750.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/621EE66A6743D750.yaml @@ -3,73 +3,10 @@ unsafeCheck: false -15FPS: +ALL_FPS: # Bool Lock FPS, ref: LDR S0, [X0,#0x758] - type: write address: [MAIN, 0x1C98DFC] value_type: uint8 value: 0 -20FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -25FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -30FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -35FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -40FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -45FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -50FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -55FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 -60FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x1C98DFC] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/ADC8FED84D846EE8.yaml b/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/ADC8FED84D846EE8.yaml deleted file mode 100644 index 9c72657..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100E870163CA000/ADC8FED84D846EE8.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# Batman: Arkham Asylum 1.0.0 -# BID: ADC8FED84D846EE8 - -unsafeCheck: true - -15FPS: - # Bool Lock FPS, ref: UGameEngine::GetMaxTickRate - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -20FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -25FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -30FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -35FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -40FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -45FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -50FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -55FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 -60FPS: - # Bool Lock FPS - - - type: write - address: [MAIN, 0x249BA4C] - value_type: uint8 - value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml b/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml index 3405fd3..c003a63 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100E87017D0E000/ACF3FF125C2A3E68.yaml @@ -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, 0x7241888, 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, 0x726F108, 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, 0x7241888, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x7241888, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x726F108, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100EAE00D9EC000/0FE6747D03EBA4E3.yaml b/SaltySD/plugins/FPSLocker/patches/0100EAE00D9EC000/0FE6747D03EBA4E3.yaml new file mode 100644 index 0000000..186613e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100EAE00D9EC000/0FE6747D03EBA4E3.yaml @@ -0,0 +1,19 @@ +# Ghostbusters: The Video Game Remastered 1.2 +# BID: 0FE6747D03EBA4E3 +# Main menu still renders 3D objects at 30 FPS (possibly it's prerendered?) + +unsafeCheck: true + +ALL_FPS: + # FPS Lock + - + type: evaluate_write + address: [MAIN, 0x5271FE8, 0x10A0] + value_type: float + value: "TruncDec(1 / FPS_TARGET, 3) - 0.001" + # Dynamic Resolution Timing + - + type: evaluate_write + address: [MAIN, 0x5307044] + value_type: float + value: ["0.975 * FRAMETIME_TARGET", "0.87 * FRAMETIME_TARGET", "0.9225 * FRAMETIME_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100ED7012DB2000/1A971CC40B6D5B3F.yaml b/SaltySD/plugins/FPSLocker/patches/0100ED7012DB2000/1A971CC40B6D5B3F.yaml index b29bda5..8d5dfea 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100ED7012DB2000/1A971CC40B6D5B3F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100ED7012DB2000/1A971CC40B6D5B3F.yaml @@ -42,187 +42,22 @@ MASTER_WRITE: main_offset: 0x2BFB708 value_type: float value: 0.0333333333 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x2BFB700] value_type: uint32 - value: 15 - - # Adjust max delta for menus, 0 - 30 FPS, 1 - 60 FPS, REF: 20 79 68 BC 01 10 2E 1E 00 D8 21 7E - type: write + value: FPS_LOCK_TARGET + - # Adjust min delta for menus, 0 - 30 FPS, 1 - 60 FPS, REF: 20 79 68 BC 01 10 2E 1E 00 D8 21 7E + type: evaluate_write address: [MAIN, 0x254D2A0] value_type: uint32 - value: 0 + value: "FPS_TARGET / 60" - - type: write + type: evaluate_write address: [MAIN, 0x2BFB708] value_type: float - value: 0.0666666666 + value: 1 / FPS_TARGET - type: block what: timing -20FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 20 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.05 - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 25 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.04 - - - type: block - what: timing -30FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 30 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 0 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.0333333333 -35FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 35 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.0285714 - - - type: block - what: timing -40FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 40 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.025 - - - type: block - what: timing -45FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 45 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.0222222222 - - - type: block - what: timing -50FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 50 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.02 - - - type: block - what: timing -55FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 55 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.0181818181 - - - type: block - what: timing -60FPS: - - - type: write - address: [MAIN, 0x2BFB700] - value_type: uint32 - value: 60 - - - type: write - address: [MAIN, 0x254D2A0] - value_type: uint32 - value: 1 - - - type: write - address: [MAIN, 0x2BFB708] - value_type: float - value: 0.0166666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml b/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml index ed318d1..0e9e325 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F0400E850000/85C362CC9790F0ED.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Dynamic resolution FPS factor (0.989 * FPS) - - type: write + type: evaluate_write address: [MAIN, 0x17321D8] value_type: float - value: 14.835 -20FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 19.78 -25FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 24.725 -30FPS: - # Dynamic resolution FPS factor (default) - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 29.67 -35FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 34.615 -40FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 39.56 -45FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 44.505 -50FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 49.45 -55FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 54.395 -60FPS: - # Dynamic resolution FPS factor - - - type: write - address: [MAIN, 0x17321D8] - value_type: float - value: 59.34 + value: "0.989 * FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100F2300D4BA000/DB17131624D04A9C.yaml b/SaltySD/plugins/FPSLocker/patches/0100F2300D4BA000/DB17131624D04A9C.yaml index df25fe8..b8017fe 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F2300D4BA000/DB17131624D04A9C.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F2300D4BA000/DB17131624D04A9C.yaml @@ -3,208 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget = (1000/FPS) cutted to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x59D7150, 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, 0x59FDD30, 0] value_type: float - value: [0, 0] - # r.VSync (disabling it improves performance, by default it's enabled) - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [0, 0] - # r.VSync (default is 1) - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x51A7A78, 0] - value_type: int32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x59D7150, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x59FDD30, 0] - value_type: float - value: [60, 60] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] # r.VSync - type: write diff --git a/SaltySD/plugins/FPSLocker/patches/0100F2600D710000/4CCD2F6D331DD104.yaml b/SaltySD/plugins/FPSLocker/patches/0100F2600D710000/4CCD2F6D331DD104.yaml index e23717d..579d3af 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F2600D710000/4CCD2F6D331DD104.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F2600D710000/4CCD2F6D331DD104.yaml @@ -33,113 +33,14 @@ MASTER_WRITE: main_offset: 0x2ECAB38 value_type: float value: 1000000 -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0xD94628] value_type: uint32 - value: 15 + value: FPS_TARGET - - type: write + type: evaluate_write address: [MAIN, 0x2ECAB38] value_type: float - value: 2000000 -20FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 20 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 1500000 -25FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 25 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 1200000 -30FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 30 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 1000000 -35FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 35 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 857142 -40FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 40 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 750000 -45FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 45 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 666666 -50FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 50 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 600000 -55FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 55 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 545454 -60FPS: - - - type: write - address: [MAIN, 0xD94628] - value_type: uint32 - value: 60 - - - type: write - address: [MAIN, 0x2ECAB38] - value_type: float - value: 500000 \ No newline at end of file + value: "(30 / FPS_TARGET) * 1000000" diff --git a/SaltySD/plugins/FPSLocker/patches/0100F2C0115B6000/9B4E43650501A4D4.yaml b/SaltySD/plugins/FPSLocker/patches/0100F2C0115B6000/9B4E43650501A4D4.yaml index cf0eaa8..111f8d0 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F2C0115B6000/9B4E43650501A4D4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F2C0115B6000/9B4E43650501A4D4.yaml @@ -152,124 +152,26 @@ MASTER_WRITE: main_offset: 0x472AAC4 value_type: float value: 0.001 -15FPS: +ALL_FPS: # Set default interval to use by patch when exiting prerender cutscene - - type: write + type: evaluate_write address: [MAIN, 0x472AAC0] value_type: int32 - value: -4 + value: "VSYNC_TARGET * -1" # DR GPU Time Factor - - type: write + type: evaluate_write address: [MAIN, 0x472AAC4] value_type: float - value: 0.0005 -20FPS: + value: "(FPS_TARGET / 30) * 0.001" +ALL_REFRESH_RATES: - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -3 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.000667 -25FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -2 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.000834 -30FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -2 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.001 -35FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.00117 -40FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.00134 -45FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.0015 -50FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.00167 -55FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.00184 -60FPS: - - - type: write - address: [MAIN, 0x472AAC0] - value_type: int32 - value: -1 - # DR GPU Time Factor - - - type: write - address: [MAIN, 0x472AAC4] - value_type: float - value: 0.002 + type: compare + compare_address: [MAIN, 0x472AABC] + compare_type: "==" + compare_value_type: uint32 + compare_value: 1 + address: [MAIN] + value_type: refresh_rate + value: 30 diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml deleted file mode 100644 index c71e73c..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/254DF6A118587EA0.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# The Settlers: New Allies 1.0.0 -# BID: 254DF6A118587EA0 - -unsafeCheck: true - -MASTER_WRITE: - # Redirect FPS Lock to float MAIN+B4DC000, frametime and DR target to float MAIN+B4DC004 - - - type: bytes - main_offset: 0x368BA0 - value_type: uint32 - value: - - 0x90058BA8 - - 0xBD4C0100 - - 0xBD4C0508 - - - type: bytes - main_offset: 0x32C5524 - value_type: uint32 - value: - - 0xF00410A0 - - 0xBD4C0400 - # Default values - - - type: bytes - main_offset: 0xB4DC000 - value_type: float - value: [30, 0.0333333333] -15FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [15, 0.0666666666] -20FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [20, 0.05] -25FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [25, 0.04] -30FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [30, 0.0333333333] -35FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [35, 0.028571] -40FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [40, 0.025] -45FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [45, 0.0222222222] -50FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [50, 0.02] -55FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [55, 0.0181818181] -60FPS: - - - type: write - address: [MAIN, 0xB4DC000] - value_type: float - value: [60, 0.0166666666] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/D87461C342CA071D.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/D87461C342CA071D.yaml deleted file mode 100644 index c69f7d2..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/D87461C342CA071D.yaml +++ /dev/null @@ -1,90 +0,0 @@ -# The Settlers: New Allies 1.0.5 -# BID: D87461C342CA071D - -unsafeCheck: true - -MASTER_WRITE: - # Redirect FPS Lock to float MAIN+B66F200, frametime and DR target to float MAIN+B66F204 - # REF: 08 14 40 BD 00 10 2E 1E 00 18 28 1E - - - type: bytes - main_offset: 0x36A3F8 - value_type: uint32 - value: - - 0xB0059828 - - 0xBD420100 - - 0xBD420508 - # REF: 00 14 40 BD 09 10 2E 1E (1 instruction before that) - - - type: bytes - main_offset: 0x33EE754 - value_type: uint32 - value: - - 0xB0041400 - - 0xBD420400 - # Default values - - - type: bytes - main_offset: 0xB66F200 - value_type: float - value: [30, 0.0333333333] -15FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [15, 0.0666666666] -20FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [20, 0.05] -25FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [25, 0.04] -30FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [30, 0.0333333333] -35FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [35, 0.028571] -40FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [40, 0.025] -45FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [45, 0.0222222222] -50FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [50, 0.02] -55FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [55, 0.0181818181] -60FPS: - - - type: write - address: [MAIN, 0xB66F200] - value_type: float - value: [60, 0.0166666666] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/E80F9872CB44DDEE.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/E80F9872CB44DDEE.yaml deleted file mode 100644 index 551fb05..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/E80F9872CB44DDEE.yaml +++ /dev/null @@ -1,90 +0,0 @@ -# The Settlers: New Allies 1.0.6 -# BID: E80F9872CB44DDEE - -unsafeCheck: true - -MASTER_WRITE: - # Redirect FPS Lock to float MAIN+B760200, frametime and DR target to float MAIN+B760204 - # REF: 08 14 40 BD 00 10 2E 1E 00 18 28 1E - - - type: bytes - main_offset: 0x36A3F8 - value_type: uint32 - value: - - 0xD0059FA8 - - 0xBD420100 - - 0xBD420508 - # REF: 00 14 40 BD 09 10 2E 1E (1 instruction before that) - - - type: bytes - main_offset: 0x34A2524 - value_type: uint32 - value: - - 0xD00415E0 - - 0xBD420400 - # Default values - - - type: bytes - main_offset: 0xB760200 - value_type: float - value: [30, 0.0333333333] -15FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [15, 0.0666666666] -20FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [20, 0.05] -25FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [25, 0.04] -30FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [30, 0.0333333333] -35FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [35, 0.028571] -40FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [40, 0.025] -45FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [45, 0.0222222222] -50FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [50, 0.02] -55FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [55, 0.0181818181] -60FPS: - - - type: write - address: [MAIN, 0xB760200] - value_type: float - value: [60, 0.0166666666] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/EAA0B789264F2A75.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/EAA0B789264F2A75.yaml new file mode 100644 index 0000000..bf30457 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F3200E7CA000/EAA0B789264F2A75.yaml @@ -0,0 +1,36 @@ +# The Settlers: New Allies 1.0.7 +# BID: EAA0B789264F2A75 + +unsafeCheck: true + +MASTER_WRITE: + # Redirect FPS Lock to float MAIN+B75F200, frametime and DR target to float MAIN+B75F204 + # REF: 08 14 40 BD 00 10 2E 1E 00 18 28 1E + - + type: bytes + main_offset: 0x36A3F8 + value_type: uint32 + value: + - 0xB0059FA8 + - 0xBD420100 + - 0xBD420508 + # REF: 00 14 40 BD 09 10 2E 1E (1 instruction before that) + - + type: bytes + main_offset: 0x34A0EB4 + value_type: uint32 + value: + - 0xF00415E0 + - 0xBD420400 + # Default values + - + type: bytes + main_offset: 0xB75F200 + value_type: float + value: [30, 0.0333333333] +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0xB75F200] + value_type: float + value: [FPS_LOCK_TARGET, "1 / FPS_TARGET"] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml b/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml index a9d3a77..3b09e7e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F4F014108000/2284DFB25F387719.yaml @@ -3,7 +3,7 @@ unsafeCheck: true -15FPS: +ALL_FPS: # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write @@ -17,208 +17,16 @@ unsafeCheck: true value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals - - type: write + type: evaluate_write address: [MAIN, 0x63A23A8, 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, 0x63CF748, 0] value_type: float - value: [15, 15] + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] - type: block what: timing -20FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [0, 0] -35FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # Disable bUseFixedFrameRate - - - type: write - address: [MAIN, 0x63CEE78, 0x7A4] - value_type: uint32 - value: 7 - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x63A23A8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x63CF748, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7201D1B0000/BF3F18101CBCFB33.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7201D1B0000/BF3F18101CBCFB33.yaml new file mode 100644 index 0000000..204039a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F7201D1B0000/BF3F18101CBCFB33.yaml @@ -0,0 +1,13 @@ +# Ancient Weapon Holly 1.7.0 +# BID: BF3F18101CBCFB33 + +unsafeCheck: true + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + # Required for main character to not have jittery movement + - + type: evaluate_write + address: [MAIN, 0x5538B20, 0x48] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/1C42BC734E792AFB.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/1C42BC734E792AFB.yaml new file mode 100644 index 0000000..2b8be93 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/1C42BC734E792AFB.yaml @@ -0,0 +1,27 @@ +# Hogwarts Legacy 1.0.3 +# BID: 1C42BC734E792AFB + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget = 1000/FPS cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0xA427688, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xA45B3A0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x9C09EB0, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/550F2E8B387B4520.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/550F2E8B387B4520.yaml deleted file mode 100644 index 2112fc7..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/550F2E8B387B4520.yaml +++ /dev/null @@ -1,153 +0,0 @@ -# Hogwarts Legacy 1.0.1 -# BID: 550F2E8B387B4520 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget = 1000/FPS - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [66.66, 66.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [28.57, 28.57] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x97A9A30, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x97DD7B0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/F1AE192C465BD920.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/F1AE192C465BD920.yaml deleted file mode 100644 index 36db3cc..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/F1AE192C465BD920.yaml +++ /dev/null @@ -1,213 +0,0 @@ -# Hogwarts Legacy 1.0.2 -# BID: F1AE192C465BD920 - -unsafeCheck: true - -15FPS: - # r.DynamicRes.FrameTimeBudget ((1000/FPS) * 0.945) - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [63, 63] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] -20FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [47.25, 47.25] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [37.8, 37.8] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [25, 25] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [0, 0] - # r.VSync (default value is 1) - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [27, 27] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [35, 35] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [23.625, 23.625] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [40, 40] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [21, 21] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [45, 45] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [18.9, 18.9] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [50, 50] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [17.18, 17.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [55, 55] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0xA529628, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0xA55D310, 0] - value_type: float - value: [0, 0] - # r.VSync - - - type: write - address: [MAIN, 0x9D0BDC0, 0] - value_type: uint32 - value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml b/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml index 7a89d55..0dac93f 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100F8F014190000/AF7114F019CE6E1D.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to 1 decimal - - type: write + type: evaluate_write address: [MAIN, 0x64F2160, 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, 0x64E86B0, 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, 0x64F2160, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [33.3, 33.3] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [28.5, 28.5] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [22.2, 22.2] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [18.1, 18.1] - # t.MaxFPS - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x64F2160, 0] - value_type: float - value: [16.6, 16.6] - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x64E86B0, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml deleted file mode 100644 index 480ddeb..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/1DF30F9632347530.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# TT Isle of Man : Ride on the Edge 3 1.2.0 -# BID: 1DF30F9632347530 - -unsafeCheck: true - -15FPS: - # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CA8C3C] - value_type: float - value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/8A952C8A9BAB1375.yaml b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/8A952C8A9BAB1375.yaml deleted file mode 100644 index 2c5130a..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/8A952C8A9BAB1375.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# TT Isle of Man : Ride on the Edge 3 1.5.0 -# BID: 8A952C8A9BAB1375 - -unsafeCheck: true - -15FPS: - # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB475C] - value_type: float - value: 14.333333 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/91CE601F6A7174CF.yaml b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/91CE601F6A7174CF.yaml index 367b366..5e808a4 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/91CE601F6A7174CF.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100FA2019AC2000/91CE601F6A7174CF.yaml @@ -3,73 +3,10 @@ unsafeCheck: true -15FPS: +ALL_FPS: # OptimalFrameDuration_ms = (1000/FPS) - (0.07 * (1000/30) - - type: write + type: evaluate_write address: [MAIN, 0x2CB575C] value_type: float - value: 64.333333 -20FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 47.666666 -25FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 37.666666 -30FPS: - # OptimalFrameDuration_ms (default value) - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 31 -35FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 26.238095 -40FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 22.666666 -45FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 19.888888 -50FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 17.666666 -55FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 15.848484 -60FPS: - # OptimalFrameDuration_ms - - - type: write - address: [MAIN, 0x2CB575C] - value_type: float - value: 14.333333 \ No newline at end of file + value: "FRAMETIME_TARGET - (0.07 * (1000/30))" diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/174309E9B55533B9.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/174309E9B55533B9.yaml deleted file mode 100644 index 7b02599..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/174309E9B55533B9.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# SnowRunner 1.0.30 -# BID: 174309E9B55533B9 -# Just search for 0x42055555 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x353C1E8 - - - type: bytes - main_offset: 0x18810F4 - value_type: uint32 - value: - - 0xF000E5CA - - 0xBD41E942 - # default value - - - type: bytes - main_offset: 0x353C1E8 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x353C1E8] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2701FF0058D8C59C.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2701FF0058D8C59C.yaml deleted file mode 100644 index a181e20..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2701FF0058D8C59C.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# SnowRunner 1.0.29 -# BID: 2701FF0058D8C59C -# Just search for 0x42055555 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x353B1C8 - - - type: bytes - main_offset: 0x1880834 - value_type: uint32 - value: - - 0xF000E5CA - - 0xBD41C942 - # default value - - - type: bytes - main_offset: 0x353B1C8 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x353B1C8] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2CD8707981B46DAF.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2CD8707981B46DAF.yaml deleted file mode 100644 index 5291d8b..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/2CD8707981B46DAF.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# SnowRunner 1.0.28 -# BID: 2CD8707981B46DAF -# Just search for 0x42055555 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x3538158 - - - type: bytes - main_offset: 0x187DEA4 - value_type: uint32 - value: - - 0xF000E5CA - - 0xBD415942 - # default value - - - type: bytes - main_offset: 0x3538158 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x3538158] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/44C6A5004C499464.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/44C6A5004C499464.yaml new file mode 100644 index 0000000..3555a57 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/44C6A5004C499464.yaml @@ -0,0 +1,27 @@ +# SnowRunner 1.0.31 +# BID: 44C6A5004C499464 +# Just search for 0x42055555 + +unsafeCheck: true + +MASTER_WRITE: +# Redirect DR frametime target to MAIN+0x2FB0F00 + - + type: bytes + main_offset: 0x1884F24 + value_type: uint32 + value: + - 0x9000B96A + - 0xBD4F0142 + # default value + - + type: bytes + main_offset: 0x2FB0F00 + value_type: float + value: 33.3333333333 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x2FB0F00] + value_type: float + value: FRAMETIME_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/D45BC89E992F23C5.yaml b/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/D45BC89E992F23C5.yaml deleted file mode 100644 index d81dd68..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100FBD013AB6000/D45BC89E992F23C5.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# SnowRunner 1.0.23 -# BID: D45BC89E992F23C5 -# Just search for 0x42055555 - -unsafeCheck: true - -MASTER_WRITE: -# Redirect DR frametime target to MAIN+0x35350C8 - - - type: bytes - main_offset: 0x187DA54 - value_type: uint32 - value: - - 0x9000E5CA - - 0xBD40C942 - # default value - - - type: bytes - main_offset: 0x35350C8 - value_type: float - value: 33.3333333333 -15FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 66.6666666666 -20FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 50 -25FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 40 -30FPS: - # default value - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 33.3333333333 -35FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 28.5714 -40FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 25 -45FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 22.2222222222 -50FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 20 -55FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 18.1818181818 -60FPS: - - - type: write - address: [MAIN, 0x35350C8] - value_type: float - value: 16.6666666666 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml b/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml index 7abf4ca..5aa810e 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100FD101186C000/BF0088C59D7E97C0.yaml @@ -3,97 +3,13 @@ unsafeCheck: true -15FPS: +ALL_FPS: # t.MaxFPS - - type: write + type: evaluate_write address: [MAIN, 0x8082C68, 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, 0x8082C68, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # t.MaxFPS (default value) - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [0, 0] -35FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # t.MaxFPS - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # t.MaxFPS (we want to set above 60 so NVN will deal with lock without UE4 trying to do it) - - - type: write - address: [MAIN, 0x8082C68, 0] - value_type: float - value: [100, 100] diff --git a/SaltySD/plugins/FPSLocker/patches/0100FE201680A000/8F2536786EECCEE5.yaml b/SaltySD/plugins/FPSLocker/patches/0100FE201680A000/8F2536786EECCEE5.yaml index 96badca..028984c 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100FE201680A000/8F2536786EECCEE5.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100FE201680A000/8F2536786EECCEE5.yaml @@ -3,157 +3,19 @@ unsafeCheck: true -15FPS: +ALL_FPS: # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to two decimals - - type: write + type: evaluate_write address: [MAIN, 0x712C4A8, 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, 0x715A0F8, 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, 0x712C4A8, 0] - value_type: float - value: [50, 50] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [20, 20] - - - type: block - what: timing -25FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [40, 40] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [25, 25] - - - type: block - what: timing -30FPS: - # r.DynamicRes.FrameTimeBudget (default value) - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [33.33, 33.33] - # t.MaxFPS (default value is 30) - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [0, 0] -35FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [28.51, 28.51] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [35, 35] - - - type: block - what: timing -40FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [25, 25] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [40, 40] - - - type: block - what: timing -45FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [22.22, 22.22] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [45, 45] - - - type: block - what: timing -50FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [20, 20] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [50, 50] - - - type: block - what: timing -55FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [18.18, 18.18] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [55, 55] - - - type: block - what: timing -60FPS: - # r.DynamicRes.FrameTimeBudget - - - type: write - address: [MAIN, 0x712C4A8, 0] - value_type: float - value: [16.66, 16.66] - # t.MaxFPS - - - type: write - address: [MAIN, 0x715A0F8, 0] - value_type: float - value: [0, 0] diff --git a/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml b/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml index f5bda07..9f3b792 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100FF500E34A000/92C78BB3DCBBC3F7.yaml @@ -3,70 +3,15 @@ unsafeCheck: true -# For 15-20 FPS use internal FPS lock, for 25-30 set default value -15FPS: +ALL_FPS: - - type: write + type: evaluate_write address: [MAIN, 0x13BFDA0] value_type: int32 - value: [4, 4] + value: [VSYNC_TARGET, VSYNC_TARGET] + # UI Speed (mm::mtl::PtrSingleton::sys(void)::s_instance) - - type: block - what: timing -20FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [3, 3] - - - type: block - what: timing -25FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [2, 2] -30FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [2, 2] -35FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] -40FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] -45FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] -50FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] -55FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] -60FPS: - - - type: write - address: [MAIN, 0x13BFDA0] - value_type: int32 - value: [1, 1] \ No newline at end of file + type: evaluate_write + address: [MAIN, 0x14016D8, 0x70] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf index b58d40c..0b81bc2 100644 Binary files a/SaltySD/saltysd_core.elf and b/SaltySD/saltysd_core.elf differ diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index 02a2f39..22116d8 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/contents/00FF0000636C6BFF/exefs.nsp b/atmosphere/contents/00FF0000636C6BFF/exefs.nsp index 1cf1943..beb2a04 100644 Binary files a/atmosphere/contents/00FF0000636C6BFF/exefs.nsp and b/atmosphere/contents/00FF0000636C6BFF/exefs.nsp differ diff --git a/atmosphere/contents/420000000000000B/exefs.nsp b/atmosphere/contents/420000000000000B/exefs.nsp index d073bca..b918d7b 100644 Binary files a/atmosphere/contents/420000000000000B/exefs.nsp and b/atmosphere/contents/420000000000000B/exefs.nsp differ diff --git a/atmosphere/kips/loader.kip b/atmosphere/kips/loader.kip index b84a8c6..d9e692f 100644 Binary files a/atmosphere/kips/loader.kip and b/atmosphere/kips/loader.kip differ diff --git a/atmosphere/package3 b/atmosphere/package3 index a884fe2..17debd5 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/atmosphere/reboot_payload.bin b/atmosphere/reboot_payload.bin index 80f9cb5..32a5c5e 100644 Binary files a/atmosphere/reboot_payload.bin and b/atmosphere/reboot_payload.bin differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs index 143cd98..6e26f6c 100644 Binary files a/atmosphere/stratosphere.romfs and b/atmosphere/stratosphere.romfs differ diff --git a/bootloader/ini/sys_cfw.ini b/bootloader/ini/sys_cfw.ini index 76eeb13..a892991 100644 --- a/bootloader/ini/sys_cfw.ini +++ b/bootloader/ini/sys_cfw.ini @@ -1,4 +1,12 @@ +[Atmosphere OC] +fss0=atmosphere/package3 +cal0blank=1 +kip1=atmosphere/kips/* +logopath=bootloader/res/bootscreen.bmp +icon=bootloader/res/emu_cfw.bmp +{} + [Semi Stock] fss0=atmosphere/package3 emummc_force_disable=1 diff --git a/bootloader/res/emu_cfw.bmp b/bootloader/res/emu_cfw.bmp new file mode 100644 index 0000000..ea30399 Binary files /dev/null and b/bootloader/res/emu_cfw.bmp differ diff --git a/bootloader/sys/emummc.kipm b/bootloader/sys/emummc.kipm index ff2fb73..5a2b1e1 100644 Binary files a/bootloader/sys/emummc.kipm and b/bootloader/sys/emummc.kipm differ diff --git a/bootloader/sys/nyx.bin b/bootloader/sys/nyx.bin index c7810af..4a746dd 100644 Binary files a/bootloader/sys/nyx.bin and b/bootloader/sys/nyx.bin differ diff --git a/bootloader/sys/res.pak b/bootloader/sys/res.pak index 09f8dfd..ccd25d7 100644 Binary files a/bootloader/sys/res.pak and b/bootloader/sys/res.pak differ diff --git a/bootloader/update.bin b/bootloader/update.bin index 80f9cb5..32a5c5e 100644 Binary files a/bootloader/update.bin and b/bootloader/update.bin differ diff --git a/config/Tuner.ini b/config/Tuner.ini index 15a96d5..ea47847 100644 --- a/config/Tuner.ini +++ b/config/Tuner.ini @@ -1,30 +1,5 @@ -[Background Services] -footer=Off -system=default -mode=toggle -grouping=default - [*Selected Preset] footer=Default -system=default -mode=option -grouping=default [*Status Monitor] -footer=Normal- -system=default -mode=option -grouping=default - -[*Framerate] -footer=60 Fps -system=default -mode=option -grouping=default - -[*Bitrate] -footer=20 Sec. -system=default -mode=option -grouping=default - +footer=Normal- \ No newline at end of file diff --git a/config/aio-switch-updater/custom_packs.json b/config/aio-switch-updater/custom_packs.json index 1e337c0..303cef7 100644 --- a/config/aio-switch-updater/custom_packs.json +++ b/config/aio-switch-updater/custom_packs.json @@ -3,7 +3,7 @@ "[PACK] Ultra-NX": "https://github.com/Ultra-NX/Ultra/releases/latest/download/Ultra.zip" }, "misc": { - "Brick Code": "https://github.com/Ultra-NX/Ultra-Resources/releases/download/Test/brick.zip", - "Refresh AIO": "https://github.com/Ultra-NX/Ultra-Resources/raw/main/aio/config.zip" + "Homebrews Pack": "https://github.com/Ultra-NX/Ultra/releases/latest/download/Homebrews.zip", + "Refresh AIO": "https://github.com/Ultra-NX/Ultra/releases/latest/download/AIO.zip" } } \ No newline at end of file diff --git a/config/aio-switch-updater/preserve.txt b/config/aio-switch-updater/preserve.txt index fa76862..f72940f 100644 --- a/config/aio-switch-updater/preserve.txt +++ b/config/aio-switch-updater/preserve.txt @@ -1,4 +1,3 @@ /switch/DBI/ /bootloader/nyx.ini -/config/sys-clk/ -/config/sys-patch/ \ No newline at end of file +/config/sys-clk/ \ No newline at end of file diff --git a/config/status-monitor/config.ini b/config/status-monitor/config.ini index be36b46..6c52a4b 100644 --- a/config/status-monitor/config.ini +++ b/config/status-monitor/config.ini @@ -1,8 +1,14 @@ [status-monitor] +ultra=true +battery_avg_iir_filter=false +battery_time_left_refreshrate=60 [full] refresh_rate=1 layer_width_align=left +show_real_freqs=true +show_deltas=true +show_target_freqs=true [mini] refresh_rate=1 diff --git a/config/sys-clk/config.ini b/config/sys-clk/config.ini index 2026cd8..0be04c9 100644 --- a/config/sys-clk/config.ini +++ b/config/sys-clk/config.ini @@ -1,3 +1,2 @@ [values] uncapped_clocks=1 -override_boost_mode=1 diff --git a/config/ultrahand/config.ini b/config/ultrahand/config.ini index 4dde8a1..8c70c35 100644 --- a/config/ultrahand/config.ini +++ b/config/ultrahand/config.ini @@ -6,6 +6,8 @@ hide_user_guide=false clean_version_labels=false hide_overlay_versions=false hide_package_versions=false +opaque_screenshots=true +progress_animation=false datetime_format='%a %T' hide_clock=false hide_battery=false diff --git a/config/ultrahand/lang/de.json b/config/ultrahand/lang/de.json index 01ced38..9ae9507 100644 --- a/config/ultrahand/lang/de.json +++ b/config/ultrahand/lang/de.json @@ -36,9 +36,10 @@ "ROOT_PACKAGE": "(Boot-)Skriptbefehle", "SORT_PRIORITY": "LaunchMenü Rangfolge", "FAILED_TO_OPEN": "Konnte Paket nicht öffnen", - "CLEAN_LABELS": "Versionskürzel (v) ausblenden", - "OVERLAY_LABELS": "Overlay Versionsnr.", - "PACKAGE_LABELS": "Paket Versionsnr.", + "CLEAN_VERSIONS": "Versionskürzel (v) ausblenden", + "OVERLAY_VERSIONS": "Overlay Versionsnr.", + "PACKAGE_VERSIONS": "Paket Versionsnr.", + "OPAQUE_SCREENSHOTS": "Undurchsichtige Screenshots", "ON": "AN", "OFF": "AUS", "PACKAGE_INFO": "Paket-Info", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "Auf Hauptmenü", "ON_A_COMMAND": "Auf einem Befehl", "ON_OVERLAY_PACKAGE": "Auf einem OVL/PKT", + "EFFECTS": "Effekte", + "PROGRESS_ANIMATION": "Fortschrittsanimation", + "EMPTY": "Leer", "SUNDAY": "Sonntag", "MONDAY": "Montag", "TUESDAY": "Dienstag", diff --git a/config/ultrahand/lang/en.json b/config/ultrahand/lang/en.json index 8a0c516..9233b17 100644 --- a/config/ultrahand/lang/en.json +++ b/config/ultrahand/lang/en.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Root Package", "SORT_PRIORITY": "Sort Priority", "FAILED_TO_OPEN": "Failed to open file", - "CLEAN_LABELS": "Clean Labels", - "OVERLAY_LABELS": "Overlay Labels", - "PACKAGE_LABELS": "Package Labels", + "CLEAN_VERSIONS": "Clean Versions", + "OVERLAY_VERSIONS": "Overlay Versions", + "PACKAGE_VERSIONS": "Package Versions", + "OPAQUE_SCREENSHOTS": "Opaque Screenshots", "ON": "On", "OFF": "Off", "PACKAGE_INFO": "Package Info", @@ -52,7 +53,7 @@ "SHUTDOWN": "Shutdown", "GAP_1": " ", "GAP_2": " ", - "USERGUIDE_OFFSET": "162", + "USERGUIDE_OFFSET": "166", "SETTINGS_MENU": "Settings Menu", "SCRIPT_OVERLAY": "Script Overlay", "STAR_FAVORITE": "Star/Favorite", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Effects", + "PROGRESS_ANIMATION": "Progress Animation", + "EMPTY": "Empty", "SUNDAY": "Sunday", "MONDAY": "Monday", "TUESDAY": "Tuesday", diff --git a/config/ultrahand/lang/es.json b/config/ultrahand/lang/es.json index 09a5d06..7b19c70 100644 --- a/config/ultrahand/lang/es.json +++ b/config/ultrahand/lang/es.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Paquete Raíz", "SORT_PRIORITY": "Prioridad de Orden", "FAILED_TO_OPEN": "No se pudo abrir el archivo", - "CLEAN_LABELS": "Etiquetas Limpias", - "OVERLAY_LABELS": "Etiquetas de Superposición", - "PACKAGE_LABELS": "Etiquetas de Paquete", + "CLEAN_VERSIONS": "Etiquetas Limpias", + "OVERLAY_VERSIONS": "Etiquetas de Superposición", + "PACKAGE_VERSIONS": "Etiquetas de Paquete", + "OPAQUE_SCREENSHOTS": "Capturas de Pantalla Opacas", "ON": "Encendido", "OFF": "Apagado", "PACKAGE_INFO": "Información del Paquete", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Efectos", + "PROGRESS_ANIMATION": "Animación de progreso", + "EMPTY": "Vacío", "SUNDAY": "Domingo", "MONDAY": "Lunes", "TUESDAY": "Martes", diff --git a/config/ultrahand/lang/fr.json b/config/ultrahand/lang/fr.json index 16922f0..557f2be 100644 --- a/config/ultrahand/lang/fr.json +++ b/config/ultrahand/lang/fr.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Paquet Racine", "SORT_PRIORITY": "Priorité de tri", "FAILED_TO_OPEN": "Échec de l'ouverture du fichier", - "CLEAN_LABELS": "Étiquettes propres", - "OVERLAY_LABELS": "Étiquettes de superposition", - "PACKAGE_LABELS": "Étiquettes de paquet", + "CLEAN_VERSIONS": "Étiquettes propres", + "OVERLAY_VERSIONS": "Étiquettes de superposition", + "PACKAGE_VERSIONS": "Étiquettes de paquet", + "OPAQUE_SCREENSHOTS": "Captures D’écran Opaques", "ON": "Activer", "OFF": "Désactiver", "PACKAGE_INFO": "Informations sur le paquet", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Effets", + "PROGRESS_ANIMATION": "Animation de progression", + "EMPTY": "Vide", "SUNDAY": "Dimanche", "MONDAY": "Lundi", "TUESDAY": "Mardi", diff --git a/config/ultrahand/lang/it.json b/config/ultrahand/lang/it.json index 68193b3..38fdd98 100644 --- a/config/ultrahand/lang/it.json +++ b/config/ultrahand/lang/it.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Pacchetto Principale", "SORT_PRIORITY": "Priorità di Ordinamento", "FAILED_TO_OPEN": "Apertura del File Fallita", - "CLEAN_LABELS": "Etichette Pulite", - "OVERLAY_LABELS": "Etichette Sovrapposte", - "PACKAGE_LABELS": "Etichette Pacchetto", + "CLEAN_VERSIONS": "Etichette Pulite", + "OVERLAY_VERSIONS": "Etichette Sovrapposte", + "PACKAGE_VERSIONS": "Etichette Pacchetto", + "OPAQUE_SCREENSHOTS": "Screenshot Opachi", "ON": "Acceso", "OFF": "Spento", "PACKAGE_INFO": "Informazioni Pacchetto", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Effetti", + "PROGRESS_ANIMATION": "Animazione di progresso", + "EMPTY": "Vuoto", "SUNDAY": "Domenica", "MONDAY": "Lunedì", "TUESDAY": "Martedì", diff --git a/config/ultrahand/lang/ja.json b/config/ultrahand/lang/ja.json index 63a5fae..f52a22d 100644 --- a/config/ultrahand/lang/ja.json +++ b/config/ultrahand/lang/ja.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "ルートパッケージ", "SORT_PRIORITY": "並べ替え優先度", "FAILED_TO_OPEN": "ファイルを開けませんでした", - "CLEAN_LABELS": "クリーン ラベル", - "OVERLAY_LABELS": "オーバーレイ ラベル", - "PACKAGE_LABELS": "パッケージ ラベル", + "CLEAN_VERSIONS": "クリーンバージョン", + "OVERLAY_VERSIONS": "オーバーレイバージョン", + "PACKAGE_VERSIONS": "パッケージバージョン", + "OPAQUE_SCREENSHOTS": "不透明なスクリーンショット", "ON": "オン", "OFF": "オフ", "PACKAGE_INFO": "パッケージ情報", @@ -52,7 +53,7 @@ "SHUTDOWN": "シャットダウン", "GAP_1": " ", "GAP_2": " ", - "USERGUIDE_OFFSET": "174", + "USERGUIDE_OFFSET": "190", "SETTINGS_MENU": "設定メニュー", "SCRIPT_OVERLAY": "スクリプトOL", "STAR_FAVORITE": "スター/お気に入り", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "メインメニューで", "ON_A_COMMAND": "コマンド実行時に", "ON_OVERLAY_PACKAGE": "オンOL/PK", + "EFFECTS": "エフェクト", + "PROGRESS_ANIMATION": "進行状況のアニメーション", + "EMPTY": "空っぽ", "SUNDAY": "日曜日", "MONDAY": "月曜日", "TUESDAY": "火曜日", diff --git a/config/ultrahand/lang/ko.json b/config/ultrahand/lang/ko.json index a71b559..9d6a367 100644 --- a/config/ultrahand/lang/ko.json +++ b/config/ultrahand/lang/ko.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "루트 패키지", "SORT_PRIORITY": "정렬 순서", "FAILED_TO_OPEN": "파일 열기 실패", - "CLEAN_LABELS": "정리된 라벨", - "OVERLAY_LABELS": "오버레이 라벨", - "PACKAGE_LABELS": "패키지 라벨", + "CLEAN_VERSIONS": "정리된 라벨", + "OVERLAY_VERSIONS": "오버레이 라벨", + "PACKAGE_VERSIONS": "패키지 라벨", + "OPAQUE_SCREENSHOTS": "불투명한 스크린샷", "ON": "켜기", "OFF": "끄기", "PACKAGE_INFO": "패키지 정보", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "메인 메뉴", "ON_A_COMMAND": "명령어", "ON_OVERLAY_PACKAGE": "오버레이/패키지", + "EFFECTS": "효과", + "PROGRESS_ANIMATION": "진행 애니메이션", + "EMPTY": "비어 있는", "SUNDAY": "일요일", "MONDAY": "월요일", "TUESDAY": "화요일", diff --git a/config/ultrahand/lang/kr.json b/config/ultrahand/lang/kr.json deleted file mode 100644 index c7416d2..0000000 --- a/config/ultrahand/lang/kr.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "UNAVAILABLE_SELECTION": "사용불가", - "OVERLAYS": "오버레이", - "OVERLAY": "오버레이", - "HIDDEN_OVERLAYS": "숨겨진 오버레이", - "PACKAGES": "패키지", - "PACKAGE": "패키지", - "HIDDEN_PACKAGES": "숨겨진 패키지", - "HIDDEN": "숨김", - "HIDE_OVERLAY": "오버레이 숨김", - "HIDE_PACKAGE": "패키지 숨김", - "LAUNCH_ARGUMENTS": "실행 매개변수", - "COMMANDS": "명령어", - "SETTINGS": "설정", - "MAIN_SETTINGS": "메인 설정", - "UI_SETTINGS": "UI 설정", - "WIDGET": "위젯", - "CLOCK": "시계", - "BATTERY": "배터리", - "SOC_TEMPERATURE": "SOC 온도", - "PCB_TEMPERATURE": "PCB 온도", - "VERSION_LABELS": "버전 라벨", - "KEY_COMBO": "키 조합", - "LANGUAGE": "언어", - "OVERLAY_INFO": "오버레이 정보", - "SOFTWARE_UPDATE": "소프트웨어 업데이트", - "UPDATE_ULTRAHAND": "업데이트 Ultra Paw", - "UPDATE_LANGUAGES": "언어 업데이트", - "ROOT_PACKAGE": "루트 패키지", - "SORT_PRIORITY": "우선순위 정렬", - "FAILED_TO_OPEN": "파일 열기 실패", - "CLEAN_LABELS": "정리된 라벨", - "OVERLAY_LABELS": "오버레이 라벨", - "PACKAGE_LABELS": "패키지 라벨", - "ON": "켜기", - "OFF": "끄기", - "PACKAGE_INFO": "패키지 정보", - "TITLE": "제목", - "VERSION": "버전", - "CREATOR": "제작자", - "ABOUT": "소개", - "CREDITS": "크레딧", - "OK": "확인", - "BACK": "뒤로", - "REBOOT": "다시 시작", - "SHUTDOWN": "종료", - "GAP_1": " ", - "GAP_2": " ", - "SUNDAY": "일요일", - "MONDAY": "월요일", - "TUESDAY": "화요일", - "WEDNESDAY": "수요일", - "THURSDAY": "목요일", - "FRIDAY": "금요일", - "SATURDAY": "토요일", - "JANUARY": "1월", - "FEBRUARY": "2월", - "MARCH": "3월", - "APRIL": "4월", - "MAY": "5월", - "JUNE": "6월", - "JULY": "7월", - "AUGUST": "8월", - "SEPTEMBER": "9월", - "OCTOBER": "10월", - "NOVEMBER": "11월", - "DECEMBER": "12월", - "SUN": "일", - "MON": "월", - "TUE": "화", - "WED": "수", - "THU": "목", - "FRI": "금", - "SAT": "토", - "JAN": "1월", - "FEB": "2월", - "MAR": "3월", - "APR": "4월", - "MAY_ABBR": "5월", - "JUN": "6월", - "JUL": "7월", - "AUG": "8월", - "SEP": "9월", - "OCT": "10월", - "NOV": "11월", - "DEC": "12월" -} diff --git a/config/ultrahand/lang/nl.json b/config/ultrahand/lang/nl.json index 584f359..7ba1bd7 100644 --- a/config/ultrahand/lang/nl.json +++ b/config/ultrahand/lang/nl.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Hoofdpakket", "SORT_PRIORITY": "Sorteer prioriteit", "FAILED_TO_OPEN": "Kon bestand niet openen", - "CLEAN_LABELS": "Schone Labels", - "OVERLAY_LABELS": "Overlay Labels", - "PACKAGE_LABELS": "Pakket Labels", + "CLEAN_VERSIONS": "Schone Labels", + "OVERLAY_VERSIONS": "Overlay Labels", + "PACKAGE_VERSIONS": "Pakket Labels", + "OPAQUE_SCREENSHOTS": "Ondoorzichtige Screenshots", "ON": "Aan", "OFF": "Uit", "PACKAGE_INFO": "Pakketinformatie", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Effecten", + "PROGRESS_ANIMATION": "Voortgangsanimatie", + "EMPTY": "Leeg", "SUNDAY": "Zondag", "MONDAY": "Maandag", "TUESDAY": "Dinsdag", diff --git a/config/ultrahand/lang/pt.json b/config/ultrahand/lang/pt.json index 0af3a37..9ae263a 100644 --- a/config/ultrahand/lang/pt.json +++ b/config/ultrahand/lang/pt.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Pacote Principal", "SORT_PRIORITY": "Prioridade de Ordenação", "FAILED_TO_OPEN": "Falha ao Abrir", - "CLEAN_LABELS": "Rótulos Limpos", - "OVERLAY_LABELS": "Rótulos de Sobreposição", - "PACKAGE_LABELS": "Rótulos de Pacote", + "CLEAN_VERSIONS": "Rótulos Limpos", + "OVERLAY_VERSIONS": "Rótulos de Sobreposição", + "PACKAGE_VERSIONS": "Rótulos de Pacote", + "OPAQUE_SCREENSHOTS": "Capturas de Tela Opaques", "ON": "Ligado", "OFF": "Desligado", "PACKAGE_INFO": "Informações do Pacote", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "on Main Menu", "ON_A_COMMAND": "on a command", "ON_OVERLAY_PACKAGE": "on overlay/package", + "EFFECTS": "Efeitos", + "PROGRESS_ANIMATION": "Animação de progresso", + "EMPTY": "Vazio", "SUNDAY": "Domingo", "MONDAY": "Segunda-feira", "TUESDAY": "Terça-feira", diff --git a/config/ultrahand/lang/ru.json b/config/ultrahand/lang/ru.json index 1bc294d..7b754fa 100644 --- a/config/ultrahand/lang/ru.json +++ b/config/ultrahand/lang/ru.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "Корневой Пакет", "SORT_PRIORITY": "Приоритет Сортировки", "FAILED_TO_OPEN": "Файл не открывается", - "CLEAN_LABELS": "Аккуратные Версии", - "OVERLAY_LABELS": "Версии Оверлеев", - "PACKAGE_LABELS": "Версии Пакетов", + "CLEAN_VERSIONS": "Аккуратные Версии", + "OVERLAY_VERSIONS": "Версии Оверлеев", + "PACKAGE_VERSIONS": "Версии Пакетов", + "OPAQUE_SCREENSHOTS": "Непрозрачные Скриншоты", "ON": "Вкл", "OFF": "Выкл", "PACKAGE_INFO": "Информация", @@ -52,14 +53,17 @@ "SHUTDOWN": "Выключение", "GAP_1": " ", "GAP_2": " ", - "USERGUIDE_OFFSET": "160", + "USERGUIDE_OFFSET": "172", "SETTINGS_MENU": "Настройки", "SCRIPT_OVERLAY": "Смотреть Скрипты", "STAR_FAVORITE": "Избранное", "APP_SETTINGS": "Настройки Пункта", "ON_MAIN_MENU": "В Главном Меню", - "ON_A_COMMAND": "На Команде", - "ON_OVERLAY_PACKAGE": "На Оверлее/Пакете", + "ON_A_COMMAND": "на команде", + "ON_OVERLAY_PACKAGE": "на оверлее/пакете", + "EFFECTS": "Эффекты", + "PROGRESS_ANIMATION": "Анимация Прогресса", + "EMPTY": "Пустой", "SUNDAY": "Воскресенье", "MONDAY": "Понедельник", "TUESDAY": "Вторник", diff --git a/config/ultrahand/lang/zh-cn.json b/config/ultrahand/lang/zh-cn.json index c466039..5025782 100644 --- a/config/ultrahand/lang/zh-cn.json +++ b/config/ultrahand/lang/zh-cn.json @@ -35,11 +35,12 @@ "ROOT_PACKAGE": "插件包初始页", "SORT_PRIORITY": "优先级顺序", "FAILED_TO_OPEN": "未能打开该文件夹", - "CLEAN_LABELS": "刪除插件标签", - "OVERLAY_LABELS": "插件的标签", - "PACKAGE_LABELS": "插件包的标签", - "ON": "启用", - "OFF": "停用", + "CLEAN_VERSIONS": "刪除插件标签", + "OVERLAY_VERSIONS": "插件版本显示", + "PACKAGE_VERSIONS": "插件包版本显示", + "OPAQUE_SCREENSHOTS": "不透明的截图”", + "ON": "开启", + "OFF": "关闭", "PACKAGE_INFO": "插件包信息", "TITLE": "名称", "VERSION": "版本", @@ -55,11 +56,14 @@ "USERGUIDE_OFFSET": "136", "SETTINGS_MENU": "项目主要设置", "SCRIPT_OVERLAY": "查看命令脚本", - "STAR_FAVORITE": "设置喜好插件", + "STAR_FAVORITE": "设置偏好插件", "APP_SETTINGS": "单独插件设置", "ON_MAIN_MENU": "在所有插件列表中", "ON_A_COMMAND": "在插件包的命令中", "ON_OVERLAY_PACKAGE": "在单个插件或者插件包中", + "EFFECTS": "命令效果显示", + "PROGRESS_ANIMATION": "进度条震动特效", + "EMPTY": "空白的文件", "SUNDAY": "周日", "MONDAY": "周一", "TUESDAY": "周二", diff --git a/config/ultrahand/lang/zh-tw.json b/config/ultrahand/lang/zh-tw.json index ceeccb6..cd4262b 100644 --- a/config/ultrahand/lang/zh-tw.json +++ b/config/ultrahand/lang/zh-tw.json @@ -35,9 +35,10 @@ "ROOT_PACKAGE": "插件包初始頁", "SORT_PRIORITY": "優先級順序", "FAILED_TO_OPEN": "未能打開文件夾", - "CLEAN_LABELS": "刪除插件標簽", - "OVERLAY_LABELS": "插件的標簽", - "PACKAGE_LABELS": "插件包的標簽", + "CLEAN_VERSIONS": "刪除插件標簽", + "OVERLAY_VERSIONS": "插件的標簽", + "PACKAGE_VERSIONS": "插件包的標簽", + "OPAQUE_SCREENSHOTS": "不透明的截圖", "ON": "啟用", "OFF": "停用", "PACKAGE_INFO": "插件包信息", @@ -60,6 +61,9 @@ "ON_MAIN_MENU": "在所有插件列表中", "ON_A_COMMAND": "在插件包的命令中", "ON_OVERLAY_PACKAGE": "在單個插件或者插件包中", + "EFFECTS": "效果", + "PROGRESS_ANIMATION": "進度動畫", + "EMPTY": "空", "SUNDAY": "周日", "MONDAY": "周一", "TUESDAY": "周二", diff --git a/config/ultrahand/theme.ini b/config/ultrahand/theme.ini index e2c2a6d..48b1dc2 100644 --- a/config/ultrahand/theme.ini +++ b/config/ultrahand/theme.ini @@ -1,31 +1,48 @@ [theme] -clock_color=#FFFFFF battery_color=#FFFFFF bg_alpha=13 bg_color=#000000 -seperator_alpha=7 -seperator_color=#777777 -text_color=#FFFFFF -info_text_color=#FFFFFF -version_text_color=#AAAAAA -on_text_color=#00DDFF -off_text_color=#AAAAAA -invalid_text_color=#FF0000 -inprogress_text_color=#00FF99 -selection_text_color=#FFFFFF -selection_bg_color=#000000 -trackbar_color=#555555 +bottom_button_color=#FFFFFF +bottom_separator_color=#FFFFFF +bottom_text_color=#FFFFFF +click_alpha=7 +click_color=#00AAFF +click_text_color=#000000 +clock_color=#FFFFFF +default_package_color=#00FF00 +disable_colorful_logo=false +disable_selection_bg=true +dynamic_logo_color_1=#00AAFF +dynamic_logo_color_2=#FFFFFF +header_separator_color=#FFFFFF +header_text_color=#FFFFFF highlight_color_1=#2288CC highlight_color_2=#88FFFF highlight_color_3=#FFFF45 highlight_color_4=#00FF99 -click_text_color=#000000 -click_alpha=7 -click_color=#00AAFF +inprogress_text_color=#00FF99 +invalid_text_color=#FF0000 invert_bg_click_color=false -disable_selection_bg=true -disable_colorful_logo=false logo_color_1=#FFFFFF logo_color_2=#FFFFFF -dynamic_logo_color_1=#00AAFF -dynamic_logo_color_2=#FFFFFF +off_text_color=#AAAAAA +on_text_color=#00DDFF +selection_bg_alpha=13 +selection_bg_color=#000000 +selection_star_color=#FFFFFF +selection_text_color=#FFFFFF +seperator_alpha=7 +seperator_color=#777777 +star_color=#FFFFFF +table_bg_alpha=10 +table_bg_color=#303030 +table_info_text_color=#00DDFF +table_section_text_color=#FFFFFF +text_color=#FFFFFF +trackbar_color=#555555 +trackbar_empty_color=#404040 +trackbar_full_color=#00FFDD +trackbar_slider_border_color=#505050 +trackbar_slider_color=#606060 +trackbar_slider_malleable_color=#A0A0A0 +version_text_color=#AAAAAA diff --git a/config/ultrahand/themes/5IFIR.ini b/config/ultrahand/themes/5IFIR.ini index 6bcebe7..15aa2d3 100644 --- a/config/ultrahand/themes/5IFIR.ini +++ b/config/ultrahand/themes/5IFIR.ini @@ -1,31 +1,48 @@ [theme] -clock_color=#FFFFFF battery_color=#FFFFFF bg_alpha=11 bg_color=#000000 -seperator_alpha=0 -seperator_color=#777777 -text_color=#FFFFFF -info_text_color=#FFFFFF -version_text_color=#00AAFF -on_text_color=#999999 -off_text_color=#CCAAAA -invalid_text_color=#FF0000 -inprogress_text_color=#FFFF45 -selection_text_color=#FFFFFF -selection_bg_color=#000000 -trackbar_color=#00AAFF +bottom_button_color=#FFFFFF +bottom_separator_color=#FFFFFF +bottom_text_color=#FFFFFF +click_alpha=7 +click_color=#00AAFF +click_text_color=#000000 +clock_color=#FFFFFF +default_package_color=#00FF00 +disable_colorful_logo=true +disable_selection_bg=false +dynamic_logo_color_1=#00AAFF +dynamic_logo_color_2=#FFFFFF +header_separator_color=#FFFFFF +header_text_color=#FFFFFF highlight_color_1=#2288CC highlight_color_2=#88FFFF highlight_color_3=#FFFF45 highlight_color_4=#F7253E -click_text_color=#000000 -click_alpha=7 -click_color=#00AAFF +inprogress_text_color=#FFFF45 +invalid_text_color=#FF0000 invert_bg_click_color=false -disable_selection_bg=false -disable_colorful_logo=true logo_color_1=#FFFFFF logo_color_2=#FFFFFF -dynamic_logo_color_1=#00AAFF -dynamic_logo_color_2=#FFFFFF +off_text_color=#CCAAAA +on_text_color=#999999 +selection_bg_alpha=13 +selection_bg_color=#000000 +selection_star_color=#FFFFFF +selection_text_color=#FFFFFF +seperator_alpha=7 +seperator_color=#777777 +star_color=#FFFFFF +table_bg_alpha=10 +table_bg_color=#303030 +table_info_text_color=#999999 +table_section_text_color=#FFFFFF +text_color=#FFFFFF +trackbar_color=#555555 +trackbar_empty_color=#404040 +trackbar_full_color=#00FFDD +trackbar_slider_border_color=#505050 +trackbar_slider_color=#606060 +trackbar_slider_malleable_color=#A0A0A0 +version_text_color=#AAAAAA diff --git a/config/ultrahand/themes/Ultra Paw.ini b/config/ultrahand/themes/Ultra Paw.ini index e2c2a6d..48b1dc2 100644 --- a/config/ultrahand/themes/Ultra Paw.ini +++ b/config/ultrahand/themes/Ultra Paw.ini @@ -1,31 +1,48 @@ [theme] -clock_color=#FFFFFF battery_color=#FFFFFF bg_alpha=13 bg_color=#000000 -seperator_alpha=7 -seperator_color=#777777 -text_color=#FFFFFF -info_text_color=#FFFFFF -version_text_color=#AAAAAA -on_text_color=#00DDFF -off_text_color=#AAAAAA -invalid_text_color=#FF0000 -inprogress_text_color=#00FF99 -selection_text_color=#FFFFFF -selection_bg_color=#000000 -trackbar_color=#555555 +bottom_button_color=#FFFFFF +bottom_separator_color=#FFFFFF +bottom_text_color=#FFFFFF +click_alpha=7 +click_color=#00AAFF +click_text_color=#000000 +clock_color=#FFFFFF +default_package_color=#00FF00 +disable_colorful_logo=false +disable_selection_bg=true +dynamic_logo_color_1=#00AAFF +dynamic_logo_color_2=#FFFFFF +header_separator_color=#FFFFFF +header_text_color=#FFFFFF highlight_color_1=#2288CC highlight_color_2=#88FFFF highlight_color_3=#FFFF45 highlight_color_4=#00FF99 -click_text_color=#000000 -click_alpha=7 -click_color=#00AAFF +inprogress_text_color=#00FF99 +invalid_text_color=#FF0000 invert_bg_click_color=false -disable_selection_bg=true -disable_colorful_logo=false logo_color_1=#FFFFFF logo_color_2=#FFFFFF -dynamic_logo_color_1=#00AAFF -dynamic_logo_color_2=#FFFFFF +off_text_color=#AAAAAA +on_text_color=#00DDFF +selection_bg_alpha=13 +selection_bg_color=#000000 +selection_star_color=#FFFFFF +selection_text_color=#FFFFFF +seperator_alpha=7 +seperator_color=#777777 +star_color=#FFFFFF +table_bg_alpha=10 +table_bg_color=#303030 +table_info_text_color=#00DDFF +table_section_text_color=#FFFFFF +text_color=#FFFFFF +trackbar_color=#555555 +trackbar_empty_color=#404040 +trackbar_full_color=#00FFDD +trackbar_slider_border_color=#505050 +trackbar_slider_color=#606060 +trackbar_slider_malleable_color=#A0A0A0 +version_text_color=#AAAAAA diff --git a/payload.bin b/payload.bin index 80f9cb5..32a5c5e 100644 Binary files a/payload.bin and b/payload.bin differ diff --git a/switch/.overlays/FPSLocker.ovl b/switch/.overlays/FPSLocker.ovl index e30fc88..74f6d4a 100644 Binary files a/switch/.overlays/FPSLocker.ovl and b/switch/.overlays/FPSLocker.ovl differ diff --git a/switch/.overlays/Status-Monitor-Overlay.ovl b/switch/.overlays/Status-Monitor-Overlay.ovl index aad4597..cc90632 100644 Binary files a/switch/.overlays/Status-Monitor-Overlay.ovl and b/switch/.overlays/Status-Monitor-Overlay.ovl differ diff --git a/switch/.overlays/Ultra.ovl b/switch/.overlays/Ultra.ovl index e7cb4d9..b9c7b6e 100644 Binary files a/switch/.overlays/Ultra.ovl and b/switch/.overlays/Ultra.ovl differ diff --git a/switch/.overlays/ovlEdiZon.ovl b/switch/.overlays/ovlEdiZon.ovl index d61d955..91fa6f5 100644 Binary files a/switch/.overlays/ovlEdiZon.ovl and b/switch/.overlays/ovlEdiZon.ovl differ diff --git a/switch/.overlays/ovlmenu.ovl b/switch/.overlays/ovlmenu.ovl index c3b31f1..7e7c7af 100644 Binary files a/switch/.overlays/ovlmenu.ovl and b/switch/.overlays/ovlmenu.ovl differ diff --git a/switch/.overlays/sys-patch-overlay.ovl b/switch/.overlays/sys-patch-overlay.ovl deleted file mode 100644 index 2967755..0000000 Binary files a/switch/.overlays/sys-patch-overlay.ovl and /dev/null differ diff --git a/switch/.packages/boot_package.ini b/switch/.packages/boot_package.ini index a716d54..f17c213 100644 --- a/switch/.packages/boot_package.ini +++ b/switch/.packages/boot_package.ini @@ -65,6 +65,8 @@ del '/switch/.overlays/4IFIR.ovl' del '/switch/.overlays/InfoNX-ovl.ovl' del '/switch/.overlays/Ultra-Status-Monitor.ovl' del '/switch/.overlays/sys-clk-overlay.ovl' +del '/switch/.overlays/sys-patch-overlay.ovl' + del '/switch/.packages/Ultra Cleaner/' del '/switch/.packages/4IFIR Wizard/' diff --git a/switch/DBI/dbi.config b/switch/DBI/dbi.config index ff10330..3a1ff68 100644 --- a/switch/DBI/dbi.config +++ b/switch/DBI/dbi.config @@ -9,7 +9,7 @@ LogEvents=false ; Folder where logs are stored LogsFolder=sdmc:/switch/DBI/logs/ ; Folder where game dumps are stored -DumpsFolder=sdmc:/switch/DBI/dumps/ +DumpsFolder=sdmc:/!nsp/ ; Sorting options for application list AppSorting=LastPlayed,InstallLocation,Size,Name ; Sorting options for save list @@ -26,6 +26,9 @@ OptimizeClockSpeed=true ;VersionsURL=https://raw.githubusercontent.com/16BitWonder/nx-versions/master/versions.txt VersionsURL=https://raw.githubusercontent.com/blawar/titledb/master/versions.txt ;VersionsURL=sdmc:/versions.txt +; URL with titledb json +TitleDB=https://raw.githubusercontent.com/blawar/titledb/master/US.en.json + ;Browse saves FS in Read-only mode ROSaveFS=false ; Show "Update all items from here..." in context menu of file browsers @@ -41,7 +44,7 @@ Autorepeat=true ; Show cursors on both panels in two-panel browsinig mode Secondcursor=false ; Backup saves before delete -FoolproofSaveDelete=true +FoolproofSaveDelete=false ; Show time in status line TimeShow=true ; Show time with seconds @@ -82,7 +85,7 @@ Tools=true [Applications] ; Whether check or not LFS mod size -CalculateLFSSize=false +CalculateLFSSize=true ; Install options [Install] @@ -123,16 +126,20 @@ NewBufferTimeout=2500 ; Turn screen off on start FTP mode TurnOffScreen=false ; Read file modification time (can slow down on large dirs) -ReadMT=true +ReadMT=false ; Access port Port=5000 -; Send current directory as type=cdir +; Min value for passive port range. Use 0 to Auto +MinPassivePort=40000 +; Max value for passive port range. Use 0 to Auto +MaxPassivePort=40100 +; send current directory as type=cdir CDIR=false ;HTTP options [HTTP] ; Access port -Port=80 +Port=1234 ; Access point options [Access point] @@ -152,7 +159,7 @@ Hidden=false 4: Installed games=false 5: SD Card install=true 6: NAND install=true -7: Saves=false +7: Saves=true 8: Album=true 9: Gamecard=false @@ -173,12 +180,11 @@ Hidden=false ; = ;Homebrew=sdmc:/switch DBILogs=sdmc:/switch/DBI/logs -SimpleModManagerMods=sdmc:/mods + [MTP custom storages] ; = ;Homebrew=sdmc:/switch DBILogs=sdmc:/switch/DBI/logs -SimpleModManagerMods=sdmc:/mods ; Override for display name ; =