mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-09-11 02:58:31 +00:00
90 lines
1.9 KiB
YAML
90 lines
1.9 KiB
YAML
# Xenoblade Chronicles 3 2.2.0/2.2.1
|
|
# BID: 82D187FE9EF9BE92
|
|
|
|
DECLARATIONS:
|
|
-
|
|
type: variable
|
|
name: dr_target
|
|
value_type: float
|
|
default_value: 0.0166666666
|
|
evaluate: "(1 / FPS_TARGET) / VSYNC_TARGET"
|
|
-
|
|
type: const
|
|
name: default_frametime
|
|
value: 0x3d088889
|
|
-
|
|
type: code
|
|
name: etherFix
|
|
instructions: [
|
|
[ldr, x21, [x0]],
|
|
[mov, w8, $default_frametime],
|
|
[movk, w8, $default_frametime, 16],
|
|
[str, w8, [x21, 0x214]],
|
|
[ret]
|
|
]
|
|
MASTER_WRITE:
|
|
# Redirect DR frametime target reading
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x124F518
|
|
instructions: [
|
|
[adrp, x8, $dr_target],
|
|
[ldr, s0, [x8, $dr_target]]
|
|
]
|
|
# Fix crash when gathering big amount of ether for > 30 FPS
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x67360
|
|
instructions: [
|
|
[bl, _etherFix()]
|
|
]
|
|
ALL_FPS:
|
|
# vsync
|
|
-
|
|
type: evaluate_write
|
|
address: [MAIN, 0x1B42DB0]
|
|
value_type: int32
|
|
value: [VSYNC_TARGET, VSYNC_TARGET]
|
|
# UI speed
|
|
-
|
|
type: evaluate_write
|
|
address: [MAIN, 0x1BA1A90, 128]
|
|
address_unsafe: true
|
|
value_type: float
|
|
value: "1 / FPS_TARGET"
|
|
-
|
|
type: compare
|
|
compare_address: [MAIN, 0x1BA1A98]
|
|
compare_type: "!="
|
|
compare_value_type: int8
|
|
compare_value: 0
|
|
address: [MAIN, 0x1B42DB0]
|
|
value_type: int32
|
|
value: [2, 2]
|
|
-
|
|
type: compare
|
|
compare_address: [MAIN, 0x1BA1A98]
|
|
compare_type: "!="
|
|
compare_value_type: int8
|
|
compare_value: 0
|
|
address: [VARIABLE, dr_target]
|
|
value: 0.0166666666
|
|
-
|
|
type: compare
|
|
compare_address: [MAIN, 0x1BA1A98]
|
|
compare_type: "!="
|
|
compare_value_type: int8
|
|
compare_value: 0
|
|
address: [MAIN, 0x1BA1A90, 128]
|
|
address_unsafe: true
|
|
value_type: float
|
|
value: 0.0333333333
|
|
-
|
|
type: compare
|
|
compare_address: [MAIN, 0x1BA1A98]
|
|
compare_type: "!="
|
|
compare_value_type: int8
|
|
compare_value: 0
|
|
value_type: refresh_rate
|
|
value: 30
|