mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-09-13 12:08:34 +00:00
149 lines
3.1 KiB
YAML
149 lines
3.1 KiB
YAML
# Kirby's Dream Buffet 1.0.0/1.0.0a
|
|
# BID: 82AF4E16BBC0BEC8
|
|
# Thanks to Hazerou for finding offsets
|
|
# Game was patched to use triple buffer, and to avoid flickering with some 2D transparent elements, I have disabled transparency in them.
|
|
# Issue with flickering exists because game is hardcoded to only register 2 textures into texturepool and 2 samplers into samplerpool for framebuffers.
|
|
|
|
unsafeCheck: true
|
|
|
|
MASTER_WRITE:
|
|
# Remove double buffer
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x861208
|
|
instructions: [
|
|
[mov, w9, 3]
|
|
]
|
|
# Fix helper functions to properly copy third buffer address to stack
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8612DC
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8654D8
|
|
instructions: [
|
|
[sub, sp, sp, 0x60],
|
|
[stp, x29, x30, [sp, 0x20]],
|
|
[add, x29, sp, 0x20],
|
|
[str, x23, [sp, 0x30]],
|
|
[stp, x22, x21, [sp, 0x40]],
|
|
[stp, x20, x19, [sp, 0x50]],
|
|
[stp, xzr, xzr, [sp, 0x10]]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x86550C
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8655B8
|
|
instructions: [
|
|
[stp, x8, x10, [sp]],
|
|
[bl, 0x85f028],
|
|
[ldp, x20, x19, [sp, 0x50]],
|
|
[ldr, x23, [sp, 0x30]],
|
|
[ldp, x22, x21, [sp, 0x40]],
|
|
[ldp, x29, x30, [sp, 0x20]],
|
|
[add, sp, sp, 0x60]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x793298
|
|
instructions: [
|
|
[sub, sp, sp, 0x50],
|
|
[stp, x29, x30, [sp, 0x20]],
|
|
[add, x29, sp, 0x20],
|
|
[stp, x22, x21, [sp, 0x30]],
|
|
[stp, x20, x19, [sp, 0x40]],
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x7932E0
|
|
instructions: [
|
|
[stp, xzr, xzr, [sp, 0x10]]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x7932EC
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x793310
|
|
instructions: [
|
|
[ldp, x20, x19, [sp, 0x40]],
|
|
[ldp, x22, x21, [sp, 0x30]],
|
|
[ldp, x29, x30, [sp, 0x20]],
|
|
[add, sp, sp, 0x50]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x876B00
|
|
instructions: [
|
|
[add, x1, sp, 0x10],
|
|
[add, x23, sp, 0x10]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x876B14
|
|
instructions: [
|
|
[mov, w2, 3],
|
|
[stp, xzr, xzr, [sp, 0x10]]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8CFC44
|
|
instructions: [
|
|
[mov, x1, sp],
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8CFC5C
|
|
instructions: [
|
|
[mov, x26, sp]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x876B14
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x8612DC
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x876A64
|
|
instructions: [
|
|
[mov, w2, 3]
|
|
]
|
|
# Disable transparency for some 2D elements to avoid issues with flickering at triple buffer
|
|
-
|
|
type: asm_a64
|
|
main_offset: 0x7BFB00
|
|
instructions: [
|
|
[mov, x9, 0x102],
|
|
[ldr, w10, [x10, 0x848]],
|
|
[lsl, x12, x10, 3],
|
|
[add, x20, x8, 0x828],
|
|
[str, x9, [x20]]
|
|
]
|
|
ALL_FPS:
|
|
# Interval
|
|
-
|
|
type: evaluate_write
|
|
address: [MAIN, 0xBEBFD8, 0]
|
|
value_type: int32
|
|
value: VSYNC_TARGET
|
|
|