Ultra 2.4|RC1

This commit is contained in:
redraz 2025-05-10 09:41:45 +03:00
parent 4e42f73191
commit 985a53995a
131 changed files with 1514 additions and 137 deletions

View File

@ -8,7 +8,7 @@
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
### [Ultra 2.3](https://github.com/Ultra-NX/Ultra/releases/latest/) Поддерживает HOS 19.0.1 и все ревизии консолей
### [Ultra 2.4](https://github.com/Ultra-NX/Ultra/releases/latest/) Поддерживает HOS 20.0.1 и все ревизии консолей
@ -24,7 +24,7 @@
* DBI с встроенным notUltraNX репозиторием игр, больше не нужно каждый раз искать новый шоп Тинфоила.
* Подробная [Wiki](https://github.com/Ultra-NX/Ultra/wiki) в которой есть ответы почти на все вопросы.
* [Форки](https://github.com/Ultra-NX/Ultra-Resources/tree/main/patches) (свои модификации) программ и компонентов, нужные для удобства, безопасности и расширения возможностей:
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловю систему.
* Форк Атмосферы с прописанной версией Ультры в информации о системе, и отключенными репортами, обычно засоряющими сд карту, тратящими ее ресурс и ломающими файловую систему. Так же исправлена работа старых форвардеров (важно для хоумбрю игр/эмуляторов).
* Форки SaltyNX и FPSLocker, с поддержкой изменения частоты обновления экрана и с поддержкой OLED.
* Форк Mission Control, с вырезанной "пасхалкой", делающей джойконы жовто-блакитными.
* Форк Status Monitor с отображением текущих вольтажей и уникальными модулями Микро Оверлея, пресеты которых можно менять через Ultra Tuner.
@ -40,7 +40,7 @@
1. **Установленные пейлоады**:
* [Lockpick_RCM](https://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837) - Программа для снятия ключей консоли.
* [Lockpick RCM](https://github.com/impeeza/Lockpick_RCMDecScots) - Программа для снятия ключей консоли.
* [TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer) - Низкоуровневый файловый менеджер для работы с системой.

View File

@ -6,7 +6,7 @@
#
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
### [Ultra 2.3](https://github.com/Ultra-NX/Ultra/releases/latest/) Supports HOS 19.0.1 and all console revisions
### [Ultra 2.4](https://github.com/Ultra-NX/Ultra/releases/latest/) Supports HOS 20.0.1 and all console revisions
@ -36,7 +36,7 @@
1. **Installed Payloads**:
* [Lockpick_RCM](https://gbatemp.net/download/lockpick_rcm-1-9-13-fw-19-zoria-source.38837/) - Program for dumping console keys.
* [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.

View File

@ -49,4 +49,8 @@ X0100964012528000
;Donkey Kong Country: Tropical Freeze
;Crash at second level
X0100C1F0051B6000
X0100C1F0051B6000
;Death Road to Canada
;1.0.8 crash
X0100423009358000

View File

@ -0,0 +1,27 @@
# Horizon Chase 2 1.6.9
# BID: E13F632FC2A66EEB
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x8349850, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8B36A30, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8B11598, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
-
type: block
what: timing

View File

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.3
# BID: AD4CBC4878008E1E
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F9784]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x18168A0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A8490C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17F9760]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View File

@ -0,0 +1,27 @@
# SWORD ART ONLINE Fractured Daydream JAP 1.3.0
# BID: C2F2C4B700B30598
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8FD6748, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9011290, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8810F08, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,27 @@
# Breathedge 1.0.2
# BID: B26DE1669B729335
unsafeCheck: false
ALL_FPS:
# Disable bUseFixedFrameRate
-
type: write
address: [MAIN, 0x55CB668, 0x7F0]
value_type: uint32
value: 7
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x55CBDE0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x4E6A7B8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -1,7 +1,6 @@
# SONIC FORCES 1.1.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
unsafeCheck: true
@ -12,10 +11,27 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# FPS target (FPS * 2)
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: "FPS_TARGET * 2"
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET

View File

@ -1,7 +1,6 @@
# SONIC FORCES 1.1.0
# BID: 6D9EA94F8AAC00A8
# Game speed is tied to framerate
# Above 30 FPS level 8 is harder to beat and level 20 impossible to beat
unsafeCheck: true
@ -12,10 +11,27 @@ MASTER_WRITE:
main_offset: 0xAD40FC
value_type: uint32
value: 0x52800068
# Block switching back to 30 FPS mode on loading screens
-
type: bytes
main_offset: 0x6173B0
value_type: uint32
value: 0xD503201F
ALL_FPS:
# FPS target (FPS * 2)
# Switch to 60 FPS Mode
-
type: write
address: [MAIN, 0x1CAC518, 0x28, 0x20, 0x14]
value_type: uint32
value: 1
# FPS target
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x1C]
value_type: float
value: "FPS_TARGET * 2"
value: FPS_TARGET
-
type: evaluate_write
address: [MAIN, 0x1C38C28, 0x14C]
value_type: float
value: FPS_TARGET

View File

@ -0,0 +1,27 @@
# Goat Simulator 3 1.0.7.6
# BID: 8D4FD57DB7D63120
unsafeCheck: false
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x99DD468, 0]
value_type: float
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9A03290, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x920DB48, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Clear Sky 1.0.3
# BID: C7E4E6F4167C8E3A
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17D4774]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F18E8]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A5F36C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17D4750]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View File

