Ultra 2.1|RC1

This commit is contained in:
redraz 2024-03-31 05:33:35 +03:00
parent f50e64c6df
commit 2130c40c4a
179 changed files with 846 additions and 961 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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