diff --git a/README.md b/README.md index ef5e23c..1315faf 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ ### [Группа в телеграме](https://t.me/UltraNX) | [Wiki](https://github.com/Ultra-NX/Ultra/wiki) -### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт. +### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с акцентом на разгон и улучшение пользовательского опыта. -### [UltraNX 3.1|R1](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Поддерживает все HOS до 23.0.1 включительно +### [UltraNX 3.1|R1+](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Поддерживает все HOS до 23.0.1 включительно @@ -21,11 +21,9 @@ * Модульная конструкция. В составе минимум приложений/плагинов/оверлеев, но вы всегда можете поставить еще через [Ultra Tuner](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater). * Кастомная настройка работы системы охлаждения, и пресеты на выбор. * Регулярные обновления, и активное комьюнити. -* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила. +* DBI со встроенным репозиторием игр notUltraNX - больше не нужно каждый раз искать новый магазин/репозиторий для Tinfoil. * Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы. -* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей: - * Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему. - * Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными. +* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches). @@ -34,7 +32,7 @@ 1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, кастомная прошивка для Nintendo Switch. 1. **[Hekate](https://github.com/CTCaer/hekate)** - Пользовательский графический загрузчик Nintendo Switch, патчер прошивки, инструментарий и многое другое. 1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultrahand, позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник. -1. **[Horizon OC](https://github.com/Horizon-OC/Horizon-OC)** - Загрузчик Атмосферы с разгоном от Soul и Lightos, позволяет выжать из N.Switch мощность Xbox One. Вовремя обновляется для поддержки новых возможностей Атмосферы. +1. **[Horizon OC](https://github.com/Horizon-OC/Horizon-OC)** - Загрузчик Атмосферы с разгоном от Soul и Lightos, позволяет выжать максимум производительности из Nintendo Switch, приближая её к уровню Xbox One. Регулярно обновляется для поддержки новых возможностей Atmosphere. 1. **Установленные пейлоады**: @@ -43,7 +41,7 @@ 1. **Установленные Homebrew** - * [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления UltraNX до актуальной версии, а так же для скачивания читов и HOS. + * [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления UltraNX до актуальной версии, а также для загрузки читов. * [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - Программа для обновления HOS (системного ПО). * [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Лучший файловый менеджер, менеджер сохранений и установщик программ на консоль. @@ -54,7 +52,7 @@ * [sys-patch](https://github.com/borntohonk/sys-patch) - Патчит систему на работу неподписанного софта вместо сигпатчей. * [Mission Control](https://github.com/ndeadly/MissionControl) - Модуль, позволяющий подключать практически любые геймпады к консоли по Bluetooth. * [sys-con](https://github.com/o0Zz/sys-con) - Модуль, позволяющий подключать практически любые геймпады к консоли по USB. - * [disable remap dialog](https://github.com/ndeadly/disable_remap_dialog) - Модуль, убирающий предупреждение о переназначенных кнопках при каждом заходе в игры. + * [disable remap dialog](https://github.com/ndeadly/disable_remap_dialog) - Модуль, скрывающий предупреждение о переназначенных кнопках при каждом запуске игры. * [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Также позволяет использовать самописные пакеты, например - Ultra Tuner. - [Horizon OC](https://github.com/Horizon-OC/Horizon-OC) - Оверлей для управления модулем sys-clk. - [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Tuner. @@ -83,7 +81,7 @@ * [sys-dock](https://github.com/masagrator/sys-dock) - Модуль позволяющий изменять частоту подключенного экрана через Док. * [Tetris](https://github.com/ppkantorski/Tetris-Overlay) - Та самая игра в виде оверлея. Работает только на последних версиях Ultrahand. * [MasterVolume](https://github.com/averne/MasterVolume) - Регулировка глобальной громкости, позволяет поднять громкость выше максимума. Использовать аккуратно! - * [NX-FanControl](https://github.com/Lightos1/NX-FanControl) - Модуль для ручной регулировки оборотов кулера. Изменения применяются сразу, модуль смотрит на температуру SOC а не Skin, как Атмосфера. + * [NX-FanControl](https://github.com/Lightos1/NX-FanControl) - Модуль для ручной регулировки оборотов кулера. Изменения применяются сразу, модуль ориентируется на температуру SOC, а не Skin, как в Atmosphere. * [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - Оверлей, позволяющий быстро отключаться\подключаться к bluetooth-гарнитуре. * [Fizeau](https://github.com/averne/Fizeau) + [Fizeau Overlay Fork](https://github.com/ppkantorski/Fizeau) - Модуль для изменения цветового профиля экрана. * [sys-tune](https://github.com/ppkantorski/sys-tune) - Оверлей-музыкальный плеер, работает в фоне. diff --git a/README_ENG.md b/README_ENG.md index 24000ee..f7fe128 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -4,24 +4,22 @@ ### [Telegram group](https://t.me/UltraNX) - Don't be afraid to write in English, we will understand everything and answer you! # -### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience. +### Ultra is a feature-rich custom firmware for the Nintendo Switch, focused on overclocking and a smoother user experience. -### [UltraNX 3.1|R1](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Supports all HOS up to and including 23.0.1 +### [UltraNX 3.1|R1+](https://github.com/Ultra-NX/UltraNX/releases/tag/3.1-R1) Supports all HOS up to and including 23.0.1 ## Features of Ultra * Pre-configured Horizon OC (Successor to EOS) with presets. -* By default, there's already an undervolt that noticeably reduces the console's consumption, and a slight memory overclock that will make games smoother. -* The best overclocking customizer for Switch - Ultra-Tuner, that allows you to customize overclocking right from the console. It was the first, and remains unique. -* The CFW is as light as possible. There are no unnecessary things in it, only minimum necessary for overclocking and comfortable use. -* Modular design. A minimum of applications/plugins/overlays are included, but you can always add more via the Ultra Tuner. -* Manual adjustment of cooling system curves, and presets. -* Regular updates, and an active community. -* [Forks](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (own modifications) of programs and components needed for convenience, security and empowerment: - * Atmosphere fork with Ultra version in system information, and disabled reports, which usually clogs up the SD card, wastes its resource and breaks the file system. - * Mission Control fork, with the “easter egg” cut out, making the joycons yellow-blue. +* The build already includes a mild undervolt, which noticeably reduces power consumption, along with a moderate memory overclock for smoother gameplay. +* The best overclocking tool for the Switch - Ultra-Tuner, lets you fine-tune overclocking directly from the console. It was the first of its kind and remains unique. +* Ultra is kept as lightweight as possible: no unnecessary bloat, only the essentials needed for overclocking and everyday comfort. +* Modular design: only the essentials are included, but you can always add more through Ultra Tuner. +* Custom cooling curve tuning with selectable presets. +* Frequent updates and an active community. +* [Forks](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) @@ -30,62 +28,62 @@ 1. **[Atmosphere](https://github.com/Atmosphere-NX/Atmosphere)** - Atmosphère, custom firmware for the Nintendo Switch. 1. **[Hekate](https://github.com/CTCaer/hekate)** - Custom Nintendo Switch graphical bootloader, firmware patcher, toolkit and more. 1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Package for Ultrahand, which allows you to fine-tune the OC parameters for your console. In case of unstable overclocking, or if you want to increase the performance of your console, Ultra Tuner is your indispensable assistant. -1. **[Horizon OC](https://github.com/Horizon-OC/Horizon-OC)** - Atmosphere Loader with overclocking from Soul & Lightos, allows you to reach from N.Switch power Xbox One. Updated in time to support new Atmosphere features. +1. **[Horizon OC](https://github.com/Horizon-OC/Horizon-OC)** - The Atmosphere loader with overclocking from Soul and Lightos allows you to get the maximum performance out of the Nintendo Switch, bringing it closer to the level of Xbox One. It is regularly updated to support new features of Atmosphere. 1. **Installed Payloads**: * [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Program for dumping console keys. - * [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for working with the system. + * [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - A low-level file manager for system-level operations. 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 & HOS. + * [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - A tool to update Ultra to the latest version and download cheats. * [Daybreak](https://github.com/Atmosphere-NX/Atmosphere) - A program for updating HOS. * [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - The best file manager, save manager and program installer on the console. 1. **Installed Modules** * [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins. - * [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - This module is used to switch the installed modules. + * [nx-ovlloader](https://github.com/ppkantorski/nx-ovlloader) - This module lets you toggle installed modules on and off. * [sys-patch](https://github.com/borntohonk/sys-patch) - Patches the system to run unsigned software instead of sigpatches. - * [Mission Control](https://github.com/ndeadly/MissionControl) - A module that allows you to connect almost any gamepads to the console via bluetooth. + * [Mission Control](https://github.com/ndeadly/MissionControl) - A module that lets you connect almost any controller 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. - * [disable remap dialog](https://github.com/ndeadly/disable_remap_dialog) - A module that removes the warning about reconfigured buttons every time you enter the game. + * [disable remap dialog](https://github.com/ndeadly/disable_remap_dialog) - A module that hides the remap warning every time you launch a game. * [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. - [Horizon OC](https://github.com/Horizon-OC/Horizon-OC) - Overlay for controlling sys-clk module. - [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Tuner. - - [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that allows you to unlock 60 FPS in games. - - [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - An overlay for using cheats. + - [FPSLocker](https://github.com/masagrator/FPSLocker) - An overlay that unlocks 60 FPS in games. + - [EdiZon](https://github.com/proferabg/EdiZon-Overlay) - Overlay for using cheats, including graphics. - [ReverseNX-RT](https://github.com/ppkantorski/ReverseNX-RT) - An overlay for switching a running game to a handheld\dock mode, which changes the graphics and resolution settings in games. - [Sysmodules](https://github.com/ppkantorski/ovl-sysmodules) - Overlay for enabling\disabling installed system modules. -1. **Available for download via [Updater](https://github.com/Ultra-NX/Ultra/wiki/Tuner-RU#Updater)** +1. **Available for download via Updater** * Homebrews: * [DBI](https://4pda.to/forum/index.php?showtopic=939714&st=1100#entry86288632) - Here you can download a DBI or update an existing one. * [AIO](https://github.com/HamletDuFromage/aio-switch-updater) - Downloads the configured AIO for UltraNX. - * [Linkalho](https://gbatemp.net/download/linkalho.38822/) - Account linking program. Some games won't work without the link.= + * [Linkalho](https://gbatemp.net/download/linkalho.38822/) - Account linking program. Some games won't work without the link. * [PPSSPP](https://github.com/NaGaa95/ppsspp-nx) - PSP emulator. * [DuckStation](https://github.com/shooterspps/duckstation) - PS1 emulator. * [Moonlight](https://github.com/XITRIX/Moonlight-Switch) - Moonlight client, allows to stream games from PC. - * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch. - * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily! + * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Search for and install themes on the Switch. + * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - A utility to reset the battery controller. Do not use unnecessarily! * [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. * [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one. - * [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Benchmark. The result is highly dependent on CPU overclocking. A version from 4ifir that tests CPU Copy in real time, which allows you to quickly find out the result after changing timings. + * [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Benchmark. The result depends heavily on CPU overclocking. This 4IFIR version tests CPU Copy performance in real time, allowing you to quickly evaluate the effect of timing changes. * Overlays: * [Status Monitor](https://github.com/ppkantorski/Status-Monitor-Overlay) - Status Monitor fork from kantorski. - * [sys-dock](https://github.com/masagrator/sys-dock) - A module that allows you to change the frequency of your connected screen via the Dock. + * [sys-dock](https://github.com/masagrator/sys-dock) - A module that lets you change the refresh rate of the connected display through the dock. * [Tetris](https://github.com/ppkantorski/Tetris-Overlay/) - "That" game in the form of an overlay. Works only on the latest versions of Ultrahand. * [MasterVolume](https://github.com/averne/MasterVolume) - Global volume control, allows you to raise the volume above the maximum. Use with care! * [NX-FanControl](https://github.com/Lightos1/NX-FanControl) - Module for manually adjusting the speed of the cooler. The changes are applied immediately, the module works from SOC temperature and not Skin temperature like Atmosphere. - * [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - An overlay that allows you to quickly disconnect\connect to a bluetooth headset. + * [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - An overlay that lets you quickly connect or disconnect a Bluetooth headset. * [Fizeau](https://github.com/averne/Fizeau) + [Fizeau Overlay Fork](https://github.com/ppkantorski/Fizeau) - Module for changing the screen color profile. * [sys-tune](https://github.com/ppkantorski/sys-tune) - Overlay music player, works in background. * Other: - * [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - The patch package for FPSLocker allows you to update all patches at once, instead of downloading one at a time through the FPSLocker overlay. UltraNX always has the latest patches by default, so it's enough to update the CFW in a timely manner. + * [FPSLocker Patches](https://github.com/masagrator/FPSLocker-Warehouse) - The FPSLocker patch pack lets you update all patches at once instead of downloading them one by one through the FPSLocker overlay. UltraNX always has the latest patches by default, so it's enough to update the CFW in a timely manner. * [DVR Patches](https://github.com/exelix11/dvr-patches) - SysDVR patches, work without the system module, activating background recording in games where it is initially prohibited. * [Mod Alchemist](https://github.com/ppkantorski/Alchemist) - A package for downloading, installing, and managing mods for games. * [sys-ftpd](https://github.com/ELY3M/sys-ftpd) - FTP server running in background. @@ -115,8 +113,8 @@ Listed below are the licenses of those programs that have been modified specific ## Support -If you like the project and you have a desire to support me with a penny - I will be very grateful. -I have no other income at the moment, so any monetary help is very valuable to me. +If you like the project and want to support it with a small donation, I would be very grateful. +I currently have no other source of income, so any financial support is especially valuable. ``` TON: UQC9p9jHJHLVnm4uXJDoH4GQ76golzgKnG-bEExO2QsotCV5 BTC: bc1q407f2fv3nsdy86y6njfx8updhxfmuwx49erhal diff --git a/SaltySD/plugins/FPSLocker/patches/010009800203E000/DEEE18D307C81634.yaml b/SaltySD/plugins/FPSLocker/patches/010009800203E000/DEEE18D307C81634.yaml new file mode 100644 index 0000000..97fd431 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010009800203E000/DEEE18D307C81634.yaml @@ -0,0 +1,65 @@ +# WWE 2K18 1.04 +# BID: DEEE18D307C81634 + +MASTER_WRITE: + # NOP 30 fps restore + - + type: asm_a64 + main_offset: 0xEEB634 + instructions: [ + [ret] + ] + # SetFrameRate + - + type: asm_a64 + main_offset: 0xEEB688 + instructions: [ + [adrp, x8, 0x3016000], + [ldr, x8, [x8, 0x990]], + [ldr, s0, [x8, 0x20]], + [ret] + ] + # NOP 30 fps restore + - + type: asm_a64 + main_offset: 0xEEB7D4 + instructions: [ + [ret] + ] + +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x3748D38] + value_type: uint32 + value: "FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D4C] + value_type: float + value: "1 / FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D50] + value_type: float + value: "FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D54] + value_type: float + value: "1000 / FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D58] + value_type: uint32 + value: "1000 / FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D6C] + value_type: float + value: "60 / FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x3748D70] + value_type: float + value: "FPS_TARGET / 60" diff --git a/SaltySD/plugins/FPSLocker/patches/010009D018A06000/237FC7EFDA6C98B1.yaml b/SaltySD/plugins/FPSLocker/patches/010009D018A06000/237FC7EFDA6C98B1.yaml new file mode 100644 index 0000000..d7d1fe7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010009D018A06000/237FC7EFDA6C98B1.yaml @@ -0,0 +1,25 @@ +# ソードアート・オンライン フラクチュアード デイドリーム 1.8.0.0 +# BID: 237FC7EFDA6C98B1 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8713728, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x874E2F0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7F4DF88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000FB00AA90000/2BE4AF8B1A137445.yaml b/SaltySD/plugins/FPSLocker/patches/01000FB00AA90000/2BE4AF8B1A137445.yaml new file mode 100644 index 0000000..e16c5cf --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000FB00AA90000/2BE4AF8B1A137445.yaml @@ -0,0 +1,15 @@ +# Little Town Hero 1.2.0 +# BID: 2BE4AF8B1A137445 + +MASTER_WRITE: + # PlayerMoveController.CalculateVelocity + # MoveController.UpdateMe stores velocity*deltaTime back into velocity, so the effective + # speed is proportional to the lerp factor (14*dt) -> 2x slower at 60 FPS. + ## Constant lerp factor 0.46875 (~14/30, the 30 FPS value). + - + type: asm_a64 + main_offset: 0x174882C + instructions: [ + [fmov, s0, 0.46875], + [nop] + ] diff --git a/SaltySD/plugins/FPSLocker/patches/01001080208AA000/68E3A0EA176A79F4.yaml b/SaltySD/plugins/FPSLocker/patches/01001080208AA000/68E3A0EA176A79F4.yaml new file mode 100644 index 0000000..a916bf5 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001080208AA000/68E3A0EA176A79F4.yaml @@ -0,0 +1,51 @@ +# 귀멸의 칼날 히노카미 혈풍담2 1.81 +# BID: 68E3A0EA176A79F4 + +MASTER_WRITE: + # Gravity uses fixed value, now it's scaled relative to frametime + ## REF: 0A 61 81 52 01 10 2E 1E, start at BL above result + - + type: asm_a64 + main_offset: 0x5B641F0 + instructions: [ + [adrp, x8, 0x9B98000], + [ldr, d0, [x8, 0x7F0]], + [fcvt, s0, d0], + [fmov, s1, 30.0], + [fmul, s8, s0, s1], + [b, +160] + ] + ## REF: 04 09 23 1E 03 0A 24 1E, both results + - + type: asm_a64 + main_offset: 0x5FD18B8 + instructions: [ + [fmul, s4, s6, s3] + ] + - + type: asm_a64 + main_offset: 0x5FD18F8 + instructions: [ + [fmul, s4, s6, s3] + ] + +ALL_FPS: + # bUseFixedFrameRate + - + type: write + address: [MAIN, 0xCDA7378, 0xAF4] + address_unsafe: true + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xCDA6FF0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0xBDBAEB0, 0] + value_type: uint32 + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01002CC003FE6000/13C816F2A273653C.yaml b/SaltySD/plugins/FPSLocker/patches/01002CC003FE6000/13C816F2A273653C.yaml new file mode 100644 index 0000000..718a35b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002CC003FE6000/13C816F2A273653C.yaml @@ -0,0 +1,29 @@ +# Starlink: Battle for Atlas 1.0.6 +# BID: 13C816F2A273653C + +MASTER_WRITE: + # Redirect reading DR FPS Target to MAIN + 0xFBF7F00 + - + type: bytes + main_offset: 0x72770C + value_type: uint32 + value: + - 0x9007A688 + - 0xBD4F0103 + - + type: bytes + main_offset: 0x727720 + value_type: uint32 + value: 0xBD4F0104 + # Default value + - + type: bytes + main_offset: 0xFBF7F00 + value_type: float + value: 30 +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0xFBF7F00] + value_type: float + value: "FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/010039501F11C000/88330D25A235286F.yaml b/SaltySD/plugins/FPSLocker/patches/010039501F11C000/88330D25A235286F.yaml new file mode 100644 index 0000000..49e8cbe --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010039501F11C000/88330D25A235286F.yaml @@ -0,0 +1,14 @@ +# Wobbly Life 1.1.0.0 +# BID: 88330D25A235286F + +MASTER_WRITE: + # SwitchNetworkManager.Update calls CheckConnection every frame. + # When NetworkInterfaceWrapper.IsNetworkConnecting() is false it calls EnterNetworkConnecting() + # and then the blocking WaitForNetworkConnecting() on the main thread, capping FPS around 46-47. + ## NOP CheckConnection call + - + type: asm_a64 + main_offset: 0x6448CF4 + instructions: [ + [nop] + ] diff --git a/SaltySD/plugins/FPSLocker/patches/0100478018A0E000/237FC7EFDA6C98B1.yaml b/SaltySD/plugins/FPSLocker/patches/0100478018A0E000/237FC7EFDA6C98B1.yaml new file mode 100644 index 0000000..6f8fd84 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100478018A0E000/237FC7EFDA6C98B1.yaml @@ -0,0 +1,25 @@ +# SWORD ART ONLINE Fractured Daydream 1.8.0.0 +# BID: 237FC7EFDA6C98B1 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8713728, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x874E2F0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7F4DF88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004B10157F2000/D4B150B29A931CD3.yaml b/SaltySD/plugins/FPSLocker/patches/01004B10157F2000/D4B150B29A931CD3.yaml new file mode 100644 index 0000000..50c673f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004B10157F2000/D4B150B29A931CD3.yaml @@ -0,0 +1,35 @@ +# 女神異聞錄5 皇家版 1.0.2 +# BID: D4B150B29A931CD3 + +DECLARATIONS: + - + type: code + name: p5FadeStep + instructions: [ + [scvtf, s0, w0], + [fmul, s0, s8, s0], + [fmov, s2, 0.75], + [fcmp, s0, s2], + [b.ge, :norm], + [fadd, s0, s0, s0], + [tbz, w9, 0, :norm], + [fsub, s0, s0, s0], + :norm, [scvtf, s1, w20], + [fmul, s0, s0, s1], + [fcvtzu, w8, s0], + [mov, w9, 0xFF], + [cmp, w8, w9], + [csel, w8, w8, w9, lt], + [ret] + ] + +MASTER_WRITE: + - + type: asm_a64 + main_offset: 0xEBDF5C + instructions: [ + [adrp, x9, 0x231A000], + [ldr, w9, [x9, 0x7DC]], + [bl, _p5FadeStep()], + [b, +32] + ] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004D901AFDA000/D334BC060F1FA3AE.yaml b/SaltySD/plugins/FPSLocker/patches/01004D901AFDA000/D334BC060F1FA3AE.yaml index 9375852..211d070 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004D901AFDA000/D334BC060F1FA3AE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004D901AFDA000/D334BC060F1FA3AE.yaml @@ -1,4 +1,4 @@ -# Disney Epic Mickey: Rebrushed 1.0.4 +# Disney Epic Mickey: Rebrushed 1.0.4-1.0.5 # BID: D334BC060F1FA3AE ALL_FPS: diff --git a/SaltySD/plugins/FPSLocker/patches/010059301B7F0000/68E3A0EA176A79F4.yaml b/SaltySD/plugins/FPSLocker/patches/010059301B7F0000/68E3A0EA176A79F4.yaml new file mode 100644 index 0000000..9ec5b66 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010059301B7F0000/68E3A0EA176A79F4.yaml @@ -0,0 +1,51 @@ +# 鬼滅の刃 ヒノカミ血風譚2 1.81 +# BID: 68E3A0EA176A79F4 + +MASTER_WRITE: + # Gravity uses fixed value, now it's scaled relative to frametime + ## REF: 0A 61 81 52 01 10 2E 1E, start at BL above result + - + type: asm_a64 + main_offset: 0x5B641F0 + instructions: [ + [adrp, x8, 0x9B98000], + [ldr, d0, [x8, 0x7F0]], + [fcvt, s0, d0], + [fmov, s1, 30.0], + [fmul, s8, s0, s1], + [b, +160] + ] + ## REF: 04 09 23 1E 03 0A 24 1E, both results + - + type: asm_a64 + main_offset: 0x5FD18B8 + instructions: [ + [fmul, s4, s6, s3] + ] + - + type: asm_a64 + main_offset: 0x5FD18F8 + instructions: [ + [fmul, s4, s6, s3] + ] + +ALL_FPS: + # bUseFixedFrameRate + - + type: write + address: [MAIN, 0xCDA7378, 0xAF4] + address_unsafe: true + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xCDA6FF0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0xBDBAEB0, 0] + value_type: uint32 + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005CA01580E000/D4B150B29A931CD3.yaml b/SaltySD/plugins/FPSLocker/patches/01005CA01580E000/D4B150B29A931CD3.yaml new file mode 100644 index 0000000..1817136 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005CA01580E000/D4B150B29A931CD3.yaml @@ -0,0 +1,35 @@ +# Persona 5 Royal 1.0.2 +# BID: D4B150B29A931CD3 + +DECLARATIONS: + - + type: code + name: p5FadeStep + instructions: [ + [scvtf, s0, w0], + [fmul, s0, s8, s0], + [fmov, s2, 0.75], + [fcmp, s0, s2], + [b.ge, :norm], + [fadd, s0, s0, s0], + [tbz, w9, 0, :norm], + [fsub, s0, s0, s0], + :norm, [scvtf, s1, w20], + [fmul, s0, s0, s1], + [fcvtzu, w8, s0], + [mov, w9, 0xFF], + [cmp, w8, w9], + [csel, w8, w8, w9, lt], + [ret] + ] + +MASTER_WRITE: + - + type: asm_a64 + main_offset: 0xEBDF5C + instructions: [ + [adrp, x9, 0x231A000], + [ldr, w9, [x9, 0x7DC]], + [bl, _p5FadeStep()], + [b, +32] + ] diff --git a/SaltySD/plugins/FPSLocker/patches/010062E01FE0C000/135C83CDEA06AEC2.yaml b/SaltySD/plugins/FPSLocker/patches/010062E01FE0C000/135C83CDEA06AEC2.yaml new file mode 100644 index 0000000..78b9c16 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010062E01FE0C000/135C83CDEA06AEC2.yaml @@ -0,0 +1,71 @@ +# Digimon Story Time Stranger 1.2.2 +# BID: 135C83CDEA06AEC2 + +DECLARATIONS: + # REF: 00 00 C8 41 6E DB 0E 42 + # Custom formulas so it works better when 60 FPS is the target + - + type: variable + name: dr_target1 + value_type: float + default_value: 25 + evaluate: "FPS_TARGET + 2" + - + type: variable + name: dr_target2 + value_type: float + default_value: 35.7142868 + evaluate: 1000 / (FPS_TARGET + 5) + - + type: variable + name: dr_target3 + value_type: float + default_value: 28 + evaluate: (1000 / (FPS_TARGET + 5)) * 0.78 + - + type: variable + name: dr_target4 + value_type: float + default_value: 56 + - + type: variable + name: dr_target5 + value_type: float + default_value: 16.949152 + - + type: variable + name: dr_target6 + value_type: float + default_value: 13 + +MASTER_WRITE: + - + type: asm_a64 + main_offset: 0x9D6868 + instructions: [ + [adrp, x21, $dr_target1] + ] + - + type: asm_a64 + main_offset: 0x9D687C + instructions: [ + [add, x21, x21, $dr_target1] + ] +ALL_FPS: + # FPS Lock + # REF: 1B 41 00 00 + - + type: evaluate_write + address: [MAIN, 0x1425CD0] + value_type: uint32 + value: FRAMETIME_TARGET * 1000 + # Unknown value, but set in the same function as FPS lock, so it may be important + # REF: 3C 00 00 00 01 00 00 00 00 00 00 00 + - + type: evaluate_write + address: [MAIN, 0x1425C98] + value_type: uint32 + value: FPS_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010064E00A932000/525B902E6F916EA5.yaml b/SaltySD/plugins/FPSLocker/patches/010064E00A932000/525B902E6F916EA5.yaml new file mode 100644 index 0000000..ded15ca --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010064E00A932000/525B902E6F916EA5.yaml @@ -0,0 +1,29 @@ +# Trine 2: Complete Story 1.0.1 +# BID: 525B902E6F916EA5 + +MASTER_WRITE: + - + type: asm_a64 + main_offset: 0x6A35D8 + instructions: [ + [ldr, w9, [x19, 0x338]], + [nop] + ] + - + type: asm_a64 + main_offset: 0x6A35F4 + instructions: [ + [nop] + ] + - + type: asm_a64 + main_offset: 0x6A3600 + instructions: [ + [nop] + ] + - + type: asm_a64 + main_offset: 0x6A3610 + instructions: [ + [nop] + ] diff --git a/SaltySD/plugins/FPSLocker/patches/010066101A55A000/BB02917589CFB448.yaml b/SaltySD/plugins/FPSLocker/patches/010066101A55A000/BB02917589CFB448.yaml new file mode 100644 index 0000000..63d94b8 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010066101A55A000/BB02917589CFB448.yaml @@ -0,0 +1,19 @@ +# Little Nightmares III 1.2.1 +# BID: BB02917589CFB448 + +ALL_FPS: + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7E3E3B8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7649220, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100727018A10000/237FC7EFDA6C98B1.yaml b/SaltySD/plugins/FPSLocker/patches/0100727018A10000/237FC7EFDA6C98B1.yaml new file mode 100644 index 0000000..d7d1fe7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100727018A10000/237FC7EFDA6C98B1.yaml @@ -0,0 +1,25 @@ +# ソードアート・オンライン フラクチュアード デイドリーム 1.8.0.0 +# BID: 237FC7EFDA6C98B1 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8713728, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x874E2F0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7F4DF88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010089601C4F6002/0BA0C9C0FA00C8DE.yaml b/SaltySD/plugins/FPSLocker/patches/010089601C4F6002/0BA0C9C0FA00C8DE.yaml new file mode 100644 index 0000000..49a6b92 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010089601C4F6002/0BA0C9C0FA00C8DE.yaml @@ -0,0 +1,40 @@ +# METAL GEAR SOLID 4: Guns of the Patriots - Master Collection Version `JPN` 1.4.3 +# BID: 0BA0C9C0FA00C8DE + +ALL_FPS: + # Memoized result of the "FPSLimiter.FPS_NX" config-key resolver. + ## REF: 88 02 40 B9 1F 05 00 31 E0 00 00 54, ADRP + ADD above + - + type: evaluate_write + address: [MAIN, 0x149C7E8] + value_type: int32 + value: FPS_LOCK_TARGET + # Dynamic resolution governor + ## REF: 08 29 9C 52 48 EF A7 72 01 01 27 1E A9 99, first ADRP + LDR below gets base address + # budget + - + type: evaluate_write + address: [MAIN, 0x1BABDF8] # base + 0x1D0 + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98)" + # slow-frame threshold + - + type: evaluate_write + address: [MAIN, 0x1BABDFC] # base + 0x1D4 + value_type: float + value: "floor(floor(FRAMETIME_TARGET * 0.98) * 1.29 + 1.05)" + # band offset + - + type: evaluate_write + address: [MAIN, 0x1BABE14] # base + 0x1EC + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98) * 0.05" + # band half-width + - + type: evaluate_write + address: [MAIN, 0x1BABE18] # base + 0x1F0 + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98) * 0.025" + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008970149B0000/7C0876057EE29DF3.yaml b/SaltySD/plugins/FPSLocker/patches/01008970149B0000/7C0876057EE29DF3.yaml new file mode 100644 index 0000000..ff72bce --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008970149B0000/7C0876057EE29DF3.yaml @@ -0,0 +1,9 @@ +# Rabbids Party of Legends 1.0.1 +# BID: 7C0876057EE29DF3 + +ALL_FPS: + - + type: evaluate_write + address: [MAIN, 0x2A68880] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/0100927023A34000/AA2258B29060A289.yaml b/SaltySD/plugins/FPSLocker/patches/0100927023A34000/AA2258B29060A289.yaml new file mode 100644 index 0000000..6974885 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100927023A34000/AA2258B29060A289.yaml @@ -0,0 +1,16 @@ +# SOMA 1.6.0 +# BID: AA2258B29060A289 + +ALL_FPS: + # REF: "bool GetLimitFPS()" + - + type: write + address: [MAIN, 0xA7AAB0, 0x80] + value_type: uint8 + value: 0 + # Graphics target frame rate + - + type: evaluate_write + address: [MAIN, 0xA7AAB0, 0xC0, 0x28, 0x14] + value_type: uint32 + value: FPS_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100AD80208A8000/68E3A0EA176A79F4.yaml b/SaltySD/plugins/FPSLocker/patches/0100AD80208A8000/68E3A0EA176A79F4.yaml new file mode 100644 index 0000000..315d91c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AD80208A8000/68E3A0EA176A79F4.yaml @@ -0,0 +1,51 @@ +# Demon Slayer -Kimetsu no Yaiba- The Hinokami Chronicles 2 1.81 +# BID: 68E3A0EA176A79F4 + +MASTER_WRITE: + # Gravity uses fixed value, now it's scaled relative to frametime + ## REF: 0A 61 81 52 01 10 2E 1E, start at BL above result + - + type: asm_a64 + main_offset: 0x5B641F0 + instructions: [ + [adrp, x8, 0x9B98000], + [ldr, d0, [x8, 0x7F0]], + [fcvt, s0, d0], + [fmov, s1, 30.0], + [fmul, s8, s0, s1], + [b, +160] + ] + ## REF: 04 09 23 1E 03 0A 24 1E, both results + - + type: asm_a64 + main_offset: 0x5FD18B8 + instructions: [ + [fmul, s4, s6, s3] + ] + - + type: asm_a64 + main_offset: 0x5FD18F8 + instructions: [ + [fmul, s4, s6, s3] + ] + +ALL_FPS: + # bUseFixedFrameRate + - + type: write + address: [MAIN, 0xCDA7378, 0xAF4] + address_unsafe: true + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xCDA6FF0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0xBDBAEB0, 0] + value_type: uint32 + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100B880154FC000/D4B150B29A931CD3.yaml b/SaltySD/plugins/FPSLocker/patches/0100B880154FC000/D4B150B29A931CD3.yaml new file mode 100644 index 0000000..fb581b0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B880154FC000/D4B150B29A931CD3.yaml @@ -0,0 +1,35 @@ +# ペルソナ5 ザ・ロイヤル 1.0.2 +# BID: D4B150B29A931CD3 + +DECLARATIONS: + - + type: code + name: p5FadeStep + instructions: [ + [scvtf, s0, w0], + [fmul, s0, s8, s0], + [fmov, s2, 0.75], + [fcmp, s0, s2], + [b.ge, :norm], + [fadd, s0, s0, s0], + [tbz, w9, 0, :norm], + [fsub, s0, s0, s0], + :norm, [scvtf, s1, w20], + [fmul, s0, s0, s1], + [fcvtzu, w8, s0], + [mov, w9, 0xFF], + [cmp, w8, w9], + [csel, w8, w8, w9, lt], + [ret] + ] + +MASTER_WRITE: + - + type: asm_a64 + main_offset: 0xEBDF5C + instructions: [ + [adrp, x9, 0x231A000], + [ldr, w9, [x9, 0x7DC]], + [bl, _p5FadeStep()], + [b, +32] + ] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BDF0197C8000/336E2550AC1022AA.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDF0197C8000/336E2550AC1022AA.yaml new file mode 100644 index 0000000..c9a6c54 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BDF0197C8000/336E2550AC1022AA.yaml @@ -0,0 +1,11 @@ +# ワンス・アポン・ア・塊魂 2.0.1 +# BID: 336E2550AC1022AA + +ALL_FPS: + # Dynamic Resolution + ## REF: App.KatamariSin.AppSupport_TypeInfo + - + type: evaluate_write + address: [MAIN, 0x8FF4D88, 0xB8, 0x18] + value_type: double + value: "0.9 * FRAMETIME_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C49025D3E000/A48C0DE3BC353EFA.yaml b/SaltySD/plugins/FPSLocker/patches/0100C49025D3E000/A48C0DE3BC353EFA.yaml new file mode 100644 index 0000000..e3666b1 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C49025D3E000/A48C0DE3BC353EFA.yaml @@ -0,0 +1,58 @@ +# EA SPORTS FC 27 1.8d.310c +# BID: A48C0DE3BC353EFA + +DECLARATIONS: + - + type: variable + value_type: uint32 + name: hasStarted + default_value: 0 + - + type: variable + value_type: float + name: dr_target + default_value: 33.333333 + evaluate: FRAMETIME_TARGET +MASTER_WRITE: + # Dynamic Resolution regulator + - + type: asm_a64 + main_offset: 0x97F3CF8 + instructions: [ + [ldr, s8, [x0, 248]], + [ldr, s9, [x0, 324]], + [ldr, s10, [x0, 388]], + [ldr, s12, [x0, 472]], + [ldrb, w20, [x0, 576]], + [ldr, s0, [x0, 164]], + [adrp, x9, $hasStarted], + [ldr, w9, [x9, $hasStarted]], + [cbz, w9, +16], + [adrp, x9, $dr_target], + [ldr, s8, [x9, $dr_target]], + [fmov, s9, s8], + [nop], + [nop], + [nop], + [nop] + ] +ALL_FPS: + - + type: write + address: [VARIABLE, hasStarted] + value: 1 + # FPS lock + - + type: evaluate_write + address: [MAIN, 0xDA20E38, 8] + value_type: double + value: FPS_TARGET + # Dynamic resolution + - + type: evaluate_write + address: [MAIN, 0xDE83DA0, 0x14C8, 0xC] + value_type: float + value: [FRAMETIME_TARGET, FRAMETIME_TARGET] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D0B01C4F4002/0BA0C9C0FA00C8DE.yaml b/SaltySD/plugins/FPSLocker/patches/0100D0B01C4F4002/0BA0C9C0FA00C8DE.yaml new file mode 100644 index 0000000..8ca279f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D0B01C4F4002/0BA0C9C0FA00C8DE.yaml @@ -0,0 +1,40 @@ +# METAL GEAR SOLID 4: Guns of the Patriots - Master Collection Version 1.4.3 +# BID: 0BA0C9C0FA00C8DE + +ALL_FPS: + # Memoized result of the "FPSLimiter.FPS_NX" config-key resolver. + ## REF: 88 02 40 B9 1F 05 00 31 E0 00 00 54, ADRP + ADD above + - + type: evaluate_write + address: [MAIN, 0x149C7E8] + value_type: int32 + value: FPS_LOCK_TARGET + # Dynamic resolution governor + ## REF: 08 29 9C 52 48 EF A7 72 01 01 27 1E A9 99, first ADRP + LDR below gets base address + # budget + - + type: evaluate_write + address: [MAIN, 0x1BABDF8] # base + 0x1D0 + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98)" + # slow-frame threshold + - + type: evaluate_write + address: [MAIN, 0x1BABDFC] # base + 0x1D4 + value_type: float + value: "floor(floor(FRAMETIME_TARGET * 0.98) * 1.29 + 1.05)" + # band offset + - + type: evaluate_write + address: [MAIN, 0x1BABE14] # base + 0x1EC + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98) * 0.05" + # band half-width + - + type: evaluate_write + address: [MAIN, 0x1BABE18] # base + 0x1F0 + value_type: float + value: "floor(FRAMETIME_TARGET * 0.98) * 0.025" + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/10844A7A20C5597E.yaml b/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/10844A7A20C5597E.yaml index 5ef0cce..caad148 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/10844A7A20C5597E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/10844A7A20C5597E.yaml @@ -1,4 +1,4 @@ -# ディズニー エピックミッキー:Rebrushed 1.0.4 +# ディズニー エピックミッキー:Rebrushed 1.0.4-1.0.5 # BID: 10844A7A20C5597E ALL_FPS: diff --git a/SaltySD/plugins/FPSLocker/patches/0100F85018A14000/237FC7EFDA6C98B1.yaml b/SaltySD/plugins/FPSLocker/patches/0100F85018A14000/237FC7EFDA6C98B1.yaml new file mode 100644 index 0000000..a1a5493 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F85018A14000/237FC7EFDA6C98B1.yaml @@ -0,0 +1,25 @@ +# 刀劍神域 碎夢邊境 1.8.0.0 +# BID: 237FC7EFDA6C98B1 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8713728, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x874E2F0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7F4DF88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100FD501F95A000/D49165C05EAD8AE1.yaml b/SaltySD/plugins/FPSLocker/patches/0100FD501F95A000/D49165C05EAD8AE1.yaml new file mode 100644 index 0000000..5bd06e6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100FD501F95A000/D49165C05EAD8AE1.yaml @@ -0,0 +1,18 @@ +# Viractal 1.4.5 +# BID: D49165C05EAD8AE1 + +ALL_FPS: + # Vsync + # Ref: 01 00 00 00 01 00 00 00 00 00 00 08 + - + type: evaluate_write + address: [MAIN, 0x7A642D8] + value_type: int32 + value: VSYNC_TARGET + # FPS lock + # Ref: 89 88 88 3C 03 00 00 00 + - + type: evaluate_write + address: [MAIN, 0x7A642E4] + value_type: float + value: "1 / FPS_LOCK_TARGET" diff --git a/SaltySD/saltynx_bootstrap32.elf b/SaltySD/saltynx_bootstrap32.elf index 30dc3b1..161a149 100644 Binary files a/SaltySD/saltynx_bootstrap32.elf and b/SaltySD/saltynx_bootstrap32.elf differ diff --git a/SaltySD/saltynx_core.elf b/SaltySD/saltynx_core.elf index 6d16777..b376cec 100644 Binary files a/SaltySD/saltynx_core.elf and b/SaltySD/saltynx_core.elf differ diff --git a/SaltySD/saltynx_core32.elf b/SaltySD/saltynx_core32.elf index 423fb02..9252144 100644 Binary files a/SaltySD/saltynx_core32.elf and b/SaltySD/saltynx_core32.elf differ diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index 6992059..d5a2a31 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/contents/0000000000534C56/toolbox.json b/atmosphere/contents/0000000000534C56/toolbox.json index c5e0329..83aebf8 100644 --- a/atmosphere/contents/0000000000534C56/toolbox.json +++ b/atmosphere/contents/0000000000534C56/toolbox.json @@ -2,5 +2,5 @@ "name": "SaltyNX", "tid": "0000000000534C56", "requires_reboot": true, - "version": "2.1.2" + "version": "2.1.3" } diff --git a/atmosphere/exosphere.bin b/atmosphere/exosphere.bin index 5de2354..675b50c 100644 Binary files a/atmosphere/exosphere.bin and b/atmosphere/exosphere.bin differ diff --git a/atmosphere/kips/hoc.kip b/atmosphere/kips/hoc.kip index eeb21b0..0c7e6b7 100644 Binary files a/atmosphere/kips/hoc.kip and b/atmosphere/kips/hoc.kip differ diff --git a/atmosphere/package3 b/atmosphere/package3 index e28321b..f3811d0 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs index 1569eb1..b64593f 100644 Binary files a/atmosphere/stratosphere.romfs and b/atmosphere/stratosphere.romfs differ diff --git a/config/aio-switch-updater/custom_packs.json b/config/aio-switch-updater/custom_packs.json index 3af02a5..d1a48fb 100644 --- a/config/aio-switch-updater/custom_packs.json +++ b/config/aio-switch-updater/custom_packs.json @@ -1,6 +1,6 @@ { "ams": { - "[PACK] UltraNX 3.1|R1": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip" + "[PACK] UltraNX 3.1|R1+": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip" }, "misc": { "Refresh AIO": "https://github.com/Ultra-NX/Ultra-Resources/releases/download/Homebrews/AIO.zip"