@ -4,25 +4,40 @@
unsafeCheck: true
MASTER_WRITE:
# Remove FPS Lock
-
type: bytes
main_offset: 0x4835A4
value_type: uint32
value: 0xD503201F
ALL_FPS:
# Switch game to 60 FPS mode
-
type: write
address: [MAIN, 0xF0043C]
value_type: uint32
value: 1
# FPS Target
-
type: evaluate_write
address: [MAIN, 0xED96A8, 0x30]
value_type: uint64
value: "(FRAMETIME_TARGET / 2) * 19200"
value_type: uint32
value: "19200000 / FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xED96A8, 0x28]
value_type: uint32
value: "1920000 / FPS_TARGET"
# FPS 2D Game Speed Target
-
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x30]
value_type: float
value: "0.5 / FPS_TARGET"
value: "1 / FPS_TARGET"
# FPS 3D Game Speed Target
-
type: evaluate_write
address: [MAIN, 0xEFFC60, 0x50]
value_type: float
value: "0.5 / FPS_TARGET"
-
type: block
what: timing
value: "1 / FPS_TARGET"

View File

@ -0,0 +1,27 @@
# Expeditions: A Mudrunner Game 1.16.0.0
# BID: 3DCE80782561A0CA
# REF: 01 04 0C 5E 00 10 2E 1E
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x36B4F00
-
type: bytes
main_offset: 0x171E454
value_type: uint32
value:
- 0xD000FCAC # adrp x12, #0x36B4000
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
# default value
-
type: bytes
main_offset: 0x36B4F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x36B4F00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -0,0 +1,356 @@
# Xenoblade Chronicles X: Definitive Edition 1.0.2
# BID: 2A720C7CE5C84905
unsafeCheck: true
MASTER_WRITE:
# Dynamic speed mod for stuff like UI, lipsync, grass and rain
## Redirect nvnQueuePresentTexture call to code cave at MAIN+0x1735050
-
type: bytes
main_offset: 0x95EED8
value_type: uint32
value: 0x1437585E
## Code Cave (save floats for speed factor to MAIN+0x47BE268, frametime as FPS in MAIN+0x47BE26C, frametime in s in MAIN+0x47BE270)
-
type: bytes
main_offset: 0x1735050
value_type: uint32
value:
- 0xD63F0100
- 0x97FFF52B
- 0xB0018448
- 0xF9413107
- 0xF9013100
- 0xB5000047
- 0x17C8A79D
- 0xCB070000
- 0x97FFF528
- 0xB0018448
- 0xB9430101
- 0xEB00003F
- 0x5400004B
- 0xAA0103E0
- 0xD2881541
- 0xF2A07F21
- 0xEB00003F
- 0x5400004C
- 0xAA0103E0
- 0x9E630000
- 0xD00005A0
- 0xFD46AC01
- 0x1E611800
- 0xD2807D00
- 0x9E630001
- 0x1E601821
- 0xB0018440
- 0x1E624021
- 0xBD026C01
- 0x1E27D002
- 0x1E211842
- 0xBD026802
- 0xD2807D01
- 0x9E630021
- 0x1E611801
- 0x1E624021
- 0xBD027001
- 0x17C8A77E
## Default values for code cave
-
type: bytes
main_offset: 0x47BE268
value_type: float
value: [1.0, 30.0, 0.033333333333]
-
type: bytes
main_offset: 0x47BE300
value_type: uint32
value: 33333333
## Function 1 to speed factor // Usage unknown
-
type: bytes
main_offset: 0x286968
value_type: uint32
value:
- 0x900229D5
- 0xF9470D00
- 0xBD426AAA
## Function 3 to speed factor // Usage unknown
-
type: bytes
main_offset: 0xA16F00
value_type: uint32
value:
- 0x9001ED40
- 0xBD426808
## Function 4 to FPS // UI Speed
-
type: bytes
main_offset: 0xA1F060
value_type: uint32
value:
- 0xF001ECE0
- 0x1E270100
- 0xBD426C00
## Function 5 to FPS // Usage unknown
-
type: bytes
main_offset: 0x2672DC
value_type: uint32
value:
- 0xF0022A20
- 0x1E270100
- 0x7940D268
- 0xBD426C05
## Function 6 to FPS
-
type: bytes
main_offset: 0x26DB70
value_type: uint32
value:
- 0xB0022A80
- 0xBD426C00
- 0x1E390000
- 0x528000C9
- 0x1AC90808
## Function 7 to Frametime in s // Gameplay + cutscene speed
-
type: bytes
main_offset: 0x1E2924
value_type: uint32
value: 0x90022EE9
-
type: bytes
main_offset: 0x1E2938
value_type: uint32
value: 0xBD427120
# Adjust various elements related to fighting
-
type: bytes
main_offset: 0x1E8F48
value_type: uint32
value: 0x1455308B
## Code cave
-
type: bytes
main_offset: 0x1735174
value_type: uint32
value:
- 0xB0018449
- 0xBD426920
- 0x17AACF74
## Fix gun speed
-
type: bytes
main_offset: 0x30FACC
value_type: uint32
value: 0xD503201F
# Redirect DR Target to MAIN+0x47BEF00
-
type: bytes
main_offset: 0x13A90B4
value_type: uint32
value:
- 0xB001A0A8
- 0xBD4F0100
## Default value
-
type: bytes
main_offset: 0x47BEF00
value_type: float
value: 0.01666666666
# Adjust camera speed rotation dynamically
## Code cave
-
type: bytes
main_offset: 0x1735108
value_type: uint32
value:
- 0xB0018448
- 0xBD426908
- 0x1E200900
- 0x1E202008
- 0x540000AA
- 0x1E214000
- 0x1E21C000
- 0x1E214000
- 0xD65F03C0
- 0x1E21C000
- 0xD65F03C0
## Connect function 1
-
type: bytes
main_offset: 0x1E17A0
value_type: uint32
value: 0x94554E5A
## Connect function 2
-
type: bytes
main_offset: 0x1E17B0
value_type: uint32
value: 0xAD7D03A1
-
type: bytes
main_offset: 0x1E17BC
value_type: uint32
value: 0x94554E53
# Force 1s sleep to synchronize audio if cutscene detected
## Use function responsible for writing type 4 of cutscene
-
type: bytes
main_offset: 0x2FB0D8
value_type: uint32
value: 0x1450E820
### Code cave
-
type: bytes
main_offset: 0x1735158
value_type: uint32
value:
- 0x52800094
- 0xD00045C0
- 0xB90AF414
- 0xD2994000
- 0xF2A77340
- 0x97FFF3D9
- 0x17AF17DB
# Adjust Field Action gauge bar speed
-
type: bytes
main_offset: 0xE5E00
value_type: uint32
value:
- 0xB00236C0
- 0xF000E369
- 0xBD426808
## Fix for FN Site
-
type: bytes
main_offset: 0xE5858
value_type: uint32
value: 0x14593E24
### Code cave
-
type: bytes
main_offset: 0x17350E8
value_type: uint32
value:
- 0xBD40D260
- 0xB0018440
- 0xBD426801
- 0x1E210800
- 0x17A6C1D9
# Fix long jump when not running
-
type: bytes
main_offset: 0x23EF70
value_type: uint32
value: 0x1453D863
## Code cave
-
type: bytes
main_offset: 0x17350FC
value_type: uint32
value:
- 0x1E27D00B
- 0x1E2B296B
- 0x17AC279C
# Adjust QTE Speed
## Code cave
-
type: bytes
main_offset: 0x1735134
value_type: uint32
value:
- 0xB0018454
- 0xBD426A81
- 0x1400001B
-
type: bytes
main_offset: 0x17351A8
value_type: uint32
value:
- 0xBD412262
- 0x1E210841
- 0x17BA4435
## Connect function
-
type: bytes
main_offset: 0x5C6280
value_type: uint32
value: 0x1445BBAD
# Adjust Overdrive counter, Follow Ball speed
## Code cave
-
type: bytes
main_offset: 0x1735180
value_type: uint32
value:
- 0xB0018440
- 0xBD427000
- 0xD65F03C0
## Connect function
-
type: bytes
main_offset: 0x67354
value_type: uint32
value: 0x945B36AB
# Fix fog speed
-
type: bytes
main_offset: 0x296AE0
value_type: uint32
value:
- 0x90022948
- 0xBD426902
- 0x945279B3
## Code cave
-
type: bytes
main_offset: 0x17351B4
value_type: uint32
value:
- 0x1E21C042
- 0x1F020020
- 0xD65F03C0
ALL_FPS:
# FPS Target
-
type: evaluate_write
address: [MAIN, 0x47BE300]
value_type: uint32
value: "FRAMETIME_TARGET * 1000000"
# FPS Lock
# ref: 00 01 00 b9 2a 01 00 b9 c0 03 5f d6
-
type: write
address: [MAIN, 0x1D943A0]
value_type: int32
value: [1, 1]
# DR Target
-
type: evaluate_write
address: [MAIN, 0x47BEF00]
value_type: float
value: "1 / FPS_TARGET"
# Lock game to 30 FPS when complex/prerendered cutscene is played
## Adjusts DR target
-
type: compare
compare_address: [MAIN, 0x1FEFAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 2
address: [MAIN, 0x47BEF00]
value_type: float
value: 0.03333333333
## Force OS to run at 60 Hz with interval 2
-
type: compare
compare_address: [MAIN, 0x1FEFAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 2
address: [MAIN]
value_type: refresh_rate
value: 30

View File

@ -75,15 +75,6 @@ MASTER_WRITE:
- 0xF0022A35
- 0xF9470D00
- 0xBD426AAA
## Function 2 to speed factor // Weather effects (rain, fog)
-
type: bytes
main_offset: 0x2892AC
value_type: uint32
value:
- 0x90022A20
- 0xF000D828
- 0xBD426801
## Function 3 to speed factor // Usage unknown
-
type: bytes
@ -207,57 +198,22 @@ MASTER_WRITE:
## Use function responsible for writing type of cutscene to write its ID if it's 8 or 16 (or 0 for any other) to MAIN+0x47CDFFF
-
type: bytes
main_offset: 0x2CFEB4
main_offset: 0x2FAC38
value_type: uint32
value: 0x1451D3F7
value: 0x14512898
### Code cave
-
type: bytes
main_offset: 0x1744E90
main_offset: 0x1744E98
value_type: uint32
value:
- 0xB9002279
- 0x121D0720
- 0xB0018448
- 0x340000A0
- 0x393FFD00
- 0x52800094
- 0xD00045C0
- 0xB90AF414
- 0xD2994000
- 0xF2A77340
- 0x97FFF3D9
- 0x17AE2C02
## "startEvent" to write uint8 1 to MAIN+0x47CDFFF
-
type: bytes
main_offset: 0x3ECFD8
value_type: uint32
value: 0x144D5FBF
### Code cave
-
type: bytes
main_offset: 0x1744ED4
value_type: uint32
value:
- 0x910003FD
- 0xB0018448
- 0x52800020
- 0x393FFD00
- 0x17B2A03E
## "endEvent" to write uint8 0 to MAIN+0x47CDFFF
-
type: bytes
main_offset: 0x3ED178
value_type: uint32
value: 0x144D5F42
### Code cave
-
type: bytes
main_offset: 0x1744E80
value_type: uint32
value:
- 0x910003FD
- 0xB0018448
- 0x393FFD1F
- 0x17B2A0BC
- 0x17AED763
# Adjust Field Action gauge bar speed
-
type: bytes
@ -308,7 +264,15 @@ MASTER_WRITE:
value:
- 0xB0018454
- 0xBD426A81
- 0x17BA027E
- 0x1400001B
-
type: bytes
main_offset: 0x1744EE8
value_type: uint32
value:
- 0xBD412262
- 0x1E210841
- 0x17BA0261
## Connect function
-
type: bytes
@ -331,6 +295,24 @@ MASTER_WRITE:
main_offset: 0x67354
value_type: uint32
value: 0x945B76DB
# Fix fog speed
-
type: bytes
main_offset: 0x296640
value_type: uint32
value:
- 0xF00229A8
- 0xBD426902
- 0x9452BA2B
## Code cave
-
type: bytes
main_offset: 0x1744EF4
value_type: uint32
value:
- 0x1E21C042
- 0x1F020020
- 0xD65F03C0
ALL_FPS:
# FPS Target
-
@ -355,20 +337,20 @@ ALL_FPS:
## Adjusts DR target
-
type: compare
compare_address: [MAIN, 0x47CDFFF]
compare_value_type: uint8
compare_type: "!="
compare_value: 0
compare_address: [MAIN, 0x1FFEAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 1
address: [MAIN, 0x47CDF00]
value_type: float
value: 0.03333333333
## Force OS to run at 60 Hz with interval 2
-
type: compare
compare_address: [MAIN, 0x47CDFFF]
compare_value_type: uint8
compare_type: "!="
compare_value: 0
compare_address: [MAIN, 0x1FFEAF4]
compare_value_type: uint32
compare_type: ">"
compare_value: 1
address: [MAIN]
value_type: refresh_rate
value: 30

View File

@ -0,0 +1,27 @@
# Star Overdrive 1.0.5
# BID: C0D9B410A09A4ADD
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x674B6E8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x77312F0, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x776B850, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Shadow Of Chornobyl 1.0.3
# BID: F7D1E815E44D0A56
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x165F4EC]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x167B9F0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x18E7ACC]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x165F2F0]
value_type: float
value: "FRAMETIME_TARGET - (1/30)"

