2025-05-10 09:41:45 +03:00

357 lines
7.1 KiB
YAML

# 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