# Kirby and the Forgotten Land 1.0.0 # BID: D9BA7DB72FFAFECD # Thanks to Hazerou for finding interval offsets MASTER_WRITE: # Remove double buffer - type: asm_a64 main_offset: 0x745E94 instructions: [ [mov, w9, 3] ] # Fix helper functions to not corrupt stack - type: asm_a64 main_offset: 0x745F70 instructions: [ [mov, w2, 3] ] - type: asm_a64 main_offset: 0x75908C instructions: [ [mov, w2, 3] ] - type: asm_a64 main_offset: 0x675198 instructions: [ [sub, sp, sp, 0x50], [stp, x22, x21, [sp, 0x20]], [stp, x20, x19, [sp, 0x30]], [stp, x29, x30, [sp, 0x40]], [add, x29, sp, 0x40] ] - type: asm_a64 main_offset: 0x6751EC instructions: [ [mov, w2, 3] ] - type: asm_a64 main_offset: 0x675210 instructions: [ [ldp, x29, x30, [sp, 0x40]], [ldp, x20, x19, [sp, 0x30]], [ldp, x22, x21, [sp, 0x20]], [add, sp, sp, 0x50] ] - type: asm_a64 main_offset: 0x74A510 instructions: [ [mov, w2, 3] ] - type: asm_a64 main_offset: 0x7590F8 instructions: [ [mov, w2, 3] ] - type: asm_a64 main_offset: 0x7BDCD4 instructions: [ [mov, w2, 3] ] # Block transparency in some 2D elements to avoid issue with flickering at triple buffer - type: asm_a64 main_offset: 0x6A58C8 instructions: [ [mov, x9, 0x102], [ldr, w10, [x10, 0x840]], [add, x20, x8, 0x820], [lsl, x12, x10, 3], [str, x9, [x20]] ] ALL_FPS: # Interval (Setting it to 0 unlocks framerate and sets dynamic game speed) - type: write address: [MAIN, 0xA72628, 0x50] address_unsafe: true value_type: int32 value: 0 # Dynamic Resolution GPU Frametiming Max / Min (Max = 1.95 * (30/FPS), Min = 1.7 * (30/FPS)) - type: evaluate_write address: [MAIN, 0xA726B0, 0x140, 0x1B0, 0x20, 0x34] address_unsafe: true value_type: float value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"]