View File

@ -0,0 +1,38 @@
# REYNATIS (US/EU) 1.0.10
# BID: 5F765D2CC4CDEF1C
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C22F00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x38E7ECC
value_type: uint32
value:
- 0xF00219D4 # adrp x20, #0x7c22000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x38e7f34
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x38E7F34
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C22F00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C22F00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

View File

@ -0,0 +1,36 @@
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.1.0
# BID: 153DB27728D41305
unsafeCheck: false
MASTER_WRITE:
# Redirect DR to MAIN + 0x2F11FF0
# REF: A9 24 89 52 49 A2 A7 72
-
type: bytes
main_offset: 0x10B09B4
value_type: uint32
value:
- 0xB000F309 # adrp x9, 0x2f11000
- 0xBD4FF121 # ldr s1, [x9, 0xff0]
- 0xD503201F # nop
## Default value
-
type: bytes
main_offset: 0x2F11FF0
value_type: float
value: 0.035714
ALL_FPS:
# Disable FPS Lock
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
-
type: write
address: [MAIN, 0x2ED8D10, 0xE0, 0x284]
value_type: uint8
value: 0
# DR Target
-
type: evaluate_write
address: [MAIN, 0x2F11FF0]
value_type: float
value: "1.01 / FPS_TARGET"

View File

