2025-08-02 20:41:35 +03:00

157 lines
3.2 KiB
YAML

# The Legend of Zelda: Breath of the Wild 1.8.2
# BID: DE0B6AC4EFC1DDA7
unsafeCheck: true
MASTER_WRITE:
# Remove double buffer
## REF: 61 F6 42 39
-
type: bytes
main_offset: 0xD80748
value_type: uint32
value: 0x52800021
# Change pointer of time factor for DR calculations to MAIN + 0x1D36FF4
## REF: 01 01 27 1E 08 59 A8 52 03 08 21 1E, replace hardcoded 100.0 float
-
type: bytes
main_offset: 0x1153314
value_type: uint32
value:
- 0xF0005F08
- 0x1E210803
- 0xBD4FF501
# Dynamic speed
## Replace nvnQueuePresentTexture call to code cave at MAIN+0x148D964
-
type: bytes
main_offset: 0xD874FC
value_type: uint32
value: 0x141C191A
## Patch game speed function to use speed from MAIN+0x1D36FF0
-
type: bytes
main_offset: 0x14092A8
value_type: uint32
value: 0x14000003
-
type: bytes
main_offset: 0x14092CC
value_type: uint32
value:
- 0xB0004969
- 0xBD4FF121
## Patch UI speed function to use speeed from MAIN+0x1D36FF0
-
type: bytes
main_offset: 0x116D0D8
value_type: uint32
value: 0xB0005E47
-
type: bytes
main_offset: 0x116D0E4
value_type: uint32
value: 0xBD4FF0E0
## CODE CAVE
-
type: bytes
main_offset: 0x148D964
value_type: uint32
value:
- 0xD63F0100
- 0xD53BE022
- 0xB0004548
- 0xF947FD01
- 0xEB1F003F
- 0x54000061
- 0xF907FD02
- 0x17E3E6E0
- 0xCB010040
- 0x97FFFBB6 # BL nn::os::ConvertToTimeSpan(nn::os::Tick)
- 0x9E230000
- 0x52940AA0
- 0x72A03F80
- 0x1E230001
- 0x1E211800
- 0x1E201001
- 0x1E212000
- 0x5400004B
- 0x1E204020
- 0xB0004548
- 0xBD4FED01
- 0x1E212000
- 0x5400004C
- 0x1E204020
- 0xBD0FF100
- 0x17FFFFED
- 0xB0004540
- 0xB94FF000
- 0xD65F03C0
- 0xB0004547
- 0xB90FE8E1
- 0x17DDA966
# Signal Cutscenes playing
-
type: bytes
main_offset: 0xC00680
value_type: uint32
value: 0x942234D6
-
type: bytes
main_offset: 0xC00E40
value_type: uint32
value: 0x942232E6
# Default speed
-
type: bytes
main_offset: 0x1D36FF0
value_type: float
value: 1.0
-
type: bytes
main_offset: 0x1D36FEC
value_type: float
value: 1.0
# Default cutscene state
-
type: bytes
main_offset: 0x1D36FE8
value_type: uint8
value: 1
# Default DR factor
-
type: bytes
main_offset: 0x1D36FF4
value_type: float
value: 100.0
ALL_FPS:
# Scrolling speed
## REF: 68 16 41 B9 D8 22 D5 1A
## ADRP + LDR above it
-
type: evaluate_write
address: [MAIN, 0x1C4BA40]
value_type: float
value: "30 / FPS_TARGET"
# Min Delta
-
type: evaluate_write
address: [MAIN, 0x1D36FEC]
value_type: float
value: "30 / FPS_TARGET"
# DR factor
-
type: evaluate_write
address: [MAIN, 0x1D36FF4]
value_type: float
value: "(FPS_TARGET / 30) * 100"
# Prerendered cutscenes must be played at 30 FPS
-
type: compare
compare_address: [MAIN, 0x1D36FE8]
compare_type: "=="
compare_value_type: uint8
compare_value: 0
address: [MAIN]
value_type: refresh_rate
value: 30