summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-06-28 14:28:21 -0500
committerSeth Barberee <seth.barberee@gmail.com>2021-06-28 14:28:21 -0500
commitf308c79eba1ba8e6bc2134529a2e4f4f21c9c2c2 (patch)
tree8cda9e14196a74c54e10db503bb494b14d7c32d2
parent7d9a587432ca4cc608b3fa4ddd060ad7c37fbf8b (diff)
15% pog
-rw-r--r--asm/code_807001C.s2249
-rw-r--r--asm/code_80869E4.s1333
-rw-r--r--asm/kangaskhan_storage_1.s272
-rw-r--r--asm/kangaskhan_storage_2.s403
-rw-r--r--asm/pokemon_2.s294
-rw-r--r--include/code_8041D5C.h6
-rw-r--r--include/constants/bg_music.h69
-rw-r--r--include/kangaskhan_storage.h8
-rw-r--r--include/pokemon.h1
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_800C9CC.c10
-rw-r--r--src/code_80869E4.c498
-rw-r--r--src/items.c72
-rw-r--r--src/kangaskhan_storage_2.c303
-rw-r--r--src/music_pre.c4
-rw-r--r--src/pokemon_3.c261
-rw-r--r--src/pokemon_mid.c1
17 files changed, 2506 insertions, 3280 deletions
diff --git a/asm/code_807001C.s b/asm/code_807001C.s
index 499f9ad..71cd91a 100644
--- a/asm/code_807001C.s
+++ b/asm/code_807001C.s
@@ -44768,2253 +44768,4 @@ _080862B4: .4byte 0x0000ffff
_080862B8: .4byte gUnknown_8107380
thumb_func_end sub_80861F8
- thumb_func_start sub_80862BC
-sub_80862BC:
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xE8
- lsls r0, 1
- bl PlaySoundEffect
- ldr r0, _080862D8
- adds r1, r4, 0
- movs r2, 0
- bl sub_80861F8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080862D8: .4byte 0x00000143
- thumb_func_end sub_80862BC
-
- thumb_func_start sub_80862DC
-sub_80862DC:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4, 0xC]
- str r0, [sp]
- ldr r0, [r4, 0x10]
- movs r1, 0xE0
- lsls r1, 6
- adds r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, sp
- bl sub_804535C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x4
- bl sub_806CDD4
- adds r0, r4, 0
- bl sub_8086A54
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80862DC
-
- thumb_func_start sub_8086310
-sub_8086310:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4, 0xC]
- str r0, [sp]
- ldr r0, [r4, 0x10]
- movs r1, 0x90
- lsls r1, 8
- adds r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, sp
- bl sub_804535C
- adds r0, r4, 0
- movs r1, 0
- bl sub_806CE68
- adds r0, r4, 0
- bl sub_8086A3C
- adds r4, 0x20
- movs r0, 0
- strb r0, [r4]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8086310
-
- thumb_func_start sub_8086348
-sub_8086348:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4, 0xC]
- movs r1, 0xF0
- lsls r1, 7
- adds r0, r1
- str r0, [sp]
- ldr r0, [r4, 0x10]
- ldr r1, _08086380
- adds r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, sp
- bl sub_804535C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x6
- bl sub_806CDD4
- adds r0, r4, 0
- bl sub_8086A54
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086380: .4byte 0xffffe000
- thumb_func_end sub_8086348
-
- thumb_func_start sub_8086384
-sub_8086384:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4, 0xC]
- movs r1, 0xF0
- lsls r1, 7
- adds r0, r1
- str r0, [sp]
- ldr r0, [r4, 0x10]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, sp
- bl sub_804535C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x6
- bl sub_806CDD4
- adds r0, r4, 0
- bl sub_8086A54
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8086384
-
- thumb_func_start sub_80863B8
-sub_80863B8:
- push {lr}
- movs r1, 0
- movs r2, 0x4
- bl sub_806CDD4
- pop {r0}
- bx r0
- thumb_func_end sub_80863B8
-
- thumb_func_start sub_80863C8
-sub_80863C8:
- push {lr}
- movs r1, 0
- movs r2, 0
- bl sub_806CDD4
- pop {r0}
- bx r0
- thumb_func_end sub_80863C8
-
- thumb_func_start sub_80863D8
-sub_80863D8:
- push {lr}
- movs r1, 0
- movs r2, 0x6
- bl sub_806CDD4
- pop {r0}
- bx r0
- thumb_func_end sub_80863D8
-
- thumb_func_start sub_80863E8
-sub_80863E8:
- push {lr}
- movs r1, 0x6
- movs r2, 0x4
- bl sub_806CDD4
- pop {r0}
- bx r0
- thumb_func_end sub_80863E8
-
- thumb_func_start sub_80863F8
-sub_80863F8:
- push {lr}
- movs r1, 0x4
- bl sub_806CE68
- pop {r0}
- bx r0
- thumb_func_end sub_80863F8
-
- thumb_func_start sub_8086404
-sub_8086404:
- push {lr}
- movs r1, 0x6
- bl sub_806CE68
- pop {r0}
- bx r0
- thumb_func_end sub_8086404
-
- thumb_func_start sub_8086410
-sub_8086410:
- push {lr}
- ldr r2, _08086420
- movs r1, 0
- bl sub_804539C
- pop {r0}
- bx r0
- .align 2, 0
-_08086420: .4byte 0xffffff00
- thumb_func_end sub_8086410
-
- thumb_func_start sub_8086424
-sub_8086424:
- push {lr}
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl sub_804539C
- pop {r0}
- bx r0
- thumb_func_end sub_8086424
-
- thumb_func_start sub_8086434
-sub_8086434:
- push {lr}
- ldr r1, _08086444
- movs r2, 0
- bl sub_804539C
- pop {r0}
- bx r0
- .align 2, 0
-_08086444: .4byte 0xffffff00
- thumb_func_end sub_8086434
-
- thumb_func_start sub_8086448
-sub_8086448:
- push {r4,r5,lr}
- ldr r0, _08086488
- bl sub_80855E4
- movs r5, 0x37
-_08086452:
- bl sub_803F994
- adds r4, r0, 0
- bl sub_803F9B0
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- adds r0, r4, 0
- bl sub_803F878
- ldr r0, _0808648C
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _08086452
- ldr r0, _08086490
- bl sub_80855E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086488: .4byte sub_80862DC
-_0808648C: .4byte sub_8086410
-_08086490: .4byte sub_80863F8
- thumb_func_end sub_8086448
-
- thumb_func_start sub_8086494
-sub_8086494:
- push {r4,lr}
- movs r0, 0x3
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x2
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x1
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080864F4
- bl sub_80855E4
- movs r4, 0x8F
-_080864D6:
- ldr r0, _080864F8
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bge _080864D6
- ldr r0, _080864FC
- bl sub_80855E4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080864F4: .4byte sub_80863C8
-_080864F8: .4byte sub_8086424
-_080864FC: .4byte sub_8086310
- thumb_func_end sub_8086494
-
- thumb_func_start sub_8086500
-sub_8086500:
- push {r4,r5,lr}
- ldr r0, _08086540
- bl sub_80855E4
- movs r5, 0x47
-_0808650A:
- bl sub_803F994
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- bl sub_803F9B0
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_803F878
- ldr r0, _08086544
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _0808650A
- ldr r0, _08086548
- bl sub_80855E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086540: .4byte sub_8086348
-_08086544: .4byte sub_8086434
-_08086548: .4byte sub_8086404
- thumb_func_end sub_8086500
-
- thumb_func_start sub_808654C
-sub_808654C:
- push {r4,r5,lr}
- ldr r0, _0808658C
- bl sub_80855E4
- movs r5, 0x77
-_08086556:
- bl sub_803F994
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- bl sub_803F9B0
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_803F878
- ldr r0, _08086590
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _08086556
- ldr r0, _08086594
- bl sub_80855E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808658C: .4byte sub_8086384
-_08086590: .4byte sub_8086434
-_08086594: .4byte sub_8086404
- thumb_func_end sub_808654C
-
- thumb_func_start sub_8086598
-sub_8086598:
- push {r4,r5,lr}
- ldr r0, _080865D8
- bl sub_80855E4
- movs r5, 0x17
-_080865A2:
- bl sub_803F994
- adds r4, r0, 0
- bl sub_803F9B0
- adds r1, r0, 0
- ldr r0, _080865DC
- adds r1, r0
- adds r0, r4, 0
- bl sub_803F878
- ldr r0, _080865E0
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _080865A2
- ldr r0, _080865E4
- bl sub_80855E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080865D8: .4byte sub_80863B8
-_080865DC: .4byte 0xffffff00
-_080865E0: .4byte sub_8086410
-_080865E4: .4byte sub_80863F8
- thumb_func_end sub_8086598
-
- thumb_func_start sub_80865E8
-sub_80865E8:
- push {r4-r6,lr}
- ldr r0, _08086630
- bl sub_80855E4
- ldr r6, _08086634
- movs r5, 0xB
-_080865F4:
- bl sub_803F994
- adds r4, r0, 0
- bl sub_803F9B0
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0
- adds r0, r4, 0
- bl sub_803F878
- adds r0, r6, 0
- bl sub_80855E4
- adds r0, r6, 0
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _080865F4
- ldr r0, _08086638
- bl sub_80855E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086630: .4byte sub_80863E8
-_08086634: .4byte sub_8086424
-_08086638: .4byte sub_80863F8
- thumb_func_end sub_80865E8
-
- thumb_func_start sub_808663C
-sub_808663C:
- push {r4-r6,lr}
- ldr r0, _08086684
- bl sub_80855E4
- ldr r6, _08086688
- movs r5, 0xF
-_08086648:
- bl sub_803F994
- adds r4, r0, 0
- bl sub_803F9B0
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0
- adds r0, r4, 0
- bl sub_803F878
- adds r0, r6, 0
- bl sub_80855E4
- adds r0, r6, 0
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r5, 0x1
- cmp r5, 0
- bge _08086648
- ldr r0, _0808668C
- bl sub_80855E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086684: .4byte sub_80863E8
-_08086688: .4byte sub_8086424
-_0808668C: .4byte sub_80863F8
- thumb_func_end sub_808663C
-
- thumb_func_start sub_8086690
-sub_8086690:
- push {r4,lr}
- ldr r0, _080866B8
- bl sub_80855E4
- movs r4, 0x2F
-_0808669A:
- ldr r0, _080866BC
- bl sub_80855E4
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bge _0808669A
- ldr r0, _080866C0
- bl sub_80855E4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080866B8: .4byte sub_80863D8
-_080866BC: .4byte sub_8086434
-_080866C0: .4byte sub_8086404
- thumb_func_end sub_8086690
-
- thumb_func_start sub_80866C4
-sub_80866C4:
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8085480
- bl SpriteLookAroundEffect
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8086494
- ldr r0, _080866F8
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080866F8: .4byte gUnknown_203B418
- thumb_func_end sub_80866C4
-
- thumb_func_start sub_80866FC
-sub_80866FC:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- movs r6, 0
- movs r5, 0xFA
- negs r5, r5
-_08086708:
- str r6, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, r5
- bge _08086708
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80866FC
-
- thumb_func_start sub_808672C
-sub_808672C:
- push {lr}
- bl sub_803E748
- pop {r0}
- bx r0
- thumb_func_end sub_808672C
-
- thumb_func_start sub_8086738
-sub_8086738:
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0
- movs r5, 0
-_08086740:
- str r5, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- adds r4, 0xA
- cmp r4, 0xF9
- ble _08086740
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8086738
-
- thumb_func_start sub_8086764
-sub_8086764:
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0xFA
- movs r5, 0
-_0808676C:
- str r5, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x5
- cmp r4, 0
- bge _0808676C
- bl sub_8085EB0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8086764
-
- thumb_func_start sub_8086794
-sub_8086794:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080867A4
- movs r0, 0
- str r0, [r1]
- movs r4, 0
- adds r5, r1, 0
- b _080867AA
- .align 2, 0
-_080867A4: .4byte gUnknown_202EDC8
-_080867A8:
- adds r4, 0x1
-_080867AA:
- cmp r4, 0xC7
- bgt _080867D8
- movs r0, 0
- str r0, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8085C54
- bl sub_803E9D0
- movs r0, 0x46
- bl sub_803E46C
- movs r0, 0x3
- ands r0, r4
- cmp r0, 0
- bne _080867A8
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- cmp r0, 0x1F
- bne _080867A8
-_080867D8:
- movs r0, 0x46
- bl sub_803E46C
- ldr r0, _080867F0
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x7]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080867F0: .4byte gUnknown_203B418
- thumb_func_end sub_8086794
-
- thumb_func_start sub_80867F4
-sub_80867F4:
- ldr r1, _08086808
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- strb r0, [r1, 0x3]
- strb r0, [r1, 0x4]
- strb r0, [r1, 0x5]
- bx lr
- .align 2, 0
-_08086808: .4byte gUnknown_202F3D0
- thumb_func_end sub_80867F4
-
- thumb_func_start sub_808680C
-sub_808680C:
- push {lr}
- ldr r0, _08086824
- movs r1, 0x1
- strb r1, [r0]
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _08086820
- ldr r0, _08086828
- bl PlaySoundEffect
-_08086820:
- pop {r0}
- bx r0
- .align 2, 0
-_08086824: .4byte gUnknown_202F3D0
-_08086828: .4byte 0x000001f9
- thumb_func_end sub_808680C
-
- thumb_func_start sub_808682C
-sub_808682C:
- ldr r1, _08086834
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08086834: .4byte gUnknown_202F3D0
- thumb_func_end sub_808682C
-
- thumb_func_start sub_8086838
-sub_8086838:
- ldr r3, _08086844
- strb r0, [r3, 0x1]
- strb r1, [r3, 0x2]
- strb r2, [r3, 0x3]
- bx lr
- .align 2, 0
-_08086844: .4byte gUnknown_202F3D0
- thumb_func_end sub_8086838
-
- thumb_func_start sub_8086848
-sub_8086848:
- ldr r2, _08086850
- strb r0, [r2, 0x4]
- strb r1, [r2, 0x5]
- bx lr
- .align 2, 0
-_08086850: .4byte gUnknown_202F3D0
- thumb_func_end sub_8086848
-
- thumb_func_start sub_8086854
-sub_8086854:
- push {r4,lr}
- ldr r4, _08086874
- ldrb r1, [r4]
- cmp r1, 0
- beq _080868DC
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- bne _080868A4
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08086878
- movs r0, 0x50
- strb r0, [r4, 0x4]
- movs r0, 0x10
- b _0808688A
- .align 2, 0
-_08086874: .4byte gUnknown_202F3D0
-_08086878:
- movs r0, 0x6
- bl RandomCapped
- adds r0, 0x2
- strb r0, [r4, 0x4]
- movs r0, 0x6
- bl RandomCapped
- adds r0, 0x2
-_0808688A:
- strb r0, [r4, 0x5]
- ldr r0, _0808689C
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _080868A8
- ldr r0, _080868A0
- bl PlaySoundEffect
- b _080868A8
- .align 2, 0
-_0808689C: .4byte gUnknown_202F3D0
-_080868A0: .4byte 0x000001f9
-_080868A4:
- subs r0, 0x1
- strb r0, [r4, 0x4]
-_080868A8:
- ldr r3, _080868CC
- ldrb r0, [r3, 0x5]
- cmp r0, 0
- beq _080868B4
- subs r0, 0x1
- strb r0, [r3, 0x5]
-_080868B4:
- ldr r0, _080868D0
- ldr r1, [r0]
- ldr r0, _080868D4
- adds r1, r0
- ldr r2, _080868D8
- ldrb r0, [r3, 0x5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- b _080868E6
- .align 2, 0
-_080868CC: .4byte gUnknown_202F3D0
-_080868D0: .4byte gUnknown_203B418
-_080868D4: .4byte 0x000181fc
-_080868D8: .4byte gUnknown_8107314
-_080868DC:
- ldr r0, _080868EC
- ldr r0, [r0]
- ldr r2, _080868F0
- adds r0, r2
- str r1, [r0]
-_080868E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080868EC: .4byte gUnknown_203B418
-_080868F0: .4byte 0x000181fc
- thumb_func_end sub_8086854
-
- thumb_func_start sub_80868F4
-sub_80868F4:
- ldr r1, [r0, 0x70]
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r0, [r0, 0x70]
- ldr r1, _0808690C
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0808690C: .4byte 0x0000015d
- thumb_func_end sub_80868F4
-
- thumb_func_start sub_8086910
-sub_8086910:
- ldr r1, [r0, 0x70]
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- movs r2, 0
- strb r2, [r1]
- ldr r0, [r0, 0x70]
- ldr r1, _08086928
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_08086928: .4byte 0x0000015d
- thumb_func_end sub_8086910
-
- thumb_func_start sub_808692C
-sub_808692C:
- push {lr}
- movs r0, 0x5
- bl sub_80859F0
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x6
- bl sub_80859F0
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x7
- bl sub_80859F0
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0
- bl sub_80859F0
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- pop {r0}
- bx r0
- thumb_func_end sub_808692C
-
- thumb_func_start SpriteLookAroundEffect
-SpriteLookAroundEffect:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x70]
- adds r0, 0x46
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x4
- bl sub_8002984
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- adds r3, r4, 0
- bl sub_80869E4
- movs r0, 0xF
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_8002984
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x1
- adds r3, r4, 0
- bl sub_80869E4
- movs r0, 0xF
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8002984
- adds r3, r0, 0
- lsls r3, 24
- asrs r3, 24
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- bl sub_80869E4
- movs r0, 0xF
- movs r1, 0x46
- bl sub_803E708
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end SpriteLookAroundEffect
-
- thumb_func_start sub_80869E4
-sub_80869E4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- asrs r6, r3, 24
- ldr r0, [r7, 0x70]
- adds r0, 0x46
- movs r4, 0
- ldrsb r4, [r0, r4]
- cmp r4, r6
- beq _08086A30
- adds r5, r0, 0
-_08086A08:
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- bl sub_8002A70
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x7
- ands r0, r4
- strb r0, [r5]
- ldrb r1, [r5]
- adds r0, r7, 0
- bl sub_806CE68
- mov r0, r9
- movs r1, 0x46
- bl sub_803E708
- cmp r4, r6
- bne _08086A08
-_08086A30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80869E4
-
- thumb_func_start sub_8086A3C
-sub_8086A3C:
- ldr r1, [r0, 0x70]
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r0, [r0, 0x70]
- movs r1, 0xAF
- lsls r1, 1
- adds r0, r1
- strb r2, [r0]
- bx lr
- thumb_func_end sub_8086A3C
-
- thumb_func_start sub_8086A54
-sub_8086A54:
- ldr r1, [r0, 0x70]
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- movs r3, 0
- movs r2, 0x1
- strb r2, [r1]
- ldr r0, [r0, 0x70]
- movs r1, 0xAF
- lsls r1, 1
- adds r0, r1
- strb r3, [r0]
- bx lr
- thumb_func_end sub_8086A54
-
- thumb_func_start sub_8086A70
-sub_8086A70:
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r2, 16
- lsrs r4, r2, 16
- ldr r3, [r5, 0x70]
- adds r2, r3, 0
- movs r0, 0xF7
- adds r0, r3
- mov r12, r0
- movs r0, 0x1
- mov r6, r12
- strb r0, [r6]
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x12]
- cmp r1, 0
- beq _08086A94
- strh r1, [r3, 0x10]
- strh r1, [r3, 0xE]
-_08086A94:
- ldr r0, _08086AB8
- ldr r0, [r0]
- ldr r1, _08086ABC
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0
- adds r0, 0x8C
- mov r2, r12
- ldrb r1, [r2]
- bl sub_808EC94
- adds r0, r5, 0
- bl sub_807191C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086AB8: .4byte gUnknown_203B418
-_08086ABC: .4byte 0x0000066a
- thumb_func_end sub_8086A70
-
- thumb_func_start sub_8086AC0
-sub_8086AC0:
- push {lr}
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08086ADA
- ldr r0, _08086AE0
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _08086ADA
- bl sub_8097FF8
-_08086ADA:
- pop {r0}
- bx r0
- .align 2, 0
-_08086AE0: .4byte gUnknown_203B418
- thumb_func_end sub_8086AC0
-
- thumb_func_start sub_8086AE4
-sub_8086AE4:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _08086B04
- ldr r0, [r0]
- ldr r2, _08086B08
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08086B0C
- adds r0, r1, 0
- bl HasRecruitedMon
- lsls r0, 24
- lsrs r0, 24
- b _08086B0E
- .align 2, 0
-_08086B04: .4byte gUnknown_203B418
-_08086B08: .4byte 0x0000065c
-_08086B0C:
- movs r0, 0x1
-_08086B0E:
- pop {r1}
- bx r1
- thumb_func_end sub_8086AE4
-
- thumb_func_start sub_8086B14
-sub_8086B14:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- bl sub_8085480
- mov r8, r0
- movs r0, 0x4
- bl sub_8085680
- adds r6, r0, 0
- movs r0, 0x3
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r4, _08086B8C
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r5, 0
- bl _call_via_r4
- ldr r0, [r6, 0x70]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- mov r2, r8
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- movs r3, 0x6
- ldrsh r1, [r2, r3]
- subs r1, 0x2
- bl sub_8085860
- ldr r4, _08086B90
- adds r0, r4, 0
- movs r1, 0x32
- bl CopySpeciesNametoBuffer
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xFC
- bl CopySpeciesNametoBuffer
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086B8C: .4byte sub_8086A3C
-_08086B90: .4byte gUnknown_202E038
- thumb_func_end sub_8086B14
-
- thumb_func_start sub_8086B94
-sub_8086B94:
- push {r4-r6,lr}
- bl sub_8085480
- adds r6, r0, 0
- movs r0, 0x4
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0x3
- bl sub_8085680
- movs r4, 0x87
- lsls r4, 2
- adds r1, r4, 0
- movs r2, 0
- bl sub_8068FE0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_8068FE0
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- bl sub_8085860
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8086B94
-
- thumb_func_start sub_8086BDC
-sub_8086BDC:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r1, r2
- lsrs r1, 24
- cmp r1, 0x1
- bhi _08086C02
- cmp r0, 0x3
- bne _08086C02
- movs r0, 0x1
- bl sub_8097FA8
- ldr r0, _08086C08
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_08086C02:
- pop {r0}
- bx r0
- .align 2, 0
-_08086C08: .4byte gUnknown_203B418
- thumb_func_end sub_8086BDC
-
- thumb_func_start SkarmonyPreFightDialogue
-SkarmonyPreFightDialogue:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- bl sub_8085480
- mov r8, r0
- bl sub_808548C
- mov r9, r0
- movs r0, 0x4
- bl sub_8085680
- adds r4, r0, 0
- movs r0, 0x3
- bl sub_8085680
- adds r6, r0, 0
- ldr r0, [r4, 0xC]
- str r0, [sp]
- ldr r0, [r4, 0x10]
- movs r1, 0xC0
- lsls r1, 6
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r0, [r6, 0xC]
- str r0, [sp, 0x8]
- ldr r0, [r6, 0x10]
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2
- add r5, sp, 0x8
- str r0, [r5, 0x4]
- bl sub_8086448
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- mov r0, r9
- bl sub_80862BC
- movs r0, 0x20
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086D84
- bl sub_8052910
- mov r0, sp
- movs r1, 0x40
- bl sub_80858AC
- movs r0, 0x40
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x30
- bl sub_80858AC
- ldr r0, _08086D88
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, [r4, 0x70]
- ldr r2, _08086D8C
- adds r1, r0, r2
- movs r0, 0x1
- strb r0, [r1]
- mov r0, sp
- movs r1, 0x30
- bl sub_80858AC
- ldr r0, _08086D90
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x20
- bl sub_80858AC
- movs r0, 0x20
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- bl sub_8086E74
- ldr r0, _08086D94
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086D98
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086D9C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086DA0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- movs r1, 0xD
- movs r2, 0
- bl sub_806CDD4
- ldr r0, _08086DA4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- mov r0, r9
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x2
- bl sub_80869E4
- mov r0, r8
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- ldr r0, _08086DA8
- bl sub_8052910
- mov r0, r9
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80869E4
- mov r0, r8
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x4
- bl sub_80869E4
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xB
- bl sub_8083E88
- movs r0, 0xC
- add r8, r0
- mov r0, r8
- movs r1, 0x10
- bl sub_80858AC
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086D84: .4byte gUnknown_8100768
-_08086D88: .4byte gUnknown_8100798
-_08086D8C: .4byte 0x0000015d
-_08086D90: .4byte gUnknown_8100820
-_08086D94: .4byte gUnknown_8100844
-_08086D98: .4byte gUnknown_8100880
-_08086D9C: .4byte gUnknown_8100928
-_08086DA0: .4byte gUnknown_8100A04
-_08086DA4: .4byte gUnknown_8100B80
-_08086DA8: .4byte gUnknown_8100BC0
- thumb_func_end SkarmonyPreFightDialogue
-
- thumb_func_start SkarmonyReFightDialogue
-SkarmonyReFightDialogue:
- push {r4,r5,lr}
- sub sp, 0x8
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x3
- bl sub_8085680
- adds r4, r0, 0
- ldr r0, [r4, 0xC]
- str r0, [sp]
- ldr r0, [r4, 0x10]
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1
- str r0, [sp, 0x4]
- bl sub_8086448
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- bl sub_8086E74
- mov r0, sp
- movs r1, 0x10
- bl sub_80858AC
- ldr r0, _08086E34
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086E38
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0
- bl sub_806CDD4
- ldr r0, _08086E3C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r5, 0xC
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_80858AC
- movs r0, 0xB
- bl sub_8083E88
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086E34: .4byte gUnknown_8100C90
-_08086E38: .4byte gUnknown_8100CBC
-_08086E3C: .4byte gUnknown_8100CDC
- thumb_func_end SkarmonyReFightDialogue
-
- thumb_func_start sub_8086E40
-sub_8086E40:
- push {lr}
- bl sub_8085480
- bl SpriteLookAroundEffect
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086E6C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086E70
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- pop {r0}
- bx r0
- .align 2, 0
-_08086E6C: .4byte gUnknown_8100D3C
-_08086E70: .4byte gUnknown_203B418
- thumb_func_end sub_8086E40
-
- thumb_func_start sub_8086E74
-sub_8086E74:
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- adds r0, r4, 0
- bl sub_8086A54
- movs r0, 0xFC
- lsls r0, 1
- bl PlaySoundEffect
- movs r0, 0x44
- movs r1, 0x46
- bl sub_803E708
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8086E74
-
- thumb_func_start sub_8086E9C
-sub_8086E9C:
- push {r4,r5,lr}
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r4, _08086EF8
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r4, 0
- bl sub_808563C
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r4, _08086EFC
- adds r0, r4, 0
- movs r1, 0xB
- bl CopySpeciesNametoBuffer
- adds r0, r4, 0
- adds r0, 0x50
- movs r1, 0x5E
- bl CopySpeciesNametoBuffer
- adds r4, 0xA0
- adds r0, r4, 0
- movs r1, 0xA
- bl CopySpeciesNametoBuffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086EF8: .4byte sub_8086A3C
-_08086EFC: .4byte gUnknown_202E038
- thumb_func_end sub_8086E9C
-
- thumb_func_start sub_8086F00
-sub_8086F00:
- push {r4,lr}
- bl sub_8085480
- adds r4, r0, 0
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r0, _08086F4C
- bl sub_80855E4
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r4, _08086F50
- adds r0, r4, 0
- movs r1, 0xB
- bl CopySpeciesNametoBuffer
- adds r0, r4, 0
- adds r0, 0x50
- movs r1, 0x5E
- bl CopySpeciesNametoBuffer
- adds r4, 0xA0
- adds r0, r4, 0
- movs r1, 0xA
- bl CopySpeciesNametoBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086F4C: .4byte sub_8086A3C
-_08086F50: .4byte gUnknown_202E038
- thumb_func_end sub_8086F00
-
- thumb_func_start sub_8086F54
-sub_8086F54:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- movs r0, 0xFC
- lsls r0, 24
- adds r1, r0
- lsrs r1, 24
- cmp r1, 0x1
- bhi _08086FA8
- movs r5, 0
-_08086F6A:
- ldr r0, _08086FB0
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08086FB4
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08086F8E
- ldr r0, [r4, 0x70]
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, r6
- bne _08086FA8
-_08086F8E:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08086F6A
- movs r0, 0
- cmp r0, 0
- bne _08086FA8
- movs r0, 0x3
- bl sub_8097FA8
- ldr r0, _08086FB0
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_08086FA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08086FB0: .4byte gUnknown_203B418
-_08086FB4: .4byte 0x0001358c
- thumb_func_end sub_8086F54
-
- thumb_func_start TeamMeaniePreFightDialogue
-TeamMeaniePreFightDialogue:
- push {r4,lr}
- bl sub_8085480
- adds r4, r0, 0
- bl sub_8086448
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087048
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808704C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8087144
- movs r0, 0xA
- bl sub_8083E88
- ldr r0, _08087050
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087054
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087058
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808705C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087060
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r4, 0xC
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087048: .4byte gUnknown_8100DB0
-_0808704C: .4byte gUnknown_8100E64
-_08087050: .4byte gUnknown_8100E88
-_08087054: .4byte gUnknown_8100F14
-_08087058: .4byte gUnknown_8101004
-_0808705C: .4byte gUnknown_8101050
-_08087060: .4byte gUnknown_81010D0
- thumb_func_end TeamMeaniePreFightDialogue
-
- thumb_func_start TeamMeanieReFightDialogue
-TeamMeanieReFightDialogue:
- push {r4,r5,lr}
- bl sub_8085480
- adds r4, r0, 0
- bl sub_808548C
- adds r5, r0, 0
- bl sub_8086448
- ldr r0, _08087118
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808711C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8087144
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087120
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087124
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x4
- bl sub_806CDD4
- adds r0, r5, 0
- movs r1, 0x6
- movs r2, 0x4
- bl sub_806CDD4
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x4
- bl sub_806CDD4
- adds r0, r5, 0
- movs r1, 0x7
- movs r2, 0x4
- bl sub_806CDD4
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087128
- bl sub_8052910
- ldr r0, _0808712C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r4, 0xC
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087118: .4byte gUnknown_8101164
-_0808711C: .4byte gUnknown_8100E64
-_08087120: .4byte gUnknown_8101240
-_08087124: .4byte gUnknown_8101310
-_08087128: .4byte gUnknown_810137C
-_0808712C: .4byte gUnknown_8101408
- thumb_func_end TeamMeanieReFightDialogue
-
- thumb_func_start sub_8087130
-sub_8087130:
- push {lr}
- bl sub_8086448
- ldr r0, _08087140
- bl sub_80866C4
- pop {r0}
- bx r0
- .align 2, 0
-_08087140: .4byte gUnknown_8101440
- thumb_func_end sub_8087130
-
- thumb_func_start sub_8087144
-sub_8087144:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xF0
- movs r0, 0x5
- bl sub_8085680
- adds r7, r0, 0
- movs r0, 0x6
- bl sub_8085680
- mov r8, r0
- movs r0, 0x7
- bl sub_8085680
- mov r9, r0
- ldr r1, _080871E0
- mov r0, sp
- movs r2, 0x38
- bl memcpy
- add r6, sp, 0x38
- ldr r1, _080871E4
- adds r0, r6, 0
- movs r2, 0x38
- bl memcpy
- add r4, sp, 0x70
- ldr r1, _080871E8
- adds r0, r4, 0
- movs r2, 0x38
- bl memcpy
- add r5, sp, 0xA8
- mov r0, sp
- str r0, [r5]
- str r6, [r5, 0x4]
- str r4, [r5, 0x8]
- add r4, sp, 0xB4
- str r7, [r4]
- mov r3, r8
- str r3, [r4, 0x4]
- mov r0, r9
- str r0, [r4, 0x8]
- movs r0, 0xA
- bl sub_8083E88
- adds r0, r7, 0
- bl sub_8086A54
- mov r0, r8
- bl sub_8086A54
- mov r0, r9
- bl sub_8086A54
- add r6, sp, 0xC0
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x3
- bl sub_8085B4C
- ldr r0, [r7, 0x70]
- ldr r2, _080871EC
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- mov r3, r8
- ldr r0, [r3, 0x70]
- adds r0, r2
- strb r1, [r0]
- mov r3, r9
- ldr r0, [r3, 0x70]
- adds r0, r2
- strb r1, [r0]
- b _080871F6
- .align 2, 0
-_080871E0: .4byte gUnknown_810739C
-_080871E4: .4byte gUnknown_81073D4
-_080871E8: .4byte gUnknown_810740C
-_080871EC: .4byte 0x0000015f
-_080871F0:
- movs r0, 0x46
- bl sub_803E46C
-_080871F6:
- adds r0, r6, 0
- bl sub_8085B80
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080871F0
- ldr r0, [r7, 0x70]
- ldr r1, _0808722C
- adds r0, r1
- strb r2, [r0]
- mov r3, r8
- ldr r0, [r3, 0x70]
- adds r0, r1
- strb r2, [r0]
- mov r3, r9
- ldr r0, [r3, 0x70]
- adds r0, r1
- strb r2, [r0]
- add sp, 0xF0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808722C: .4byte 0x0000015f
- thumb_func_end sub_8087144
-
- thumb_func_start sub_8087230
-sub_8087230:
- push {r4-r6,lr}
- bl sub_8085480
- adds r6, r0, 0
- movs r0, 0x8
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r4, _08087294
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r5, 0
- bl _call_via_r4
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r4, _08087298
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, 0
- bl CopySpeciesNametoBuffer
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0x91
- bl CopySpeciesNametoBuffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087294: .4byte sub_8086A3C
-_08087298: .4byte gUnknown_202E038
- thumb_func_end sub_8087230
-
- thumb_func_start sub_808729C
-sub_808729C:
- push {r4-r6,lr}
- sub sp, 0x4
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x8
- bl sub_8085680
- adds r4, r0, 0
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r6, _080872DC
- adds r0, r6, 0
- bl sub_80855E4
- movs r0, 0x91
- bl sub_8086AE4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080872E0
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, 0
- movs r2, 0
- bl sub_8068FE0
- b _08087300
- .align 2, 0
-_080872DC: .4byte sub_8086A3C
-_080872E0:
- ldr r0, _0808732C
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0
- bl sub_8072008
- adds r0, r4, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r4, 0
- bl _call_via_r6
-_08087300:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r4, _08087330
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, 0
- bl CopySpeciesNametoBuffer
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0x91
- bl CopySpeciesNametoBuffer
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808732C: .4byte gUnknown_80F57CC
-_08087330: .4byte gUnknown_202E038
- thumb_func_end sub_808729C
-
- thumb_func_start sub_8087334
-sub_8087334:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- movs r2, 0xF9
- lsls r2, 24
- adds r1, r2
- lsrs r1, 24
- cmp r1, 0x2
- bhi _0808735A
- cmp r0, 0x8
- bne _0808735A
- movs r0, 0x5
- bl sub_8097FA8
- ldr r0, _08087360
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_0808735A:
- pop {r0}
- bx r0
- .align 2, 0
-_08087360: .4byte gUnknown_203B418
- thumb_func_end sub_8087334
-
- thumb_func_start ZapdosPreFightDialogue
-ZapdosPreFightDialogue:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x70
- bl sub_8085480
- mov r9, r0
- bl sub_808548C
- adds r6, r0, 0
- movs r0, 0x8
- bl sub_8085680
- str r0, [sp, 0x68]
- bl sub_8086448
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- bl SpriteLookAroundEffect
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x2
- bl sub_80869E4
- mov r0, r9
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- ldr r0, _08087470
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80869E4
- mov r0, r9
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x4
- bl sub_80869E4
- ldr r0, _08087474
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x3
- bl sub_808775C
- bl sub_8083F14
- movs r0, 0xED
- lsls r0, 1
- bl PlaySoundEffect
- ldr r0, _08087478
- bl sub_8052910
- ldr r0, [sp, 0x68]
- bl sub_8087704
- movs r0, 0x9
- bl sub_8083E88
- adds r0, r6, 0
- movs r1, 0x6
- movs r2, 0x4
- bl sub_806CDD4
- ldr r0, _0808747C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80869E4
- mov r1, sp
- ldr r0, _08087480
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- str r0, [sp, 0x58]
- str r6, [sp, 0x5C]
- add r4, sp, 0x18
- add r1, sp, 0x58
- add r2, sp, 0x5C
- adds r0, r4, 0
- movs r3, 0x1
- bl sub_8085B4C
- ldr r0, [r6, 0x70]
- ldr r2, _08087484
- adds r1, r0, r2
- movs r0, 0x1
- strb r0, [r1]
- add r7, sp, 0x28
- add r3, sp, 0x48
- mov r8, r3
- add r0, sp, 0x60
- mov r10, r0
- mov r1, sp
- adds r1, 0x64
- str r1, [sp, 0x6C]
- b _0808748E
- .align 2, 0
-_08087470: .4byte gUnknown_81014B0
-_08087474: .4byte gUnknown_8101504
-_08087478: .4byte gUnknown_81015A0
-_0808747C: .4byte gUnknown_81015D4
-_08087480: .4byte gUnknown_810744C
-_08087484: .4byte 0x0000015f
-_08087488:
- movs r0, 0x46
- bl sub_803E46C
-_0808748E:
- adds r0, r4, 0
- bl sub_8085B80
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08087488
- ldr r0, [r6, 0x70]
- ldr r2, _08087510
- adds r0, r2
- strb r5, [r0]
- ldr r0, [r6, 0x70]
- ldr r4, _08087514
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80869E4
- ldr r0, _08087518
- bl sub_8052910
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808751C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, [r6, 0x70]
- adds r0, r4
- strb r5, [r0]
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0x5
- bl sub_80869E4
- adds r1, r7, 0
- ldr r0, _08087520
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r3,r4}
- stm r1!, {r3,r4}
- str r7, [sp, 0x60]
- str r6, [sp, 0x64]
- mov r0, r8
- mov r1, r10
- ldr r2, [sp, 0x6C]
- movs r3, 0x1
- bl sub_8085B4C
- mov r4, r9
- adds r4, 0xC
- b _0808752A
- .align 2, 0
-_08087510: .4byte 0x0000015f
-_08087514: .4byte 0x0000015d
-_08087518: .4byte gUnknown_81015E8
-_0808751C: .4byte gUnknown_8101624
-_08087520: .4byte gUnknown_8107464
-_08087524:
- movs r0, 0x46
- bl sub_803E46C
-_0808752A:
- mov r0, r8
- bl sub_8085B80
- lsls r0, 24
- cmp r0, 0
- bne _08087524
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x3
- bl sub_80869E4
- ldr r0, _080875B0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x3
- bl sub_808775C
- ldr r0, _080875B4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x1
- bl sub_808775C
- ldr r0, _080875B8
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x2
- bl sub_808775C
- ldr r0, _080875BC
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0x96
- lsls r1, 1
- ldr r0, [sp, 0x68]
- movs r2, 0xB
- bl sub_8086A70
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_80858AC
- add sp, 0x70
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080875B0: .4byte gUnknown_810165C
-_080875B4: .4byte gUnknown_8101750
-_080875B8: .4byte gUnknown_810178C
-_080875BC: .4byte gUnknown_81017B4
- thumb_func_end ZapdosPreFightDialogue
-
.align 2,0
diff --git a/asm/code_80869E4.s b/asm/code_80869E4.s
new file mode 100644
index 0000000..6f109eb
--- /dev/null
+++ b/asm/code_80869E4.s
@@ -0,0 +1,1333 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_80869E4
+sub_80869E4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ asrs r6, r3, 24
+ ldr r0, [r7, 0x70]
+ adds r0, 0x46
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ cmp r4, r6
+ beq _08086A30
+ adds r5, r0, 0
+_08086A08:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r8
+ bl sub_8002A70
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x7
+ ands r0, r4
+ strb r0, [r5]
+ ldrb r1, [r5]
+ adds r0, r7, 0
+ bl sub_806CE68
+ mov r0, r9
+ movs r1, 0x46
+ bl sub_803E708
+ cmp r4, r6
+ bne _08086A08
+_08086A30:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80869E4
+
+ thumb_func_start sub_8086A3C
+sub_8086A3C:
+ ldr r1, [r0, 0x70]
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r0, [r0, 0x70]
+ movs r1, 0xAF
+ lsls r1, 1
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ thumb_func_end sub_8086A3C
+
+ thumb_func_start sub_8086A54
+sub_8086A54:
+ ldr r1, [r0, 0x70]
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r0, [r0, 0x70]
+ movs r1, 0xAF
+ lsls r1, 1
+ adds r0, r1
+ strb r3, [r0]
+ bx lr
+ thumb_func_end sub_8086A54
+
+ thumb_func_start sub_8086A70
+sub_8086A70:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldr r3, [r5, 0x70]
+ adds r2, r3, 0
+ movs r0, 0xF7
+ adds r0, r3
+ mov r12, r0
+ movs r0, 0x1
+ mov r6, r12
+ strb r0, [r6]
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x12]
+ cmp r1, 0
+ beq _08086A94
+ strh r1, [r3, 0x10]
+ strh r1, [r3, 0xE]
+_08086A94:
+ ldr r0, _08086AB8
+ ldr r0, [r0]
+ ldr r1, _08086ABC
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x8C
+ mov r2, r12
+ ldrb r1, [r2]
+ bl sub_808EC94
+ adds r0, r5, 0
+ bl sub_807191C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086AB8: .4byte gUnknown_203B418
+_08086ABC: .4byte 0x0000066a
+ thumb_func_end sub_8086A70
+
+ thumb_func_start sub_8086AC0
+sub_8086AC0:
+ push {lr}
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08086ADA
+ ldr r0, _08086AE0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _08086ADA
+ bl sub_8097FF8
+_08086ADA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086AE0: .4byte gUnknown_203B418
+ thumb_func_end sub_8086AC0
+
+ thumb_func_start sub_8086AE4
+sub_8086AE4:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ ldr r0, _08086B04
+ ldr r0, [r0]
+ ldr r2, _08086B08
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08086B0C
+ adds r0, r1, 0
+ bl HasRecruitedMon
+ lsls r0, 24
+ lsrs r0, 24
+ b _08086B0E
+ .align 2, 0
+_08086B04: .4byte gUnknown_203B418
+_08086B08: .4byte 0x0000065c
+_08086B0C:
+ movs r0, 0x1
+_08086B0E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8086AE4
+
+ thumb_func_start sub_8086B14
+sub_8086B14:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ bl sub_8085480
+ mov r8, r0
+ movs r0, 0x4
+ bl sub_8085680
+ adds r6, r0, 0
+ movs r0, 0x3
+ bl sub_8085680
+ adds r5, r0, 0
+ movs r0, 0x72
+ bl sub_8083E88
+ bl sub_8085374
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ ldr r4, _08086B8C
+ adds r0, r4, 0
+ bl sub_80855E4
+ adds r0, r5, 0
+ bl _call_via_r4
+ ldr r0, [r6, 0x70]
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ mov r2, r8
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ movs r3, 0x6
+ ldrsh r1, [r2, r3]
+ subs r1, 0x2
+ bl sub_8085860
+ ldr r4, _08086B90
+ adds r0, r4, 0
+ movs r1, 0x32
+ bl CopySpeciesNametoBuffer
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0xFC
+ bl CopySpeciesNametoBuffer
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086B8C: .4byte sub_8086A3C
+_08086B90: .4byte gUnknown_202E038
+ thumb_func_end sub_8086B14
+
+ thumb_func_start sub_8086B94
+sub_8086B94:
+ push {r4-r6,lr}
+ bl sub_8085480
+ adds r6, r0, 0
+ movs r0, 0x4
+ bl sub_8085680
+ adds r5, r0, 0
+ movs r0, 0x3
+ bl sub_8085680
+ movs r4, 0x87
+ lsls r4, 2
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8068FE0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8068FE0
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ movs r2, 0x6
+ ldrsh r1, [r6, r2]
+ bl sub_8085860
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8086B94
+
+ thumb_func_start sub_8086BDC
+sub_8086BDC:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r1, r2
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _08086C02
+ cmp r0, 0x3
+ bne _08086C02
+ movs r0, 0x1
+ bl sub_8097FA8
+ ldr r0, _08086C08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+_08086C02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086C08: .4byte gUnknown_203B418
+ thumb_func_end sub_8086BDC
+
+ thumb_func_start SkarmonyPreFightDialogue
+SkarmonyPreFightDialogue:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ bl sub_8085480
+ mov r8, r0
+ bl sub_808548C
+ mov r9, r0
+ movs r0, 0x4
+ bl sub_8085680
+ adds r4, r0, 0
+ movs r0, 0x3
+ bl sub_8085680
+ adds r6, r0, 0
+ ldr r0, [r4, 0xC]
+ str r0, [sp]
+ ldr r0, [r4, 0x10]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, [r6, 0xC]
+ str r0, [sp, 0x8]
+ ldr r0, [r6, 0x10]
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2
+ add r5, sp, 0x8
+ str r0, [r5, 0x4]
+ bl sub_8086448
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ mov r0, r9
+ bl sub_80862BC
+ movs r0, 0x20
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086D84
+ bl sub_8052910
+ mov r0, sp
+ movs r1, 0x40
+ bl sub_80858AC
+ movs r0, 0x40
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl sub_80858AC
+ ldr r0, _08086D88
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, [r4, 0x70]
+ ldr r2, _08086D8C
+ adds r1, r0, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r0, sp
+ movs r1, 0x30
+ bl sub_80858AC
+ ldr r0, _08086D90
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r5, 0
+ movs r1, 0x20
+ bl sub_80858AC
+ movs r0, 0x20
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ bl sub_8086E74
+ ldr r0, _08086D94
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086D98
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086D9C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086DA0
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ movs r1, 0xD
+ movs r2, 0
+ bl sub_806CDD4
+ ldr r0, _08086DA4
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ mov r0, r9
+ movs r1, 0x4
+ movs r2, 0x1
+ movs r3, 0x2
+ bl sub_80869E4
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_80869E4
+ ldr r0, _08086DA8
+ bl sub_8052910
+ mov r0, r9
+ movs r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80869E4
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_80869E4
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0xB
+ bl sub_8083E88
+ movs r0, 0xC
+ add r8, r0
+ mov r0, r8
+ movs r1, 0x10
+ bl sub_80858AC
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086D84: .4byte gUnknown_8100768
+_08086D88: .4byte gUnknown_8100798
+_08086D8C: .4byte 0x0000015d
+_08086D90: .4byte gUnknown_8100820
+_08086D94: .4byte gUnknown_8100844
+_08086D98: .4byte gUnknown_8100880
+_08086D9C: .4byte gUnknown_8100928
+_08086DA0: .4byte gUnknown_8100A04
+_08086DA4: .4byte gUnknown_8100B80
+_08086DA8: .4byte gUnknown_8100BC0
+ thumb_func_end SkarmonyPreFightDialogue
+
+ thumb_func_start SkarmonyReFightDialogue
+SkarmonyReFightDialogue:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl sub_8085480
+ adds r5, r0, 0
+ movs r0, 0x3
+ bl sub_8085680
+ adds r4, r0, 0
+ ldr r0, [r4, 0xC]
+ str r0, [sp]
+ ldr r0, [r4, 0x10]
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1
+ str r0, [sp, 0x4]
+ bl sub_8086448
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r4, 0
+ bl sub_8086E74
+ mov r0, sp
+ movs r1, 0x10
+ bl sub_80858AC
+ ldr r0, _08086E34
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086E38
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0
+ bl sub_806CDD4
+ ldr r0, _08086E3C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r5, 0xC
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl sub_80858AC
+ movs r0, 0xB
+ bl sub_8083E88
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086E34: .4byte gUnknown_8100C90
+_08086E38: .4byte gUnknown_8100CBC
+_08086E3C: .4byte gUnknown_8100CDC
+ thumb_func_end SkarmonyReFightDialogue
+
+ thumb_func_start sub_8086E40
+sub_8086E40:
+ push {lr}
+ bl sub_8085480
+ bl SpriteLookAroundEffect
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086E6C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086E70
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086E6C: .4byte gUnknown_8100D3C
+_08086E70: .4byte gUnknown_203B418
+ thumb_func_end sub_8086E40
+
+ thumb_func_start sub_8086E74
+sub_8086E74:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xF
+ movs r2, 0
+ bl sub_806CDD4
+ adds r0, r4, 0
+ bl sub_8086A54
+ movs r0, 0xFC
+ lsls r0, 1
+ bl PlaySoundEffect
+ movs r0, 0x44
+ movs r1, 0x46
+ bl sub_803E708
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8086E74
+
+ thumb_func_start sub_8086E9C
+sub_8086E9C:
+ push {r4,r5,lr}
+ bl sub_8085480
+ adds r5, r0, 0
+ movs r0, 0x72
+ bl sub_8083E88
+ bl sub_8085374
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ ldr r4, _08086EF8
+ adds r0, r4, 0
+ bl sub_80855E4
+ adds r0, r4, 0
+ bl sub_808563C
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ subs r1, 0x3
+ bl sub_8085860
+ ldr r4, _08086EFC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl CopySpeciesNametoBuffer
+ adds r0, r4, 0
+ adds r0, 0x50
+ movs r1, 0x5E
+ bl CopySpeciesNametoBuffer
+ adds r4, 0xA0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl CopySpeciesNametoBuffer
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086EF8: .4byte sub_8086A3C
+_08086EFC: .4byte gUnknown_202E038
+ thumb_func_end sub_8086E9C
+
+ thumb_func_start sub_8086F00
+sub_8086F00:
+ push {r4,lr}
+ bl sub_8085480
+ adds r4, r0, 0
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ ldr r0, _08086F4C
+ bl sub_80855E4
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ subs r1, 0x3
+ bl sub_8085860
+ ldr r4, _08086F50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl CopySpeciesNametoBuffer
+ adds r0, r4, 0
+ adds r0, 0x50
+ movs r1, 0x5E
+ bl CopySpeciesNametoBuffer
+ adds r4, 0xA0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl CopySpeciesNametoBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086F4C: .4byte sub_8086A3C
+_08086F50: .4byte gUnknown_202E038
+ thumb_func_end sub_8086F00
+
+ thumb_func_start sub_8086F54
+sub_8086F54:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ movs r0, 0xFC
+ lsls r0, 24
+ adds r1, r0
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _08086FA8
+ movs r5, 0
+_08086F6A:
+ ldr r0, _08086FB0
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08086FB4
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086F8E
+ ldr r0, [r4, 0x70]
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08086FA8
+_08086F8E:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08086F6A
+ movs r0, 0
+ cmp r0, 0
+ bne _08086FA8
+ movs r0, 0x3
+ bl sub_8097FA8
+ ldr r0, _08086FB0
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+_08086FA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086FB0: .4byte gUnknown_203B418
+_08086FB4: .4byte 0x0001358c
+ thumb_func_end sub_8086F54
+
+ thumb_func_start TeamMeaniePreFightDialogue
+TeamMeaniePreFightDialogue:
+ push {r4,lr}
+ bl sub_8085480
+ adds r4, r0, 0
+ bl sub_8086448
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087048
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _0808704C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ bl sub_8087144
+ movs r0, 0xA
+ bl sub_8083E88
+ ldr r0, _08087050
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087054
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087058
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _0808705C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087060
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r4, 0xC
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl sub_80858AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087048: .4byte gUnknown_8100DB0
+_0808704C: .4byte gUnknown_8100E64
+_08087050: .4byte gUnknown_8100E88
+_08087054: .4byte gUnknown_8100F14
+_08087058: .4byte gUnknown_8101004
+_0808705C: .4byte gUnknown_8101050
+_08087060: .4byte gUnknown_81010D0
+ thumb_func_end TeamMeaniePreFightDialogue
+
+ thumb_func_start TeamMeanieReFightDialogue
+TeamMeanieReFightDialogue:
+ push {r4,r5,lr}
+ bl sub_8085480
+ adds r4, r0, 0
+ bl sub_808548C
+ adds r5, r0, 0
+ bl sub_8086448
+ ldr r0, _08087118
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _0808711C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ bl sub_8087144
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087120
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087124
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_806CDD4
+ adds r0, r5, 0
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_806CDD4
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ bl sub_806CDD4
+ adds r0, r5, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ bl sub_806CDD4
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08087128
+ bl sub_8052910
+ ldr r0, _0808712C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r4, 0xC
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl sub_80858AC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087118: .4byte gUnknown_8101164
+_0808711C: .4byte gUnknown_8100E64
+_08087120: .4byte gUnknown_8101240
+_08087124: .4byte gUnknown_8101310
+_08087128: .4byte gUnknown_810137C
+_0808712C: .4byte gUnknown_8101408
+ thumb_func_end TeamMeanieReFightDialogue
+
+ thumb_func_start sub_8087130
+sub_8087130:
+ push {lr}
+ bl sub_8086448
+ ldr r0, _08087140
+ bl sub_80866C4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087140: .4byte gUnknown_8101440
+ thumb_func_end sub_8087130
+
+ thumb_func_start sub_8087144
+sub_8087144:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xF0
+ movs r0, 0x5
+ bl sub_8085680
+ adds r7, r0, 0
+ movs r0, 0x6
+ bl sub_8085680
+ mov r8, r0
+ movs r0, 0x7
+ bl sub_8085680
+ mov r9, r0
+ ldr r1, _080871E0
+ mov r0, sp
+ movs r2, 0x38
+ bl memcpy
+ add r6, sp, 0x38
+ ldr r1, _080871E4
+ adds r0, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ add r4, sp, 0x70
+ ldr r1, _080871E8
+ adds r0, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ add r5, sp, 0xA8
+ mov r0, sp
+ str r0, [r5]
+ str r6, [r5, 0x4]
+ str r4, [r5, 0x8]
+ add r4, sp, 0xB4
+ str r7, [r4]
+ mov r3, r8
+ str r3, [r4, 0x4]
+ mov r0, r9
+ str r0, [r4, 0x8]
+ movs r0, 0xA
+ bl sub_8083E88
+ adds r0, r7, 0
+ bl sub_8086A54
+ mov r0, r8
+ bl sub_8086A54
+ mov r0, r9
+ bl sub_8086A54
+ add r6, sp, 0xC0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl sub_8085B4C
+ ldr r0, [r7, 0x70]
+ ldr r2, _080871EC
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ mov r3, r8
+ ldr r0, [r3, 0x70]
+ adds r0, r2
+ strb r1, [r0]
+ mov r3, r9
+ ldr r0, [r3, 0x70]
+ adds r0, r2
+ strb r1, [r0]
+ b _080871F6
+ .align 2, 0
+_080871E0: .4byte gUnknown_810739C
+_080871E4: .4byte gUnknown_81073D4
+_080871E8: .4byte gUnknown_810740C
+_080871EC: .4byte 0x0000015f
+_080871F0:
+ movs r0, 0x46
+ bl sub_803E46C
+_080871F6:
+ adds r0, r6, 0
+ bl sub_8085B80
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080871F0
+ ldr r0, [r7, 0x70]
+ ldr r1, _0808722C
+ adds r0, r1
+ strb r2, [r0]
+ mov r3, r8
+ ldr r0, [r3, 0x70]
+ adds r0, r1
+ strb r2, [r0]
+ mov r3, r9
+ ldr r0, [r3, 0x70]
+ adds r0, r1
+ strb r2, [r0]
+ add sp, 0xF0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808722C: .4byte 0x0000015f
+ thumb_func_end sub_8087144
+
+ thumb_func_start sub_8087230
+sub_8087230:
+ push {r4-r6,lr}
+ bl sub_8085480
+ adds r6, r0, 0
+ movs r0, 0x8
+ bl sub_8085680
+ adds r5, r0, 0
+ movs r0, 0x72
+ bl sub_8083E88
+ bl sub_8085374
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ ldr r4, _08087294
+ adds r0, r4, 0
+ bl sub_80855E4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8085918
+ adds r0, r5, 0
+ bl _call_via_r4
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ movs r2, 0x6
+ ldrsh r1, [r6, r2]
+ subs r1, 0x3
+ bl sub_8085860
+ ldr r4, _08087298
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, 0
+ bl CopySpeciesNametoBuffer
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0x91
+ bl CopySpeciesNametoBuffer
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087294: .4byte sub_8086A3C
+_08087298: .4byte gUnknown_202E038
+ thumb_func_end sub_8087230
+
+ thumb_func_start sub_808729C
+sub_808729C:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl sub_8085480
+ adds r5, r0, 0
+ movs r0, 0x8
+ bl sub_8085680
+ adds r4, r0, 0
+ bl sub_80854D4
+ movs r0, 0x4
+ bl sub_8085930
+ ldr r6, _080872DC
+ adds r0, r6, 0
+ bl sub_80855E4
+ movs r0, 0x91
+ bl sub_8086AE4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080872E0
+ movs r1, 0x87
+ lsls r1, 2
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8068FE0
+ b _08087300
+ .align 2, 0
+_080872DC: .4byte sub_8086A3C
+_080872E0:
+ ldr r0, _0808732C
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ str r1, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl sub_8072008
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8085918
+ adds r0, r4, 0
+ bl _call_via_r6
+_08087300:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ subs r1, 0x3
+ bl sub_8085860
+ ldr r4, _08087330
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, 0
+ bl CopySpeciesNametoBuffer
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0x91
+ bl CopySpeciesNametoBuffer
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808732C: .4byte gUnknown_80F57CC
+_08087330: .4byte gUnknown_202E038
+ thumb_func_end sub_808729C
+
+ thumb_func_start sub_8087334
+sub_8087334:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ movs r2, 0xF9
+ lsls r2, 24
+ adds r1, r2
+ lsrs r1, 24
+ cmp r1, 0x2
+ bhi _0808735A
+ cmp r0, 0x8
+ bne _0808735A
+ movs r0, 0x5
+ bl sub_8097FA8
+ ldr r0, _08087360
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+_0808735A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08087360: .4byte gUnknown_203B418
+ thumb_func_end sub_8087334
+
+ thumb_func_start ZapdosPreFightDialogue
+ZapdosPreFightDialogue:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x70
+ bl sub_8085480
+ mov r9, r0
+ bl sub_808548C
+ adds r6, r0, 0
+ movs r0, 0x8
+ bl sub_8085680
+ str r0, [sp, 0x68]
+ bl sub_8086448
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ bl SpriteLookAroundEffect
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ movs r1, 0x4
+ movs r2, 0x1
+ movs r3, 0x2
+ bl sub_80869E4
+ mov r0, r9
+ movs r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_80869E4
+ ldr r0, _08087470
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ movs r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80869E4
+ mov r0, r9
+ movs r1, 0x4
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_80869E4
+ ldr r0, _08087474
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0x3
+ bl sub_808775C
+ bl sub_8083F14
+ movs r0, 0xED
+ lsls r0, 1
+ bl PlaySoundEffect
+ ldr r0, _08087478
+ bl sub_8052910
+ ldr r0, [sp, 0x68]
+ bl sub_8087704
+ movs r0, 0x9
+ bl sub_8083E88
+ adds r0, r6, 0
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_806CDD4
+ ldr r0, _0808747C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80869E4
+ mov r1, sp
+ ldr r0, _08087480
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ str r0, [sp, 0x58]
+ str r6, [sp, 0x5C]
+ add r4, sp, 0x18
+ add r1, sp, 0x58
+ add r2, sp, 0x5C
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl sub_8085B4C
+ ldr r0, [r6, 0x70]
+ ldr r2, _08087484
+ adds r1, r0, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ add r7, sp, 0x28
+ add r3, sp, 0x48
+ mov r8, r3
+ add r0, sp, 0x60
+ mov r10, r0
+ mov r1, sp
+ adds r1, 0x64
+ str r1, [sp, 0x6C]
+ b _0808748E
+ .align 2, 0
+_08087470: .4byte gUnknown_81014B0
+_08087474: .4byte gUnknown_8101504
+_08087478: .4byte gUnknown_81015A0
+_0808747C: .4byte gUnknown_81015D4
+_08087480: .4byte gUnknown_810744C
+_08087484: .4byte 0x0000015f
+_08087488:
+ movs r0, 0x46
+ bl sub_803E46C
+_0808748E:
+ adds r0, r4, 0
+ bl sub_8085B80
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08087488
+ ldr r0, [r6, 0x70]
+ ldr r2, _08087510
+ adds r0, r2
+ strb r5, [r0]
+ ldr r0, [r6, 0x70]
+ ldr r4, _08087514
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80869E4
+ ldr r0, _08087518
+ bl sub_8052910
+ movs r0, 0x3C
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _0808751C
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, [r6, 0x70]
+ adds r0, r4
+ strb r5, [r0]
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x2
+ movs r3, 0x5
+ bl sub_80869E4
+ adds r1, r7, 0
+ ldr r0, _08087520
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ str r7, [sp, 0x60]
+ str r6, [sp, 0x64]
+ mov r0, r8
+ mov r1, r10
+ ldr r2, [sp, 0x6C]
+ movs r3, 0x1
+ bl sub_8085B4C
+ mov r4, r9
+ adds r4, 0xC
+ b _0808752A
+ .align 2, 0
+_08087510: .4byte 0x0000015f
+_08087514: .4byte 0x0000015d
+_08087518: .4byte gUnknown_81015E8
+_0808751C: .4byte gUnknown_8101624
+_08087520: .4byte gUnknown_8107464
+_08087524:
+ movs r0, 0x46
+ bl sub_803E46C
+_0808752A:
+ mov r0, r8
+ bl sub_8085B80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08087524
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_80869E4
+ ldr r0, _080875B0
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0x3
+ bl sub_808775C
+ ldr r0, _080875B4
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0x1
+ bl sub_808775C
+ ldr r0, _080875B8
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r0, 0x2
+ bl sub_808775C
+ ldr r0, _080875BC
+ bl sub_8052910
+ movs r0, 0xA
+ movs r1, 0x46
+ bl sub_803E708
+ movs r1, 0x96
+ lsls r1, 1
+ ldr r0, [sp, 0x68]
+ movs r2, 0xB
+ bl sub_8086A70
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl sub_80858AC
+ add sp, 0x70
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080875B0: .4byte gUnknown_810165C
+_080875B4: .4byte gUnknown_8101750
+_080875B8: .4byte gUnknown_810178C
+_080875BC: .4byte gUnknown_81017B4
+ thumb_func_end ZapdosPreFightDialogue
+
+ .align 2,0
diff --git a/asm/kangaskhan_storage_1.s b/asm/kangaskhan_storage_1.s
index 910210c..190c3ce 100644
--- a/asm/kangaskhan_storage_1.s
+++ b/asm/kangaskhan_storage_1.s
@@ -660,276 +660,4 @@ _08017AEE:
bx r0
thumb_func_end sub_8017A1C
- thumb_func_start sub_8017AF8
-sub_8017AF8:
- push {lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _08017B14
- cmp r0, 0x3
- bhi _08017B0E
- cmp r0, 0x2
- beq _08017B78
- b _08017B82
-_08017B0E:
- cmp r0, 0x4
- beq _08017B50
- b _08017B82
-_08017B14:
- bl sub_801AEA8
- cmp r0, 0
- beq _08017B2A
- movs r0, 0
- bl sub_8099690
- movs r0, 0x12
- bl UpdateKangaskhanStorageState
- b _08017B82
-_08017B2A:
- bl sub_801A8AC
- ldr r1, _08017B48
- ldr r2, [r1]
- str r0, [r2, 0x10]
- ldr r1, _08017B4C
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0xC]
- movs r0, 0xF
- bl UpdateKangaskhanStorageState
- b _08017B82
- .align 2, 0
-_08017B48: .4byte gUnknown_203B208
-_08017B4C: .4byte gUnknown_203B460
-_08017B50:
- bl sub_801A8AC
- ldr r1, _08017B70
- ldr r2, [r1]
- str r0, [r2, 0x10]
- ldr r1, _08017B74
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0xC]
- movs r0, 0x10
- bl UpdateKangaskhanStorageState
- b _08017B82
- .align 2, 0
-_08017B70: .4byte gUnknown_203B208
-_08017B74: .4byte gUnknown_203B460
-_08017B78:
- bl sub_801A928
- movs r0, 0x1
- bl UpdateKangaskhanStorageState
-_08017B82:
- pop {r0}
- bx r0
- thumb_func_end sub_8017AF8
-
- thumb_func_start sub_8017B88
-sub_8017B88:
- push {r4,lr}
- movs r0, 0x1
- bl sub_801CA08
- cmp r0, 0x2
- beq _08017C10
- cmp r0, 0x2
- bhi _08017B9E
- cmp r0, 0x1
- beq _08017C1C
- b _08017C22
-_08017B9E:
- cmp r0, 0x3
- beq _08017BA8
- cmp r0, 0x4
- beq _08017BE4
- b _08017C22
-_08017BA8:
- bl sub_801CFB8
- cmp r0, 0
- beq _08017BB8
- movs r0, 0x1C
- bl UpdateKangaskhanStorageState
- b _08017C22
-_08017BB8:
- bl sub_801CB24
- ldr r4, _08017BE0
- ldr r1, [r4]
- strb r0, [r1, 0x14]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldrb r1, [r1, 0x14]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0xD]
- movs r0, 0x19
- bl UpdateKangaskhanStorageState
- b _08017C22
- .align 2, 0
-_08017BE0: .4byte gUnknown_203B208
-_08017BE4:
- bl sub_801CB24
- ldr r4, _08017C0C
- ldr r1, [r4]
- strb r0, [r1, 0x14]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldrb r1, [r1, 0x14]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0xD]
- movs r0, 0x1A
- bl UpdateKangaskhanStorageState
- b _08017C22
- .align 2, 0
-_08017C0C: .4byte gUnknown_203B208
-_08017C10:
- bl sub_801CBB8
- movs r0, 0x1
- bl UpdateKangaskhanStorageState
- b _08017C22
-_08017C1C:
- movs r0, 0
- bl sub_801AD34
-_08017C22:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017B88
-
- thumb_func_start sub_8017C28
-sub_8017C28:
- push {r4,lr}
- movs r0, 0
- bl sub_801CA08
- ldr r4, _08017C54
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0xA8
- bl sub_8013BBC
- cmp r0, 0x1
- beq _08017C58
- cmp r0, 0x1
- bcc _08017C76
- cmp r0, 0x2
- beq _08017C70
- cmp r0, 0x3
- beq _08017C5E
- b _08017C76
- .align 2, 0
-_08017C54: .4byte gUnknown_203B208
-_08017C58:
- bl sub_8017598
- b _08017C76
-_08017C5E:
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xA8
- ldr r1, [r1]
- strb r1, [r0, 0xD]
- movs r0, 0x1B
- bl UpdateKangaskhanStorageState
- b _08017C76
-_08017C70:
- movs r0, 0x17
- bl UpdateKangaskhanStorageState
-_08017C76:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017C28
-
- thumb_func_start sub_8017C7C
-sub_8017C7C:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _08017CBC
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08017CAC
- ldr r0, [r4]
- adds r0, 0x58
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08017CAC
- ldr r0, [r4]
- str r1, [r0, 0x1C]
-_08017CAC:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08017CC6
- cmp r0, 0x2
- bgt _08017CC0
- cmp r0, 0x1
- beq _08017D14
- b _08017D1A
- .align 2, 0
-_08017CBC: .4byte gUnknown_203B208
-_08017CC0:
- cmp r0, 0x6
- beq _08017D06
- b _08017D1A
-_08017CC6:
- movs r0, 0
- bl sub_8099690
- ldr r4, _08017CE4
- ldr r0, [r4]
- ldrb r0, [r0, 0xE]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- bne _08017CE8
- movs r0, 0x9
- bl UpdateKangaskhanStorageState
- b _08017D1A
- .align 2, 0
-_08017CE4: .4byte gUnknown_203B208
-_08017CE8:
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _08017CFE
- movs r0, 0xA
- bl UpdateKangaskhanStorageState
- b _08017D1A
-_08017CFE:
- movs r0, 0x11
- bl UpdateKangaskhanStorageState
- b _08017D1A
-_08017D06:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x10
- bl UpdateKangaskhanStorageState
- b _08017D1A
-_08017D14:
- movs r0, 0xE
- bl UpdateKangaskhanStorageState
-_08017D1A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017C7C
-
.align 2,0
diff --git a/asm/kangaskhan_storage_2.s b/asm/kangaskhan_storage_2.s
index e0cda63..24a5a3c 100644
--- a/asm/kangaskhan_storage_2.s
+++ b/asm/kangaskhan_storage_2.s
@@ -5,409 +5,6 @@
.text
- thumb_func_start sub_8017F28
-sub_8017F28:
- push {r4-r7,lr}
- ldr r4, _08017F48
- ldr r0, [r4]
- adds r0, 0xF0
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0xD
- bls _08017F3E
- b _080180BC
-_08017F3E:
- lsls r0, 2
- ldr r1, _08017F4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017F48: .4byte gUnknown_203B20C
-_08017F4C: .4byte _08017F50
- .align 2, 0
-_08017F50:
- .4byte _080180BC
- .4byte _08017F88
- .4byte _080180BC
- .4byte _080180BC
- .4byte _08017FE8
- .4byte _08017FE8
- .4byte _0801809C
- .4byte _080180BC
- .4byte _080180BC
- .4byte _080180BC
- .4byte _08018034
- .4byte _08018034
- .4byte _08018084
- .4byte _0801809C
-_08017F88:
- ldr r4, _08017FDC
- ldr r1, [r4]
- ldr r2, _08017FE0
- adds r1, 0xF0
- adds r0, r2, 0
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldr r1, [r4]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, [r4]
- adds r0, 0xF0
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r2!, {r1,r3,r5}
- stm r0!, {r1,r3,r5}
- bl sub_80182E4
- ldr r2, [r4]
- movs r0, 0x90
- lsls r0, 1
- adds r2, r0
- ldr r1, _08017FE4
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r5-r7}
- stm r2!, {r5-r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0x20
- bl sub_8012CAC
- b _080180E0
- .align 2, 0
-_08017FDC: .4byte gUnknown_203B20C
-_08017FE0: .4byte gUnknown_80DB7B8
-_08017FE4: .4byte gUnknown_80DB7D0
-_08017FE8:
- ldr r3, _0801802C
- ldr r1, [r3]
- ldr r2, _08018030
- adds r1, 0xF0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r1, [r3]
- movs r5, 0x90
- lsls r5, 1
- adds r1, r5
- adds r0, r2, 0
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r3]
- adds r0, 0xF0
- ldm r2!, {r1,r3,r4}
- stm r0!, {r1,r3,r4}
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- b _080180E0
- .align 2, 0
-_0801802C: .4byte gUnknown_203B20C
-_08018030: .4byte gUnknown_80DB7B8
-_08018034:
- ldr r3, _08018078
- ldr r1, [r3]
- ldr r2, _0801807C
- adds r1, 0xF0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r0, [r3]
- movs r5, 0x90
- lsls r5, 1
- adds r0, r5
- ldm r2!, {r1,r6,r7}
- stm r0!, {r1,r6,r7}
- ldm r2!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xF0
- ldr r0, _08018080
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- b _080180E0
- .align 2, 0
-_08018078: .4byte gUnknown_203B20C
-_0801807C: .4byte gUnknown_80DB7B8
-_08018080: .4byte gUnknown_80DB800
-_08018084:
- ldr r0, _08018094
- ldr r1, [r0]
- movs r7, 0x84
- lsls r7, 1
- adds r1, r7
- ldr r0, _08018098
- b _080180A8
- .align 2, 0
-_08018094: .4byte gUnknown_203B20C
-_08018098: .4byte gUnknown_80DB818
-_0801809C:
- ldr r0, _080180B4
- ldr r1, [r0]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r0
- ldr r0, _080180B8
-_080180A8:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _080180E0
- .align 2, 0
-_080180B4: .4byte gUnknown_203B20C
-_080180B8: .4byte gUnknown_80DB7E8
-_080180BC:
- ldr r0, _080180F8
- mov r12, r0
- ldr r4, _080180FC
- movs r3, 0
- movs r2, 0x3
-_080180C6:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xF0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _080180C6
-_080180E0:
- bl ResetUnusedInputStruct
- ldr r0, _080180F8
- ldr r0, [r0]
- adds r0, 0xF0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080180F8: .4byte gUnknown_203B20C
-_080180FC: .4byte gUnknown_80DB7B8
- thumb_func_end sub_8017F28
-
- thumb_func_start sub_8018100
-sub_8018100:
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _0801811C
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xE
- bls _08018112
- b _08018278
-_08018112:
- lsls r0, 2
- ldr r1, _08018120
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801811C: .4byte gUnknown_203B20C
-_08018120: .4byte _08018124
- .align 2, 0
-_08018124:
- .4byte _08018278
- .4byte _08018160
- .4byte _08018278
- .4byte _08018278
- .4byte _08018172
- .4byte _08018180
- .4byte _08018188
- .4byte _080181A8
- .4byte _08018278
- .4byte _08018278
- .4byte _080181B2
- .4byte _080181C0
- .4byte _080181CE
- .4byte _0801823C
- .4byte _08018270
-_08018160:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x14]
- b _0801825C
-_08018172:
- movs r0, 0x3
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08018278
-_08018180:
- movs r0, 0x1
- bl sub_801A8D0
- b _08018278
-_08018188:
- bl sub_801A9E0
- bl sub_801841C
- ldr r0, _080181A4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x18]
- b _0801825C
- .align 2, 0
-_080181A4: .4byte gUnknown_203B20C
-_080181A8:
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_801B3C0
- b _08018278
-_080181B2:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801C8C4
- b _080181C6
-_080181C0:
- movs r0, 0x1
- bl sub_801CB5C
-_080181C6:
- movs r0, 0
- bl sub_801AD34
- b _08018278
-_080181CE:
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xD0
- movs r0, 0x2
- str r0, [r1]
- subs r1, 0x8
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _080181F8
- ldr r1, [r0]
- ldrb r0, [r2, 0xA]
- lsls r0, 1
- adds r1, 0x50
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0x63
- bls _080181FC
- adds r1, r2, 0
- adds r1, 0xCC
- movs r0, 0x63
- b _08018202
- .align 2, 0
-_080181F8: .4byte gUnknown_203B460
-_080181FC:
- adds r1, r2, 0
- adds r1, 0xCC
- ldrh r0, [r3]
-_08018202:
- str r0, [r1]
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xC4
- adds r0, r2, 0
- adds r0, 0xCC
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x10
- movs r0, 0x1
- str r0, [r1]
- adds r1, 0x4
- movs r3, 0x84
- lsls r3, 1
- adds r0, r2, r3
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x28
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0xC0
- bl sub_8013AA0
- bl sub_8018280
- b _08018278
-_0801823C:
- bl sub_801CCD8
- movs r0, 0
- bl sub_801AD34
- bl sub_80184D4
- ldr r0, _0801826C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x1C]
-_0801825C:
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08018278
- .align 2, 0
-_0801826C: .4byte gUnknown_203B20C
-_08018270:
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_801B3C0
-_08018278:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8018100
-
thumb_func_start sub_8018280
sub_8018280:
push {r4,lr}
diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s
index a225f8d..8232d41 100644
--- a/asm/pokemon_2.s
+++ b/asm/pokemon_2.s
@@ -1430,298 +1430,4 @@ _0808E8C4:
bx r1
thumb_func_end sub_808E858
- thumb_func_start GetUnownIndex
-GetUnownIndex:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xCA
- bne _0808E8D6
- movs r0, 0x1
- b _0808E9B2
-_0808E8D6:
- cmp r1, 0xCB
- bne _0808E8DE
- movs r0, 0x2
- b _0808E9B2
-_0808E8DE:
- cmp r1, 0xCC
- bne _0808E8E6
- movs r0, 0x3
- b _0808E9B2
-_0808E8E6:
- cmp r1, 0xCD
- bne _0808E8EE
- movs r0, 0x4
- b _0808E9B2
-_0808E8EE:
- cmp r1, 0xCE
- bne _0808E8F6
- movs r0, 0x5
- b _0808E9B2
-_0808E8F6:
- cmp r1, 0xCF
- bne _0808E8FE
- movs r0, 0x6
- b _0808E9B2
-_0808E8FE:
- cmp r1, 0xD0
- bne _0808E906
- movs r0, 0x7
- b _0808E9B2
-_0808E906:
- cmp r1, 0xD1
- bne _0808E90E
- movs r0, 0x8
- b _0808E9B2
-_0808E90E:
- cmp r1, 0xD2
- bne _0808E916
- movs r0, 0x9
- b _0808E9B2
-_0808E916:
- cmp r1, 0xD3
- bne _0808E91E
- movs r0, 0xA
- b _0808E9B2
-_0808E91E:
- cmp r1, 0xD4
- bne _0808E926
- movs r0, 0xB
- b _0808E9B2
-_0808E926:
- cmp r1, 0xD5
- bne _0808E92E
- movs r0, 0xC
- b _0808E9B2
-_0808E92E:
- cmp r1, 0xD6
- bne _0808E936
- movs r0, 0xD
- b _0808E9B2
-_0808E936:
- cmp r1, 0xD7
- bne _0808E93E
- movs r0, 0xE
- b _0808E9B2
-_0808E93E:
- cmp r1, 0xD8
- bne _0808E946
- movs r0, 0xF
- b _0808E9B2
-_0808E946:
- cmp r1, 0xD9
- bne _0808E94E
- movs r0, 0x10
- b _0808E9B2
-_0808E94E:
- cmp r1, 0xDA
- bne _0808E956
- movs r0, 0x11
- b _0808E9B2
-_0808E956:
- cmp r1, 0xDB
- bne _0808E95E
- movs r0, 0x12
- b _0808E9B2
-_0808E95E:
- cmp r1, 0xDC
- bne _0808E966
- movs r0, 0x13
- b _0808E9B2
-_0808E966:
- cmp r1, 0xDD
- bne _0808E96E
- movs r0, 0x14
- b _0808E9B2
-_0808E96E:
- cmp r1, 0xDE
- bne _0808E976
- movs r0, 0x15
- b _0808E9B2
-_0808E976:
- cmp r1, 0xDF
- bne _0808E97E
- movs r0, 0x16
- b _0808E9B2
-_0808E97E:
- cmp r1, 0xE0
- bne _0808E986
- movs r0, 0x17
- b _0808E9B2
-_0808E986:
- cmp r1, 0xE1
- bne _0808E98E
- movs r0, 0x18
- b _0808E9B2
-_0808E98E:
- cmp r1, 0xE2
- bne _0808E996
- movs r0, 0x19
- b _0808E9B2
-_0808E996:
- ldr r0, _0808E9A0
- cmp r1, r0
- bne _0808E9A4
- movs r0, 0x1A
- b _0808E9B2
- .align 2, 0
-_0808E9A0: .4byte 0x0000019f
-_0808E9A4:
- movs r0, 0xD0
- lsls r0, 1
- cmp r1, r0
- beq _0808E9B0
- movs r0, 0
- b _0808E9B2
-_0808E9B0:
- movs r0, 0x1B
-_0808E9B2:
- pop {r1}
- bx r1
- thumb_func_end GetUnownIndex
-
- thumb_func_start sub_808E9B8
-sub_808E9B8:
- ldrh r1, [r0]
- ldr r0, _0808E9C0
- ands r0, r1
- bx lr
- .align 2, 0
-_0808E9C0: .4byte 0x000001ff
- thumb_func_end sub_808E9B8
-
- thumb_func_start sub_808E9C4
-sub_808E9C4:
- lsls r1, 16
- asrs r1, 16
- ldrh r3, [r0]
- movs r2, 0xFE
- lsls r2, 8
- ands r2, r3
- orrs r2, r1
- strh r2, [r0]
- bx lr
- thumb_func_end sub_808E9C4
-
- thumb_func_start sub_808E9D8
-sub_808E9D8:
- lsls r2, 16
- asrs r2, 16
- lsls r1, 9
- orrs r2, r1
- strh r2, [r0]
- bx lr
- thumb_func_end sub_808E9D8
-
- thumb_func_start sub_808E9E4
-sub_808E9E4:
- ldrh r0, [r0]
- lsrs r0, 9
- bx lr
- thumb_func_end sub_808E9E4
-
- thumb_func_start sub_808E9EC
-sub_808E9EC:
- push {r4-r6,lr}
- adds r3, r1, 0
- ldrb r2, [r0, 0x18]
- str r2, [r3]
- ldrb r1, [r0, 0x19]
- str r1, [r3, 0x4]
- ldrb r1, [r0, 0x1A]
- str r1, [r3, 0x8]
- ldrb r1, [r0, 0x1B]
- str r1, [r3, 0xC]
- movs r1, 0
- strb r1, [r3, 0x10]
- strb r1, [r3, 0x11]
- strb r1, [r3, 0x12]
- strb r1, [r3, 0x13]
- adds r1, r0, 0
- adds r1, 0x28
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808EA96
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0x13
- bne _0808EA2A
- ldr r1, _0808EA9C
- ldrh r0, [r1]
- strb r0, [r3, 0x10]
- movs r6, 0
- ldrsh r0, [r1, r6]
- adds r0, r2, r0
- str r0, [r3]
-_0808EA2A:
- cmp r4, 0x21
- bne _0808EA42
- ldr r1, _0808EAA0
- ldrb r0, [r1]
- ldrb r2, [r3, 0x11]
- adds r0, r2
- strb r0, [r3, 0x11]
- movs r6, 0
- ldrsh r1, [r1, r6]
- ldr r0, [r3, 0x4]
- adds r0, r1
- str r0, [r3, 0x4]
-_0808EA42:
- cmp r4, 0x2B
- bne _0808EA66
- ldr r2, _0808EAA4
- ldrb r0, [r2]
- ldrb r6, [r3, 0x10]
- adds r1, r0, r6
- strb r1, [r3, 0x10]
- ldrb r1, [r3, 0x11]
- adds r0, r1
- strb r0, [r3, 0x11]
- movs r6, 0
- ldrsh r1, [r2, r6]
- ldr r0, [r3]
- adds r0, r1
- str r0, [r3]
- ldr r0, [r3, 0x4]
- adds r0, r1
- str r0, [r3, 0x4]
-_0808EA66:
- cmp r4, 0x1E
- bne _0808EA7E
- ldr r1, _0808EAA8
- ldrb r0, [r1]
- ldrb r2, [r3, 0x12]
- adds r0, r2
- strb r0, [r3, 0x12]
- movs r6, 0
- ldrsh r1, [r1, r6]
- ldr r0, [r3, 0x8]
- adds r0, r1
- str r0, [r3, 0x8]
-_0808EA7E:
- cmp r5, 0x22
- bne _0808EA96
- ldr r1, _0808EAAC
- ldrb r0, [r1]
- ldrb r2, [r3, 0x13]
- adds r0, r2
- strb r0, [r3, 0x13]
- movs r6, 0
- ldrsh r1, [r1, r6]
- ldr r0, [r3, 0xC]
- adds r0, r1
- str r0, [r3, 0xC]
-_0808EA96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808EA9C: .4byte gUnknown_810AC60
-_0808EAA0: .4byte gUnknown_810AC62
-_0808EAA4: .4byte gUnknown_810AC68
-_0808EAA8: .4byte gUnknown_810AC64
-_0808EAAC: .4byte gUnknown_810AC66
- thumb_func_end sub_808E9EC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/include/code_8041D5C.h b/include/code_8041D5C.h
index 39df243..6c75c23 100644
--- a/include/code_8041D5C.h
+++ b/include/code_8041D5C.h
@@ -10,7 +10,7 @@ struct subStruct_8048524
/* 0xE */ s16 HP; // HP??
s16 unk10;
u8 fill12[0x46 - 0x12];
- u8 unk46;
+ s8 unk46;
u8 fill47[0xA4 - 0x47];
u8 unkA4;
u8 fillA5[0xAC - 0xA5];
@@ -38,7 +38,9 @@ struct unkDungeon_8041D5C
u32 unk8;
s32 unkC;
s32 unk10;
- u8 fill14[0x70 - 0x14];
+ u8 fill14[0x20 - 0x14];
+ u8 unk20;
+ u8 unk21[0x70 - 0x21];
struct subStruct_8048524 *unk70;
};
diff --git a/include/constants/bg_music.h b/include/constants/bg_music.h
index a51e244..53b18fb 100644
--- a/include/constants/bg_music.h
+++ b/include/constants/bg_music.h
@@ -2,19 +2,86 @@
#define GUARD_BG_MUSIC_H
#define MUS_TEAM_BASE 1
+#define MUS_FRIEND_AREA_SWAMP 2
+#define MUS_FRIEND_AREA_CAVES 3
+#define MUS_DREAM 4
+#define MUS_BENEVOLENT_SPIRT 5
+#define MUS_LEGEND_OF_NINETALES 6
#define MUS_POKEMON_SQUARE 7
#define MUS_LOADING_SCREEN 8
+#define MUS_RISING_FEAR 9
#define MUS_THERES_TROUBLE 10
+#define MUS_DECISIVE_BATTLE 11
+#define MUS_WELCOME_TO_WORLD_POKEMON 12
+#define MUS_BURIED_RELIC 13
+#define MUS_THUNDERWAVE_CAVE 14
+#define MUS_SINISTER_WOODS 15
+#define MUS_FRIEND_AREA_POND 16
#define MUS_KECLEON_SHOP 17
#define MUS_STOP_THIEF 18
-#define MUS_WORLD_CALAMITY 19
+#define MUS_WORLD_CALAMITY 19 // GIANT_STAR_APPROACHING
+#define MUS_GRAND_CANYON 20
+#define MUS_STORMY_SEA 21
+#define MUS_SKY_TOWER 22
+#define MUS_SKY_TOWER_SUMMIT 23
+#define MUS_RUN_AWAY 24
+#define MUS_MT_BLAZE 25
+#define MUS_SKY_TOWER_END 26
+#define MUS_FRIEND_AREA_STRATOS_LOOKOUT 27
+#define MUS_FRIEND_AREA_RAINBOW_PEAK 28
+#define MUS_GENGAR_DREAM 29
+#define MUS_FRIEND_AREA_DEEPSEA_CURRENT 30
+#define MUS_FRIEND_AREA_SEAFLOOR_CAVE 31
+#define MUS_LAST_BATTLE 32
+#define MUS_MT_BLAZE_PEAK 33
+#define MUS_FRIEND_AREA_VOLCANIC_PIT 34
+#define MUS_FRIEND_AREA_CRYPTIC_CAVE 35
+#define MUS_THROUGH_THE_LAND_OF_ICE_AND_SNOW 36
+#define MUS_GENGAR_DARK_WORLD 37
+#define MUS_MT_BLAZE_END 38
+#define MUS_FROSTY_GROTTO 39
#define MUS_INTRO 40
+#define MUS_AFTER_THE_BATTLE 41
+#define MUS_NEVER_FORGET 42
#define MUS_TITLE_SCREEN 43
#define MUS_CREDITS 44
#define MUS_EPILOGUE 45
+#define MUS_OPENING_TITLE 46
#define MUS_DUNGEON_FAIL 51
#define MUS_DUNGEON_COMPLETE 52
+// 53 - 99 are blank/empty slots for BG Music
+
+#define MUS_FRIEND_AREA_UNUSED_1 100
+#define MUS_MEETING_WITH_PARTNER 101
+#define MUS_LAPIS_CAVE 102
+#define MUS_A_SUCCESSFUL_RESCUE 103
+#define MUS_FROSTY_FOREST 104
+#define MUS_FRIEND_AREA_STEPPE 105
+#define MUS_FRIEND_AREA_OCEANIC 106
+#define MUS_FRIEND_AREA_FIELD 107
+#define MUS_MAGMA_CAVERN 108
+#define MUS_FRIEND_AREA_UNUSED_2 109
+#define MUS_MAKUHITA_DOJO 110
+#define MUS_MT_THUNDER 111
+#define MUS_FRIEND_AREA_LAB 112
+#define MUS_SILENT_CHASM 113
+#define MUS_IN_THE_DEPTHS_OF_PIT 114
+#define MUS_MT_FREEZE 115
+#define MUS_FRIEND_AREA_WILDS 116
+#define MUS_FRIEND_AREA_LEGENDARY_ISLAND 117
+#define MUS_FRIEND_AREA_SOUTHERN_ISLAND 118
+#define MUS_FRIEND_AREA_ENCLOSED_ISLAND 119
+#define MUS_MT_STEEL 120
+#define MUS_FRIEND_AREA_FOREST 121
+#define MUS_FRIEND_AREA_FINAL_ISLAND 122
+#define MUS_MT_FREEZE_PEAK 123
+#define MUS_MAGMA_CAVERN_PIT 124
+#define MUS_TINY_WOODS 125
+#define MUS_MT_THUNDER_PEAK 126
+#define MUS_FRIEND_AREA_HEALING_FOREST 127
+#define MUS_MONSTER_HOUSE 128
+
#define NUM_BG_SONGS 128
#endif //GUARD_BG_MUSIC_H
diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h
index 3f1292a..6b42151 100644
--- a/include/kangaskhan_storage.h
+++ b/include/kangaskhan_storage.h
@@ -3,6 +3,7 @@
#include "text.h"
#include "menu.h"
+#include "gUnknown_203B460.h"
struct unkStruct_203B208
{
@@ -10,11 +11,10 @@ struct unkStruct_203B208
u32 unk0;
u32 currState;
u32 unk8;
- u16 unkC;
- u8 itemIndex;
- u8 unkF;
+ struct ItemStruct_203B460 unkC;
u32 unk10;
- u32 unk14;
+ u8 unk14; // another itemIndex?
+ u8 fill15[0x3];
u32 unk18;
u32 unk1C;
u32 unk20;
diff --git a/include/pokemon.h b/include/pokemon.h
index 223c74f..a7b2acb 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -156,5 +156,6 @@ u8 GetPokemonOverworldPalette(s16 index, u32 r1);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 r1);
struct OpenedFile *OpenPokemonDialogueSpriteFile(s16 index);
struct OpenedFile *GetDialogueSpriteDataPtr(s16 index);
+s32 GetUnownIndex(s16 index);
#endif // POKEMON_H
diff --git a/ld_script.txt b/ld_script.txt
index 3f7b5df..5932f0b 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -180,6 +180,8 @@ SECTIONS {
src/code_8057824.o(.text);
asm/code_8057824.o(.text);
asm/code_807001C.o(.text);
+ src/code_80869E4.o(.text);
+ asm/code_80869E4.o(.text);
src/code_8057824_1.o(.text);
asm/jirachi_wish.o(.text);
src/code_80521D0_1.o(.text);
diff --git a/src/code_800C9CC.c b/src/code_800C9CC.c
index cbd2ede..20d54e7 100644
--- a/src/code_800C9CC.c
+++ b/src/code_800C9CC.c
@@ -3,16 +3,18 @@
#include "bg.h"
extern u16 gRawKeyInput;
-extern u8 gBldAlpha_CoeffA;
-extern u8 gBldAlpha_CoeffB;
-extern u16 gBldAlpha;
-extern u8 gUnknown_202D7FE;
extern struct BGControlStruct gBG0Control;
extern struct BGControlStruct gBG1Control;
extern struct BGControlStruct gBG2Control;
extern struct BGControlStruct gBG3Control;
+extern u8 gBldAlpha_CoeffA;
+extern u8 gBldAlpha_CoeffB;
+extern u16 gBldAlpha;
+extern u8 gUnknown_202D7FE;
+
+
void ReadKeyInput(struct Inputs *r0)
{
u16 keyInput = REG_KEYINPUT ^ KEYS_MASK;
diff --git a/src/code_80869E4.c b/src/code_80869E4.c
new file mode 100644
index 0000000..07c657f
--- /dev/null
+++ b/src/code_80869E4.c
@@ -0,0 +1,498 @@
+#include "global.h"
+#include "code_8041D5C.h"
+#include "gUnknown_203B418.h"
+#include "random.h"
+
+struct unkStruct_202F3D0
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+};
+
+EWRAM_DATA struct unkStruct_202F3D0 gUnknown_202F3D0;
+extern struct unkStruct_203B418 *gUnknown_203B418;
+
+s8 sub_8002984(s8, u8);
+void sub_803E708(u32, u32);
+void sub_80869E4(struct unkDungeon_8041D5C *r0, u32, u8, s8);
+extern void sub_80859F0(u32);
+extern void sub_803E46C(u32);
+extern void sub_803E9D0(void);
+extern void sub_8085C54(u32, u32, u32, u32, u32);
+extern void PlaySoundEffect(u32);
+extern struct unkDungeon_8041D5C *sub_8085480(void);
+void SpriteLookAroundEffect(struct unkDungeon_8041D5C *r0);
+extern void sub_8052910(u32);
+void sub_8086494();
+
+extern u32 gUnknown_8107314[];
+extern u32 gUnknown_202EDC8;
+
+
+extern void sub_8085EB0(void);
+extern void sub_803E748(void);
+extern void sub_80855E4(void *);
+extern u32 sub_803F994(void);
+extern u32 sub_803F9B0(void);
+extern void sub_803F878(u32, u32);
+extern void sub_8086384(struct unkDungeon_8041D5C *r0);
+extern void sub_8085930(u32);
+extern void sub_804539C(struct unkDungeon_8041D5C *, u32, u32);
+extern void sub_806CE68(struct unkDungeon_8041D5C *, u32);
+extern void sub_806CDD4(struct unkDungeon_8041D5C *, u8, u32);
+extern void sub_804535C(struct unkDungeon_8041D5C *, u32 *);
+extern void sub_8086A54(struct unkDungeon_8041D5C *);
+extern void sub_8086A3C(struct unkDungeon_8041D5C *);
+extern void PlaySoundEffect(u32);
+extern void sub_80861F8(u32, struct unkDungeon_8041D5C *, u32);
+
+void sub_80862BC(struct unkDungeon_8041D5C *r0)
+{
+ PlaySoundEffect(0xE8 << 1);
+ sub_80861F8(0x143, r0, 0);
+}
+
+void sub_80862DC(struct unkDungeon_8041D5C *r0)
+{
+ u32 array[2];
+ array[0] = r0->unkC;
+ array[1] = r0->unk10 + (0xE0 << 6);
+
+ sub_804535C(r0, array);
+ sub_806CDD4(r0, 0, 4);
+ sub_8086A54(r0);
+}
+
+void sub_8086310(struct unkDungeon_8041D5C *r0)
+{
+ u32 array[2];
+ array[0] = r0->unkC;
+ array[1] = r0->unk10 + (0x90 << 8);
+
+ sub_804535C(r0, array);
+ sub_806CE68(r0, 0);
+ sub_8086A3C(r0);
+ r0->unk20 = 0;
+}
+
+void sub_8086348(struct unkDungeon_8041D5C *r0)
+{
+ u32 array[2];
+ array[0] = r0->unkC + (0xF0 << 7);
+ array[1] = r0->unk10 + 0xffffe000;
+
+ sub_804535C(r0, array);
+ sub_806CDD4(r0, 0, 6);
+ sub_8086A54(r0);
+}
+
+void sub_8086384(struct unkDungeon_8041D5C *r0)
+{
+ u32 array[2];
+ array[0] = r0->unkC + (0xF0 << 7);
+ array[1] = r0->unk10;
+
+ sub_804535C(r0, array);
+ sub_806CDD4(r0, 0, 6);
+ sub_8086A54(r0);
+}
+
+void sub_80863B8(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CDD4(r0, 0, 4);
+}
+
+void sub_80863C8(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CDD4(r0, 0, 0);
+}
+
+void sub_80863D8(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CDD4(r0, 0, 6);
+}
+
+void sub_80863E8(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CDD4(r0, 6, 4);
+}
+
+void sub_80863F8(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CE68(r0, 4);
+}
+
+void sub_8086404(struct unkDungeon_8041D5C *r0)
+{
+ sub_806CE68(r0, 6);
+}
+
+void sub_8086410(struct unkDungeon_8041D5C *r0)
+{
+ sub_804539C(r0, 0, 0xffffff00);
+}
+
+void sub_8086424(struct unkDungeon_8041D5C *r0)
+{
+ sub_804539C(r0, 0, 0x80 << 1);
+}
+
+void sub_8086434(struct unkDungeon_8041D5C *r0)
+{
+ sub_804539C(r0, 0xffffff00, 0);
+}
+
+void sub_8086448(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_80862DC);
+
+ for(iVar1 = 0; iVar1 < 0x38; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar2 = sub_803F9B0();
+ retVar2 += (0x80 << 1);
+ sub_803F878(retVar, retVar2);
+ sub_80855E4(sub_8086410);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_80863F8);
+}
+
+void sub_8086494(void)
+{
+ s32 iVar1;
+
+ sub_8085930(3);
+ sub_803E708(4, 0x46);
+
+ sub_8085930(2);
+ sub_803E708(4, 0x46);
+
+ sub_8085930(1);
+ sub_803E708(4, 0x46);
+
+ sub_8085930(0);
+ sub_803E708(4, 0x46);
+
+ sub_80855E4(sub_80863C8);
+ for(iVar1 = 0; iVar1 < 0x90; iVar1++)
+ {
+ sub_80855E4(sub_8086424);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_8086310);
+}
+
+void sub_8086500(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_8086348);
+
+ for(iVar1 = 0; iVar1 < 0x48; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar += (0x80 << 1);
+ retVar2 = sub_803F9B0();
+ sub_803F878(retVar, retVar2);
+ sub_80855E4(sub_8086434);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_8086404);
+}
+
+void sub_808654C(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_8086384);
+
+ for(iVar1 = 0; iVar1 < 0x78; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar += (0x80 << 1);
+ retVar2 = sub_803F9B0();
+ sub_803F878(retVar, retVar2);
+ sub_80855E4(sub_8086434);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_8086404);
+}
+
+void sub_8086598(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_80863B8);
+
+ for(iVar1 = 0; iVar1 < 0x18; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar2 = sub_803F9B0();
+ sub_803F878(retVar, retVar2 + (0xffffff00));
+ sub_80855E4(sub_8086410);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_80863F8);
+}
+
+void sub_80865E8(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_80863E8);
+
+ for(iVar1 = 0; iVar1 < 0xC; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar2 = sub_803F9B0();
+ sub_803F878(retVar, retVar2 + (0x80 << 2));
+ sub_80855E4(sub_8086424);
+ sub_80855E4(sub_8086424);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_80863F8);
+}
+
+void sub_808663C(void)
+{
+ s32 iVar1;
+ u32 retVar;
+ u32 retVar2;
+
+ sub_80855E4(sub_80863E8);
+
+ for(iVar1 = 0; iVar1 < 0x10; iVar1++)
+ {
+ retVar = sub_803F994();
+ retVar2 = sub_803F9B0();
+ sub_803F878(retVar, retVar2 + (0x80 << 2));
+ sub_80855E4(sub_8086424);
+ sub_80855E4(sub_8086424);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_80863F8);
+}
+
+
+void sub_8086690(void)
+{
+ s32 iVar1;
+
+ sub_80855E4(sub_80863D8);
+
+ for(iVar1 = 0; iVar1 < 0x30; iVar1++)
+ {
+ sub_80855E4(sub_8086434);
+ sub_803E46C(0x46);
+ }
+ sub_80855E4(sub_8086404);
+}
+
+
+void sub_80866C4(u32 r0)
+{
+
+ SpriteLookAroundEffect(sub_8085480());
+ sub_803E708(0xA, 0x46);
+ sub_8052910(r0);
+ sub_803E708(0xA, 0x46);
+ sub_8086494();
+ gUnknown_203B418->unk2 = 1;
+}
+
+void sub_80866FC(void)
+{
+ s32 iVar1;
+
+ for(iVar1 = 0; iVar1 >= -0xFA; iVar1 -= 0xA)
+ {
+ sub_8085C54(iVar1, iVar1, iVar1, 1, 0);
+ sub_803E46C(0x46);
+ }
+}
+
+void sub_808627C(void)
+{
+ sub_803E748();
+}
+
+void sub_8086738(void)
+{
+ s32 iVar1;
+
+ for(iVar1 = 0; iVar1 < 0xFA; iVar1 += 0xA)
+ {
+ sub_8085C54(iVar1, iVar1, iVar1, 1, 0);
+ sub_803E46C(0x46);
+ }
+}
+
+void sub_8086764(void)
+{
+ s32 iVar1;
+
+ for(iVar1 = 0xFA; iVar1 >= 0; iVar1 -= 5)
+ {
+ sub_8085C54(iVar1, iVar1, iVar1, 1, 0);
+ sub_803E46C(0x46);
+ }
+ sub_8085EB0();
+}
+
+void sub_8086794(void)
+{
+ s32 iVar1;
+
+ gUnknown_202EDC8 = 0;
+
+ for(iVar1 = 0; iVar1 < 0xC8; iVar1++)
+ {
+ sub_8085C54(0, 0, 0, 1, 0);
+ sub_803E9D0();
+ sub_803E46C(0x46);
+ if((iVar1 & 3) == 0)
+ {
+ gUnknown_202EDC8++;
+ if(gUnknown_202EDC8 == 0x1F)
+ break;
+ }
+ }
+ sub_803E46C(0x46);
+ gUnknown_203B418->unk7 = 0;
+}
+
+void sub_80867F4(void)
+{
+ gUnknown_202F3D0.unk0 = 0;
+ gUnknown_202F3D0.unk1 = 0;
+ gUnknown_202F3D0.unk2 = 0;
+ gUnknown_202F3D0.unk3 = 0;
+ gUnknown_202F3D0.unk4 = 0;
+ gUnknown_202F3D0.unk5 = 0;
+}
+
+void sub_808680C(void)
+{
+ gUnknown_202F3D0.unk0 = 1;
+ if(gUnknown_202F3D0.unk3 != 0)
+ PlaySoundEffect(0x1F9);
+}
+
+void sub_808682C(u8 r0)
+{
+ gUnknown_202F3D0.unk0 = 0;
+}
+
+void sub_8086838(u8 r0, u8 r1, u8 r2)
+{
+ gUnknown_202F3D0.unk1 = r0;
+ gUnknown_202F3D0.unk2 = r1;
+ gUnknown_202F3D0.unk3 = r2;
+}
+
+void sub_8086848(u8 r0, u8 r1)
+{
+ gUnknown_202F3D0.unk4 = r0;
+ gUnknown_202F3D0.unk5 = r1;
+}
+
+void sub_8086854(void)
+{
+ if(gUnknown_202F3D0.unk0 != 0)
+ {
+ if(gUnknown_202F3D0.unk4 == 0)
+ {
+ if(gUnknown_202F3D0.unk1 != 0)
+ {
+ gUnknown_202F3D0.unk4 = 0x50;
+ gUnknown_202F3D0.unk5 = 0x10;
+ }
+ else
+ {
+ gUnknown_202F3D0.unk4 = RandomCapped(0x6) + 2;
+ gUnknown_202F3D0.unk5 = RandomCapped(0x6) + 2;
+ }
+ if(gUnknown_202F3D0.unk3 != 0)
+ PlaySoundEffect(0x1F9);
+ }
+ else
+ {
+ gUnknown_202F3D0.unk4--;
+ }
+ if(gUnknown_202F3D0.unk5 != 0)
+ gUnknown_202F3D0.unk5--;
+ gUnknown_203B418->unk181FC = gUnknown_8107314[gUnknown_202F3D0.unk5];
+ }
+ else
+ {
+ gUnknown_203B418->unk181FC = 0;
+ }
+}
+
+void sub_80868F4(struct unkDungeon_8041D5C *r0)
+{
+ r0->unk70->unk15C = 1;
+ r0->unk70->unk15D = 1;
+}
+
+void sub_8086910(struct unkDungeon_8041D5C *r0)
+{
+ r0->unk70->unk15C = 0;
+ r0->unk70->unk15D = 0;
+}
+
+void sub_808692C(void)
+{
+ sub_80859F0(5);
+ sub_803E708(0x4, 0x46);
+
+ sub_80859F0(6);
+ sub_803E708(0x4, 0x46);
+
+ sub_80859F0(7);
+ sub_803E708(0x4, 0x46);
+
+ sub_80859F0(0);
+ sub_803E708(0x4, 0x46);
+}
+
+void SpriteLookAroundEffect(struct unkDungeon_8041D5C *r0)
+{
+ s8 r4;
+ s8 r3;
+
+ r4 = sub_8002984(r0->unk70->unk46, 4);
+
+ sub_80869E4(r0, 4, 2, r4);
+
+ sub_803E708(0xF, 0x46);
+
+ r4 = sub_8002984(r4, 5);
+
+ sub_80869E4(r0, 4, 1, r4);
+
+ sub_803E708(0xF, 0x46);
+
+ r3 = sub_8002984(r4, 4);
+
+ sub_80869E4(r0, 4, 2, r3);
+
+ sub_803E708(0xF, 0x46);
+}
diff --git a/src/items.c b/src/items.c
index 2c7dd90..22aa62b 100644
--- a/src/items.c
+++ b/src/items.c
@@ -137,49 +137,37 @@ void sub_8090B08(struct ItemStruct_203B460 *param_1,u8 itemIndex)
}
}
-NAKED
-void sub_8090B64(u32 r0, u32 r1)
+void sub_8090B64(struct ItemStruct_203B460 *param_1,struct ItemStruct_203B460 *param_2)
{
- asm_unified("\tpush {r4-r6,lr}\n"
- "\tadds r4, r0, 0\n"
- "\tadds r5, r1, 0\n"
- "\tldrb r1, [r5]\n"
- "\tadds r0, r1, 0\n"
- "\tcmp r0, 0\n"
- "\tbeq _08090BA4\n"
- "\tmovs r0, 0x1\n"
- "\tstrb r0, [r4]\n"
- "\tstrb r1, [r4, 0x2]\n"
- "\tldrb r0, [r4, 0x2]\n"
- "\tbl sub_8090A60\n"
- "\tlsls r0, 24\n"
- "\tlsrs r6, r0, 24\n"
- "\tcmp r6, 0\n"
- "\tbne _08090B9A\n"
- "\tldrb r0, [r4, 0x2]\n"
- "\tbl GetItemType\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tcmp r0, 0x6\n"
- "\tbeq _08090B9A\n"
- "\tldrb r0, [r4, 0x2]\n"
- "\tcmp r0, 0x7C\n"
- "\tbne _08090BA0\n"
-"_08090B9A:\n"
- "\tldrb r0, [r5, 0x1]\n"
- "\tstrb r0, [r4, 0x1]\n"
- "\tb _08090BAA\n"
-"_08090BA0:\n"
- "\tstrb r6, [r4, 0x1]\n"
- "\tb _08090BAA\n"
-"_08090BA4:\n"
- "\tstrb r0, [r4, 0x2]\n"
- "\tstrb r0, [r4, 0x1]\n"
- "\tstrb r0, [r4]\n"
-"_08090BAA:\n"
- "\tpop {r4-r6}\n"
- "\tpop {r0}\n"
- "\tbx r0");
+ u8 r6;
+
+ if(param_2->unk0 != 0)
+ {
+ param_1->unk0 = 1;
+ param_1->itemIndex = param_2->unk0;
+ r6 = sub_8090A60(param_1->itemIndex);
+ if(r6 != 0 || GetItemType(param_1->itemIndex) == ITEM_TYPE_MONEY)
+ {
+ param_1->numItems = param_2->numItems;
+ }
+ else
+ {
+ if(param_1->itemIndex == 0x7C)
+ {
+ param_1->numItems = param_2->numItems;
+ }
+ else
+ {
+ param_1->numItems = r6;
+ }
+ }
+ }
+ else
+ {
+ param_1->itemIndex = 0;
+ param_1->numItems = 0;
+ param_1->unk0 = 0;
+ }
}
void sub_8090BB0(struct ItemStruct_203B460 *param_1,struct ItemStruct_203B460 *param_2)
diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c
index d9d253c..e3dcd70 100644
--- a/src/kangaskhan_storage_2.c
+++ b/src/kangaskhan_storage_2.c
@@ -3,17 +3,42 @@
#include "memory.h"
#include "text.h"
#include "item.h"
+#include "input.h"
#include "kangaskhan_storage.h"
+#include "gUnknown_203B460.h"
extern struct unkStruct_203B208 *gUnknown_203B208;
+extern struct unkStruct_203B460 *gUnknown_203B460;
struct unkStruct_203B20C
{
u32 state;
- u8 unk4[0x10];
+ u8 unk4[4];
+ u8 unk8;
+ u8 unk9;
+ u8 unkA;
+ u8 unkB;
+ u8 fillC[0x14 - 0xC];
u32 unk14;
u32 unk18;
u32 unk1C;
+ u32 unk20;
+ u8 fill24[0x60 - 0x24];
+ u32 unk60;
+ u8 fill64[0x70 - 0x64];
+ u32 unk70;
+ u8 fill74[0xC0 - 0x74];
+ u32 unkC0;
+ u32 unkC4;
+ u32 unkC8;
+ u32 unkCC;
+ u32 unkD0;
+ u32 unkD4;
+ struct UnkTextStruct2 *unkD8;
+ u32 unkDC;
+ u32 unkE0;
+ u8 fillE4[0xF0 - 0xE4];
+ struct UnkTextStruct2 unkF0[4];
};
extern struct unkStruct_203B20C *gUnknown_203B20C;
@@ -38,13 +63,172 @@ extern u32 sub_801B410(void);
extern u8 sub_8012FD8(u32 *r0);
extern void sub_8013114(u32 *, s32 *);
extern void sub_801CBB8();
-extern void sub_801CA08();
+
+extern u8 sub_8091524(u8);
+extern u8 sub_801ADA0(u32);
+extern void sub_8099690(u32);
+extern u32 sub_8013BBC(u32 *);
+extern void sub_8017598(void);
+
+extern u32 sub_801CA08(u32);
+extern u32 sub_801CFB8(void);
+extern u8 sub_801CB24();
+extern void sub_8090A8C(struct ItemStruct_203B460 *, u8, u32);
+extern void sub_801AD34(u32);
+extern u32 sub_801A6E8(u32);
+extern u32 sub_801AEA8(void);
+extern u32 sub_801A8AC(void);
+extern void sub_801A928(void);
+extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
+extern void sub_80182E4(void);
+
+extern void sub_801A9E0();
+extern void sub_801841C();
+extern void sub_801CCD8();
+extern void sub_80184D4();
+extern void sub_8018280();
+extern void sub_8013AA0(u32 *);
+extern void sub_801B3C0(u8 *);
+extern void sub_801A5D8(u32, u32, u32, u32);
+extern void sub_801C8C4(u32, u32, u32, u32);
+extern void sub_8012D60(u32 *, u32 *, u32, u32 *, u32, u32);
+extern void sub_801CB5C(u32);
+extern void sub_801A8D0(u32);
+
+extern struct UnkTextStruct2 gUnknown_80DB7B8;
+extern struct UnkTextStruct2 gUnknown_80DB7E8;
+extern struct UnkTextStruct2 gUnknown_80DB7D0;
+extern struct UnkTextStruct2 gUnknown_80DB800;
+extern struct UnkTextStruct2 gUnknown_80DB818;
+
+void sub_8017AF8(void)
+{
+ switch(sub_801A6E8(1))
+ {
+ case 3:
+ if(sub_801AEA8() != 0)
+ {
+ sub_8099690(0);
+ UpdateKangaskhanStorageState(0x12);
+ }
+ else
+ {
+ gUnknown_203B208->unk10 = sub_801A8AC();
+ gUnknown_203B208->unkC = gUnknown_203B460->fill0[gUnknown_203B208->unk10];
+ UpdateKangaskhanStorageState(0xF);
+ }
+ break;
+ case 4:
+ gUnknown_203B208->unk10 = sub_801A8AC();
+ gUnknown_203B208->unkC = gUnknown_203B460->fill0[gUnknown_203B208->unk10];
+ UpdateKangaskhanStorageState(0x10);
+ break;
+ case 2:
+ sub_801A928();
+ UpdateKangaskhanStorageState(1);
+ break;
+ }
+}
+
+void sub_8017B88(void)
+{
+ switch(sub_801CA08(1))
+ {
+ case 3:
+ if(sub_801CFB8() != 0){
+ UpdateKangaskhanStorageState(0x1C);
+ }
+ else
+ {
+ gUnknown_203B208->unk14 = sub_801CB24();
+ sub_8090A8C(&gUnknown_203B208->unkC, gUnknown_203B208->unk14, 0);
+ gUnknown_203B208->unkC.numItems = 1;
+ UpdateKangaskhanStorageState(0x19);
+ }
+ break;
+ case 4:
+ gUnknown_203B208->unk14 = sub_801CB24();
+ sub_8090A8C(&gUnknown_203B208->unkC, gUnknown_203B208->unk14, 0);
+ gUnknown_203B208->unkC.numItems = 1;
+ UpdateKangaskhanStorageState(0x1A);
+ break;
+ case 2:
+ sub_801CBB8();
+ UpdateKangaskhanStorageState(1);
+ break;
+ case 1:
+ sub_801AD34(0);
+ break;
+ }
+}
+
+void sub_8017C28(void)
+{
+ sub_801CA08(0);
+ sub_8012FD8(&gUnknown_203B208->unk58);
+ switch(sub_8013BBC(&gUnknown_203B208->unkA8))
+ {
+ case 1:
+ sub_8017598();
+ break;
+ case 3:
+ gUnknown_203B208->unkC.numItems = gUnknown_203B208->unkA8;
+ UpdateKangaskhanStorageState(0x1B);
+ break;
+ case 2:
+ UpdateKangaskhanStorageState(0x17);
+ break;
+ case 0:
+ default:
+ break;
+ }
+}
+
+void sub_8017C7C(void)
+{
+ s32 menuAction;
+ menuAction = 0;
+ sub_801A6E8(0);
+ if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
+ sub_8013114(&gUnknown_203B208->unk58, &menuAction);
+ if(menuAction != 1) gUnknown_203B208->unk1C = menuAction;
+ }
+
+ switch(menuAction)
+ {
+ case 2:
+ sub_8099690(0);
+ if(sub_8091524(gUnknown_203B208->unkC.itemIndex) == 0)
+ {
+ UpdateKangaskhanStorageState(9);
+ }
+ else
+ {
+ if(sub_801ADA0(gUnknown_203B208->unk10) == 0)
+ {
+ UpdateKangaskhanStorageState(0xA);
+ }
+ else
+ {
+ UpdateKangaskhanStorageState(0x11);
+ }
+ }
+ break;
+ case 6:
+ sub_8099690(0);
+ UpdateKangaskhanStorageState(0x10);
+ break;
+ case 1:
+ UpdateKangaskhanStorageState(0xE);
+ break;
+ }
+}
void sub_8017D24(void)
{
s32 menuAction;
menuAction = 0;
- sub_801CA08();
+ sub_801CA08(0);
if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
sub_8013114(&gUnknown_203B208->unk58, &menuAction);
if(menuAction != 1) gUnknown_203B208->unk20 = menuAction;
@@ -56,11 +240,11 @@ void sub_8017D24(void)
if (sub_8090A34() > 0x13)
{
sub_801CBB8();
- UpdateKangaskhanStorageState(0x6);
+ UpdateKangaskhanStorageState(6);
}
else
{
- if(sub_8090A60(gUnknown_203B208->itemIndex))
+ if(sub_8090A60(gUnknown_203B208->unkC.itemIndex))
UpdateKangaskhanStorageState(0x18);
else
UpdateKangaskhanStorageState(0x1B);
@@ -182,3 +366,112 @@ void sub_8017F10(u32 newState)
sub_8017F28();
sub_8018100();
}
+
+void sub_8017F28(void)
+{
+ s32 iVar2;
+
+ sub_8006518(gUnknown_203B20C->unkF0);
+
+ switch(gUnknown_203B20C->state)
+ {
+ case 1:
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
+ sub_80182E4();
+ gUnknown_203B20C->unkF0[2] = gUnknown_80DB7D0;
+ sub_8012CAC(&gUnknown_203B20C->unkF0[2], &gUnknown_203B20C->unk20);
+ break;
+ case 4:
+ case 5:
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[2] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
+ break;
+ case 10:
+ case 11:
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[1] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[2] = gUnknown_80DB7B8;
+ gUnknown_203B20C->unkF0[0] = gUnknown_80DB800;
+ break;
+ case 12:
+ gUnknown_203B20C->unkF0[1] = gUnknown_80DB818;
+ break;
+ case 6:
+ case 13:
+ gUnknown_203B20C->unkF0[2] = gUnknown_80DB7E8;
+ break;
+ default:
+ case 0:
+ for(iVar2 = 0; iVar2 < 4; iVar2++)
+ {
+ gUnknown_203B20C->unkF0[iVar2] = gUnknown_80DB7B8;
+ }
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B20C->unkF0, 1, 1);
+}
+
+void sub_8018100(void)
+{
+
+ switch(gUnknown_203B20C->state)
+ {
+ case 1:
+ sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, &gUnknown_203B20C->unk60, gUnknown_203B20C->unk14, 2);
+ break;
+ case 4:
+ sub_801A5D8(3, 3, 0, 0xA);
+ break;
+ case 5:
+ sub_801A8D0(1);
+ break;
+ case 6:
+ sub_801A9E0();
+ sub_801841C();
+ sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, &gUnknown_203B20C->unk60, gUnknown_203B20C->unk18, 2);
+ break;
+ case 7:
+ sub_801B3C0(&gUnknown_203B20C->unk8);
+ break;
+ case 10:
+ sub_801C8C4(1, 3, 0, 0xA);
+ sub_801AD34(0);
+ break;
+ case 11:
+ sub_801CB5C(1);
+ sub_801AD34(0);
+ break;
+ case 12:
+ gUnknown_203B20C->unkD0 = 2;
+ gUnknown_203B20C->unkC8 = 1;
+ if(gUnknown_203B460->unk50[gUnknown_203B20C->unkA] > 0x63)
+ gUnknown_203B20C->unkCC = 0x63;
+ else
+ gUnknown_203B20C->unkCC = gUnknown_203B460->unk50[gUnknown_203B20C->unkA];
+ gUnknown_203B20C->unkC4 = gUnknown_203B20C->unkCC;
+ gUnknown_203B20C->unkD4 = 1;
+ gUnknown_203B20C->unkD8 = &gUnknown_203B20C->unkF0[1];
+ gUnknown_203B20C->unkDC = 0x28;
+ gUnknown_203B20C->unkE0 = 0x12;
+ sub_8013AA0(&gUnknown_203B20C->unkC0);
+ sub_8018280();
+ break;
+ case 13:
+ sub_801CCD8();
+ sub_801AD34(0);
+ sub_80184D4();
+ sub_8012D60(&gUnknown_203B20C->unk70, &gUnknown_203B20C->unk20, 0, &gUnknown_203B20C->unk60, gUnknown_203B20C->unk1C, 2);
+ break;
+ case 14:
+ sub_801B3C0(&gUnknown_203B20C->unk8);
+ break;
+ case 0:
+ default:
+ break;
+ }
+}
diff --git a/src/music_pre.c b/src/music_pre.c
index 410c923..80968a6 100644
--- a/src/music_pre.c
+++ b/src/music_pre.c
@@ -447,7 +447,6 @@ void sub_800BDDC(void)
void StartNewBGM(u16 songIndex)
{
bool8 interrupt_flag;
- u16 temp_store;
if(!IsBGSong(songIndex))
return;
@@ -455,8 +454,7 @@ void StartNewBGM(u16 songIndex)
return;
if(songIndex == gCurrentBGSong)
{
- temp_store = gBGMusicPlayerState - 1;
- if(temp_store <= 1)
+ if((u16)(gBGMusicPlayerState - 1) <= 1)
return;
}
if(sub_800CAE0(songIndex))
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index fd03834..62e60d8 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "pokemon.h"
extern u32 gIQSkillNames[];
extern u32 gIQSkillDescriptions[];
@@ -10,9 +11,269 @@ extern s16 gUnknown_810A378[];
extern s32 gUnknown_810A390[];
extern u32 gUnknown_81076E4[];
+struct unkStruct_808E9EC
+{
+ u32 unk0;
+ u32 unk4;
+ u32 unk8;
+ u32 unkC;
+ u8 unk10;
+ u8 unk11;
+ u8 unk12;
+ u8 unk13;
+};
+
+extern s16 gUnknown_810AC60; // 0xC
+extern s16 gUnknown_810AC62; // 0xC
+extern s16 gUnknown_810AC68; // 0x8
+extern s16 gUnknown_810AC64; // 0x8
+extern s16 gUnknown_810AC66; // 0x8
+
extern bool8 sub_808ECD0(u8 *, u32);
extern void sub_808EC30(u8 *, u32);
+s32 GetUnownIndex(s16 index)
+{
+ if(index == SPECIES_UNOWN_B)
+ return 1;
+ if(index == SPECIES_UNOWN_C)
+ return 2;
+ if(index == SPECIES_UNOWN_D)
+ return 3;
+ if(index == SPECIES_UNOWN_E)
+ return 4;
+ if(index == SPECIES_UNOWN_F)
+ return 5;
+ if(index == SPECIES_UNOWN_G)
+ return 6;
+ if(index == SPECIES_UNOWN_H)
+ return 7;
+ if(index == SPECIES_UNOWN_I)
+ return 8;
+ if(index == SPECIES_UNOWN_J)
+ return 9;
+ if(index == SPECIES_UNOWN_K)
+ return 10;
+ if(index == SPECIES_UNOWN_L)
+ return 11;
+ if(index == SPECIES_UNOWN_M)
+ return 12;
+ if(index == SPECIES_UNOWN_N)
+ return 13;
+ if(index == SPECIES_UNOWN_O)
+ return 14;
+ if(index == SPECIES_UNOWN_P)
+ return 15;
+ if(index == SPECIES_UNOWN_Q)
+ return 16;
+ if(index == SPECIES_UNOWN_R)
+ return 17;
+ if(index == SPECIES_UNOWN_S)
+ return 18;
+ if(index == SPECIES_UNOWN_T)
+ return 19;
+ if(index == SPECIES_UNOWN_U)
+ return 20;
+ if(index == SPECIES_UNOWN_V)
+ return 21;
+ if(index == SPECIES_UNOWN_W)
+ return 22;
+ if(index == SPECIES_UNOWN_X)
+ return 23;
+ if(index == SPECIES_UNOWN_Y)
+ return 24;
+ if(index == SPECIES_UNOWN_Z)
+ return 25;
+ if(index == SPECIES_UNOWN_EMARK)
+ return 26;
+ if(index == SPECIES_UNOWN_QMARK)
+ return 27;
+ return 0;
+}
+
+u32 sub_808E9B8(struct PokemonStruct *r0)
+{
+ return r0->unk0 & 0x000001ff;
+}
+
+void sub_808E9C4(struct PokemonStruct *r0, s16 r1)
+{
+ s32 r1_s32 = r1; // cast needed to match
+ r0->unk0 = ((0xFE << 8) & r0->unk0) | r1_s32 ;
+}
+
+void sub_808E9D8(struct PokemonStruct *r0, s32 r1, s16 r2)
+{
+ s32 r2_32 = r2; // dumb cast to match
+ r0->unk0 = r2_32 | (r1 << 9) ;
+}
+
+u32 sub_808E9E4(struct PokemonStruct *r0)
+{
+ return (r0->unk0 >> 9);
+}
+
+// Unused
+#ifdef NONMATCHING
+void sub_808E9EC(struct PokemonStruct *r0, struct unkStruct_808E9EC *r1)
+{
+ u8 pokeAtt;
+ u8 r4;
+ u32 reg1_8;
+ s16 reg1;
+
+ pokeAtt = r0->pokeAtt;
+
+ r1->unk0 = pokeAtt;
+ r1->unk4 = r0->pokeSPAtt;
+ r1->unk8 = r0->pokeDef;
+ r1->unkC = r0->pokeSPDef;
+ r1->unk10 = 0;
+ r1->unk11 = 0;
+ r1->unk12 = 0;
+ r1->unk13 = 0;
+ if(r0->unk28 != 0)
+ {
+ r4 = r0->unk28;
+ if(r4 == 0x13)
+ {
+ r1->unk10 = gUnknown_810AC60;
+ r1->unk0 = pokeAtt + gUnknown_810AC60;
+ }
+ if(r4 == 0x21)
+ {
+ r1->unk11 += gUnknown_810AC62;
+ r1->unk4 += gUnknown_810AC62;
+ }
+ if(r4 == 0x2B)
+ {
+ // TODO: regs get a little f**ked
+ reg1_8 = (u8)gUnknown_810AC68;
+ r1->unk10 += reg1_8;
+ r1->unk11 += reg1_8;
+
+ reg1 = gUnknown_810AC68;
+ r1->unk0 += reg1;
+ r1->unk4 += reg1;
+ }
+ if(r4 == 0x1E)
+ {
+ r1->unk12 += gUnknown_810AC64;
+ r1->unk8 += gUnknown_810AC64;
+ }
+ if(r4 == 0x22)
+ {
+ r1->unk13 += gUnknown_810AC66;
+ r1->unkC += gUnknown_810AC66;
+ }
+ }
+}
+#else
+NAKED
+void sub_808E9EC(struct PokemonStruct *r0, struct unkStruct_808E9EC *r1)
+{
+ asm_unified("\tpush {r4-r6,lr}\n"
+ "\tadds r3, r1, 0\n"
+ "\tldrb r2, [r0, 0x18]\n"
+ "\tstr r2, [r3]\n"
+ "\tldrb r1, [r0, 0x19]\n"
+ "\tstr r1, [r3, 0x4]\n"
+ "\tldrb r1, [r0, 0x1A]\n"
+ "\tstr r1, [r3, 0x8]\n"
+ "\tldrb r1, [r0, 0x1B]\n"
+ "\tstr r1, [r3, 0xC]\n"
+ "\tmovs r1, 0\n"
+ "\tstrb r1, [r3, 0x10]\n"
+ "\tstrb r1, [r3, 0x11]\n"
+ "\tstrb r1, [r3, 0x12]\n"
+ "\tstrb r1, [r3, 0x13]\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r1, 0x28\n"
+ "\tldrb r0, [r1]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0808EA96\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r5, r4, 0\n"
+ "\tcmp r4, 0x13\n"
+ "\tbne _0808EA2A\n"
+ "\tldr r1, _0808EA9C\n"
+ "\tldrh r0, [r1]\n"
+ "\tstrb r0, [r3, 0x10]\n"
+ "\tmovs r6, 0\n"
+ "\tldrsh r0, [r1, r6]\n"
+ "\tadds r0, r2, r0\n"
+ "\tstr r0, [r3]\n"
+"_0808EA2A:\n"
+ "\tcmp r4, 0x21\n"
+ "\tbne _0808EA42\n"
+ "\tldr r1, _0808EAA0\n"
+ "\tldrb r0, [r1]\n"
+ "\tldrb r2, [r3, 0x11]\n"
+ "\tadds r0, r2\n"
+ "\tstrb r0, [r3, 0x11]\n"
+ "\tmovs r6, 0\n"
+ "\tldrsh r1, [r1, r6]\n"
+ "\tldr r0, [r3, 0x4]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3, 0x4]\n"
+"_0808EA42:\n"
+ "\tcmp r4, 0x2B\n"
+ "\tbne _0808EA66\n"
+ "\tldr r2, _0808EAA4\n"
+ "\tldrb r0, [r2]\n"
+ "\tldrb r6, [r3, 0x10]\n"
+ "\tadds r1, r0, r6\n"
+ "\tstrb r1, [r3, 0x10]\n"
+ "\tldrb r1, [r3, 0x11]\n"
+ "\tadds r0, r1\n"
+ "\tstrb r0, [r3, 0x11]\n"
+ "\tmovs r6, 0\n"
+ "\tldrsh r1, [r2, r6]\n"
+ "\tldr r0, [r3]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3]\n"
+ "\tldr r0, [r3, 0x4]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3, 0x4]\n"
+"_0808EA66:\n"
+ "\tcmp r4, 0x1E\n"
+ "\tbne _0808EA7E\n"
+ "\tldr r1, _0808EAA8\n"
+ "\tldrb r0, [r1]\n"
+ "\tldrb r2, [r3, 0x12]\n"
+ "\tadds r0, r2\n"
+ "\tstrb r0, [r3, 0x12]\n"
+ "\tmovs r6, 0\n"
+ "\tldrsh r1, [r1, r6]\n"
+ "\tldr r0, [r3, 0x8]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3, 0x8]\n"
+"_0808EA7E:\n"
+ "\tcmp r5, 0x22\n"
+ "\tbne _0808EA96\n"
+ "\tldr r1, _0808EAAC\n"
+ "\tldrb r0, [r1]\n"
+ "\tldrb r2, [r3, 0x13]\n"
+ "\tadds r0, r2\n"
+ "\tstrb r0, [r3, 0x13]\n"
+ "\tmovs r6, 0\n"
+ "\tldrsh r1, [r1, r6]\n"
+ "\tldr r0, [r3, 0xC]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3, 0xC]\n"
+"_0808EA96:\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_0808EA9C: .4byte gUnknown_810AC60\n"
+"_0808EAA0: .4byte gUnknown_810AC62\n"
+"_0808EAA4: .4byte gUnknown_810AC68\n"
+"_0808EAA8: .4byte gUnknown_810AC64\n"
+"_0808EAAC: .4byte gUnknown_810AC66");
+}
+#endif
+
u32 GetIQSkillName(u8 r0)
{
return gIQSkillNames[r0];
diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c
index d5ae74a..d297ca0 100644
--- a/src/pokemon_mid.c
+++ b/src/pokemon_mid.c
@@ -11,7 +11,6 @@ extern const char gUnknown_810763C[];
extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *r2, ...);
extern s16 sub_808E770(u32);
-extern s32 GetUnownIndex(s32);
extern void sub_80922B4(u8 *, u8 *, s32);
extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *r2, ...);