Files
psopeeps-newserv/system/client-functions/Debug/MovementDebug.3OE1.patch.s
2026-01-14 22:06:06 -08:00

72 lines
1.4 KiB
ArmAsm

.meta hide_from_patches_menu
.meta name="MovementDebug"
.meta description=""
.meta show_return_value
# Usage examples:
# Read movement data 09 fparam1:
# $patch MovementDebug e=0x09 f=1 r=1
# Write to movement data 09 iparam6:
# $patch MovementDebug e=0x09 i=6 v=8
# Write to movement data 36 fparam1 (v is interpreted as float if it contains a '.'):
# $patch MovementDebug e=0x36 f=1 v=60.0
entry_ptr:
reloc0:
.offsetof start
start:
mflr r12
b get_data_ptr
get_data_ptr_ret:
mflr r11
mtlr r12
li r3, 0
lwz r7, [r11] # table index
cmplwi r7, 0x60
bgelr
lwz r8, [r13 - 0x5B70]
mulli r7, r7, 0x30
add r7, r7, r8
lwz r0, [r11 + 12] # value
lwz r9, [r11 + 16] # read-only
lwz r4, [r11 + 4] # fparam number
subi r4, r4, 1
cmplwi r4, 6
bge not_fparam
rlwinm r4, r4, 2, 0, 31
lwzx r3, [r7 + r4]
cmplwi r9, 0
bnelr
stwx [r7 + r4], r0
blr
not_fparam:
lwz r4, [r11 + 8] # iparam number
subi r4, r4, 1
cmplwi r4, 6
bgelr
rlwinm r4, r4, 2, 0, 31
addi r4, r4, 0x18
lwzx r3, [r7 + r4]
cmplwi r9, 0
bnelr
stwx [r7 + r4], r0
blr
get_data_ptr:
bl get_data_ptr_ret
e: # Movement data index
.data 0xFFFFFFFF
f: # Float param index
.zero
i: # Int parameter index
.zero
v: # Value
.zero
r: # Read-only
.zero