mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-08-08 02:22:07 +00:00
157 lines
3.2 KiB
YAML
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 |