@ -0,0 +1,13 @@
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.0.2
# BID: 5E43788065113530
unsafeCheck: false
ALL_FPS:
# Disable FPS Lock
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
-
type: write
address: [MAIN, 0x2E8DCF0, 0xE0, 0x284]
value_type: uint8
value: 0

View File

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.79.b056
# BID: EB8D70AB59D8A4C2
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE71A68, 8]
value_type: double
value: FPS_TARGET

View File

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.78.f2e9
# BID: F51888C0188BFA18
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE6FA68, 8]
value_type: double
value: FPS_TARGET

View File

@ -0,0 +1,27 @@
# Bravely Default II Asia 1.0.0
# BID: B5B9C7BB8D9716F6
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x72AEE90, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x73050F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x69AA5C0, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,75 @@
# WARRIORS: Abyss 1.2.1
# BID: 293D73083149473E
unsafeCheck: true
MASTER_WRITE:
# REF: 09 49 A8 52 21 01 27 1E 00 20 21 1E
# Use FPS Target instead of vsync value for Dynamic Resolution max delta
-
type: bytes
main_offset: 0x6BD270
value_type: uint32
value:
- 0xB0004521 # ADRP X1, 0xF62000
- 0xBD44D821 # LDR S1, [X1, 0x4D8]
# Redirect DR Targets to MAIN+0x13F3F00
-
type: bytes
main_offset: 0x6BD314
value_type: uint32
value:
- 0xD00069A9 # ADRP X9, 0x13F3000
- 0xBD4F0121 # LDR S1, [X9, 0xF00]
-
type: bytes
main_offset: 0x6BD324
value_type: uint32
value:
- 0xD00069A9 # ADRP X9, 0x13F3000
- 0xBD4F0521 # LDR S1, [X9, 0xF04]
# Default values
-
type: bytes
main_offset: 0x13F3F00
value_type: float
value: [50, 40]
ALL_FPS:
# REF: 00 00 F0 42 78 00 00 00 00 00 F0 42 04 00 00 00
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0xF624E4]
value_type: uint32
value: "120 / FPS_LOCK_TARGET"
# Prevent from setting it as 0, otherwise game crashes
-
type: evaluate_compare
compare_address: [MAIN, 0xF624E4]
compare_type: "=="
compare_value_type: uint32
compare_value: 0
address: [MAIN, 0xF624E4]
value_type: uint32
value: 1
# Others
-
type: evaluate_write
address: [MAIN, 0xF624D8]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xF624DC]
value_type: uint32
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0xF624E0]
value_type: float
value: "FPS_TARGET"
-
type: evaluate_write
address: [MAIN, 0x13F3F00]
value_type: float
value: ["1.5 * FRAMETIME_TARGET", "1.2 * FRAMETIME_TARGET"]

