# 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