This commit is contained in:
redraz 2026-10-16 14:05:27 +03:00
parent 92098c7094
commit 122fb982b1
38 changed files with 831 additions and 43 deletions

View File

@ -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) - Оверлей-музыкальный плеер, работает в фоне.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
# ディズニー エピックミッキー:Rebrushed 1.0.4
# ディズニー エピックミッキー:Rebrushed 1.0.4-1.0.5
# BID: 10844A7A20C5597E
ALL_FPS:

View File

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

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,5 +2,5 @@
"name": "SaltyNX",
"tid": "0000000000534C56",
"requires_reboot": true,
"version": "2.1.2"
"version": "2.1.3"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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