View File

@ -0,0 +1,21 @@
# Cassette Beasts 1.8.0
# BID: B5DCAAA828DA5034
unsafeCheck: true
ALL_FPS:
# physics/common/physics_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x24]
value_type: int32
value: FPS_TARGET
# debug/settings/fps/force_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x30]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

View File

@ -0,0 +1,27 @@
# The Plucky Squire 1.0.8
# BID: 892E6C4FE0D850B5
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6C06668, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6C34348, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6436CE8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -16,6 +16,12 @@ ALL_FPS:
address: [MAIN, 0x73050F0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x69AA5C0, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,21 @@
# Grounded 1.12
# BID: F50C38B64DE532F7
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x8E50418, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8E76560, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,28 @@
# No Man's Sky 5.6.0
# BID: 252A2FD2AD6A13FE
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4722FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x1F3A018
value_type: uint32
value:
- 0x90013F49 # adrp x9, #0x4722000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4722FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4722FF0]
value_type: float
value: FPS_TARGET

View File

@ -0,0 +1,28 @@
# No Man's Sky 5.6.4
# BID: E152A4B27D349B17
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4728FF0
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
-
type: bytes
main_offset: 0x1F3FD58
value_type: uint32
value:
- 0xB0013F49 # adrp x9, #0x4728000
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
- 0xD503201F # NOP
# default value
-
type: bytes
main_offset: 0x4728FF0
value_type: float
value: 30
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4728FF0]
value_type: float
value: FPS_TARGET

