- 81
- Posts
- 8
- Years
- Seen Apr 28, 2025
the routine that was jumping to the wrong place, now stopped freezing when it attacks.
Spoiler:.text
.align 2
.thumb
.thumb_func
.global multiscaleandfurcoat
Main:
CheckTwistMoves:
ldr r0, CurrentMove
ldrh r0, [r0]
ldr r3, PStrike
cmp r0, r3
beq Swap
ldr r3, PShock
cmp r0, r3
beq swap
ldr r3, SSword
cmp r0, r3
bne Continue
Swap:
ldr r0, [sp, #0x14]
ldr r3, [sp, #0x18]
str r0, [sp, #0x18]
str r3, [sp, #0x14]
Continue:
ldrb r0, [r2]
cmp r0, #0x3F
bne Multiscale
ldr r3, [sp, #0x4]
ldr r0, [r3, #0x4C]
cmp r0, #0
beq Return
ldr r1, [sp, #0x14]
lsr r0, r1, #1
add r1, r1, r0
str r1, [sp, #0x14]
Multiscale:
cmp r0, #0x89 /*Index number MultiScale*/
bne FurCoat
CheckHP:
ldr r1, [sp, #0x4]
ldrh r0, [r1, #0x28]
ldrh r1, [r1, #0x2C]
cmp r1, r0
bne Return
HalveDamage:
lsr r7, r7, #0x1
mov r0, r8
lsr r0, r0, #0x1
mov r8, r0
FurCoat:
ldrb r0, [r2]
cmp r0, #0xAA /*Index number Fur Coat*/
bne Return
DefenseBoost:
ldr r1, [sp, #0x14]
mov r0, r1
add r1, r0, r0
str r1, [sp, #0x14]
Return:
ldr r0, CurrentMove
ldrh r0, [r0]
ldr r3, PStrike
cmp r0, r3
beq SwapAgain
ldr r3, PShock
cmp r0, r3
beq SwapAgain
ldr r3, SSword
cmp r0, r3
bne End
SwapAgain:
ldr r0, [sp, #0x14]
ldr r3, [sp, #0x18]
str r0, [sp, #0x18]
str r3, [sp, #0x14]
End:
ldr r2, Back
bx r2
.align 2
Back: .word 0x0803f105
CurrentMove: .word 0x02023d4a
PStrike: .word 0x21C
PShock: .word 0x1D9
SSword: .word 0x224 /*Replace with the index number of your moves*/
/*00 48 00 47 xx+1 xx xx 08 at 0803f0e4*/
I keep freezing