mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-07-23 10:42:21 +00:00
356 lines
7.1 KiB
YAML
356 lines
7.1 KiB
YAML
# Xenoblade Chronicles X: Definitive Edition 1.0.1
|
|
# BID: 3F2425864CF22684
|
|
|
|
unsafeCheck: true
|
|
|
|
MASTER_WRITE:
|
|
# Dynamic speed mod for stuff like UI, lipsync, grass and rain
|
|
## Redirect nvnQueuePresentTexture call to code cave at MAIN+0x1744D90
|
|
-
|
|
type: bytes
|
|
main_offset: 0x96ECD8
|
|
value_type: uint32
|
|
value: 0x1437582E
|
|
## Code Cave (save floats for speed factor to MAIN+0x47CD268, frametime as FPS in MAIN+0x47CD26C, frametime in s in MAIN+0x47CD270)
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744D90
|
|
value_type: uint32
|
|
value:
|
|
- 0xD63F0100
|
|
- 0x97FFF52B
|
|
- 0xB0018448
|
|
- 0xF9413107
|
|
- 0xF9013100
|
|
- 0xB5000047
|
|
- 0x17C8A7CD
|
|
- 0xCB070000
|
|
- 0x97FFF528
|
|
- 0xB0018448
|
|
- 0xB9430101
|
|
- 0xEB00003F
|
|
- 0x5400004B
|
|
- 0xAA0103E0
|
|
- 0xD2881541
|
|
- 0xF2A07F21
|
|
- 0xEB00003F
|
|
- 0x5400004C
|
|
- 0xAA0103E0
|
|
- 0x9E630000
|
|
- 0xD00005A0
|
|
- 0xFD469C01
|
|
- 0x1E611800
|
|
- 0xD2807D00
|
|
- 0x9E630001
|
|
- 0x1E601821
|
|
- 0xB0018440
|
|
- 0x1E624021
|
|
- 0xBD026C01
|
|
- 0x1E27D002
|
|
- 0x1E211842
|
|
- 0xBD026802
|
|
- 0xD2807D01
|
|
- 0x9E630021
|
|
- 0x1E611801
|
|
- 0x1E624021
|
|
- 0xBD027001
|
|
- 0x17C8A7AE
|
|
## Default values for code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x47CD268
|
|
value_type: float
|
|
value: [1.0, 30.0, 0.033333333333]
|
|
-
|
|
type: bytes
|
|
main_offset: 0x47CD300
|
|
value_type: uint32
|
|
value: 33333333
|
|
## Function 1 to speed factor // Usage unknown
|
|
-
|
|
type: bytes
|
|
main_offset: 0x2864C8
|
|
value_type: uint32
|
|
value:
|
|
- 0xF0022A35
|
|
- 0xF9470D00
|
|
- 0xBD426AAA
|
|
## Function 3 to speed factor // Usage unknown
|
|
-
|
|
type: bytes
|
|
main_offset: 0xA26D00
|
|
value_type: uint32
|
|
value:
|
|
- 0xF001ED20
|
|
- 0xBD426808
|
|
## Function 4 to FPS // UI Speed
|
|
-
|
|
type: bytes
|
|
main_offset: 0xA2EE60
|
|
value_type: uint32
|
|
value:
|
|
- 0xF001ECE0
|
|
- 0x1E270100
|
|
- 0xBD426C00
|
|
## Function 5 to FPS // Usage unknown
|
|
-
|
|
type: bytes
|
|
main_offset: 0x266E3C
|
|
value_type: uint32
|
|
value:
|
|
- 0xF0022B20
|
|
- 0x1E270100
|
|
- 0x7940D268
|
|
- 0xBD426C05
|
|
## Function 6 to FPS
|
|
-
|
|
type: bytes
|
|
main_offset: 0x26D6D0
|
|
value_type: uint32
|
|
value:
|
|
- 0x90022B00
|
|
- 0xBD426C00
|
|
- 0x1E390000
|
|
- 0x528000C9
|
|
- 0x1AC90808
|
|
## Function 7 to Frametime in s // Gameplay + cutscene speed
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E24E4
|
|
value_type: uint32
|
|
value: 0xF0022F49
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E24F8
|
|
value_type: uint32
|
|
value: 0xBD427120
|
|
# Adjust various elements related to fighting
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E8B08
|
|
value_type: uint32
|
|
value: 0x145570EB
|
|
## Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744EB4
|
|
value_type: uint32
|
|
value:
|
|
- 0xB0018449
|
|
- 0xBD426920
|
|
- 0x17AA8F14
|
|
## Fix gun speed
|
|
-
|
|
type: bytes
|
|
main_offset: 0x30F62C
|
|
value_type: uint32
|
|
value: 0xD503201F
|
|
# Redirect DR Target to MAIN+0x47CDF00
|
|
-
|
|
type: bytes
|
|
main_offset: 0x13B8DF4
|
|
value_type: uint32
|
|
value:
|
|
- 0xB001A0A8
|
|
- 0xBD4F0100
|
|
## Default value
|
|
-
|
|
type: bytes
|
|
main_offset: 0x47CDF00
|
|
value_type: float
|
|
value: 0.01666666666
|
|
# Adjust camera speed rotation dynamically
|
|
## Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744E48
|
|
value_type: uint32
|
|
value:
|
|
- 0xB0018448
|
|
- 0xBD426908
|
|
- 0x1E200900
|
|
- 0x1E202008
|
|
- 0x540000AA
|
|
- 0x1E214000
|
|
- 0x1E21C000
|
|
- 0x1E214000
|
|
- 0xD65F03C0
|
|
- 0x1E21C000
|
|
- 0xD65F03C0
|
|
## Connect function 1
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E1360
|
|
value_type: uint32
|
|
value: 0x94558EBA
|
|
## Connect function 2
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E1370
|
|
value_type: uint32
|
|
value: 0xAD7D03A1
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1E137C
|
|
value_type: uint32
|
|
value: 0x94558EB3
|
|
# Force 1s sleep to synchronize audio if cutscene detected
|
|
## 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: 0x2FAC38
|
|
value_type: uint32
|
|
value: 0x14512898
|
|
### Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744E98
|
|
value_type: uint32
|
|
value:
|
|
- 0x52800094
|
|
- 0xD00045C0
|
|
- 0xB90AF414
|
|
- 0xD2994000
|
|
- 0xF2A77340
|
|
- 0x97FFF3D9
|
|
- 0x17AED763
|
|
# Adjust Field Action gauge bar speed
|
|
-
|
|
type: bytes
|
|
main_offset: 0xE5B00
|
|
value_type: uint32
|
|
value:
|
|
- 0x90023740
|
|
- 0xD000E3E9
|
|
- 0xBD426808
|
|
## Fix for FN Site
|
|
-
|
|
type: bytes
|
|
main_offset: 0xE5558
|
|
value_type: uint32
|
|
value: 0x14597E34
|
|
### Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744E28
|
|
value_type: uint32
|
|
value:
|
|
- 0xBD40D260
|
|
- 0xB0018440
|
|
- 0xBD426801
|
|
- 0x1E210800
|
|
- 0x17A681C9
|
|
# Fix long jump when not running
|
|
-
|
|
type: bytes
|
|
main_offset: 0x23EAD0
|
|
value_type: uint32
|
|
value: 0x145418DB
|
|
## Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744E3C
|
|
value_type: uint32
|
|
value:
|
|
- 0x1E27D00B
|
|
- 0x1E2B296B
|
|
- 0x17ABE724
|
|
# Adjust QTE Speed
|
|
## Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744E74
|
|
value_type: uint32
|
|
value:
|
|
- 0xB0018454
|
|
- 0xBD426A81
|
|
- 0x1400001B
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744EE8
|
|
value_type: uint32
|
|
value:
|
|
- 0xBD412262
|
|
- 0x1E210841
|
|
- 0x17BA0261
|
|
## Connect function
|
|
-
|
|
type: bytes
|
|
main_offset: 0x5C5870
|
|
value_type: uint32
|
|
value: 0x1445FD81
|
|
# Adjust Overdrive counter, Follow Ball speed
|
|
## Code cave
|
|
-
|
|
type: bytes
|
|
main_offset: 0x1744EC0
|
|
value_type: uint32
|
|
value:
|
|
- 0xB0018440
|
|
- 0xBD427000
|
|
- 0xD65F03C0
|
|
## Connect function
|
|
-
|
|
type: bytes
|
|
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
|
|
-
|
|
type: evaluate_write
|
|
address: [MAIN, 0x47CD300]
|
|
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, 0x1DA33A0]
|
|
value_type: int32
|
|
value: [1, 1]
|
|
# DR Target
|
|
-
|
|
type: evaluate_write
|
|
address: [MAIN, 0x47CDF00]
|
|
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, 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, 0x1FFEAF4]
|
|
compare_value_type: uint32
|
|
compare_type: ">"
|
|
compare_value: 1
|
|
address: [MAIN]
|
|
value_type: refresh_rate
|
|
value: 30 |