View File

@ -0,0 +1,12 @@
# PowerWash Simulator 1.10.0
# BID: 30997D8F7566EBB5
unsafeCheck: false
ALL_FPS:
# FuturLab.SingletonMonoBehaviour<FrameRateLimiter>_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit)
-
type: evaluate_write
address: [MAIN, 0x6043ED0, 0xB8, 0, 0x28]
value_type: int32
value: FPS_LOCK_TARGET

View File

@ -0,0 +1,21 @@
# The Hundred Line -Last Defense Academy- 1.0.3
# BID: 7816CA5FECA60315
# Last found function with REF: FD 7B BE A9 F3 0B 00 F9 FD 03 00 91 E0 03 01 2A stores some code related to playing above 60 FPS. Look at it if someone will have an issue playing above 60 FPS.
unsafeCheck: true
ALL_FPS:
# FPS Lock
# REF: 1B 41 00 00
-
type: evaluate_write
address: [MAIN, 0xC8BC78]
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, 0xC8BC44]
value_type: uint32
value: FPS_TARGET

View File

@ -0,0 +1,12 @@
# DAVE THE DIVER 1.0.4.1034
# BID: 456BDB6160D317A3
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x98DF500, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -0,0 +1,12 @@
# DAVE THE DIVER 1.0.4.1029
# BID: 757760621154BA5A
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x98E8280, 0x48]
value_type: float
value: "1 / FPS_TARGET"

View File

@ -0,0 +1,28 @@
# Shining Resonance Refrain 1.0.1
# BID: 069E3EFC16365FFD
# Possible values to tweak if something happens: 0xFC0DE0 = 1.0, 0xFC0DD4 = 1.0, 0xFC0DD0 = 1.0, 0xFC0DCC = 1.0, 0xFC0DD8 - UI speed factor, don't change because it's dynamic
unsafeCheck: true
MASTER_WRITE:
# Triple buffer
# REF: 28 60 81 52 E8 37 00 B9 E8 03 1F 32
-
type: bytes
main_offset: 0x3AE35C
value_type: uint32
value: 0x52800068
ALL_FPS:
# Disable FPS Lock
# REF: C8 46 90 52 first ADRP + LDR + LDR above it
-
type: write
address: [MAIN, 0xFC0DC8]
value_type: uint32
value: 0
# Lipsync fix
-
type: evaluate_write
address: [MAIN, 0xFC0DDC]
value_type: float
value: "30.0 / FPS_TARGET"

View File

