mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-03-21 17:24:33 -05:00
1832 lines
32 KiB
ArmAsm
1832 lines
32 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start PokeEvoSprite_DummySpriteCB
|
|
PokeEvoSprite_DummySpriteCB: @ 0x0817B900
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end PokeEvoSprite_DummySpriteCB
|
|
|
|
thumb_func_start SetEvoSparklesMatrices
|
|
SetEvoSparklesMatrices: @ 0x0817B904
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
ldr r5, _0817B938
|
|
_0817B90C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x14
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r5
|
|
ldrh r1, [r1]
|
|
str r1, [sp]
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl SetOamMatrix
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
cmp r4, #0xb
|
|
bls _0817B90C
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817B938: .4byte 0x085D2928
|
|
thumb_func_end SetEvoSparklesMatrices
|
|
|
|
thumb_func_start SpriteCB_PreEvoSparkleSet1
|
|
SpriteCB_PreEvoSparkleSet1: @ 0x0817B93C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x22
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #8
|
|
ble _0817B9EA
|
|
movs r2, #0x3c
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r0, #0
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
movs r1, #0x50
|
|
bl __divsi3
|
|
movs r1, #0x58
|
|
subs r1, r1, r0
|
|
strh r1, [r4, #0x22]
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0
|
|
bge _0817B976
|
|
adds r0, #3
|
|
_0817B976:
|
|
asrs r0, r0, #2
|
|
strh r0, [r4, #0x26]
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x3a]
|
|
adds r0, #4
|
|
strh r0, [r4, #0x3a]
|
|
ldrh r1, [r4, #0x3c]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0817B9A0
|
|
ldrh r0, [r4, #0x38]
|
|
subs r0, #1
|
|
strh r0, [r4, #0x38]
|
|
_0817B9A0:
|
|
ldrh r0, [r4, #0x3c]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x3c]
|
|
movs r1, #0x26
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
ble _0817B9B6
|
|
adds r1, r4, #0
|
|
adds r1, #0x43
|
|
movs r0, #1
|
|
b _0817B9BC
|
|
_0817B9B6:
|
|
adds r1, r4, #0
|
|
adds r1, #0x43
|
|
movs r0, #0x14
|
|
_0817B9BC:
|
|
strb r0, [r1]
|
|
movs r2, #0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, #0
|
|
bge _0817B9C8
|
|
adds r0, #3
|
|
_0817B9C8:
|
|
asrs r0, r0, #2
|
|
adds r0, #0x14
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0x1f
|
|
bls _0817B9D6
|
|
movs r2, #0x1f
|
|
_0817B9D6:
|
|
movs r0, #0x1f
|
|
ands r2, r0
|
|
lsls r2, r2, #1
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #3]
|
|
b _0817B9F0
|
|
_0817B9EA:
|
|
adds r0, r4, #0
|
|
bl DestroySprite
|
|
_0817B9F0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end SpriteCB_PreEvoSparkleSet1
|
|
|
|
thumb_func_start CreatePreEvoSparkleSet1
|
|
CreatePreEvoSparkleSet1: @ 0x0817B9F8
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _0817BA48
|
|
movs r1, #0x78
|
|
movs r2, #0x58
|
|
movs r3, #0
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x40
|
|
beq _0817BA42
|
|
ldr r4, _0817BA4C
|
|
lsls r3, r0, #4
|
|
adds r3, r3, r0
|
|
lsls r3, r3, #2
|
|
adds r2, r3, r4
|
|
movs r1, #0
|
|
movs r0, #0x30
|
|
strh r0, [r2, #0x38]
|
|
strh r5, [r2, #0x3a]
|
|
strh r1, [r2, #0x3c]
|
|
ldrb r1, [r2, #1]
|
|
subs r0, #0x34
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
ldrb r0, [r2, #3]
|
|
movs r1, #0x3e
|
|
orrs r0, r1
|
|
strb r0, [r2, #3]
|
|
adds r4, #0x1c
|
|
adds r3, r3, r4
|
|
ldr r0, _0817BA50
|
|
str r0, [r3]
|
|
_0817BA42:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BA48: .4byte 0x085D2910
|
|
_0817BA4C: .4byte 0x020205AC
|
|
_0817BA50: .4byte 0x0817B93D
|
|
thumb_func_end CreatePreEvoSparkleSet1
|
|
|
|
thumb_func_start SpriteCB_PreEvoSparkleSet2
|
|
SpriteCB_PreEvoSparkleSet2: @ 0x0817BA54
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x22
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0x57
|
|
bgt _0817BABA
|
|
movs r2, #0x3c
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r0, #0
|
|
muls r1, r0, r1
|
|
adds r0, r1, #0
|
|
movs r1, #5
|
|
bl __divsi3
|
|
adds r0, #8
|
|
strh r0, [r4, #0x22]
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0
|
|
bge _0817BA8C
|
|
adds r0, #3
|
|
_0817BA8C:
|
|
asrs r0, r0, #2
|
|
strh r0, [r4, #0x26]
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, #0x24]
|
|
movs r1, #0x3c
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #0x28
|
|
bl Sin
|
|
adds r0, #8
|
|
strh r0, [r4, #0x38]
|
|
ldrh r0, [r4, #0x3c]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x3c]
|
|
b _0817BAC0
|
|
_0817BABA:
|
|
adds r0, r4, #0
|
|
bl DestroySprite
|
|
_0817BAC0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end SpriteCB_PreEvoSparkleSet2
|
|
|
|
thumb_func_start CreatePreEvoSparkleSet2
|
|
CreatePreEvoSparkleSet2: @ 0x0817BAC8
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _0817BB24
|
|
movs r1, #0x78
|
|
movs r2, #8
|
|
movs r3, #0
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x40
|
|
beq _0817BB1E
|
|
ldr r4, _0817BB28
|
|
lsls r3, r0, #4
|
|
adds r3, r3, r0
|
|
lsls r3, r3, #2
|
|
adds r2, r3, r4
|
|
movs r1, #0
|
|
movs r0, #8
|
|
strh r0, [r2, #0x38]
|
|
strh r5, [r2, #0x3a]
|
|
strh r1, [r2, #0x3c]
|
|
ldrb r1, [r2, #1]
|
|
subs r0, #0xc
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
ldrb r1, [r2, #3]
|
|
movs r0, #0x3f
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x32
|
|
orrs r0, r1
|
|
strb r0, [r2, #3]
|
|
adds r2, #0x43
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
adds r4, #0x1c
|
|
adds r3, r3, r4
|
|
ldr r0, _0817BB2C
|
|
str r0, [r3]
|
|
_0817BB1E:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BB24: .4byte 0x085D2910
|
|
_0817BB28: .4byte 0x020205AC
|
|
_0817BB2C: .4byte 0x0817BA55
|
|
thumb_func_end CreatePreEvoSparkleSet2
|
|
|
|
thumb_func_start SpriteCB_PostEvoSparkleSet1
|
|
SpriteCB_PostEvoSparkleSet1: @ 0x0817BB30
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #8
|
|
ble _0817BB6C
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, #0x26]
|
|
ldrh r0, [r4, #0x3a]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r2, #0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x38]
|
|
ldrh r1, [r4, #0x34]
|
|
subs r0, r0, r1
|
|
strh r0, [r4, #0x38]
|
|
ldrh r0, [r4, #0x3a]
|
|
adds r0, #4
|
|
strh r0, [r4, #0x3a]
|
|
b _0817BB72
|
|
_0817BB6C:
|
|
adds r0, r4, #0
|
|
bl DestroySprite
|
|
_0817BB72:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_PostEvoSparkleSet1
|
|
|
|
thumb_func_start CreatePostEvoSparkleSet1
|
|
CreatePostEvoSparkleSet1: @ 0x0817BB78
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r5, r1, #0x18
|
|
ldr r0, _0817BBD4
|
|
movs r1, #0x78
|
|
movs r2, #0x38
|
|
movs r3, #0
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x40
|
|
beq _0817BBCE
|
|
ldr r4, _0817BBD8
|
|
lsls r3, r0, #4
|
|
adds r3, r3, r0
|
|
lsls r3, r3, #2
|
|
adds r2, r3, r4
|
|
movs r1, #0
|
|
strh r5, [r2, #0x34]
|
|
movs r0, #0x78
|
|
strh r0, [r2, #0x38]
|
|
strh r6, [r2, #0x3a]
|
|
strh r1, [r2, #0x3c]
|
|
ldrb r1, [r2, #1]
|
|
subs r0, #0x7c
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
ldrb r0, [r2, #3]
|
|
movs r1, #0x3e
|
|
orrs r0, r1
|
|
strb r0, [r2, #3]
|
|
adds r2, #0x43
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
adds r4, #0x1c
|
|
adds r3, r3, r4
|
|
ldr r0, _0817BBDC
|
|
str r0, [r3]
|
|
_0817BBCE:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BBD4: .4byte 0x085D2910
|
|
_0817BBD8: .4byte 0x020205AC
|
|
_0817BBDC: .4byte 0x0817BB31
|
|
thumb_func_end CreatePostEvoSparkleSet1
|
|
|
|
thumb_func_start SpriteCB_PostEvoSparkleSet2
|
|
SpriteCB_PostEvoSparkleSet2: @ 0x0817BBE0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrh r1, [r4, #0x3c]
|
|
movs r0, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0817BBF4
|
|
ldrh r0, [r4, #0x22]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x22]
|
|
_0817BBF4:
|
|
ldrh r1, [r4, #0x3a]
|
|
movs r2, #0x3a
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, #0x7f
|
|
bgt _0817BCA4
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r5, #0x38
|
|
ldrsh r1, [r4, r5]
|
|
bl Sin
|
|
rsbs r0, r0, #0
|
|
strh r0, [r4, #0x26]
|
|
movs r0, #0x34
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, #0x3c
|
|
ldrsh r0, [r4, r2]
|
|
muls r0, r1, r0
|
|
movs r1, #3
|
|
bl __divsi3
|
|
adds r0, #0x78
|
|
strh r0, [r4, #0x20]
|
|
ldrh r0, [r4, #0x3a]
|
|
adds r3, r0, #1
|
|
strh r3, [r4, #0x3a]
|
|
movs r5, #0x3a
|
|
ldrsh r1, [r4, r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
cmp r0, #0
|
|
bge _0817BC38
|
|
adds r0, #0x7f
|
|
_0817BC38:
|
|
asrs r0, r0, #7
|
|
movs r1, #0x1f
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x18
|
|
lsrs r2, r1, #0x18
|
|
lsls r0, r3, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x40
|
|
ble _0817BC54
|
|
adds r1, r4, #0
|
|
adds r1, #0x43
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
b _0817BC84
|
|
_0817BC54:
|
|
adds r3, r4, #0
|
|
adds r3, #0x3e
|
|
ldrb r1, [r3]
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
adds r1, r4, #0
|
|
adds r1, #0x43
|
|
movs r0, #0x14
|
|
strb r0, [r1]
|
|
ldrh r1, [r4, #0x3a]
|
|
movs r5, #0x3a
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, #0x70
|
|
ble _0817BC84
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0817BC84
|
|
ldrb r0, [r3]
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_0817BC84:
|
|
cmp r2, #0x13
|
|
bhi _0817BC8A
|
|
movs r2, #0x14
|
|
_0817BC8A:
|
|
movs r0, #0x1f
|
|
ands r2, r0
|
|
lsls r2, r2, #1
|
|
ldrb r1, [r4, #3]
|
|
movs r0, #0x3f
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #3]
|
|
ldrh r0, [r4, #0x3c]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x3c]
|
|
b _0817BCAA
|
|
_0817BCA4:
|
|
adds r0, r4, #0
|
|
bl DestroySprite
|
|
_0817BCAA:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_PostEvoSparkleSet2
|
|
|
|
thumb_func_start CreatePostEvoSparkleSet2
|
|
CreatePostEvoSparkleSet2: @ 0x0817BCB0
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r0, _0817BD2C
|
|
movs r1, #0x78
|
|
movs r2, #0x38
|
|
movs r3, #0
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0x40
|
|
beq _0817BD20
|
|
bl Random
|
|
ldr r6, _0817BD30
|
|
lsls r5, r4, #4
|
|
adds r5, r5, r4
|
|
lsls r5, r5, #2
|
|
adds r4, r5, r6
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #7
|
|
bl __umodsi3
|
|
movs r1, #3
|
|
subs r1, r1, r0
|
|
movs r0, #0
|
|
mov r8, r0
|
|
strh r1, [r4, #0x34]
|
|
bl Random
|
|
movs r1, #0x3f
|
|
ands r1, r0
|
|
adds r1, #0x30
|
|
strh r1, [r4, #0x38]
|
|
mov r0, r8
|
|
strh r0, [r4, #0x3c]
|
|
ldrb r1, [r4, #1]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #1]
|
|
ldrb r0, [r4, #3]
|
|
movs r1, #0x3e
|
|
orrs r0, r1
|
|
strb r0, [r4, #3]
|
|
adds r4, #0x43
|
|
movs r0, #0x14
|
|
strb r0, [r4]
|
|
adds r6, #0x1c
|
|
adds r5, r5, r6
|
|
ldr r0, _0817BD34
|
|
str r0, [r5]
|
|
_0817BD20:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BD2C: .4byte 0x085D2910
|
|
_0817BD30: .4byte 0x020205AC
|
|
_0817BD34: .4byte 0x0817BBE1
|
|
thumb_func_end CreatePostEvoSparkleSet2
|
|
|
|
thumb_func_start LoadEvoSparkleSpriteAndPal
|
|
LoadEvoSparkleSpriteAndPal: @ 0x0817BD38
|
|
push {lr}
|
|
ldr r0, _0817BD4C
|
|
bl LoadCompressedSpriteSheetUsingHeap
|
|
ldr r0, _0817BD50
|
|
bl LoadSpritePalettes
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BD4C: .4byte 0x085D28DC
|
|
_0817BD50: .4byte 0x085D28EC
|
|
thumb_func_end LoadEvoSparkleSpriteAndPal
|
|
|
|
thumb_func_start LaunchTask_PreEvoSparklesSet1
|
|
LaunchTask_PreEvoSparklesSet1: @ 0x0817BD54
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldr r0, _0817BD7C
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0817BD80
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r4, [r1, #0xa]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817BD7C: .4byte 0x0817BD85
|
|
_0817BD80: .4byte 0x03005B60
|
|
thumb_func_end LaunchTask_PreEvoSparklesSet1
|
|
|
|
thumb_func_start EvoTask_BeginPreSet1_FadeAndPlaySE
|
|
EvoTask_BeginPreSet1_FadeAndPlaySE: @ 0x0817BD84
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl SetEvoSparklesMatrices
|
|
ldr r0, _0817BDC8
|
|
lsls r5, r4, #2
|
|
adds r5, r5, r4
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r0
|
|
movs r0, #0
|
|
strh r0, [r5, #0x26]
|
|
movs r0, #0xa
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, #3
|
|
lsls r0, r1
|
|
ldr r1, _0817BDCC
|
|
str r1, [sp]
|
|
movs r1, #0xa
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0817BDD0
|
|
str r0, [r5]
|
|
movs r0, #0x8c
|
|
bl PlaySE
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BDC8: .4byte 0x03005B60
|
|
_0817BDCC: .4byte 0x00007FFF
|
|
_0817BDD0: .4byte 0x0817BDD5
|
|
thumb_func_end EvoTask_BeginPreSet1_FadeAndPlaySE
|
|
|
|
thumb_func_start EvoTask_CreatePreEvoSparkleSet1
|
|
EvoTask_CreatePreEvoSparkleSet1: @ 0x0817BDD4
|
|
push {r4, r5, r6, r7, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _0817BE2C
|
|
lsls r3, r5, #2
|
|
adds r0, r3, r5
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, #0x26]
|
|
movs r4, #0x26
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, #0x3f
|
|
bgt _0817BE30
|
|
movs r0, #7
|
|
ands r0, r2
|
|
adds r7, r3, #0
|
|
cmp r0, #0
|
|
bne _0817BE1A
|
|
movs r4, #0
|
|
adds r6, r1, #0
|
|
_0817BDFC:
|
|
ldrh r1, [r6, #0x26]
|
|
movs r0, #0x78
|
|
ands r0, r1
|
|
lsls r0, r0, #1
|
|
lsls r1, r4, #6
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl CreatePreEvoSparkleSet1
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls _0817BDFC
|
|
_0817BE1A:
|
|
ldr r0, _0817BE2C
|
|
adds r1, r7, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x26]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817BE38
|
|
.align 2, 0
|
|
_0817BE2C: .4byte 0x03005B60
|
|
_0817BE30:
|
|
movs r0, #0x60
|
|
strh r0, [r1, #0x26]
|
|
ldr r0, _0817BE40
|
|
str r0, [r1]
|
|
_0817BE38:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BE40: .4byte 0x0817BE45
|
|
thumb_func_end EvoTask_CreatePreEvoSparkleSet1
|
|
|
|
thumb_func_start EvoTask_WaitForPre1SparklesToGoUp
|
|
EvoTask_WaitForPre1SparklesToGoUp: @ 0x0817BE44
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldr r1, _0817BE64
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
ldrh r3, [r1, #0x26]
|
|
movs r4, #0x26
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, #0
|
|
beq _0817BE68
|
|
subs r0, r3, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817BE6E
|
|
.align 2, 0
|
|
_0817BE64: .4byte 0x03005B60
|
|
_0817BE68:
|
|
adds r0, r2, #0
|
|
bl DestroyTask
|
|
_0817BE6E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end EvoTask_WaitForPre1SparklesToGoUp
|
|
|
|
thumb_func_start LaunchTask_PostEvoSparklesSet1
|
|
LaunchTask_PostEvoSparklesSet1: @ 0x0817BE74
|
|
push {lr}
|
|
ldr r0, _0817BE88
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817BE88: .4byte 0x0817BE8D
|
|
thumb_func_end LaunchTask_PostEvoSparklesSet1
|
|
|
|
thumb_func_start EvoTask_BeginPreSparklesSet2
|
|
EvoTask_BeginPreSparklesSet2: @ 0x0817BE8C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl SetEvoSparklesMatrices
|
|
ldr r1, _0817BEB8
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
strh r1, [r0, #0x26]
|
|
ldr r1, _0817BEBC
|
|
str r1, [r0]
|
|
movs r0, #0xb7
|
|
bl PlaySE
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BEB8: .4byte 0x03005B60
|
|
_0817BEBC: .4byte 0x0817BEC1
|
|
thumb_func_end EvoTask_BeginPreSparklesSet2
|
|
|
|
thumb_func_start EvoTask_CreatePreEvoSparklesSet2
|
|
EvoTask_CreatePreEvoSparklesSet2: @ 0x0817BEC0
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _0817BF04
|
|
lsls r2, r5, #2
|
|
adds r0, r2, r5
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
movs r3, #0x26
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0x5f
|
|
bgt _0817BF08
|
|
adds r6, r2, #0
|
|
cmp r0, #5
|
|
bgt _0817BEF2
|
|
movs r4, #0
|
|
_0817BEE0:
|
|
lsls r0, r4, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
bl CreatePreEvoSparkleSet2
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #8
|
|
bls _0817BEE0
|
|
_0817BEF2:
|
|
ldr r0, _0817BF04
|
|
adds r1, r6, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x26]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817BF0C
|
|
.align 2, 0
|
|
_0817BF04: .4byte 0x03005B60
|
|
_0817BF08:
|
|
ldr r0, _0817BF14
|
|
str r0, [r1]
|
|
_0817BF0C:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BF14: .4byte 0x0817BF19
|
|
thumb_func_end EvoTask_CreatePreEvoSparklesSet2
|
|
|
|
thumb_func_start EvoTask_DestroyPreSet2Task
|
|
EvoTask_DestroyPreSet2Task: @ 0x0817BF18
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl DestroyTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end EvoTask_DestroyPreSet2Task
|
|
|
|
thumb_func_start LaunchTask_PreEvoSparklesSet2
|
|
LaunchTask_PreEvoSparklesSet2: @ 0x0817BF28
|
|
push {lr}
|
|
ldr r0, _0817BF3C
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817BF3C: .4byte 0x0817BF41
|
|
thumb_func_end LaunchTask_PreEvoSparklesSet2
|
|
|
|
thumb_func_start EvoTask_BeginPostSparklesSet1
|
|
EvoTask_BeginPostSparklesSet1: @ 0x0817BF40
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl SetEvoSparklesMatrices
|
|
ldr r1, _0817BF6C
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
strh r1, [r0, #0x26]
|
|
ldr r1, _0817BF70
|
|
str r1, [r0]
|
|
movs r0, #0x66
|
|
bl PlaySE
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BF6C: .4byte 0x03005B60
|
|
_0817BF70: .4byte 0x0817BF75
|
|
thumb_func_end EvoTask_BeginPostSparklesSet1
|
|
|
|
thumb_func_start EvoTask_CreatePostEvoSparklesSet1
|
|
EvoTask_CreatePostEvoSparklesSet1: @ 0x0817BF74
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _0817BFE0
|
|
lsls r2, r5, #2
|
|
adds r0, r2, r5
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
movs r3, #0x26
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0x2f
|
|
bgt _0817BFE4
|
|
adds r6, r2, #0
|
|
cmp r0, #0
|
|
bne _0817BFA8
|
|
movs r4, #0
|
|
_0817BF94:
|
|
lsls r0, r4, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #4
|
|
bl CreatePostEvoSparkleSet1
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0xf
|
|
bls _0817BF94
|
|
_0817BFA8:
|
|
ldr r0, _0817BFE0
|
|
adds r1, r6, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r2, #0x26
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, #0x20
|
|
bne _0817BFCE
|
|
movs r4, #0
|
|
_0817BFBA:
|
|
lsls r0, r4, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #8
|
|
bl CreatePostEvoSparkleSet1
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0xf
|
|
bls _0817BFBA
|
|
_0817BFCE:
|
|
ldr r0, _0817BFE0
|
|
adds r1, r6, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x26]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817BFE8
|
|
.align 2, 0
|
|
_0817BFE0: .4byte 0x03005B60
|
|
_0817BFE4:
|
|
ldr r0, _0817BFF0
|
|
str r0, [r1]
|
|
_0817BFE8:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817BFF0: .4byte 0x0817BFF5
|
|
thumb_func_end EvoTask_CreatePostEvoSparklesSet1
|
|
|
|
thumb_func_start EvoTask_DestroyPostSet1Task
|
|
EvoTask_DestroyPostSet1Task: @ 0x0817BFF4
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl DestroyTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end EvoTask_DestroyPostSet1Task
|
|
|
|
thumb_func_start LaunchTask_PostEvoSparklesSet2AndFlash
|
|
LaunchTask_PostEvoSparklesSet2AndFlash: @ 0x0817C004
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldr r0, _0817C02C
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0817C030
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r4, [r1, #0xc]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817C02C: .4byte 0x0817C035
|
|
_0817C030: .4byte 0x03005B60
|
|
thumb_func_end LaunchTask_PostEvoSparklesSet2AndFlash
|
|
|
|
thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash
|
|
EvoTask_BeginPostSparklesSet2_AndFlash: @ 0x0817C034
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl SetEvoSparklesMatrices
|
|
ldr r0, _0817C07C
|
|
lsls r5, r4, #2
|
|
adds r5, r5, r4
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r0
|
|
movs r0, #0
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, _0817C080
|
|
ldr r1, _0817C084
|
|
movs r2, #0x30
|
|
bl CpuSet
|
|
ldr r0, _0817C088
|
|
ldr r1, _0817C08C
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0817C090
|
|
str r0, [r5]
|
|
movs r0, #0xca
|
|
bl PlaySE
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C07C: .4byte 0x03005B60
|
|
_0817C080: .4byte 0x020377F4
|
|
_0817C084: .4byte 0x020373F4
|
|
_0817C088: .4byte 0xFFF9041C
|
|
_0817C08C: .4byte 0x00007FFF
|
|
_0817C090: .4byte 0x0817C095
|
|
thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash
|
|
|
|
thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash
|
|
EvoTask_CreatePostEvoSparklesSet2_AndFlash: @ 0x0817C094
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r1, _0817C0CC
|
|
lsls r5, r6, #2
|
|
adds r0, r5, r6
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
movs r0, #0x26
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, #0x7f
|
|
bgt _0817C110
|
|
adds r0, r2, #0
|
|
cmp r0, #0
|
|
beq _0817C0D0
|
|
cmp r0, #0x20
|
|
beq _0817C0E4
|
|
cmp r2, #0x31
|
|
bgt _0817C0F4
|
|
bl Random
|
|
movs r1, #7
|
|
ands r0, r1
|
|
bl CreatePostEvoSparkleSet2
|
|
b _0817C0F4
|
|
.align 2, 0
|
|
_0817C0CC: .4byte 0x03005B60
|
|
_0817C0D0:
|
|
movs r4, #0
|
|
_0817C0D2:
|
|
adds r0, r4, #0
|
|
bl CreatePostEvoSparkleSet2
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #7
|
|
bls _0817C0D2
|
|
b _0817C0F4
|
|
_0817C0E4:
|
|
ldr r0, _0817C104
|
|
ldr r1, _0817C108
|
|
str r1, [sp]
|
|
movs r1, #0x10
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
_0817C0F4:
|
|
ldr r0, _0817C10C
|
|
adds r1, r5, r6
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x26]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817C114
|
|
.align 2, 0
|
|
_0817C104: .4byte 0xFFFF041C
|
|
_0817C108: .4byte 0x00007FFF
|
|
_0817C10C: .4byte 0x03005B60
|
|
_0817C110:
|
|
ldr r0, _0817C11C
|
|
str r0, [r1]
|
|
_0817C114:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C11C: .4byte 0x0817C121
|
|
thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash
|
|
|
|
thumb_func_start EvoTask_DestroyPostSet2AndFlashTask
|
|
EvoTask_DestroyPostSet2AndFlashTask: @ 0x0817C120
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldr r0, _0817C13C
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0817C138
|
|
adds r0, r2, #0
|
|
bl DestroyTask
|
|
_0817C138:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C13C: .4byte 0x02037C74
|
|
thumb_func_end EvoTask_DestroyPostSet2AndFlashTask
|
|
|
|
thumb_func_start LaunchTask_PostEvoSparklesSet2AndFlash_Trade
|
|
LaunchTask_PostEvoSparklesSet2AndFlash_Trade: @ 0x0817C140
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldr r0, _0817C168
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0817C16C
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r4, [r1, #0xc]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817C168: .4byte 0x0817C171
|
|
_0817C16C: .4byte 0x03005B60
|
|
thumb_func_end LaunchTask_PostEvoSparklesSet2AndFlash_Trade
|
|
|
|
thumb_func_start EvoTask_BeginPostSparklesSet2_AndFlash_Trade
|
|
EvoTask_BeginPostSparklesSet2_AndFlash_Trade: @ 0x0817C170
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl SetEvoSparklesMatrices
|
|
ldr r0, _0817C1B8
|
|
lsls r5, r4, #2
|
|
adds r5, r5, r4
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r0
|
|
movs r0, #0
|
|
strh r0, [r5, #0x26]
|
|
ldr r0, _0817C1BC
|
|
ldr r1, _0817C1C0
|
|
movs r2, #0x30
|
|
bl CpuSet
|
|
ldr r0, _0817C1C4
|
|
ldr r1, _0817C1C8
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0817C1CC
|
|
str r0, [r5]
|
|
movs r0, #0xca
|
|
bl PlaySE
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C1B8: .4byte 0x03005B60
|
|
_0817C1BC: .4byte 0x020377F4
|
|
_0817C1C0: .4byte 0x020373F4
|
|
_0817C1C4: .4byte 0xFFF90400
|
|
_0817C1C8: .4byte 0x00007FFF
|
|
_0817C1CC: .4byte 0x0817C1D1
|
|
thumb_func_end EvoTask_BeginPostSparklesSet2_AndFlash_Trade
|
|
|
|
thumb_func_start EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade
|
|
EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade: @ 0x0817C1D0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r1, _0817C208
|
|
lsls r5, r6, #2
|
|
adds r0, r5, r6
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
movs r0, #0x26
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, #0x7f
|
|
bgt _0817C24C
|
|
adds r0, r2, #0
|
|
cmp r0, #0
|
|
beq _0817C20C
|
|
cmp r0, #0x20
|
|
beq _0817C220
|
|
cmp r2, #0x31
|
|
bgt _0817C230
|
|
bl Random
|
|
movs r1, #7
|
|
ands r0, r1
|
|
bl CreatePostEvoSparkleSet2
|
|
b _0817C230
|
|
.align 2, 0
|
|
_0817C208: .4byte 0x03005B60
|
|
_0817C20C:
|
|
movs r4, #0
|
|
_0817C20E:
|
|
adds r0, r4, #0
|
|
bl CreatePostEvoSparkleSet2
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #7
|
|
bls _0817C20E
|
|
b _0817C230
|
|
_0817C220:
|
|
ldr r0, _0817C240
|
|
ldr r1, _0817C244
|
|
str r1, [sp]
|
|
movs r1, #0x10
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
_0817C230:
|
|
ldr r0, _0817C248
|
|
adds r1, r5, r6
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x26]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x26]
|
|
b _0817C250
|
|
.align 2, 0
|
|
_0817C240: .4byte 0xFFFF0400
|
|
_0817C244: .4byte 0x00007FFF
|
|
_0817C248: .4byte 0x03005B60
|
|
_0817C24C:
|
|
ldr r0, _0817C258
|
|
str r0, [r1]
|
|
_0817C250:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C258: .4byte 0x0817C121
|
|
thumb_func_end EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade
|
|
|
|
thumb_func_start EvoSparkle_DummySpriteCb
|
|
EvoSparkle_DummySpriteCb: @ 0x0817C25C
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end EvoSparkle_DummySpriteCb
|
|
|
|
thumb_func_start sub_0817C260
|
|
sub_0817C260: @ 0x0817C260
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x28
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r7, r1, #0x18
|
|
movs r1, #0
|
|
ldr r3, _0817C394
|
|
ldr r2, _0817C398
|
|
_0817C27A:
|
|
lsls r0, r1, #1
|
|
add r0, sp
|
|
adds r0, #4
|
|
strh r2, [r0]
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
cmp r1, #0xf
|
|
bls _0817C27A
|
|
adds r0, r3, #0
|
|
movs r1, #0
|
|
bl CreateTask
|
|
mov r8, r0
|
|
mov r0, r8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldr r0, _0817C39C
|
|
mov r1, r8
|
|
lsls r6, r1, #2
|
|
add r6, r8
|
|
lsls r6, r6, #3
|
|
adds r6, r6, r0
|
|
strh r5, [r6, #0xa]
|
|
strh r7, [r6, #0xc]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
strh r1, [r6, #0xe]
|
|
movs r0, #0x10
|
|
strh r0, [r6, #0x10]
|
|
movs r4, #0x80
|
|
lsls r4, r4, #9
|
|
str r1, [sp]
|
|
movs r0, #0x1e
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl SetOamMatrix
|
|
movs r0, #0x10
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r4, #0
|
|
bl __divsi3
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
str r1, [sp]
|
|
movs r0, #0x1f
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl SetOamMatrix
|
|
ldr r1, _0817C3A0
|
|
mov sb, r1
|
|
lsls r2, r5, #4
|
|
adds r2, r2, r5
|
|
lsls r2, r2, #2
|
|
mov r3, sb
|
|
adds r3, #0x1c
|
|
adds r0, r2, r3
|
|
ldr r1, _0817C3A4
|
|
str r1, [r0]
|
|
add r2, sb
|
|
ldrb r1, [r2, #1]
|
|
movs r4, #4
|
|
rsbs r4, r4, #0
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #1]
|
|
ldrb r1, [r2, #3]
|
|
movs r0, #0x3f
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x3c
|
|
orrs r0, r1
|
|
strb r0, [r2, #3]
|
|
movs r0, #0x3e
|
|
adds r0, r0, r2
|
|
mov sl, r0
|
|
ldrb r1, [r0]
|
|
movs r5, #5
|
|
rsbs r5, r5, #0
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
mov r1, sl
|
|
strb r0, [r1]
|
|
ldrb r1, [r2, #5]
|
|
lsrs r1, r1, #4
|
|
lsls r1, r1, #5
|
|
ldr r0, _0817C3A8
|
|
mov sl, r0
|
|
add r1, sl
|
|
add r0, sp, #4
|
|
movs r2, #0x10
|
|
str r3, [sp, #0x24]
|
|
bl CpuSet
|
|
lsls r1, r7, #4
|
|
adds r1, r1, r7
|
|
lsls r1, r1, #2
|
|
ldr r3, [sp, #0x24]
|
|
adds r3, r1, r3
|
|
ldr r0, _0817C3A4
|
|
str r0, [r3]
|
|
add r1, sb
|
|
ldrb r0, [r1, #1]
|
|
ands r4, r0
|
|
movs r0, #1
|
|
orrs r4, r0
|
|
strb r4, [r1, #1]
|
|
ldrb r0, [r1, #3]
|
|
movs r2, #0x3e
|
|
orrs r0, r2
|
|
strb r0, [r1, #3]
|
|
adds r2, r1, #0
|
|
adds r2, #0x3e
|
|
ldrb r0, [r2]
|
|
ands r5, r0
|
|
strb r5, [r2]
|
|
ldrb r1, [r1, #5]
|
|
lsrs r1, r1, #4
|
|
lsls r1, r1, #5
|
|
add r1, sl
|
|
add r0, sp, #4
|
|
movs r2, #0x10
|
|
bl CpuSet
|
|
movs r1, #0
|
|
strh r1, [r6, #0x18]
|
|
mov r0, r8
|
|
add sp, #0x28
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0817C394: .4byte 0x0817C3AD
|
|
_0817C398: .4byte 0x00007FFF
|
|
_0817C39C: .4byte 0x03005B60
|
|
_0817C3A0: .4byte 0x020205AC
|
|
_0817C3A4: .4byte 0x0817C25D
|
|
_0817C3A8: .4byte 0x020379B4
|
|
thumb_func_end sub_0817C260
|
|
|
|
thumb_func_start sub_0817C3AC
|
|
sub_0817C3AC: @ 0x0817C3AC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0817C3C8
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
movs r0, #0
|
|
strh r0, [r1, #0x12]
|
|
movs r0, #8
|
|
strh r0, [r1, #0x14]
|
|
ldr r0, _0817C3CC
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0817C3C8: .4byte 0x03005B60
|
|
_0817C3CC: .4byte 0x0817C3D1
|
|
thumb_func_end sub_0817C3AC
|
|
|
|
thumb_func_start sub_0817C3D0
|
|
sub_0817C3D0: @ 0x0817C3D0
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
ldr r1, _0817C3F0
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #3
|
|
adds r2, r0, r1
|
|
movs r1, #0x18
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, #0
|
|
beq _0817C3F4
|
|
adds r0, r3, #0
|
|
bl PreEvoVisible_PostEvoInvisible_KillTask
|
|
b _0817C416
|
|
.align 2, 0
|
|
_0817C3F0: .4byte 0x03005B60
|
|
_0817C3F4:
|
|
ldrh r1, [r2, #0x14]
|
|
movs r4, #0x14
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, #0x80
|
|
bne _0817C406
|
|
adds r0, r3, #0
|
|
bl PreEvoInvisible_PostEvoVisible_KillTask
|
|
b _0817C416
|
|
_0817C406:
|
|
adds r0, r1, #2
|
|
strh r0, [r2, #0x14]
|
|
ldrh r0, [r2, #0x12]
|
|
movs r1, #1
|
|
eors r0, r1
|
|
strh r0, [r2, #0x12]
|
|
ldr r0, _0817C41C
|
|
str r0, [r2]
|
|
_0817C416:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C41C: .4byte 0x0817C421
|
|
thumb_func_end sub_0817C3D0
|
|
|
|
thumb_func_start sub_0817C420
|
|
sub_0817C420: @ 0x0817C420
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r1, _0817C444
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #3
|
|
adds r2, r0, r1
|
|
movs r3, #0x18
|
|
ldrsh r0, [r2, r3]
|
|
adds r5, r1, #0
|
|
cmp r0, #0
|
|
beq _0817C44C
|
|
ldr r0, _0817C448
|
|
str r0, [r2]
|
|
b _0817C530
|
|
.align 2, 0
|
|
_0817C444: .4byte 0x03005B60
|
|
_0817C448: .4byte 0x0817C5ED
|
|
_0817C44C:
|
|
movs r6, #0
|
|
movs r7, #0x12
|
|
ldrsh r0, [r2, r7]
|
|
cmp r0, #0
|
|
bne _0817C49C
|
|
movs r0, #0xe
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, #0x14
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #1
|
|
subs r0, r3, r0
|
|
cmp r1, r0
|
|
bge _0817C472
|
|
ldrh r0, [r2, #0x14]
|
|
ldrh r7, [r2, #0xe]
|
|
adds r0, r0, r7
|
|
strh r0, [r2, #0xe]
|
|
b _0817C476
|
|
_0817C472:
|
|
strh r3, [r2, #0xe]
|
|
movs r6, #1
|
|
_0817C476:
|
|
lsls r2, r4, #2
|
|
adds r0, r2, r4
|
|
lsls r0, r0, #3
|
|
adds r3, r0, r5
|
|
movs r0, #0x10
|
|
ldrsh r1, [r3, r0]
|
|
movs r7, #0x14
|
|
ldrsh r0, [r3, r7]
|
|
adds r0, #0x10
|
|
cmp r1, r0
|
|
ble _0817C496
|
|
ldrh r0, [r3, #0x10]
|
|
ldrh r1, [r3, #0x14]
|
|
subs r0, r0, r1
|
|
strh r0, [r3, #0x10]
|
|
b _0817C4E6
|
|
_0817C496:
|
|
movs r0, #0x10
|
|
strh r0, [r3, #0x10]
|
|
b _0817C4E0
|
|
_0817C49C:
|
|
movs r0, #0x10
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, #0x14
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #1
|
|
subs r0, r3, r0
|
|
cmp r1, r0
|
|
bge _0817C4B8
|
|
ldrh r0, [r2, #0x14]
|
|
ldrh r7, [r2, #0x10]
|
|
adds r0, r0, r7
|
|
strh r0, [r2, #0x10]
|
|
b _0817C4BC
|
|
_0817C4B8:
|
|
strh r3, [r2, #0x10]
|
|
movs r6, #1
|
|
_0817C4BC:
|
|
lsls r2, r4, #2
|
|
adds r0, r2, r4
|
|
lsls r0, r0, #3
|
|
adds r3, r0, r5
|
|
movs r0, #0xe
|
|
ldrsh r1, [r3, r0]
|
|
movs r7, #0x14
|
|
ldrsh r0, [r3, r7]
|
|
adds r0, #0x10
|
|
cmp r1, r0
|
|
ble _0817C4DC
|
|
ldrh r0, [r3, #0xe]
|
|
ldrh r1, [r3, #0x14]
|
|
subs r0, r0, r1
|
|
strh r0, [r3, #0xe]
|
|
b _0817C4E6
|
|
_0817C4DC:
|
|
movs r0, #0x10
|
|
strh r0, [r3, #0xe]
|
|
_0817C4E0:
|
|
adds r0, r6, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
_0817C4E6:
|
|
adds r0, r2, r4
|
|
lsls r0, r0, #3
|
|
adds r5, r0, r5
|
|
movs r0, #0xe
|
|
ldrsh r1, [r5, r0]
|
|
movs r4, #0x80
|
|
lsls r4, r4, #9
|
|
adds r0, r4, #0
|
|
bl __divsi3
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
str r1, [sp]
|
|
movs r0, #0x1e
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl SetOamMatrix
|
|
movs r3, #0x10
|
|
ldrsh r1, [r5, r3]
|
|
adds r0, r4, #0
|
|
bl __divsi3
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
str r1, [sp]
|
|
movs r0, #0x1f
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl SetOamMatrix
|
|
cmp r6, #2
|
|
bne _0817C530
|
|
ldr r0, _0817C538
|
|
str r0, [r5]
|
|
_0817C530:
|
|
add sp, #4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C538: .4byte 0x0817C3D1
|
|
thumb_func_end sub_0817C420
|
|
|
|
thumb_func_start PreEvoInvisible_PostEvoVisible_KillTask
|
|
PreEvoInvisible_PostEvoVisible_KillTask: @ 0x0817C53C
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _0817C5E4
|
|
mov r8, r1
|
|
ldr r1, _0817C5E8
|
|
lsls r4, r0, #2
|
|
adds r4, r4, r0
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r1
|
|
movs r2, #0xa
|
|
ldrsh r1, [r4, r2]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
add r2, r8
|
|
ldrb r3, [r2, #1]
|
|
movs r6, #4
|
|
rsbs r6, r6, #0
|
|
adds r1, r6, #0
|
|
ands r1, r3
|
|
strb r1, [r2, #1]
|
|
movs r2, #0xa
|
|
ldrsh r1, [r4, r2]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
add r2, r8
|
|
ldrb r3, [r2, #3]
|
|
movs r5, #0x3f
|
|
rsbs r5, r5, #0
|
|
adds r1, r5, #0
|
|
ands r1, r3
|
|
strb r1, [r2, #3]
|
|
movs r1, #0xa
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
adds r1, #0x3e
|
|
ldrb r2, [r1]
|
|
movs r3, #4
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
ldrb r2, [r1, #1]
|
|
ands r6, r2
|
|
strb r6, [r1, #1]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
ldrb r2, [r1, #3]
|
|
ands r5, r2
|
|
strb r5, [r1, #3]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
adds r1, #0x3e
|
|
ldrb r3, [r1]
|
|
movs r2, #5
|
|
rsbs r2, r2, #0
|
|
ands r2, r3
|
|
strb r2, [r1]
|
|
bl DestroyTask
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C5E4: .4byte 0x020205AC
|
|
_0817C5E8: .4byte 0x03005B60
|
|
thumb_func_end PreEvoInvisible_PostEvoVisible_KillTask
|
|
|
|
thumb_func_start PreEvoVisible_PostEvoInvisible_KillTask
|
|
PreEvoVisible_PostEvoInvisible_KillTask: @ 0x0817C5EC
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _0817C694
|
|
mov r8, r1
|
|
ldr r1, _0817C698
|
|
lsls r4, r0, #2
|
|
adds r4, r4, r0
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r1
|
|
movs r2, #0xa
|
|
ldrsh r1, [r4, r2]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
add r2, r8
|
|
ldrb r3, [r2, #1]
|
|
movs r6, #4
|
|
rsbs r6, r6, #0
|
|
adds r1, r6, #0
|
|
ands r1, r3
|
|
strb r1, [r2, #1]
|
|
movs r2, #0xa
|
|
ldrsh r1, [r4, r2]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
add r2, r8
|
|
ldrb r3, [r2, #3]
|
|
movs r5, #0x3f
|
|
rsbs r5, r5, #0
|
|
adds r1, r5, #0
|
|
ands r1, r3
|
|
strb r1, [r2, #3]
|
|
movs r1, #0xa
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
adds r1, #0x3e
|
|
ldrb r3, [r1]
|
|
movs r2, #5
|
|
rsbs r2, r2, #0
|
|
ands r2, r3
|
|
strb r2, [r1]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
ldrb r2, [r1, #1]
|
|
ands r6, r2
|
|
strb r6, [r1, #1]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
ldrb r2, [r1, #3]
|
|
ands r5, r2
|
|
strb r5, [r1, #3]
|
|
movs r1, #0xc
|
|
ldrsh r2, [r4, r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
add r1, r8
|
|
adds r1, #0x3e
|
|
ldrb r2, [r1]
|
|
movs r3, #4
|
|
orrs r2, r3
|
|
strb r2, [r1]
|
|
bl DestroyTask
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0817C694: .4byte 0x020205AC
|
|
_0817C698: .4byte 0x03005B60
|
|
thumb_func_end PreEvoVisible_PostEvoInvisible_KillTask
|
|
|