UltraNX/SaltySD/plugins/FPSLocker/patches/010074F013262000/82D187FE9EF9BE92.yaml

122 lines
2.8 KiB
YAML
Raw Normal View History

2024-02-15 21:58:22 +00:00
# Xenoblade Chronicles 3 2.2.0
# BID: 82D187FE9EF9BE92
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00]
-
type: bytes
main_offset: 0x124F518
value_type: uint32
value:
- 0xF00088C8
- 0xBD4B0100
# Original DR frametime target
-
type: bytes
main_offset: 0x236AB00
value_type: float
value:
- 0.0166666666
# Fix crash when gathering big amount of ether for > 30 FPS
- # Code cave at 0x1295DA0
type: bytes
main_offset: 0x67360
value_type: uint32
value: 0x9448BA90
- # Push fixed 1/30 float to game speed pointer late enough to not affect it
type: bytes
main_offset: 0x1295DA0
value_type: uint32
value:
- 0xF9400015
- 0x1E2E1001
- 0x1E27D002
- 0x1E221821
- 0xBD0216A1
- 0xD65F03C0
2024-07-02 09:50:28 +00:00
ALL_FPS:
2024-02-15 21:58:22 +00:00
# vsync
-
2024-07-02 09:50:28 +00:00
type: evaluate_write
2024-02-15 21:58:22 +00:00
address: [MAIN, 0x1B42DB0]
value_type: int32
2024-07-02 09:50:28 +00:00
value: [VSYNC_TARGET, VSYNC_TARGET]
# DR Timing (relative to vsync)
2024-02-15 21:58:22 +00:00
-
2024-07-02 09:50:28 +00:00
type: evaluate_write
2024-02-15 21:58:22 +00:00
address: [MAIN, 0x236AB00]
value_type: float
2024-07-02 09:50:28 +00:00
value: "((1 / FPS_TARGET) / VSYNC_TARGET) * 0.78"
2024-02-15 21:58:22 +00:00
# UI speed
-
2024-07-02 09:50:28 +00:00
type: evaluate_write
2024-02-15 21:58:22 +00:00
address: [MAIN, 0x1BA1A90, 128]
value_type: float
2024-07-02 09:50:28 +00:00
value: "1 / FPS_TARGET"
2024-02-15 21:58:22 +00:00
-
type: compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1B42DB0]
value_type: int32
value: [2, 2]
-
2024-07-02 09:50:28 +00:00
type: evaluate_compare
2024-02-15 21:58:22 +00:00
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x236AB00]
value_type: float
2024-07-02 09:50:28 +00:00
value: "(1 / 30) / 2"
2024-02-15 21:58:22 +00:00
-
2024-07-02 09:50:28 +00:00
type: evaluate_compare
2024-02-15 21:58:22 +00:00
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1BA1A90, 128]
value_type: float
2024-07-02 09:50:28 +00:00
value: "(1 / 30) / 2"
ALL_REFRESH_RATES:
2024-02-15 21:58:22 +00:00
-
type: compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1B42DB0]
value_type: int32
value: [1, 1]
-
2024-07-02 09:50:28 +00:00
type: evaluate_compare
2024-02-15 21:58:22 +00:00
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x236AB00]
value_type: float
2024-07-02 09:50:28 +00:00
value: "1 / 30"
2024-02-15 21:58:22 +00:00
-
2024-07-02 09:50:28 +00:00
type: evaluate_compare
2024-02-15 21:58:22 +00:00
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1BA1A90, 128]
value_type: float
2024-07-02 09:50:28 +00:00
value: "1 / 30"
2024-02-15 21:58:22 +00:00
-
type: compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
2024-07-02 09:50:28 +00:00
address: [MAIN]
value_type: refresh_rate
value: 30