@ -0,0 +1,27 @@
# Nikoderiko: The Magical World 1.0.3
# BID: 1218D04A7C77F2DA
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x64F6968, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6524628, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5D25C08, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -0,0 +1,80 @@
# Another Crab's Treasure 1.1.100.1
# BID: B24C86A2B02DE960
unsafeCheck: true
MASTER_WRITE:
# Redirect updating various deltas to read frametime target from UnityEngine.Application::targetFrameRate, REF: 08 10 91 52 08 A1 A7 72
-
type: bytes
main_offset: 0x18B2F18
value_type: uint32
value: # 08 EA 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xF001EF48 # adrp x8, 0x569d000
- 0xB94BF908 # ldr w8, [x8, #0xbf8]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
-
type: bytes
main_offset: 0x18B6C30
value_type: uint32
value: # E8 E9 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xF001EF28 # adrp x8, 0x569d000
- 0xB94BF908 # ldr w8, [x8, #0xbf8]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
# Redirect Dynamic Resolution GPU Timing target in DynamicResolutionScaler::Update to MAIN+0x5B14F08
-
type: bytes
main_offset: 0x1B018E4
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x1B01964
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 60 2A 40 BD 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xBD402A60 # ldr s0, [x19, #0x28]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x1B019D8
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xF0020088 # adrp x8, #0x5b14000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
# Default values
-
type: bytes
main_offset: 0x569DBF8
value_type: uint32
value: 30
-
type: bytes
main_offset: 0x5B14F08
value_type: double
value: 28.57142857142857
ALL_FPS:
# UnityEngine.Application::targetFrameRate
-
type: evaluate_write
address: [MAIN, 0x569DBF8]
value_type: uint32
value: FPS_TARGET
# GPU Timing Target
-
type: evaluate_write
address: [MAIN, 0x5B14F08]
value_type: double
value: "1000 / (FPS_TARGET + 5)"

View File

@ -0,0 +1,27 @@
# Boti: Byteland Overclocked 1.0.3
# BID: 8A942A9E838E5083
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x72D4718, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x8291E38, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x82CB9E0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

View File

@ -0,0 +1,43 @@
# FAIRY TAIL 2 1.4.2
# BID: 007EA5E2E2541C6F
unsafeCheck: false
MASTER_WRITE:
# Redirect Dynamic Resolution target to MAIN+0x2C53F00
# REF: 6A C8 82 52
-
type: bytes
main_offset: 0x138238C
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F014A # LDR W10, [X10, 0xF00]
-
type: bytes
main_offset: 0x13823A8
value_type: uint32
value:
- 0xB000C68A # ADRP X10, 0x2c53000
- 0xB94F054A # LDR W10, [X10, 0xF04]
# Default values
-
type: bytes
main_offset: 0x2C53F00
value_type: float
value: [0.043478, 0.037037]
ALL_FPS:
# FPS Lock
# REF: 1F 00 00 71 C8 03 80 52, first ADRP+ADD above it
-
type: evaluate_write
address: [MAIN, 0x2C0B558, 0x170, 0x18C]
value_type: int32
value: FPS_LOCK_TARGET
# Dynamic Resolution Target
# Game proritizes resolution over framerate, I changed it to prefer framerate
-
type: evaluate_write
address: [MAIN, 0x2C53F00]
value_type: float
value: ["1 / FPS_TARGET", "1 / (FPS_TARGET + 5)"]

View File

@ -0,0 +1,54 @@
# PROJECT ZERO: MAIDEN OF BLACK WATER 1.0.4
# FATAL FRAME: MAIDEN OF BLACK WATER 1.0.4
# BID: B38D51E0391187EC
unsafeCheck: true
MASTER_WRITE:
# Redirect min delta to MAIN + 0x1BC4FF0
# REF: 00 D9 21 7E 28 19 20 1E
-
type: bytes
main_offset: 0x39ABF8
value_type: uint32
value:
- 0xD000C15B # ADRP X27, 0x1BC4000
- 0xBD4FF368 # LDR S8, [X27, 0xFF0]
# Redirect FPS Lock to MAIN + 0x1BC4FF4
# REF: 69 AA 40 B9 0A 40 99 52
-
type: bytes
main_offset: 0x39B2D8
value_type: uint32
value:
- 0xB000C149 # ADRP X9, 0x1BC4000
- 0xB94FF529 # LDR W9, [X9, 0xFF4]
- 0xD503201F # NOP
- 0xD503201F # NOP
# Default values
-
type: bytes
main_offset: 0x1BC4FF0
value_type: float
value: 0.0333333333
-
type: bytes
main_offset: 0x1BC4FF4
value_type: uint32
value: 33333333
ALL_FPS:
# Min delta
-
type: evaluate_write
address: [MAIN, 0x1BC4FF0]
value_type: float
value: "1 / FPS_TARGET"
# FPS Lock
-
type: evaluate_write
address: [MAIN, 0x1BC4FF4]
value_type: uint32
value: "1000000000 / FPS_TARGET"
-
type: block
what: timing

