mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2024-12-25 18:11:56 +00:00
Ultra 2.1|RC1
This commit is contained in:
parent
f50e64c6df
commit
2130c40c4a
@ -6,6 +6,8 @@
|
||||
|
||||
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
|
||||
|
||||
### [Ultra 2.1](https://github.com/Ultra-NX/Ultra/releases/tag/2.1-R1) Поддерживает HOS 18 и все ревизии консолей
|
||||
|
||||
## Особенности Ultra
|
||||
|
||||
* Предварительно настроенный OC-Suite с пресетами.
|
||||
@ -24,7 +26,7 @@
|
||||
1. **[Ultra Tuner](https://github.com/Ultra-NX/Ultra-Tuner)** - Пакет для Ultra Paw (форка Ultrahand), позволяющий произвести тонкую настройку параметров под свою консоль. В случае нестабильной работы разгона, или при желании увеличить производительность консоли, Ultra Tuner - Ваш незаменимый помощник.
|
||||
1. **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Пакет разгона от Meha/hanai3Bi, открытые исходники гарантируют надежность и отсутствие скрытых гадостей. Вовремя обновляется для поддержки новых возможностей Атмосферы.
|
||||
1. **Установленные пейлоады**:
|
||||
* [Lockpick_RCM](https://codeberg.org/rashevskyv/kefir) - Программа для снятия ключей консоли.
|
||||
* [Lockpick_RCM](https://sigmapatches.su) - Программа для снятия ключей консоли.
|
||||
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.
|
||||
1. **Установленные Homebrew**
|
||||
* [AiO Switch Updater](https://github.com/HamletDuFromage/aio-switch-updater) - Программа для обновления Ultra до актуальной версии, а так же для скачивания читов.
|
||||
@ -34,7 +36,6 @@
|
||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Фоновый модуль, позволяющий модифицировать файлы\процессы в консоли, поддерживает плагины. Не совместим с 32-х битными играми (список на гитхабе проекта).
|
||||
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Модуль отвечающий за разгон процессора, памяти и видеочипа - для лучшей производительности. Периодически меняю версии от разных авторов. Оригинальные авторы: Meha/hanai3Bi, lineon, p-sam.
|
||||
* [nx-ovlloader](https://github.com/WerWolv/nx-ovlloader/) - С помощью этого модуля осуществляется переключение установленных модулей.
|
||||
* [sys-patch](https://github.com/ITotalJustice/sys-patch/) - Создает/обновляет патчи при запуске системы. Не заменяет сигпатчи, но избавляет от регулярного ручного обновления патчей системы.
|
||||
* [Ultra Paw Overlay](https://github.com/Ultra-NX/Ultra-Paw-Overlay), форк [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Специальное оверлей-меню для взаимодействия с системой: разгон, управление режимами через ReverseNX, включение читов, прочее. Так же позволяет использовать самописные пакеты, например - Ultra Tuner.
|
||||
- **`Ultra-Overlay`**, мод [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Оверлей для управления модулем sys-clk. Немного изменен мной, но без копания в исходниках.
|
||||
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), форк [Status Monitor](https://github.com/hanai3Bi/Status-Monitor-Overlay) - Оверлей позволяющий следить за параметрами консоли в реальном времени. Может выступать в качестве счетчика FPS. Сменить пресет Micro-оверлея можно в Updater.
|
||||
@ -71,7 +72,6 @@
|
||||
* hanai3Bi/Meha
|
||||
* ppkantorski/b0rd2dEAth
|
||||
* Cooler3D
|
||||
* Efosamark
|
||||
* rashevskyv/хНЯ
|
||||
* snupt/Catcher In The Grain Field
|
||||
* 4PDA
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
|
||||
|
||||
### [Ultra 2.1](https://github.com/Ultra-NX/Ultra/releases/tag/2.1-R1) Supports HOS 18 and all console revisions
|
||||
|
||||
## Features of Ultra
|
||||
|
||||
* Pre-configured OC-Suite with presets.
|
||||
@ -24,7 +26,7 @@
|
||||
1. **[OC-Suite](https://github.com/hanai3Bi/Switch-OC-Suite/)** - Overclocking package by Meha/hanai3Bi, open source guarantees reliability and no hidden nasties. Updated in time to support new Atmosphere features.
|
||||
- The original from Meha is temporarily used.
|
||||
1. **Installed Payloads**:
|
||||
* [Lockpick_RCM](https://codeberg.org/rashevskyv/kefir) - Program for dumping console keys.
|
||||
* [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.
|
||||
@ -34,7 +36,6 @@
|
||||
* [SaltyNX](https://github.com/masagrator/SaltyNX) - Background module allowing to modify files/processes in console, supports plugins. Not compatible with 32-bit games (list on the project's github).
|
||||
* [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Module responsible for overclocking CPU, memory and GPU - for better performance. I change versions from different authors from time to time. Original authors: Meha/hanai3Bi, lineon, p-sam.
|
||||
* [nx-ovlloader](https://github.com/WerWolv/nx-ovlloader/) - This module is used to switch the installed modules.
|
||||
* [sys-patch](https://github.com/ITotalJustice/sys-patch/) - Creates/updates patches at system startup. Does not replace sigpatches, but saves from regular manual updating of system patches.
|
||||
* [Ultra Paw Overlay](https://github.com/Ultra-NX/Ultra-Paw-Overlay), a fork of [Ultrahand Overlay](https://github.com/ppkantorski/Ultrahand-Overlay) - Special overlay-menu for interacting with the system: overclocking, controlling modes via ReverseNX, enabling cheats, etc. Also allows to use your own packages, for example, Ultra Tuner.
|
||||
- **`Ultra-Overlay`**, a mod of [sys-clk](https://github.com/hanai3Bi/Switch-OC-Suite) - Overlay for controlling sys-clk module. Slightly modified by me, but without digging into sources.
|
||||
- [Ultra Status Monitor](https://github.com/Ultra-NX/Ultra-Status-Monitor), a fork of [Status Monitor](https://github.com/masagrator/Status-Monitor-Overlay) - Overlay that allows you to monitor console parameters in real time. It can act as an FPS counter. You change preset of Micro-overlay appearance in Updater.
|
||||
@ -71,7 +72,6 @@ Listed below are the licenses of those programs that have been modified specific
|
||||
* hanai3Bi/Meha
|
||||
* ppkantorski/b0rd2dEAth
|
||||
* Cooler3D
|
||||
* Efosamark
|
||||
* rashevskyv/хНЯ
|
||||
* snupt/Catcher In The Grain Field
|
||||
* 4PDA
|
||||
|
@ -0,0 +1,219 @@
|
||||
# Princess Peach Showtime! 1.0.0
|
||||
# BID: 928EFE2954F68055
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAE825E8, 0]
|
||||
value_type: float
|
||||
value: [66.6, 66.6]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAEB02A8, 0]
|
||||
value_type: float
|
||||
value: [15, 15]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA6B2D18, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
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]
|
@ -0,0 +1,93 @@
|
||||
# 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
|
@ -1,259 +0,0 @@
|
||||
# Penny's Big Breakaway 1.1.0
|
||||
# BID: 70BD4BC32C10BFFE
|
||||
# Game is using double buffer, setting anything between 30 and 60 FPS is unsupported. nvnTextures are stored inside struct with hardcoded size, so adding third entry corrupts struct.
|
||||
# For anything else than 30 and 60 FPS we lack Game speed multiplier for 3D objects without skeletons (like coins)
|
||||
# Thanks to Hazerou for finding addresses of first two entries
|
||||
# Reference nnMain to find function with argument w0 = 0x3C
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
15FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 1
|
||||
# FPS Target (dunno what it's used for)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 15
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 2
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 2
|
||||
20FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 1
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 20
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.5
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.5
|
||||
25FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 1
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 25
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.2
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.2
|
||||
30FPS:
|
||||
# bool changing game speed to match 30 FPS (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 1
|
||||
# FPS Target (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 30
|
||||
# Game Speed multiplier #1 (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1
|
||||
# Game Speed multiplier #2 (default value)
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1
|
||||
35FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 35
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.7142
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.7142
|
||||
40FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 40
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.5
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.5
|
||||
45FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 45
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.3333333333
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.3333333333
|
||||
50FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 50
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.2
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.2
|
||||
55FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 55
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1.0909090909
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1.0909090909
|
||||
60FPS:
|
||||
# bool changing game speed to match 30 FPS
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1F]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
# FPS Target
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x1C]
|
||||
value_type: uint16
|
||||
value: 60
|
||||
# Game Speed multiplier #1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x28]
|
||||
value_type: float
|
||||
value: 1
|
||||
# Game Speed multiplier #2
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xFE5B20, 0x30]
|
||||
value_type: float
|
||||
value: 1
|
@ -1,5 +1,6 @@
|
||||
# 三國志14 with 威力加強版 1.0.10
|
||||
# BID: B067B077906C6208
|
||||
# Cursor speed is tied to framerate, main menu animations speed is not adjusted properly in range from 35 to 55 FPS
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
@ -20,18 +21,42 @@ MASTER_WRITE:
|
||||
value:
|
||||
- 0x900117E8
|
||||
- 0xB9480108
|
||||
# Redirect game speed to MAIN + 0x2B92808, REF: 00 28 21 1E 00 A0 00 BD C0 03 5F D6
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x11139A0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF000D3E8
|
||||
- 0xBD40A000
|
||||
- 0xBD480901
|
||||
# Default FPS Targets
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2B92800
|
||||
value_type: uint32
|
||||
value: [30, 60]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2B92808
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
15FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2B92800]
|
||||
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
|
||||
address: [MAIN, 0x254EA80]
|
||||
value_type: uint32
|
||||
value: 0
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2B92808]
|
||||
value_type: float
|
||||
value: 0.0666666666
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -41,6 +66,16 @@ MASTER_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
|
||||
@ -50,6 +85,16 @@ MASTER_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
|
||||
@ -59,12 +104,32 @@ MASTER_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
|
||||
@ -74,6 +139,16 @@ MASTER_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
|
||||
@ -83,6 +158,16 @@ MASTER_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
|
||||
@ -92,6 +177,16 @@ MASTER_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
|
||||
@ -101,6 +196,16 @@ MASTER_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
|
||||
@ -109,4 +214,14 @@ MASTER_WRITE:
|
||||
type: write
|
||||
address: [MAIN, 0x2B92800]
|
||||
value_type: uint32
|
||||
value: 60
|
||||
value: 60
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x254EA80]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2B92808]
|
||||
value_type: float
|
||||
value: 0.0166666666
|
@ -0,0 +1,87 @@
|
||||
# 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
|
@ -0,0 +1,228 @@
|
||||
# ROMANCE OF THE THREE KINGDOMS XIV 1.0.10
|
||||
# BID: 1A971CC40B6D5B3F
|
||||
# Cursor speed is tied to framerate, main menu animations speed is not adjusted properly in range from 35 to 55 FPS
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect adjusting game speed to FPS Lock stored in MAIN + 0x2BFB700, REF: 20 79 68 BC 01 10 2E 1E 00 D8 21 7E
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xB8F528
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90010369
|
||||
- 0x911C0129
|
||||
# Redirect FPS Lock to MAIN + 0x2BFB700, REF: C8 32 40 B9 E8 C2 00 B9
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x8966BC
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0011B28
|
||||
- 0xB9470108
|
||||
# Redirect game speed to MAIN + 0x2BFB708, REF: 00 28 21 1E 00 A0 00 BD C0 03 5F D6
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1109040
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD000D788
|
||||
- 0xBD40A000
|
||||
- 0xBD470901
|
||||
# Default FPS Targets
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2BFB700
|
||||
value_type: uint32
|
||||
value: [30, 60]
|
||||
# Default game speed
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2BFB708
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
15FPS:
|
||||
-
|
||||
type: 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
|
||||
address: [MAIN, 0x254D2A0]
|
||||
value_type: uint32
|
||||
value: 0
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2BFB708]
|
||||
value_type: float
|
||||
value: 0.0666666666
|
||||
-
|
||||
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
|
@ -0,0 +1,90 @@
|
||||
# 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]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user