View File

@ -0,0 +1,37 @@
# Twilight Monk 1.0.0
# BID: 5D63D46226DB106F
unsafeCheck: false
ALL_FPS:
# Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS
-
type: write
address: [MAIN, 0x5DBD688, 0x7A4]
value_type: uint32
# Default is 0x46, bUseFixedFrameRate |= 0x40
# By writing 7 we are making sure that other flags are maintained:
# bAllowMultiThreadedAnimationUpdate |= 4
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
value: 6
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x5D902E8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x5DBDFA8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: evaluate_write
address: [MAIN, 0x55C1348, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

View File

@ -12,7 +12,7 @@ ALL_FPS:
value: "1 / FPS_TARGET"
# Play prerendered cutscenes only at 60 FPS
-
type: evaluate_compare
type: compare
compare_address: [MAIN, 0x1728B58]
compare_type: "!="
compare_value_type: uint32

View File

@ -0,0 +1,14 @@
# Card-en-Ciel 1.5.1
# BID: 0B00B4DFAE47EBA3
# Buffers are hardcoded line by line and put into fixed size heap allocation, so getting triple buffer requires effort
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
# REF: look at nn::os::SleepThread() called in nnMain()
-
type: evaluate_write
address: [MAIN, 0x21C9248, 0x5C]
value_type: float
value: 1 / FPS_LOCK_TARGET

View File

@ -0,0 +1,27 @@
# SnowRunner 1.0.39
# BID: 3E9AC9266BB21FC4
# Just search for 0x42055555
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x309AF00
-
type: bytes
main_offset: 0x1933834
value_type: uint32
value:
- 0xF000BB2A # adrp x10, #0x309A000
- 0xBD4F0142 # ldr s2, [x10, #0xf00]
# default value
-
type: bytes
main_offset: 0x309AF00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x309AF00]
value_type: float
value: FRAMETIME_TARGET

View File

@ -0,0 +1,27 @@
# SnowRunner 1.0.38
# BID: 53531030A4199B74
# Just search for 0x42055555
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x309FF00
-
type: bytes
main_offset: 0x1936124
value_type: uint32
value:
- 0xB000BB4A # adrp x10, #0x309F000
- 0xBD4F0142 # ldr s2, [x10, #0xf00]
# default value
-
type: bytes
main_offset: 0x309FF00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x309FF00]
value_type: float
value: FRAMETIME_TARGET

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,2 +0,0 @@
# Nintendo telemetry servers
127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net

View File

@ -1,40 +0,0 @@
127.0.0.1 *nintendo*
127.0.0.1 ads.doubleclick.net
127.0.0.1 clients1.google.com
127.0.0.1 dts.innovid.com
127.0.0.1 googleads4.g.doubleclick.net
127.0.0.1 pagead2.googlesyndication.com
127.0.0.1 pixel.moatads.com
127.0.0.1 rtd.tubemogul.com
127.0.0.1 s.innovid.com
127.0.0.1 pubads.g.doubleclick.net
127.0.0.1 ssl.google-analytics.com
127.0.0.1 www-google-analytics.l.google.com
127.0.0.1 stats.g.doubleclick.net
127.0.0.1 clients.l.google.com
127.0.0.1 pagead.l.doubleclick.net
127.0.0.1 www-googletagmanager.l.google.com
127.0.0.1 googleadapis.l.google.com
127.0.0.1 s0.2mdn.net
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 files.adform.net
127.0.0.1 secure-ds.serving-sys.com
127.0.0.1 securepubads.g.doubleclick.net
127.0.0.1 2975c.v.fwmrm.net
127.0.0.1 static.doubleclick.net
127.0.0.1 googleadservices.com
127.0.0.1 ad-g.doubleclick.net
127.0.0.1 ad.doubleclick.net
127.0.0.1 ad.mo.doubleclick.net
127.0.0.1 doubleclick.net
127.0.0.1 pagead.googlesyndication.com
127.0.0.1 pagead1.googlesyndication.com
127.0.0.1 www.googleadservices.com
127.0.0.1 analytic-google.com
127.0.0.1 www.analytic-google.com
127.0.0.1 www.googletagservices.com
127.0.0.1 fwmrm.net
127.0.0.1 innovid.com
127.0.0.1 2mdn.net
95.216.149.205 *conntest.nintendowifi.net
95.216.149.205 *ctest.cdn.nintendo.net

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