summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_jump.s642
-rw-r--r--asm/pokemon_jump_2.s8058
-rw-r--r--data/pokemon_jump.s438
-rw-r--r--data/strings.s26
-rw-r--r--graphics/link_games/pkmnjump_bg.bin (renamed from graphics/link_games/unk_846BA00.bin)bin1280 -> 1280 bytes
-rw-r--r--graphics/link_games/pkmnjump_bg.pal (renamed from graphics/link_games/unk_846B7B4.pal)0
-rw-r--r--graphics/link_games/pkmnjump_bg.png (renamed from graphics/link_games/unk_846B7D4.png)bin582 -> 582 bytes
-rw-r--r--graphics/link_games/pkmnjump_pal1.pal (renamed from graphics/link_games/unk_846D9E4.pal)0
-rw-r--r--graphics/link_games/pkmnjump_pal2.pal (renamed from graphics/link_games/unk_846DA04.pal)0
-rw-r--r--graphics/link_games/pkmnjump_pal3.pal (renamed from graphics/link_games/unk_846B794.pal)0
-rw-r--r--graphics/link_games/pkmnjump_results.bin (renamed from graphics/link_games/unk_846D3A8.bin)bin8192 -> 8192 bytes
-rw-r--r--graphics/link_games/pkmnjump_results.pal (renamed from graphics/link_games/unk_846C8D8.pal)0
-rw-r--r--graphics/link_games/pkmnjump_results.png (renamed from graphics/link_games/unk_846C8F8.png)bin2401 -> 2401 bytes
-rw-r--r--graphics/link_games/pkmnjump_rope1.png (renamed from graphics/link_games/unk_846DA24.png)bin284 -> 284 bytes
-rw-r--r--graphics/link_games/pkmnjump_rope2.png (renamed from graphics/link_games/unk_846DB44.png)bin322 -> 322 bytes
-rw-r--r--graphics/link_games/pkmnjump_rope3.png (renamed from graphics/link_games/unk_846DD18.png)bin338 -> 338 bytes
-rw-r--r--graphics/link_games/pkmnjump_rope4.png (renamed from graphics/link_games/unk_846DE48.png)bin256 -> 256 bytes
-rw-r--r--graphics/link_games/pkmnjump_star.png (renamed from graphics/link_games/unk_846DF44.png)bin335 -> 335 bytes
-rw-r--r--graphics/link_games/pkmnjump_venusaur.bin (renamed from graphics/link_games/unk_846C520.bin)bin4096 -> 4096 bytes
-rw-r--r--graphics/link_games/pkmnjump_venusaur.pal (renamed from graphics/link_games/unk_846BBB0.pal)0
-rw-r--r--graphics/link_games/pkmnjump_venusaur.png (renamed from graphics/link_games/unk_846BBD0.png)bin2082 -> 2082 bytes
-rw-r--r--include/digit_obj_util.h5
-rw-r--r--include/global.h3
-rw-r--r--include/link_rfu.h1
-rw-r--r--include/minigame_countdown.h7
-rw-r--r--include/pokemon_jump.h113
-rw-r--r--include/save.h2
-rw-r--r--include/strings.h15
-rw-r--r--ld_script.txt14
-rw-r--r--src/minigame_countdown.c2
-rw-r--r--src/pokemon_jump.c254
-rw-r--r--src/pokemon_jump_2.c2035
-rw-r--r--src/pokemon_jump_3.c167
-rw-r--r--src/pokemon_jump_4.c922
-rw-r--r--src/pokemon_jump_5.c637
-rw-r--r--src/pokemon_jump_6.c141
-rw-r--r--sym_ewram.txt9
37 files changed, 4326 insertions, 9165 deletions
diff --git a/asm/pokemon_jump.s b/asm/pokemon_jump.s
deleted file mode 100644
index 1644bb3d8..000000000
--- a/asm/pokemon_jump.s
+++ /dev/null
@@ -1,642 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81475C0
-sub_81475C0: @ 81475C0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08147600 @ =sub_8147654
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08147604 @ =gTasks
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r5, [r0, 0xA]
- ldr r0, _08147608 @ =gUnknown_846B4AC
- lsls r5, 4
- adds r5, r0
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08147600: .4byte sub_8147654
-_08147604: .4byte gTasks
-_08147608: .4byte gUnknown_846B4AC
- thumb_func_end sub_81475C0
-
- thumb_func_start sub_814760C
-sub_814760C: @ 814760C
- push {lr}
- ldr r0, _08147630 @ =sub_8147654
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08147638
- ldr r0, _08147634 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- movs r0, 0x1
- b _0814763A
- .align 2, 0
-_08147630: .4byte sub_8147654
-_08147634: .4byte gTasks
-_08147638:
- movs r0, 0
-_0814763A:
- pop {r1}
- bx r1
- thumb_func_end sub_814760C
-
- thumb_func_start sub_8147640
-sub_8147640: @ 8147640
- push {lr}
- ldr r0, _08147650 @ =sub_8147654
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08147650: .4byte sub_8147654
- thumb_func_end sub_8147640
-
- thumb_func_start sub_8147654
-sub_8147654: @ 8147654
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08147678 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- beq _081476A0
- cmp r0, 0x3
- bgt _0814767C
- cmp r0, 0x2
- beq _08147682
- b _081476D6
- .align 2, 0
-_08147678: .4byte gTasks+0x8
-_0814767C:
- cmp r0, 0x4
- beq _081476BC
- b _081476D6
-_08147682:
- ldr r1, _0814769C @ =gUnknown_846B4AC
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 4
- adds r1, 0x8
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- movs r0, 0x3
- strh r0, [r4]
- b _081476D6
- .align 2, 0
-_0814769C: .4byte gUnknown_846B4AC
-_081476A0:
- ldr r0, _081476B8 @ =gUnknown_846B4AC
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r1, 4
- adds r0, 0xC
- adds r1, r0
- ldr r1, [r1]
- adds r0, r5, 0
- bl _call_via_r1
- b _081476D6
- .align 2, 0
-_081476B8: .4byte gUnknown_846B4AC
-_081476BC:
- ldr r0, _081476DC @ =gUnknown_846B4AC
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- lsls r1, 4
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r5, 0
- bl _call_via_r1
- adds r0, r5, 0
- bl DestroyTask
-_081476D6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081476DC: .4byte gUnknown_846B4AC
- thumb_func_end sub_8147654
-
- thumb_func_start sub_81476E0
-sub_81476E0: @ 81476E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- lsls r0, 3
- ldr r1, _081477B0 @ =gUnknown_846B42C
- adds r0, r1
- bl LoadCompressedSpriteSheet
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r0, 3
- ldr r1, _081477B4 @ =gUnknown_846B43C
- adds r0, r1
- bl LoadSpritePalette
- movs r5, 0
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r5, r0
- bge _08147748
-_08147714:
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _081477B8 @ =gUnknown_846B494
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- movs r3, 0x14
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0xE]
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1A]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _08147714
-_08147748:
- movs r5, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r5, r0
- bge _081477A4
- movs r7, 0x3
- movs r3, 0xD
- negs r3, r3
- mov r12, r3
- ldr r6, _081477BC @ =gSprites
-_0814775C:
- lsls r0, r5, 1
- adds r0, r4
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4, 0xC]
- ands r1, r7
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- mov r0, r12
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0xA]
- strh r0, [r2, 0x30]
- mov r3, r8
- strh r3, [r2, 0x34]
- strh r5, [r2, 0x36]
- ldrh r0, [r4, 0x1A]
- strh r0, [r2, 0x38]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _0814775C
-_081477A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081477B0: .4byte gUnknown_846B42C
-_081477B4: .4byte gUnknown_846B43C
-_081477B8: .4byte gUnknown_846B494
-_081477BC: .4byte gSprites
- thumb_func_end sub_81476E0
-
- thumb_func_start sub_81477C0
-sub_81477C0: @ 81477C0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r1, _08147840 @ =gTasks+0x8
- adds r4, r1
- movs r5, 0
- strh r5, [r4, 0x4]
- strh r5, [r4, 0x6]
- strh r5, [r4, 0x8]
- movs r1, 0x3C
- strh r1, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r1, 0x3
- strh r1, [r4, 0x10]
- movs r1, 0x78
- strh r1, [r4, 0x12]
- movs r1, 0x58
- strh r1, [r4, 0x14]
- adds r1, r4, 0
- bl sub_81476E0
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08147844 @ =gSprites
- adds r0, r5
- movs r1, 0x4
- bl StartSpriteAnim
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08147848 @ =0x0000ffe0
- strh r1, [r0, 0x24]
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x5
- bl StartSpriteAnim
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x24]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147840: .4byte gTasks+0x8
-_08147844: .4byte gSprites
-_08147848: .4byte 0x0000ffe0
- thumb_func_end sub_81477C0
-
- thumb_func_start sub_814784C
-sub_814784C: @ 814784C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08147860 @ =gTasks+0x8
- adds r4, r1, r0
- b _08147880
- .align 2, 0
-_08147860: .4byte gTasks+0x8
-_08147864:
- lsls r0, r5, 1
- adds r0, r4
- movs r2, 0x1A
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081478B0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08147880:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _08147864
- ldr r1, _081478B4 @ =gUnknown_846B42C
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r1, _081478B8 @ =gUnknown_846B43C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081478B0: .4byte gSprites
-_081478B4: .4byte gUnknown_846B42C
-_081478B8: .4byte gUnknown_846B43C
- thumb_func_end sub_814784C
-
- thumb_func_start sub_81478BC
-sub_81478BC: @ 81478BC
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0x34
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08147900 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0
- bne _081479CE
- ldrh r2, [r5, 0x16]
- movs r3, 0x16
- ldrsh r1, [r5, r3]
- movs r3, 0x14
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _081479CE
- strh r2, [r5, 0x14]
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x4
- bhi _081479C8
- lsls r0, 2
- ldr r1, _08147904 @ =_08147908
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08147900: .4byte gTasks+0x8
-_08147904: .4byte _08147908
- .align 2, 0
-_08147908:
- .4byte _0814791C
- .4byte _0814792A
- .4byte _0814792A
- .4byte _0814793E
- .4byte _08147988
-_0814791C:
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0814792A:
- movs r0, 0x31
- bl PlaySE
- ldrh r1, [r6, 0x32]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl StartSpriteAnim
- b _081479C8
-_0814793E:
- movs r0, 0x15
- bl PlaySE
- ldrh r1, [r6, 0x32]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl StartSpriteAnim
- ldr r4, _08147984 @ =gSprites
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _081479C8
- .align 2, 0
-_08147984: .4byte gSprites
-_08147988:
- adds r1, r6, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _081479C4 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x1E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x4
- strh r0, [r5]
- b _081479CE
- .align 2, 0
-_081479C4: .4byte gSprites
-_081479C8:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
-_081479CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81478BC
-
- thumb_func_start sub_81479D4
-sub_81479D4: @ 81479D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _08147A28 @ =gTasks+0x8
- adds r6, r4, r5
- movs r0, 0x31
- bl PlaySE
- ldr r2, _08147A2C @ =gSprites
- movs r0, 0x1A
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08147A30 @ =sub_81478BC
- str r1, [r0]
- movs r0, 0x1A
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- subs r5, 0x8
- adds r4, r5
- movs r0, 0x3
- strh r0, [r4, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08147A28: .4byte gTasks+0x8
-_08147A2C: .4byte gSprites
-_08147A30: .4byte sub_81478BC
- thumb_func_end sub_81479D4
-
- thumb_func_start sub_8147A34
-sub_8147A34: @ 8147A34
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08147A88 @ =gTasks+0x8
- adds r4, r1, r0
- ldr r0, _08147A8C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08147A98
- ldr r1, _08147A90 @ =gRecvCmds
- ldrh r0, [r1, 0x2]
- ldr r5, _08147A94 @ =0x00007fff
- cmp r0, r5
- bne _08147A5C
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x16]
-_08147A5C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08147A9E
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- mov r0, sp
- movs r1, 0
- movs r2, 0xC
- bl memset
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- ldrh r0, [r4, 0x18]
- strh r0, [r1, 0x2]
- mov r0, sp
- bl RfuPrepareSend0x2f00
- b _08147A9E
- .align 2, 0
-_08147A88: .4byte gTasks+0x8
-_08147A8C: .4byte gReceivedRemoteLinkPlayers
-_08147A90: .4byte gRecvCmds
-_08147A94: .4byte 0x00007fff
-_08147A98:
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_08147A9E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8147A34
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
deleted file mode 100644
index ff6757630..000000000
--- a/asm/pokemon_jump_2.s
+++ /dev/null
@@ -1,8058 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start StartPokemonJump
-StartPokemonJump: @ 8147AA8
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _08147B20 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08147B3C
- ldr r5, _08147B24 @ =gUnknown_203F3D4
- ldr r0, _08147B28 @ =0x000083b0
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _08147B3C
- bl ResetTasks
- ldr r0, _08147B2C @ =sub_8147DA0
- movs r1, 0x1
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, [r5]
- movs r1, 0
- strh r1, [r0, 0x8]
- str r6, [r0]
- strb r4, [r0, 0x4]
- bl GetMultiplayerId
- ldr r1, [r5]
- strb r0, [r1, 0x6]
- ldr r0, [r5]
- ldrb r2, [r0, 0x6]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r2, _08147B30 @ =0x000082a8
- adds r1, r2
- adds r0, r1
- movs r1, 0x64
- muls r1, r7
- ldr r2, _08147B34 @ =gPlayerParty
- adds r1, r2
- bl sub_8147D2C
- ldr r0, [r5]
- bl sub_8147B60
- ldr r2, [r5]
- adds r0, r4, 0
- movs r1, 0x2
- bl SetWordTaskArg
- ldr r0, _08147B38 @ =sub_8147D6C
- bl SetMainCallback2
- b _08147B42
- .align 2, 0
-_08147B20: .4byte gReceivedRemoteLinkPlayers
-_08147B24: .4byte gUnknown_203F3D4
-_08147B28: .4byte 0x000083b0
-_08147B2C: .4byte sub_8147DA0
-_08147B30: .4byte 0x000082a8
-_08147B34: .4byte gPlayerParty
-_08147B38: .4byte sub_8147D6C
-_08147B3C:
- adds r0, r6, 0
- bl SetMainCallback2
-_08147B42:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end StartPokemonJump
-
- thumb_func_start sub_8147B48
-sub_8147B48: @ 8147B48
- push {lr}
- bl sub_8149D24
- ldr r0, _08147B5C @ =gUnknown_203F3D4
- ldr r0, [r0]
- bl Free
- pop {r0}
- bx r0
- .align 2, 0
-_08147B5C: .4byte gUnknown_203F3D4
- thumb_func_end sub_8147B48
-
- thumb_func_start sub_8147B60
-sub_8147B60: @ 8147B60
- push {r4,lr}
- adds r4, r0, 0
- bl GetLinkPlayerCount
- movs r2, 0
- strb r0, [r4, 0x5]
- adds r1, r4, 0
- adds r1, 0x70
- movs r0, 0x5
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x72
- strh r2, [r0]
- bl sub_8147C20
- adds r0, r4, 0
- bl sub_8147B94
- ldrb r0, [r4, 0x5]
- cmp r0, 0x5
- bne _08147B8E
- bl sub_814B4E8
-_08147B8E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8147B60
-
- thumb_func_start sub_8147B94
-sub_8147B94: @ 8147B94
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x6
- str r0, [r4, 0x14]
- str r0, [r4, 0x18]
- adds r0, r4, 0
- adds r0, 0x4A
- movs r6, 0
- movs r5, 0
- strh r5, [r0]
- str r5, [r4, 0x1C]
- str r5, [r4, 0x5C]
- bl GetMultiplayerId
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _08147BBA
- movs r1, 0x1
-_08147BBA:
- adds r0, r4, 0
- adds r0, 0x47
- strb r1, [r0]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- str r5, [r4, 0x58]
- strh r5, [r4, 0x3A]
- subs r0, 0x3
- strb r6, [r0]
- str r5, [r4, 0x54]
- adds r0, 0x2
- strb r6, [r0]
- adds r0, 0x3
- strb r6, [r0]
- subs r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- str r5, [r4, 0x78]
- adds r0, 0x29
- strb r6, [r0]
- adds r0, 0x3
- strh r5, [r0]
- str r1, [r4, 0x60]
- subs r0, 0x27
- strb r6, [r0]
- str r5, [r4, 0x68]
- str r5, [r4, 0x64]
- str r5, [r4, 0x2C]
- str r5, [r4, 0x30]
- bl sub_8147C98
- bl sub_81491E4
- movs r2, 0
- adds r5, r4, 0
- adds r5, 0x7C
- movs r3, 0
- adds r1, r4, 0
- adds r1, 0x9A
-_08147C0C:
- adds r0, r5, r2
- strb r3, [r0]
- strh r3, [r1]
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x4
- ble _08147C0C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8147B94
-
- thumb_func_start sub_8147C20
-sub_8147C20: @ 8147C20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08147C80 @ =gUnknown_203F3D4
- movs r6, 0
- movs r5, 0
- ldr r0, _08147C84 @ =gUnknown_846B4BC
- mov r8, r0
- movs r4, 0x4
-_08147C32:
- ldr r0, [r7]
- adds r0, r5
- ldr r1, _08147C88 @ =0x000082a8
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8147D00
- lsls r0, 16
- ldr r1, [r7]
- adds r1, r6
- asrs r0, 14
- add r0, r8
- ldrh r0, [r0, 0x2]
- ldr r2, _08147C8C @ =0x000082f0
- adds r1, r2
- strh r0, [r1]
- adds r6, 0x28
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08147C32
- ldr r0, _08147C80 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldr r0, _08147C90 @ =0x000083ac
- adds r3, r1, r0
- ldrb r2, [r1, 0x6]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r2, _08147C94 @ =0x000082e4
- adds r0, r2
- adds r1, r0
- str r1, [r3]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147C80: .4byte gUnknown_203F3D4
-_08147C84: .4byte gUnknown_846B4BC
-_08147C88: .4byte 0x000082a8
-_08147C8C: .4byte 0x000082f0
-_08147C90: .4byte 0x000083ac
-_08147C94: .4byte 0x000082e4
- thumb_func_end sub_8147C20
-
- thumb_func_start sub_8147C98
-sub_8147C98: @ 8147C98
- push {r4-r7,lr}
- movs r5, 0
- ldr r6, _08147CE8 @ =gUnknown_203F3D4
- movs r4, 0
- movs r3, 0
-_08147CA2:
- ldr r2, [r6]
- adds r1, r2, r3
- ldr r7, _08147CEC @ =0x000082f2
- adds r0, r1, r7
- strh r4, [r0]
- adds r7, 0x2
- adds r0, r1, r7
- strh r4, [r0]
- ldr r0, _08147CF0 @ =0x000082f6
- adds r1, r0
- strh r4, [r1]
- ldr r1, _08147CF4 @ =0x000082e4
- adds r0, r2, r1
- adds r0, r3
- str r4, [r0]
- subs r7, 0xC
- adds r0, r2, r7
- adds r0, r3
- ldr r1, _08147CF8 @ =0x7fffffff
- str r1, [r0]
- ldr r1, _08147CFC @ =0x000082f8
- adds r0, r2, r1
- adds r0, r3
- str r4, [r0]
- adds r2, 0x8B
- adds r2, r5
- movs r0, 0x9
- strb r0, [r2]
- adds r3, 0x28
- adds r5, 0x1
- cmp r5, 0x4
- ble _08147CA2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147CE8: .4byte gUnknown_203F3D4
-_08147CEC: .4byte 0x000082f2
-_08147CF0: .4byte 0x000082f6
-_08147CF4: .4byte 0x000082e4
-_08147CF8: .4byte 0x7fffffff
-_08147CFC: .4byte 0x000082f8
- thumb_func_end sub_8147C98
-
- thumb_func_start sub_8147D00
-sub_8147D00: @ 8147D00
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0
- ldr r2, _08147D18 @ =gUnknown_846B4BC
-_08147D0A:
- ldrh r0, [r2]
- cmp r0, r3
- bne _08147D1C
- lsls r0, r1, 16
- asrs r0, 16
- b _08147D28
- .align 2, 0
-_08147D18: .4byte gUnknown_846B4BC
-_08147D1C:
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, 0x63
- bls _08147D0A
- movs r0, 0x1
- negs r0, r0
-_08147D28:
- pop {r1}
- bx r1
- thumb_func_end sub_8147D00
-
- thumb_func_start sub_8147D2C
-sub_8147D2C: @ 8147D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8147D2C
-
- thumb_func_start sub_8147D58
-sub_8147D58: @ 8147D58
- push {lr}
- bl TransferPlttBuffer
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_8147D58
-
- thumb_func_start sub_8147D6C
-sub_8147D6C: @ 8147D6C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8147D6C
-
- thumb_func_start sub_8147D84
-sub_8147D84: @ 8147D84
- push {lr}
- movs r1, 0x1
- bl CreateTask
- ldr r2, _08147D9C @ =gUnknown_203F3D4
- ldr r1, [r2]
- movs r3, 0
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- strh r3, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_08147D9C: .4byte gUnknown_203F3D4
- thumb_func_end sub_8147D84
-
- thumb_func_start sub_8147DA0
-sub_8147DA0: @ 8147DA0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08147DC0 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0x8]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _08147DB6
- b _08147F04
-_08147DB6:
- lsls r0, 2
- ldr r1, _08147DC4 @ =_08147DC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08147DC0: .4byte gUnknown_203F3D4
-_08147DC4: .4byte _08147DC8
- .align 2, 0
-_08147DC8:
- .4byte _08147DE0
- .4byte _08147E0C
- .4byte _08147E3C
- .4byte _08147E64
- .4byte _08147EA0
- .4byte _08147ECC
-_08147DE0:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _08147E04 @ =sub_8148E80
- movs r1, 0x5
- bl sub_8148F5C
- movs r0, 0x4
- bl FadeOutMapMusic
- ldr r0, _08147E08 @ =gUnknown_203F3D4
- ldr r1, [r0]
- b _08147EBC
- .align 2, 0
-_08147E04: .4byte sub_8148E80
-_08147E08: .4byte gUnknown_203F3D4
-_08147E0C:
- ldr r0, _08147E34 @ =sub_8148E80
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08147F04
- ldr r4, _08147E38 @ =gUnknown_203F3D4
- ldr r0, [r4]
- adds r0, 0xA4
- bl sub_8149CEC
- bl LoadWirelessStatusIndicatorSpriteGfx
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- ldr r1, [r4]
- b _08147EBC
- .align 2, 0
-_08147E34: .4byte sub_8148E80
-_08147E38: .4byte gUnknown_203F3D4
-_08147E3C:
- bl sub_8149D68
- cmp r0, 0
- bne _08147F04
- bl IsNotWaitingForBGMStop
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147F04
- movs r0, 0xA3
- lsls r0, 1
- movs r1, 0x8
- bl FadeOutAndPlayNewMapMusic
- ldr r0, _08147E60 @ =gUnknown_203F3D4
- ldr r1, [r0]
- b _08147EBC
- .align 2, 0
-_08147E60: .4byte gUnknown_203F3D4
-_08147E64:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08147F04
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08147E98 @ =sub_8147D58
- bl SetVBlankCallback
- ldr r0, _08147E9C @ =gUnknown_203F3D4
- ldr r1, [r0]
- b _08147EBC
- .align 2, 0
-_08147E98: .4byte sub_8147D58
-_08147E9C: .4byte gUnknown_203F3D4
-_08147EA0:
- bl UpdatePaletteFade
- ldr r0, _08147EC4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08147F04
- ldr r1, _08147EC8 @ =gUnknown_203F3D4
- ldr r0, [r1]
- strb r2, [r0, 0x7]
- ldr r1, [r1]
-_08147EBC:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08147F04
- .align 2, 0
-_08147EC4: .4byte gPaletteFade
-_08147EC8: .4byte gUnknown_203F3D4
-_08147ECC:
- ldr r0, [r2]
- ldrb r1, [r0, 0x7]
- adds r1, 0x1
- strb r1, [r0, 0x7]
- ldr r1, [r2]
- ldrb r0, [r1, 0x7]
- cmp r0, 0x13
- bls _08147F04
- adds r0, r1, 0
- adds r0, 0x47
- ldrb r0, [r0]
- cmp r0, 0
- beq _08147EF4
- ldr r0, _08147EF0 @ =sub_814807C
- bl sub_8147D84
- b _08147EFA
- .align 2, 0
-_08147EF0: .4byte sub_814807C
-_08147EF4:
- ldr r0, _08147F0C @ =sub_8148290
- bl sub_8147D84
-_08147EFA:
- bl sub_8148F7C
- adds r0, r4, 0
- bl DestroyTask
-_08147F04:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F0C: .4byte sub_8148290
- thumb_func_end sub_8147DA0
-
- thumb_func_start sub_8147F10
-sub_8147F10: @ 8147F10
- push {lr}
- adds r1, r0, 0
- cmp r1, 0
- bne _08147F30
- ldr r0, _08147F28 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldr r0, _08147F2C @ =0x00001111
- str r0, [r1, 0x30]
- movs r0, 0x1
- str r0, [r1, 0x2C]
- b _08147F42
- .align 2, 0
-_08147F28: .4byte gUnknown_203F3D4
-_08147F2C: .4byte 0x00001111
-_08147F30:
- ldr r0, _08147F48 @ =gUnknown_203F3D4
- ldr r2, [r0]
- subs r1, 0x1
- movs r0, 0x1
- lsls r0, r1
- subs r0, 0x1
- str r0, [r2, 0x30]
- movs r0, 0
- str r0, [r2, 0x2C]
-_08147F42:
- pop {r0}
- bx r0
- .align 2, 0
-_08147F48: .4byte gUnknown_203F3D4
- thumb_func_end sub_8147F10
-
- thumb_func_start sub_8147F4C
-sub_8147F4C: @ 8147F4C
- push {r4-r6,lr}
- ldr r4, _08147F98 @ =gUnknown_203F3D4
- ldr r1, [r4]
- adds r1, 0x70
- movs r2, 0
- strb r0, [r1]
- ldr r0, [r4]
- movs r3, 0
- strh r2, [r0, 0x8]
- strh r2, [r0, 0xA]
- adds r0, 0x48
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x49
- strb r3, [r0]
- movs r3, 0x1
- ldr r0, [r4]
- ldrb r0, [r0, 0x5]
- cmp r3, r0
- bge _08147F90
- adds r6, r4, 0
- ldr r5, _08147F9C @ =0x000082fc
- movs r4, 0
- movs r2, 0x28
-_08147F7E:
- ldr r1, [r6]
- adds r0, r1, r5
- adds r0, r2
- str r4, [r0]
- adds r2, 0x28
- adds r3, 0x1
- ldrb r1, [r1, 0x5]
- cmp r3, r1
- blt _08147F7E
-_08147F90:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F98: .4byte gUnknown_203F3D4
-_08147F9C: .4byte 0x000082fc
- thumb_func_end sub_8147F4C
-
- thumb_func_start sub_8147FA0
-sub_8147FA0: @ 8147FA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r4, 0x1
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r7, _08148068 @ =gUnknown_203F3D4
- ldr r0, [r7]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- bge _08148044
- adds r1, r7, 0
- mov r10, r1
- movs r2, 0x2
- add r2, sp
- mov r8, r2
- ldr r3, _0814806C @ =0x0000830c
- mov r9, r3
- movs r6, 0x28
-_08147FCC:
- mov r1, r10
- ldr r0, [r1]
- adds r1, r0, r6
- ldr r2, _08148070 @ =0x000082f4
- adds r1, r2
- ldrh r5, [r1]
- add r0, r9
- adds r1, r4, 0
- mov r2, sp
- mov r3, r8
- bl sub_8149C24
- cmp r0, 0
- beq _0814800C
- ldr r2, [r7]
- lsls r1, r4, 1
- adds r0, r2, 0
- adds r0, 0x90
- adds r0, r1
- mov r3, r8
- ldrh r1, [r3]
- strh r1, [r0]
- adds r2, 0x8B
- adds r2, r4
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, [r7]
- adds r0, r6
- ldr r1, _08148074 @ =0x000082f6
- adds r0, r1
- strh r5, [r0]
-_0814800C:
- mov r2, r10
- ldr r1, [r2]
- ldr r3, _08148078 @ =0x000082fc
- adds r0, r1, r3
- adds r0, r6
- ldr r0, [r0]
- cmp r0, 0
- beq _08148032
- adds r0, r1, 0
- adds r0, 0x8B
- adds r0, r4
- adds r1, 0x70
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08148032
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_08148032:
- movs r1, 0x28
- add r9, r1
- adds r6, 0x28
- adds r4, 0x1
- ldr r7, _08148068 @ =gUnknown_203F3D4
- ldr r0, [r7]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- blt _08147FCC
-_08148044:
- ldr r2, _08148068 @ =gUnknown_203F3D4
- ldr r1, [r2]
- ldrb r0, [r1, 0x5]
- subs r0, 0x1
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bne _08148058
- adds r1, 0x49
- movs r0, 0x1
- strb r0, [r1]
-_08148058:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148068: .4byte gUnknown_203F3D4
-_0814806C: .4byte 0x0000830c
-_08148070: .4byte 0x000082f4
-_08148074: .4byte 0x000082f6
-_08148078: .4byte 0x000082fc
- thumb_func_end sub_8147FA0
-
- thumb_func_start sub_814807C
-sub_814807C: @ 814807C
- push {r4,r5,lr}
- bl sub_8147FA0
- bl sub_8149534
- ldr r0, _081480F8 @ =gUnknown_203F3D4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x48
- ldrb r0, [r0]
- cmp r0, 0
- bne _081480AE
- adds r0, r1, 0
- adds r0, 0x49
- ldrb r0, [r0]
- cmp r0, 0
- beq _081480AE
- adds r0, r1, 0
- adds r0, 0x4C
- ldrb r0, [r0]
- bl sub_8147F4C
- movs r0, 0x3
- bl sub_8147F10
-_081480AE:
- ldr r4, _081480F8 @ =gUnknown_203F3D4
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x48
- ldrb r5, [r0]
- cmp r5, 0x1
- bne _081480EA
- ldr r1, _081480FC @ =gUnknown_846B64C
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- adds r1, r0, 0
- cmp r1, 0
- bne _081480EA
- ldr r0, [r4]
- adds r0, 0x48
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r2, [r1, 0x6]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r2, _08148100 @ =0x000082fc
- adds r1, r2
- adds r1, r0
- str r5, [r1]
-_081480EA:
- bl sub_81492D8
- bl sub_8148104
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081480F8: .4byte gUnknown_203F3D4
-_081480FC: .4byte gUnknown_846B64C
-_08148100: .4byte 0x000082fc
- thumb_func_end sub_814807C
-
- thumb_func_start sub_8148104
-sub_8148104: @ 8148104
- push {r4,lr}
- ldr r4, _08148134 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldr r0, [r1, 0x2C]
- cmp r0, 0
- bne _0814811A
- ldr r2, _08148138 @ =0x000082e4
- adds r0, r1, r2
- adds r1, 0x70
- bl sub_8149AF8
-_0814811A:
- ldr r1, [r4]
- ldr r2, [r1, 0x30]
- ldr r0, _0814813C @ =0x00001111
- cmp r2, r0
- beq _0814812C
- ldr r0, [r1, 0x2C]
- adds r0, 0x1
- ands r0, r2
- str r0, [r1, 0x2C]
-_0814812C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148134: .4byte gUnknown_203F3D4
-_08148138: .4byte 0x000082e4
-_0814813C: .4byte 0x00001111
- thumb_func_end sub_8148104
-
- thumb_func_start sub_8148140
-sub_8148140: @ 8148140
- ldr r2, _0814816C @ =gUnknown_203F3D4
- ldr r1, [r2]
- adds r1, 0x70
- movs r3, 0
- strb r0, [r1]
- ldr r0, [r2]
- strh r3, [r0, 0x8]
- strh r3, [r0, 0xA]
- adds r0, 0x48
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r2]
- ldrb r2, [r1, 0x6]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r2, _08148170 @ =0x000082fc
- adds r1, r2
- adds r1, r0
- str r3, [r1]
- bx lr
- .align 2, 0
-_0814816C: .4byte gUnknown_203F3D4
-_08148170: .4byte 0x000082fc
- thumb_func_end sub_8148140
-
- thumb_func_start sub_8148174
-sub_8148174: @ 8148174
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r4, _081481F0 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldr r2, _081481F4 @ =0x000082f4
- adds r1, r0, r2
- ldrh r1, [r1]
- mov r8, r1
- ldr r3, _081481F8 @ =0x000082e4
- adds r0, r3
- mov r1, sp
- bl sub_8149B7C
- cmp r0, 0
- beq _08148224
- ldr r2, [r4]
- ldrb r0, [r2, 0x6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _081481FC @ =0x000082fc
- adds r0, r2, r3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _081481C2
- mov r0, sp
- adds r1, r2, 0
- adds r1, 0x70
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _081481C2
- mov r0, sp
- ldrb r0, [r0]
- bl sub_8148140
-_081481C2:
- ldr r3, _081481F0 @ =gUnknown_203F3D4
- ldr r2, [r3]
- ldr r0, [r2, 0x78]
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _08148204
- str r1, [r2, 0x78]
- movs r4, 0x1
- str r4, [r2, 0x5C]
- mov r0, sp
- ldrb r1, [r0, 0x1]
- adds r0, r2, 0
- adds r0, 0x71
- strb r1, [r0]
- ldr r0, [r3]
- adds r1, r0, 0
- adds r1, 0x71
- ldrb r1, [r1]
- cmp r1, 0
- beq _08148200
- adds r0, 0x4D
- strb r4, [r0]
- b _08148204
- .align 2, 0
-_081481F0: .4byte gUnknown_203F3D4
-_081481F4: .4byte 0x000082f4
-_081481F8: .4byte 0x000082e4
-_081481FC: .4byte 0x000082fc
-_08148200:
- adds r0, 0x4D
- strb r1, [r0]
-_08148204:
- ldr r0, _08148280 @ =gUnknown_203F3D4
- ldr r1, [r0]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- mov r0, sp
- ldrh r2, [r0, 0x4]
- adds r0, r1, 0
- adds r0, 0x74
- strh r2, [r0]
- ldr r0, _08148284 @ =0x000082f6
- adds r1, r0
- mov r2, r8
- strh r2, [r1]
-_08148224:
- movs r4, 0x1
- ldr r2, _08148280 @ =gUnknown_203F3D4
- ldr r0, [r2]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- bge _08148272
- adds r7, r2, 0
- ldr r6, _08148288 @ =0x0000830c
- movs r5, 0x28
-_08148236:
- ldr r1, [r7]
- ldrb r3, [r1, 0x6]
- cmp r4, r3
- beq _08148264
- adds r0, r1, r5
- ldr r3, _0814828C @ =0x000082f4
- adds r0, r3
- ldrh r0, [r0]
- mov r8, r0
- adds r0, r1, r6
- adds r1, r4, 0
- str r2, [sp, 0xC]
- bl sub_8149C90
- ldr r2, [sp, 0xC]
- cmp r0, 0
- beq _08148264
- ldr r0, [r7]
- adds r0, r5
- ldr r1, _08148284 @ =0x000082f6
- adds r0, r1
- mov r3, r8
- strh r3, [r0]
-_08148264:
- adds r6, 0x28
- adds r5, 0x28
- adds r4, 0x1
- ldr r0, [r2]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- blt _08148236
-_08148272:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148280: .4byte gUnknown_203F3D4
-_08148284: .4byte 0x000082f6
-_08148288: .4byte 0x0000830c
-_0814828C: .4byte 0x000082f4
- thumb_func_end sub_8148174
-
- thumb_func_start sub_8148290
-sub_8148290: @ 8148290
- push {r4,lr}
- bl sub_8148174
- ldr r4, _081482EC @ =gUnknown_203F3D4
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x48
- ldrb r0, [r0]
- cmp r0, 0
- beq _081482DC
- ldr r1, _081482F0 @ =gUnknown_846B670
- adds r0, r2, 0
- adds r0, 0x70
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- adds r1, r0, 0
- cmp r1, 0
- bne _081482DC
- ldr r0, [r4]
- adds r0, 0x48
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r2, [r1, 0x6]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r2, _081482F4 @ =0x000082fc
- adds r1, r2
- adds r1, r0
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0x3
- bl sub_8147F10
-_081482DC:
- bl sub_81492D8
- bl sub_81482F8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081482EC: .4byte gUnknown_203F3D4
-_081482F0: .4byte gUnknown_846B670
-_081482F4: .4byte 0x000082fc
- thumb_func_end sub_8148290
-
- thumb_func_start sub_81482F8
-sub_81482F8: @ 81482F8
- push {r4,lr}
- ldr r4, _08148338 @ =gUnknown_203F3D4
- ldr r2, [r4]
- ldr r0, [r2, 0x2C]
- cmp r0, 0
- bne _08148320
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0814833C @ =0x000082e4
- adds r0, r1
- adds r0, r2, r0
- adds r1, r2, 0
- adds r1, 0x70
- ldrb r1, [r1]
- adds r2, 0x42
- ldrh r2, [r2]
- bl sub_8149BF4
-_08148320:
- ldr r1, [r4]
- ldr r2, [r1, 0x30]
- ldr r0, _08148340 @ =0x00001111
- cmp r2, r0
- beq _08148332
- ldr r0, [r1, 0x2C]
- adds r0, 0x1
- ands r0, r2
- str r0, [r1, 0x2C]
-_08148332:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148338: .4byte gUnknown_203F3D4
-_0814833C: .4byte 0x000082e4
-_08148340: .4byte 0x00001111
- thumb_func_end sub_81482F8
-
- thumb_func_start sub_8148344
-sub_8148344: @ 8148344
- push {r4,lr}
- ldr r4, _08148358 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _0814835C
- cmp r0, 0x1
- beq _0814836A
- b _08148390
- .align 2, 0
-_08148358: .4byte gUnknown_203F3D4
-_0814835C:
- movs r0, 0x3
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0814836A:
- bl sub_81488DC
- cmp r0, 0
- bne _08148390
- ldr r0, _0814838C @ =gUnknown_203F3D4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x4A
- ldrh r0, [r0]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- adds r1, 0x4C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- b _08148392
- .align 2, 0
-_0814838C: .4byte gUnknown_203F3D4
-_08148390:
- movs r0, 0x1
-_08148392:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148344
-
- thumb_func_start sub_8148398
-sub_8148398: @ 8148398
- push {r4,lr}
- ldr r4, _081483AC @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _081483B0
- cmp r0, 0x1
- beq _081483C6
- movs r0, 0x1
- b _081483CA
- .align 2, 0
-_081483AC: .4byte gUnknown_203F3D4
-_081483B0:
- movs r0, 0
- bl sub_8147F10
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x72
- ldrh r0, [r0]
- str r0, [r1, 0x24]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081483C6:
- bl sub_81488DC
-_081483CA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148398
-
- thumb_func_start sub_81483D0
-sub_81483D0: @ 81483D0
- push {r4,lr}
- ldr r4, _081483E4 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _081483E8
- cmp r0, 0x1
- beq _081483FC
- b _08148410
- .align 2, 0
-_081483E4: .4byte gUnknown_203F3D4
-_081483E8:
- bl sub_81491E4
- movs r0, 0x5
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08148410
-_081483FC:
- adds r0, r1, 0
- adds r0, 0x49
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148410
- adds r1, 0x4C
- movs r0, 0x2
- strb r0, [r1]
- movs r0, 0
- b _08148412
-_08148410:
- movs r0, 0x1
-_08148412:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81483D0
-
- thumb_func_start sub_8148418
-sub_8148418: @ 8148418
- push {r4,lr}
- ldr r4, _0814842C @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _08148430
- cmp r0, 0x1
- beq _0814844E
- b _0814845A
- .align 2, 0
-_0814842C: .4byte gUnknown_203F3D4
-_08148430:
- bl sub_81491E4
- movs r0, 0
- bl sub_8147F10
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x72
- ldrh r0, [r0]
- adds r2, r1, 0
- adds r2, 0x4A
- strh r0, [r2]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0814844E:
- bl sub_8149804
- cmp r0, 0
- beq _0814845A
- movs r0, 0
- b _0814845C
-_0814845A:
- movs r0, 0x1
-_0814845C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148418
-
- thumb_func_start sub_8148464
-sub_8148464: @ 8148464
- push {lr}
- bl sub_81489C8
- cmp r0, 0
- bne _0814848C
- ldr r0, _08148488 @ =gUnknown_203F3D4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x4A
- ldrh r0, [r0]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- adds r1, 0x4C
- movs r0, 0x1
- strb r0, [r1]
- b _081484A6
- .align 2, 0
-_08148488: .4byte gUnknown_203F3D4
-_0814848C:
- bl sub_8149630
- cmp r0, 0
- beq _08148498
- movs r0, 0x1
- b _081484A8
-_08148498:
- bl sub_81491B4
- ldr r0, _081484AC @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x4C
- movs r1, 0x3
- strb r1, [r0]
-_081484A6:
- movs r0, 0
-_081484A8:
- pop {r1}
- bx r1
- .align 2, 0
-_081484AC: .4byte gUnknown_203F3D4
- thumb_func_end sub_8148464
-
- thumb_func_start sub_81484B0
-sub_81484B0: @ 81484B0
- push {lr}
- bl sub_81489C8
- cmp r0, 0
- beq _081484CA
- bl sub_8149630
- cmp r0, 0
- beq _081484C6
- movs r0, 0x1
- b _081484CC
-_081484C6:
- bl sub_81491B4
-_081484CA:
- movs r0, 0
-_081484CC:
- pop {r1}
- bx r1
- thumb_func_end sub_81484B0
-
- thumb_func_start sub_81484D0
-sub_81484D0: @ 81484D0
- push {r4,lr}
- ldr r4, _081484E8 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0x1
- beq _08148508
- cmp r0, 0x1
- bgt _081484EC
- cmp r0, 0
- beq _081484F2
- b _08148564
- .align 2, 0
-_081484E8: .4byte gUnknown_203F3D4
-_081484EC:
- cmp r0, 0x2
- beq _0814855C
- b _08148564
-_081484F2:
- bl sub_8149630
- bl sub_81496D4
- cmp r0, 0
- beq _08148564
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08148564
-_08148508:
- bl sub_8148A60
- cmp r0, 0
- bne _08148564
- bl sub_81498B4
- cmp r0, 0
- beq _0814852A
- bl sub_81498D8
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- adds r1, 0x4C
- movs r0, 0x7
- b _08148550
-_0814852A:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r0, [r0]
- cmp r0, 0xC7
- bls _08148544
- ldrh r0, [r1, 0xE]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- adds r1, 0x4C
- movs r0, 0x8
- b _08148550
-_08148544:
- ldrh r0, [r1, 0xE]
- adds r2, r1, 0
- adds r2, 0x72
- strh r0, [r2]
- adds r1, 0x4C
- movs r0, 0x4
-_08148550:
- strb r0, [r1]
- ldr r0, _08148560 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0814855C:
- movs r0, 0
- b _08148566
- .align 2, 0
-_08148560: .4byte gUnknown_203F3D4
-_08148564:
- movs r0, 0x1
-_08148566:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81484D0
-
- thumb_func_start sub_814856C
-sub_814856C: @ 814856C
- push {r4,lr}
- ldr r4, _08148584 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0x1
- beq _081485AC
- cmp r0, 0x1
- bgt _08148588
- cmp r0, 0
- beq _0814858E
- b _081485C0
- .align 2, 0
-_08148584: .4byte gUnknown_203F3D4
-_08148588:
- cmp r0, 0x2
- beq _081485BC
- b _081485C0
-_0814858E:
- bl sub_8149630
- cmp r0, 0
- bne _0814859A
- bl sub_81491B4
-_0814859A:
- bl sub_81496D4
- cmp r0, 0
- beq _081485C0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _081485C0
-_081485AC:
- bl sub_8148A60
- cmp r0, 0
- bne _081485C0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081485BC:
- movs r0, 0
- b _081485C2
-_081485C0:
- movs r0, 0x1
-_081485C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814856C
-
- thumb_func_start sub_81485C8
-sub_81485C8: @ 81485C8
- push {r4,lr}
- ldr r4, _081485E0 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r1, [r0, 0x8]
- cmp r1, 0x1
- beq _081485FC
- cmp r1, 0x1
- bgt _081485E4
- cmp r1, 0
- beq _081485EE
- b _0814865C
- .align 2, 0
-_081485E0: .4byte gUnknown_203F3D4
-_081485E4:
- cmp r1, 0x2
- beq _08148628
- cmp r1, 0x3
- beq _08148652
- b _0814865C
-_081485EE:
- movs r0, 0x4
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081485FC:
- bl sub_8148C80
- cmp r0, 0
- bne _0814865C
- ldr r4, _08148624 @ =gUnknown_203F3D4
- ldr r2, [r4]
- ldr r0, [r2, 0x78]
- adds r1, r2, 0
- adds r1, 0x74
- ldrh r1, [r1]
- adds r2, 0x72
- ldrh r2, [r2]
- bl sub_814B494
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814865C
- .align 2, 0
-_08148624: .4byte gUnknown_203F3D4
-_08148628:
- adds r0, 0x49
- ldrb r0, [r0]
- cmp r0, 0
- beq _0814865C
- bl sub_8149748
- cmp r0, 0
- beq _08148640
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0x5
- b _08148646
-_08148640:
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0x6
-_08148646:
- strb r1, [r0]
- ldr r0, _08148658 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08148652:
- movs r0, 0
- b _0814865E
- .align 2, 0
-_08148658: .4byte gUnknown_203F3D4
-_0814865C:
- movs r0, 0x1
-_0814865E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81485C8
-
- thumb_func_start sub_8148664
-sub_8148664: @ 8148664
- push {r4,lr}
- ldr r4, _08148678 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _0814867C
- cmp r0, 0x1
- beq _0814868A
- b _081486BC
- .align 2, 0
-_08148678: .4byte gUnknown_203F3D4
-_0814867C:
- movs r0, 0
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0814868A:
- bl sub_8148C80
- cmp r0, 0
- bne _081486BC
- ldr r4, _081486B8 @ =gUnknown_203F3D4
- ldr r2, [r4]
- ldr r0, [r2, 0x78]
- adds r1, r2, 0
- adds r1, 0x74
- ldrh r1, [r1]
- adds r2, 0x72
- ldrh r2, [r2]
- bl sub_814B494
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x45
- ldrb r1, [r1]
- adds r0, 0x42
- strh r1, [r0]
- movs r0, 0
- b _081486BE
- .align 2, 0
-_081486B8: .4byte gUnknown_203F3D4
-_081486BC:
- movs r0, 0x1
-_081486BE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148664
-
- thumb_func_start sub_81486C4
-sub_81486C4: @ 81486C4
- push {r4,lr}
- ldr r4, _081486D8 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _081486DC
- cmp r0, 0x1
- beq _081486EE
- b _0814871A
- .align 2, 0
-_081486D8: .4byte gUnknown_203F3D4
-_081486DC:
- bl sub_8148E2C
- cmp r0, 0
- bne _0814871A
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814871A
-_081486EE:
- adds r0, r1, 0
- adds r0, 0x49
- ldrb r0, [r0]
- cmp r0, 0
- beq _0814871A
- adds r0, r1, 0
- bl sub_8147B94
- bl Random
- ldr r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- str r0, [r1, 0x24]
- adds r3, r1, 0
- adds r3, 0x72
- movs r2, 0
- strh r0, [r3]
- adds r1, 0x4C
- strb r2, [r1]
- movs r0, 0
- b _0814871C
-_0814871A:
- movs r0, 0x1
-_0814871C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81486C4
-
- thumb_func_start sub_8148724
-sub_8148724: @ 8148724
- push {r4,lr}
- ldr r4, _08148738 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _0814873C
- cmp r0, 0x1
- beq _08148752
- b _08148756
- .align 2, 0
-_08148738: .4byte gUnknown_203F3D4
-_0814873C:
- bl sub_8148E2C
- cmp r0, 0
- bne _08148756
- ldr r0, [r4]
- bl sub_8147B94
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08148752:
- movs r0, 0
- b _08148758
-_08148756:
- movs r0, 0x1
-_08148758:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148724
-
- thumb_func_start sub_8148760
-sub_8148760: @ 8148760
- push {r4,lr}
- ldr r4, _08148778 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0x1
- beq _08148788
- cmp r0, 0x1
- bgt _0814877C
- cmp r0, 0
- beq _08148782
- b _081487AC
- .align 2, 0
-_08148778: .4byte gUnknown_203F3D4
-_0814877C:
- cmp r0, 0x2
- beq _08148798
- b _081487AC
-_08148782:
- movs r0, 0x1
- strh r0, [r1, 0x8]
- b _081487AC
-_08148788:
- movs r0, 0
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _081487AC
-_08148798:
- bl sub_8148D5C
- cmp r0, 0
- bne _081487AC
- ldr r0, [r4]
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_8147B48
-_081487AC:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148760
-
- thumb_func_start sub_81487B4
-sub_81487B4: @ 81487B4
- push {r4,lr}
- ldr r4, _081487C8 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _081487CC
- cmp r0, 0x1
- beq _081487DC
- b _081487F8
- .align 2, 0
-_081487C8: .4byte gUnknown_203F3D4
-_081487CC:
- movs r0, 0x4
- bl sub_8147F10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _081487F8
-_081487DC:
- bl sub_8148B54
- cmp r0, 0
- bne _081487F8
- ldr r0, [r4]
- ldrh r1, [r0, 0xE]
- adds r2, r0, 0
- adds r2, 0x72
- strh r1, [r2]
- adds r0, 0x4C
- movs r1, 0x8
- strb r1, [r0]
- movs r0, 0
- b _081487FA
-_081487F8:
- movs r0, 0x1
-_081487FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81487B4
-
- thumb_func_start sub_8148800
-sub_8148800: @ 8148800
- push {lr}
- movs r0, 0
- bl sub_8147F10
- bl sub_8148B54
- cmp r0, 0
- beq _08148814
- movs r0, 0x1
- b _08148816
-_08148814:
- movs r0, 0
-_08148816:
- pop {r1}
- bx r1
- thumb_func_end sub_8148800
-
- thumb_func_start sub_814881C
-sub_814881C: @ 814881C
- push {r4,lr}
- ldr r1, _08148834 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0x8]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081488D4
- lsls r0, 2
- ldr r1, _08148838 @ =_0814883C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148834: .4byte gUnknown_203F3D4
-_08148838: .4byte _0814883C
- .align 2, 0
-_0814883C:
- .4byte _08148850
- .4byte _0814886C
- .4byte _0814887C
- .4byte _08148894
- .4byte _081488B8
-_08148850:
- ldr r2, [r4]
- ldr r0, [r2, 0x78]
- adds r1, r2, 0
- adds r1, 0x74
- ldrh r1, [r1]
- adds r2, 0x72
- ldrh r2, [r2]
- bl sub_814B494
- movs r0, 0x5
- bl sub_8149D40
- ldr r1, [r4]
- b _081488A8
-_0814886C:
- bl sub_8149D68
- cmp r0, 0
- bne _081488D4
- movs r0, 0
- bl sub_8147F10
- b _081488A4
-_0814887C:
- bl sub_8149804
- cmp r0, 0
- beq _081488D4
- ldr r0, _08148890 @ =sub_80DA634
- movs r1, 0x6
- bl CreateTask
- b _081488A4
- .align 2, 0
-_08148890: .4byte sub_80DA634
-_08148894:
- ldr r0, _081488B0 @ =sub_80DA634
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _081488D4
- bl sub_814A6CC
-_081488A4:
- ldr r0, _081488B4 @ =gUnknown_203F3D4
- ldr r1, [r0]
-_081488A8:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _081488D4
- .align 2, 0
-_081488B0: .4byte sub_80DA634
-_081488B4: .4byte gUnknown_203F3D4
-_081488B8:
- bl sub_814A6FC
- cmp r0, 0
- bne _081488D4
- ldr r0, _081488D0 @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x4C
- movs r1, 0x4
- strb r1, [r0]
- movs r0, 0
- b _081488D6
- .align 2, 0
-_081488D0: .4byte gUnknown_203F3D4
-_081488D4:
- movs r0, 0x1
-_081488D6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814881C
-
- thumb_func_start sub_81488DC
-sub_81488DC: @ 81488DC
- push {r4,r5,lr}
- ldr r1, _081488F4 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0xA]
- adds r4, r1, 0
- cmp r0, 0x7
- bhi _081489C0
- lsls r0, 2
- ldr r1, _081488F8 @ =_081488FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081488F4: .4byte gUnknown_203F3D4
-_081488F8: .4byte _081488FC
- .align 2, 0
-_081488FC:
- .4byte _0814891C
- .4byte _08148928
- .4byte _08148948
- .4byte _08148962
- .4byte _08148974
- .4byte _0814897C
- .4byte _0814899C
- .4byte _081489B6
-_0814891C:
- movs r0, 0x2
- bl sub_8149D40
- bl sub_814AAA0
- b _0814898C
-_08148928:
- bl sub_8149D68
- adds r5, r0, 0
- cmp r5, 0
- bne _081489C0
- ldr r4, _08148944 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrb r0, [r0, 0x6]
- bl sub_814AAB4
- ldr r1, [r4]
- strh r5, [r1, 0x3C]
- b _08148990
- .align 2, 0
-_08148944: .4byte gUnknown_203F3D4
-_08148948:
- ldr r1, [r4]
- ldrh r0, [r1, 0x3C]
- adds r0, 0x1
- strh r0, [r1, 0x3C]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x78
- bls _081489C0
- movs r0, 0x3
- bl sub_8149D40
- ldr r1, [r4]
- b _08148990
-_08148962:
- bl sub_8149D68
- cmp r0, 0x1
- beq _081489C0
- bl sub_814AAC8
- cmp r0, 0x1
- beq _081489C0
- b _0814898C
-_08148974:
- movs r0, 0x9
- bl sub_8149D40
- b _0814898C
-_0814897C:
- bl sub_8149D68
- cmp r0, 0
- bne _081489C0
- bl sub_814935C
- bl sub_814A3E4
-_0814898C:
- ldr r0, _08148998 @ =gUnknown_203F3D4
- ldr r1, [r0]
-_08148990:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _081489C0
- .align 2, 0
-_08148998: .4byte gUnknown_203F3D4
-_0814899C:
- bl sub_814A408
- cmp r0, 0
- bne _081489C0
- bl sub_814936C
- bl sub_8148F9C
- ldr r0, _081489BC @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_081489B6:
- movs r0, 0
- b _081489C2
- .align 2, 0
-_081489BC: .4byte gUnknown_203F3D4
-_081489C0:
- movs r0, 0x1
-_081489C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81488DC
-
- thumb_func_start sub_81489C8
-sub_81489C8: @ 81489C8
- push {r4,r5,lr}
- bl sub_8148FE0
- ldr r5, _081489E0 @ =gUnknown_203F3D4
- ldr r1, [r5]
- ldrh r4, [r1, 0x36]
- cmp r4, 0
- beq _081489E4
- movs r0, 0
- strh r0, [r1, 0x36]
- b _08148A58
- .align 2, 0
-_081489E0: .4byte gUnknown_203F3D4
-_081489E4:
- ldrh r0, [r1, 0xA]
- cmp r0, 0x1
- beq _08148A10
- cmp r0, 0x1
- bgt _081489F4
- cmp r0, 0
- beq _081489FE
- b _08148A56
-_081489F4:
- cmp r0, 0x2
- beq _08148A34
- cmp r0, 0x3
- beq _08148A48
- b _08148A56
-_081489FE:
- movs r0, 0
- bl sub_814922C
- cmp r0, 0
- beq _08148A56
- ldr r1, [r5]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08148A10:
- ldr r0, _08148A2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08148A56
- bl sub_8149260
- movs r0, 0x3
- bl sub_8147F10
- ldr r0, _08148A30 @ =gUnknown_203F3D4
- ldr r1, [r0]
- b _08148A40
- .align 2, 0
-_08148A2C: .4byte gMain
-_08148A30: .4byte gUnknown_203F3D4
-_08148A34:
- movs r0, 0x1
- bl sub_814922C
- cmp r0, 0x1
- bne _08148A56
- ldr r1, [r5]
-_08148A40:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148A56
-_08148A48:
- movs r0, 0
- bl sub_814922C
- cmp r0, 0x1
- bne _08148A56
- ldr r0, [r5]
- strh r4, [r0, 0xA]
-_08148A56:
- movs r0, 0x1
-_08148A58:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81489C8
-
- thumb_func_start sub_8148A60
-sub_8148A60: @ 8148A60
- push {r4-r6,lr}
- ldr r1, _08148A78 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0xA]
- adds r5, r1, 0
- cmp r0, 0x4
- bhi _08148B4C
- lsls r0, 2
- ldr r1, _08148A7C @ =_08148A80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148A78: .4byte gUnknown_203F3D4
-_08148A7C: .4byte _08148A80
- .align 2, 0
-_08148A80:
- .4byte _08148A94
- .4byte _08148AB8
- .4byte _08148AFC
- .4byte _08148B20
- .4byte _08148B42
-_08148A94:
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- bge _08148AB4
- adds r6, r5, 0
-_08148AA0:
- adds r0, r4, 0
- bl sub_814AA78
- cmp r0, 0x1
- beq _08148B4C
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- blt _08148AA0
-_08148AB4:
- ldr r1, [r5]
- b _08148B18
-_08148AB8:
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- bge _08148AE8
- adds r6, r5, 0
- movs r5, 0
-_08148AC6:
- ldr r0, [r6]
- adds r0, r5
- ldr r1, _08148AF4 @ =0x000082f4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _08148ADC
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_814AA60
-_08148ADC:
- adds r5, 0x28
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- blt _08148AC6
-_08148AE8:
- movs r0, 0x1
- bl sub_8149D40
- ldr r0, _08148AF8 @ =gUnknown_203F3D4
- ldr r1, [r0]
- b _08148B14
- .align 2, 0
-_08148AF4: .4byte 0x000082f4
-_08148AF8: .4byte gUnknown_203F3D4
-_08148AFC:
- ldr r1, [r5]
- ldrh r0, [r1, 0x3C]
- adds r0, 0x1
- strh r0, [r1, 0x3C]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x64
- bls _08148B4C
- movs r0, 0x3
- bl sub_8149D40
- ldr r1, [r5]
-_08148B14:
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08148B18:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148B4C
-_08148B20:
- bl sub_8149D68
- adds r5, r0, 0
- cmp r5, 0
- bne _08148B4C
- bl sub_814AA8C
- ldr r4, _08148B48 @ =gUnknown_203F3D4
- ldr r0, [r4]
- adds r0, 0x71
- strb r5, [r0]
- bl sub_8149210
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08148B42:
- movs r0, 0
- b _08148B4E
- .align 2, 0
-_08148B48: .4byte gUnknown_203F3D4
-_08148B4C:
- movs r0, 0x1
-_08148B4E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8148A60
-
- thumb_func_start sub_8148B54
-sub_8148B54: @ 8148B54
- push {r4,lr}
- ldr r1, _08148B70 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0xA]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _08148B64
- b _08148C78
-_08148B64:
- lsls r0, 2
- ldr r1, _08148B74 @ =_08148B78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148B70: .4byte gUnknown_203F3D4
-_08148B74: .4byte _08148B78
- .align 2, 0
-_08148B78:
- .4byte _08148B94
- .4byte _08148BB4
- .4byte _08148BCC
- .4byte _08148BFC
- .4byte _08148BB4
- .4byte _08148BCC
- .4byte _08148C6C
-_08148B94:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x72
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x3E
- adds r2, 0x40
- bl sub_8149900
- ldr r1, [r4]
- ldrh r0, [r1, 0x3E]
- adds r1, 0x40
- ldrh r1, [r1]
- bl sub_814A468
- b _08148BEC
-_08148BB4:
- bl sub_814A62C
- adds r2, r0, 0
- cmp r2, 0
- bne _08148C78
- ldr r0, _08148BC8 @ =gUnknown_203F3D4
- ldr r1, [r0]
- strh r2, [r1, 0x3C]
- b _08148BEE
- .align 2, 0
-_08148BC8: .4byte gUnknown_203F3D4
-_08148BCC:
- ldr r1, [r4]
- ldrh r0, [r1, 0x3C]
- adds r2, r0, 0x1
- strh r2, [r1, 0x3C]
- ldr r0, _08148BF8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08148BE8
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0xB4
- bls _08148C78
-_08148BE8:
- bl sub_814A6CC
-_08148BEC:
- ldr r1, [r4]
-_08148BEE:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148C78
- .align 2, 0
-_08148BF8: .4byte gMain
-_08148BFC:
- bl sub_814A6FC
- cmp r0, 0
- bne _08148C78
- ldr r4, _08148C48 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldrh r0, [r1, 0x3E]
- adds r1, 0x40
- ldrh r1, [r1]
- bl sub_8149978
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x40
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- beq _08148C54
- ldrh r0, [r1, 0x3E]
- ldrh r1, [r2]
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- beq _08148C54
- ldr r0, [r4]
- ldrh r0, [r0, 0x3E]
- movs r1, 0x1
- bl CheckBagHasSpace
- lsls r0, 24
- cmp r0, 0
- bne _08148C4C
- ldr r0, [r4]
- ldrh r0, [r0, 0x3E]
- bl sub_814A53C
- b _08148C5E
- .align 2, 0
-_08148C48: .4byte gUnknown_203F3D4
-_08148C4C:
- ldr r1, [r4]
- movs r0, 0x6
- strh r0, [r1, 0xA]
- b _08148C78
-_08148C54:
- ldr r4, _08148C68 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x3E]
- bl sub_814A5B4
-_08148C5E:
- ldr r1, [r4]
- movs r0, 0x4
- strh r0, [r1, 0xA]
- b _08148C78
- .align 2, 0
-_08148C68: .4byte gUnknown_203F3D4
-_08148C6C:
- bl sub_814A6FC
- cmp r0, 0
- bne _08148C78
- movs r0, 0
- b _08148C7A
-_08148C78:
- movs r0, 0x1
-_08148C7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148B54
-
- thumb_func_start sub_8148C80
-sub_8148C80: @ 8148C80
- push {r4,lr}
- ldr r0, _08148C98 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrh r0, [r0, 0xA]
- cmp r0, 0x6
- bhi _08148D54
- lsls r0, 2
- ldr r1, _08148C9C @ =_08148CA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148C98: .4byte gUnknown_203F3D4
-_08148C9C: .4byte _08148CA0
- .align 2, 0
-_08148CA0:
- .4byte _08148CBC
- .4byte _08148CC0
- .4byte _08148CCA
- .4byte _08148D18
- .4byte _08148D22
- .4byte _08148D38
- .4byte _08148D4A
-_08148CBC:
- movs r0, 0x4
- b _08148D24
-_08148CC0:
- bl sub_8149D68
- cmp r0, 0
- bne _08148D54
- b _08148D28
-_08148CCA:
- bl sub_814A744
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08148D00
- cmp r1, 0
- bgt _08148CE4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08148CE8
- b _08148D54
-_08148CE4:
- cmp r1, 0x1
- bne _08148D54
-_08148CE8:
- ldr r4, _08148CFC @ =gUnknown_203F3D4
- ldr r0, [r4]
- adds r0, 0x45
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x6
- bl sub_8149D40
- ldr r1, [r4]
- b _08148D2C
- .align 2, 0
-_08148CFC: .4byte gUnknown_203F3D4
-_08148D00:
- ldr r4, _08148D14 @ =gUnknown_203F3D4
- ldr r0, [r4]
- adds r0, 0x45
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x6
- bl sub_8149D40
- ldr r1, [r4]
- b _08148D2C
- .align 2, 0
-_08148D14: .4byte gUnknown_203F3D4
-_08148D18:
- bl sub_8149D68
- cmp r0, 0
- bne _08148D54
- b _08148D28
-_08148D22:
- movs r0, 0x8
-_08148D24:
- bl sub_8149D40
-_08148D28:
- ldr r0, _08148D34 @ =gUnknown_203F3D4
- ldr r1, [r0]
-_08148D2C:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148D54
- .align 2, 0
-_08148D34: .4byte gUnknown_203F3D4
-_08148D38:
- bl sub_8149D68
- cmp r0, 0
- bne _08148D54
- ldr r0, _08148D50 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08148D4A:
- movs r0, 0
- b _08148D56
- .align 2, 0
-_08148D50: .4byte gUnknown_203F3D4
-_08148D54:
- movs r0, 0x1
-_08148D56:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148C80
-
- thumb_func_start sub_8148D5C
-sub_8148D5C: @ 8148D5C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08148D78 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrh r0, [r0, 0xA]
- adds r4, r1, 0
- cmp r0, 0x5
- bhi _08148E20
- lsls r0, 2
- ldr r1, _08148D7C @ =_08148D80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148D78: .4byte gUnknown_203F3D4
-_08148D7C: .4byte _08148D80
- .align 2, 0
-_08148D80:
- .4byte _08148D98
- .4byte _08148D9E
- .4byte _08148DAE
- .4byte _08148DC4
- .4byte _08148DEA
- .4byte _08148E10
-_08148D98:
- bl sub_814A6CC
- b _08148DFA
-_08148D9E:
- bl sub_814A6FC
- cmp r0, 0
- bne _08148E20
- movs r0, 0x7
- bl sub_8149D40
- b _08148DFA
-_08148DAE:
- bl sub_8149D68
- adds r2, r0, 0
- cmp r2, 0
- bne _08148E20
- ldr r0, _08148DC0 @ =gUnknown_203F3D4
- ldr r1, [r0]
- strh r2, [r1, 0x3C]
- b _08148DFE
- .align 2, 0
-_08148DC0: .4byte gUnknown_203F3D4
-_08148DC4:
- ldr r1, [r4]
- ldrh r0, [r1, 0x3C]
- adds r0, 0x1
- strh r0, [r1, 0x3C]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x78
- bls _08148E20
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _08148DFE
-_08148DEA:
- ldr r0, _08148E08 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08148E20
- bl Link_TryStartSend5FFF
-_08148DFA:
- ldr r0, _08148E0C @ =gUnknown_203F3D4
- ldr r1, [r0]
-_08148DFE:
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148E20
- .align 2, 0
-_08148E08: .4byte gPaletteFade
-_08148E0C: .4byte gUnknown_203F3D4
-_08148E10:
- ldr r0, _08148E1C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08148E20
- movs r0, 0
- b _08148E22
- .align 2, 0
-_08148E1C: .4byte gReceivedRemoteLinkPlayers
-_08148E20:
- movs r0, 0x1
-_08148E22:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148D5C
-
- thumb_func_start sub_8148E2C
-sub_8148E2C: @ 8148E2C
- push {r4,lr}
- ldr r4, _08148E44 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldrh r0, [r0, 0xA]
- cmp r0, 0x1
- beq _08148E62
- cmp r0, 0x1
- bgt _08148E48
- cmp r0, 0
- beq _08148E4E
- b _08148E76
- .align 2, 0
-_08148E44: .4byte gUnknown_203F3D4
-_08148E48:
- cmp r0, 0x2
- beq _08148E72
- b _08148E76
-_08148E4E:
- bl sub_814A6CC
- movs r0, 0
- bl sub_814AA24
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _08148E76
-_08148E62:
- bl sub_814A6FC
- cmp r0, 0
- bne _08148E76
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08148E72:
- movs r0, 0
- b _08148E78
-_08148E76:
- movs r0, 0x1
-_08148E78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148E2C
-
- thumb_func_start sub_8148E80
-sub_8148E80: @ 8148E80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _08148EB4 @ =gTasks+0x8
- adds r6, r0, r1
- mov r0, r10
- movs r1, 0xE
- bl GetWordTaskArg
- mov r8, r0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _08148EC4
- cmp r0, 0x1
- beq _08148ED8
- b _08148F44
- .align 2, 0
-_08148EB4: .4byte gTasks+0x8
-_08148EB8:
- bl sub_8147C20
- mov r0, r10
- bl DestroyTask
- b _08148F44
-_08148EC4:
- movs r1, 0
- adds r0, r6, 0
- adds r0, 0x8
-_08148ECA:
- strh r1, [r0, 0x4]
- subs r0, 0x2
- cmp r0, r6
- bge _08148ECA
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
-_08148ED8:
- mov r3, r8
- ldrb r1, [r3, 0x6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _08148F54 @ =0x000082a8
- adds r0, r4
- add r0, r8
- bl sub_8149A6C
- movs r2, 0
- adds r5, r6, 0x4
- mov r9, r2
- movs r7, 0x83
- lsls r7, 8
- add r7, r8
- add r4, r8
-_08148EFA:
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08148F34
- adds r0, r2, 0
- adds r1, r4, 0
- str r2, [sp]
- bl sub_8149A90
- ldr r2, [sp]
- cmp r0, 0
- beq _08148F34
- ldr r1, _08148F58 @ =gLinkPlayers + 8
- add r1, r9
- adds r0, r7, 0
- bl StringCopy
- movs r0, 0x1
- strh r0, [r5]
- ldrh r0, [r6, 0x2]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- ldr r2, [sp]
- mov r1, r8
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- beq _08148EB8
-_08148F34:
- adds r5, 0x2
- movs r3, 0x1C
- add r9, r3
- adds r7, 0x28
- adds r4, 0xC
- adds r2, 0x1
- cmp r2, 0x4
- ble _08148EFA
-_08148F44:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148F54: .4byte 0x000082a8
-_08148F58: .4byte gLinkPlayers + 8
- thumb_func_end sub_8148E80
-
- thumb_func_start sub_8148F5C
-sub_8148F5C: @ 8148F5C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148F78 @ =gUnknown_203F3D4
- ldr r2, [r1]
- movs r1, 0xE
- bl SetWordTaskArg
- pop {r0}
- bx r0
- .align 2, 0
-_08148F78: .4byte gUnknown_203F3D4
- thumb_func_end sub_8148F5C
-
- thumb_func_start sub_8148F7C
-sub_8148F7C: @ 8148F7C
- ldr r0, _08148F98 @ =gUnknown_203F3D4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4A
- movs r1, 0
- strh r1, [r0]
- movs r0, 0x6
- str r0, [r2, 0x14]
- strh r1, [r2, 0x34]
- str r1, [r2, 0x1C]
- strh r1, [r2, 0x36]
- str r1, [r2, 0x10]
- bx lr
- .align 2, 0
-_08148F98: .4byte gUnknown_203F3D4
- thumb_func_end sub_8148F7C
-
- thumb_func_start sub_8148F9C
-sub_8148F9C: @ 8148F9C
- push {r4,lr}
- ldr r3, _08148FD8 @ =gUnknown_203F3D4
- ldr r0, [r3]
- adds r1, r0, 0
- adds r1, 0x4A
- movs r4, 0
- movs r2, 0
- strh r2, [r1]
- ldr r1, _08148FDC @ =0x000006ff
- strh r1, [r0, 0x34]
- movs r1, 0x7
- str r1, [r0, 0x14]
- strh r2, [r0, 0x36]
- str r2, [r0, 0x10]
- adds r0, 0x51
- strb r4, [r0]
- ldr r0, [r3]
- adds r0, 0x50
- strb r4, [r0]
- ldr r0, [r3]
- str r2, [r0, 0x20]
- adds r1, r0, 0
- adds r1, 0x4E
- strh r2, [r1]
- str r2, [r0, 0x6C]
- bl sub_8149078
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148FD8: .4byte gUnknown_203F3D4
-_08148FDC: .4byte 0x000006ff
- thumb_func_end sub_8148F9C
-
- thumb_func_start sub_8148FE0
-sub_8148FE0: @ 8148FE0
- push {r4,lr}
- ldr r4, _08149038 @ =gUnknown_203F3D4
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x46
- ldrb r0, [r0]
- cmp r0, 0
- beq _08149030
- adds r1, 0x4A
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_8149044
- ldr r3, [r4]
- ldrh r1, [r3, 0x34]
- adds r2, r1, r0
- strh r2, [r3, 0x34]
- lsls r1, r2, 16
- ldr r0, _0814903C @ =0x09fe0000
- cmp r1, r0
- bls _08149012
- ldr r1, _08149040 @ =0xfffff601
- adds r0, r2, r1
- strh r0, [r3, 0x34]
-_08149012:
- ldr r1, [r4]
- ldr r2, [r1, 0x14]
- str r2, [r1, 0x18]
- ldrh r0, [r1, 0x34]
- lsrs r0, 8
- str r0, [r1, 0x14]
- cmp r0, 0x6
- bls _08149030
- cmp r2, 0x6
- bhi _08149030
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- bl sub_8149078
-_08149030:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149038: .4byte gUnknown_203F3D4
-_0814903C: .4byte 0x09fe0000
-_08149040: .4byte 0xfffff601
- thumb_func_end sub_8148FE0
-
- thumb_func_start sub_8149044
-sub_8149044: @ 8149044
- push {lr}
- ldr r0, _08149054 @ =gUnknown_203F3D4
- ldr r2, [r0]
- ldr r0, [r2, 0x10]
- cmp r0, 0
- beq _08149058
- movs r0, 0
- b _0814906E
- .align 2, 0
-_08149054: .4byte gUnknown_203F3D4
-_08149058:
- ldr r3, [r2, 0x1C]
- ldrh r1, [r2, 0x34]
- ldr r0, _08149074 @ =0x000005ff
- cmp r1, r0
- bhi _0814906C
- ldr r0, [r2, 0x20]
- adds r0, 0x50
- str r0, [r2, 0x20]
- lsrs r0, 8
- adds r3, r0
-_0814906C:
- adds r0, r3, 0
-_0814906E:
- pop {r1}
- bx r1
- .align 2, 0
-_08149074: .4byte 0x000005ff
- thumb_func_end sub_8149044
-
- thumb_func_start sub_8149078
-sub_8149078: @ 8149078
- push {r4,lr}
- ldr r4, _081490A8 @ =gUnknown_203F3D4
- ldr r3, [r4]
- movs r0, 0
- str r0, [r3, 0x20]
- adds r1, r3, 0
- adds r1, 0x4E
- ldrh r0, [r1]
- cmp r0, 0
- beq _081490BC
- subs r0, 0x1
- strh r0, [r1]
- ldr r0, [r3, 0x6C]
- cmp r0, 0
- beq _08149186
- bl sub_8149194
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _081490AC
- ldr r1, [r4]
- b _08149182
- .align 2, 0
-_081490A8: .4byte gUnknown_203F3D4
-_081490AC:
- ldr r1, [r4]
- ldr r0, [r1, 0x28]
- cmp r0, 0x36
- bls _081490B8
- movs r0, 0x1E
- b _08149184
-_081490B8:
- movs r0, 0x52
- b _08149184
-_081490BC:
- adds r2, r3, 0
- adds r2, 0x50
- ldrb r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08149110
- ldr r0, _08149108 @ =gUnknown_846B694
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x51
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- ldrh r1, [r1]
- adds r0, r1
- str r0, [r3, 0x28]
- bl sub_8149194
- ldr r2, [r4]
- ldr r3, _0814910C @ =gUnknown_846B6A4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 1
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x2
- adds r1, r2, 0
- adds r1, 0x4E
- strh r0, [r1]
- adds r2, 0x50
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _0814917E
- .align 2, 0
-_08149108: .4byte gUnknown_846B694
-_0814910C: .4byte gUnknown_846B6A4
-_08149110:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bne _0814912C
- adds r1, r3, 0
- adds r1, 0x51
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08149128
- adds r0, 0x1
- strb r0, [r1]
- b _0814912C
-_08149128:
- movs r0, 0x1
- str r0, [r3, 0x6C]
-_0814912C:
- ldr r2, _0814918C @ =gUnknown_846B694
- ldr r4, _08149190 @ =gUnknown_203F3D4
- ldr r0, [r4]
- mov r12, r0
- mov r3, r12
- adds r3, 0x50
- ldrb r0, [r3]
- movs r1, 0xF
- subs r1, r0
- lsls r1, 1
- adds r1, r2
- mov r0, r12
- adds r0, 0x51
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- ldrh r1, [r1]
- adds r0, r1
- mov r1, r12
- str r0, [r1, 0x28]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0814917E
- bl sub_8149194
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- bne _08149176
- ldr r1, [r4]
- ldr r0, [r1, 0x28]
- subs r0, 0x5
- str r0, [r1, 0x28]
-_08149176:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0
- strb r1, [r0]
-_0814917E:
- ldr r0, _08149190 @ =gUnknown_203F3D4
- ldr r1, [r0]
-_08149182:
- ldr r0, [r1, 0x28]
-_08149184:
- str r0, [r1, 0x1C]
-_08149186:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814918C: .4byte gUnknown_846B694
-_08149190: .4byte gUnknown_203F3D4
- thumb_func_end sub_8149078
-
- thumb_func_start sub_8149194
-sub_8149194: @ 8149194
- ldr r0, _081491A8 @ =gUnknown_203F3D4
- ldr r2, [r0]
- ldr r1, [r2, 0x24]
- ldr r0, _081491AC @ =0x41c64e6d
- muls r0, r1
- ldr r1, _081491B0 @ =0x00006073
- adds r0, r1
- str r0, [r2, 0x24]
- lsrs r0, 16
- bx lr
- .align 2, 0
-_081491A8: .4byte gUnknown_203F3D4
-_081491AC: .4byte 0x41c64e6d
-_081491B0: .4byte 0x00006073
- thumb_func_end sub_8149194
-
- thumb_func_start sub_81491B4
-sub_81491B4: @ 81491B4
- push {lr}
- ldr r0, _081491D0 @ =gUnknown_203F3D4
- ldr r1, [r0]
- movs r0, 0x1
- str r0, [r1, 0x10]
- movs r0, 0x6
- str r0, [r1, 0x14]
- ldr r0, _081491D4 @ =0x000005ff
- strh r0, [r1, 0x34]
- bl sub_814936C
- pop {r0}
- bx r0
- .align 2, 0
-_081491D0: .4byte gUnknown_203F3D4
-_081491D4: .4byte 0x000005ff
- thumb_func_end sub_81491B4
-
- thumb_func_start sub_81491D8
-sub_81491D8: @ 81491D8
- ldr r0, _081491E0 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- bx lr
- .align 2, 0
-_081491E0: .4byte gUnknown_203F3D4
- thumb_func_end sub_81491D8
-
- thumb_func_start sub_81491E4
-sub_81491E4: @ 81491E4
- push {r4,r5,lr}
- ldr r5, _08149208 @ =gUnknown_203F3D4
- ldr r4, _0814920C @ =0x000082f8
- movs r3, 0
- movs r2, 0
- movs r1, 0x4
-_081491F0:
- ldr r0, [r5]
- adds r0, r4
- adds r0, r2
- str r3, [r0]
- adds r2, 0x28
- subs r1, 0x1
- cmp r1, 0
- bge _081491F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149208: .4byte gUnknown_203F3D4
-_0814920C: .4byte 0x000082f8
- thumb_func_end sub_81491E4
-
- thumb_func_start sub_8149210
-sub_8149210: @ 8149210
- ldr r0, _08149224 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldr r1, _08149228 @ =0x000083ac
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0
- strh r2, [r1, 0x10]
- ldr r0, [r0]
- strh r2, [r0, 0x12]
- bx lr
- .align 2, 0
-_08149224: .4byte gUnknown_203F3D4
-_08149228: .4byte 0x000083ac
- thumb_func_end sub_8149210
-
- thumb_func_start sub_814922C
-sub_814922C: @ 814922C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08149250 @ =gUnknown_203F3D4
- ldr r2, [r1]
- ldrb r3, [r2, 0x6]
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r2, r1
- ldr r1, _08149254 @ =0x000082f4
- adds r2, r1
- ldrh r1, [r2]
- cmp r1, r0
- beq _08149258
- movs r0, 0
- b _0814925A
- .align 2, 0
-_08149250: .4byte gUnknown_203F3D4
-_08149254: .4byte 0x000082f4
-_08149258:
- movs r0, 0x1
-_0814925A:
- pop {r1}
- bx r1
- thumb_func_end sub_814922C
-
- thumb_func_start sub_8149260
-sub_8149260: @ 8149260
- ldr r0, _08149280 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldr r1, _08149284 @ =0x000083ac
- adds r2, r0, r1
- ldr r1, [r2]
- adds r0, 0x4A
- ldrh r0, [r0]
- strh r0, [r1, 0xE]
- ldr r1, [r2]
- ldrh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- ldr r1, [r2]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08149280: .4byte gUnknown_203F3D4
-_08149284: .4byte 0x000083ac
- thumb_func_end sub_8149260
-
- thumb_func_start sub_8149288
-sub_8149288: @ 8149288
- push {r4,lr}
- ldr r0, _081492B0 @ =gUnknown_203F3D4
- ldr r2, [r0]
- ldr r0, _081492B4 @ =0x000083ac
- adds r3, r2, r0
- ldr r1, [r3]
- ldrh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- ldr r0, [r3]
- movs r4, 0x2
- strh r4, [r0, 0x10]
- ldr r1, [r3]
- adds r2, 0x4A
- ldrh r0, [r2]
- strh r0, [r1, 0xE]
- ldr r0, [r3]
- str r4, [r0, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081492B0: .4byte gUnknown_203F3D4
-_081492B4: .4byte 0x000083ac
- thumb_func_end sub_8149288
-
- thumb_func_start sub_81492B8
-sub_81492B8: @ 81492B8
- ldr r0, _081492D0 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldr r1, _081492D4 @ =0x000083ac
- adds r0, r1
- ldr r1, [r0]
- ldrh r2, [r1, 0x10]
- movs r3, 0
- strh r2, [r1, 0x12]
- ldr r0, [r0]
- strh r3, [r0, 0x10]
- bx lr
- .align 2, 0
-_081492D0: .4byte gUnknown_203F3D4
-_081492D4: .4byte 0x000083ac
- thumb_func_end sub_81492B8
-
- thumb_func_start sub_81492D8
-sub_81492D8: @ 81492D8
- push {r4,r5,lr}
- ldr r4, _08149334 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldr r0, [r1, 0x5C]
- cmp r0, 0
- beq _08149318
- ldr r0, [r1, 0x78]
- bl sub_814AA24
- ldr r1, [r4]
- movs r5, 0
- str r5, [r1, 0x5C]
- adds r0, r1, 0
- adds r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0
- beq _08149318
- adds r0, r1, 0
- adds r0, 0x71
- ldrb r0, [r0]
- bl sub_814A98C
- ldr r1, _08149338 @ =gUnknown_846B6AC
- subs r0, 0x2
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl PlaySE
- ldr r0, [r4]
- adds r0, 0x4D
- strb r5, [r0]
-_08149318:
- ldr r0, _08149334 @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x74
- ldrh r0, [r0]
- bl sub_814AA34
- bl sub_814937C
- bl sub_814933C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149334: .4byte gUnknown_203F3D4
-_08149338: .4byte gUnknown_846B6AC
- thumb_func_end sub_81492D8
-
- thumb_func_start sub_814933C
-sub_814933C: @ 814933C
- push {lr}
- ldr r0, _08149358 @ =gUnknown_203F3D4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x46
- ldrb r0, [r0]
- cmp r0, 0
- beq _08149352
- ldr r0, [r1, 0x14]
- bl sub_814A95C
-_08149352:
- pop {r0}
- bx r0
- .align 2, 0
-_08149358: .4byte gUnknown_203F3D4
- thumb_func_end sub_814933C
-
- thumb_func_start sub_814935C
-sub_814935C: @ 814935C
- ldr r0, _08149368 @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x46
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08149368: .4byte gUnknown_203F3D4
- thumb_func_end sub_814935C
-
- thumb_func_start sub_814936C
-sub_814936C: @ 814936C
- ldr r0, _08149378 @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x46
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08149378: .4byte gUnknown_203F3D4
- thumb_func_end sub_814936C
-
- thumb_func_start sub_814937C
-sub_814937C: @ 814937C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r2, _081493B8 @ =gUnknown_203F3D4
- ldr r0, [r2]
- ldrb r0, [r0, 0x5]
- mov r9, r0
- movs r5, 0
- cmp r6, r9
- bge _0814945C
- mov r10, r2
- mov r8, r5
- movs r7, 0
-_0814939E:
- mov r0, r10
- ldr r3, [r0]
- adds r1, r3, r7
- ldr r2, _081493BC @ =0x000082f4
- adds r0, r1, r2
- ldrh r2, [r0]
- cmp r2, 0x1
- beq _081493D0
- cmp r2, 0x1
- bgt _081493C0
- cmp r2, 0
- beq _081493C6
- b _08149450
- .align 2, 0
-_081493B8: .4byte gUnknown_203F3D4
-_081493BC: .4byte 0x000082f4
-_081493C0:
- cmp r2, 0x2
- beq _08149434
- b _08149450
-_081493C6:
- adds r0, r5, 0
- movs r1, 0
- bl sub_814A940
- b _08149450
-_081493D0:
- ldr r0, _08149424 @ =0x000082f6
- adds r4, r1, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- bne _081493F2
- ldr r0, _08149428 @ =0x000082f2
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x9A
- add r1, r8
- str r1, [sp]
- ldrh r1, [r0]
- mov r12, r1
- ldr r0, [sp]
- ldrh r0, [r0]
- cmp r12, r0
- beq _0814941A
-_081493F2:
- ldrb r3, [r3, 0x6]
- cmp r5, r3
- bne _081493FA
- strh r2, [r4]
-_081493FA:
- orrs r6, r2
- mov r1, r10
- ldr r2, [r1]
- ldr r1, _0814942C @ =0x000082e8
- adds r0, r2, r1
- adds r0, r7
- ldr r1, _08149430 @ =0x7fffffff
- str r1, [r0]
- adds r1, r2, 0
- adds r1, 0x9A
- add r1, r8
- adds r2, r7
- ldr r0, _08149428 @ =0x000082f2
- adds r2, r0
- ldrh r0, [r2]
- strh r0, [r1]
-_0814941A:
- adds r0, r5, 0
- bl sub_8149490
- b _08149450
- .align 2, 0
-_08149424: .4byte 0x000082f6
-_08149428: .4byte 0x000082f2
-_0814942C: .4byte 0x000082e8
-_08149430: .4byte 0x7fffffff
-_08149434:
- ldr r0, _0814946C @ =0x000082f6
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0x2
- beq _08149450
- ldrb r3, [r3, 0x6]
- cmp r5, r3
- bne _08149446
- strh r2, [r1]
-_08149446:
- orrs r6, r2
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_814AA48
-_08149450:
- movs r1, 0x2
- add r8, r1
- adds r7, 0x28
- adds r5, 0x1
- cmp r5, r9
- blt _0814939E
-_0814945C:
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _08149470
- movs r0, 0xFF
- bl PlaySE
- b _0814947E
- .align 2, 0
-_0814946C: .4byte 0x000082f6
-_08149470:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _0814947E
- movs r0, 0xA
- bl PlaySE
-_0814947E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_814937C
-
- thumb_func_start sub_8149490
-sub_8149490: @ 8149490
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _081494BC @ =gUnknown_203F3D4
- ldr r2, [r0]
- ldr r0, [r2, 0x68]
- cmp r0, 0
- bne _0814952A
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081494C0 @ =0x000082e4
- adds r0, r1
- adds r5, r2, r0
- ldr r1, [r5, 0x4]
- ldr r0, _081494C4 @ =0x7fffffff
- cmp r1, r0
- beq _081494C8
- adds r0, r1, 0x1
- str r0, [r5, 0x4]
- adds r3, r0, 0
- b _081494E0
- .align 2, 0
-_081494BC: .4byte gUnknown_203F3D4
-_081494C0: .4byte 0x000082e4
-_081494C4: .4byte 0x7fffffff
-_081494C8:
- adds r0, r2, 0
- adds r0, 0x4A
- ldrh r1, [r0]
- ldrh r0, [r5, 0xE]
- subs r3, r1, r0
- ldr r0, _08149500 @ =0x0000fde7
- cmp r3, r0
- ble _081494DE
- ldr r0, _08149504 @ =0xffff0218
- adds r3, r0
- adds r3, r1
-_081494DE:
- str r3, [r5, 0x4]
-_081494E0:
- cmp r3, 0x3
- ble _0814952A
- subs r3, 0x4
- cmp r3, 0x2F
- bgt _0814950C
- ldr r2, _08149508 @ =gUnknown_846B6B4
- ldrh r1, [r5, 0xC]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- adds r0, r3, r0
- adds r0, r2
- movs r4, 0
- ldrsb r4, [r0, r4]
- b _0814950E
- .align 2, 0
-_08149500: .4byte 0x0000fde7
-_08149504: .4byte 0xffff0218
-_08149508: .4byte gUnknown_846B6B4
-_0814950C:
- movs r4, 0
-_0814950E:
- adds r1, r4, 0
- adds r0, r6, 0
- bl sub_814A940
- cmp r4, 0
- bne _08149528
- ldr r0, _08149530 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bne _08149528
- bl sub_81492B8
-_08149528:
- str r4, [r5]
-_0814952A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149530: .4byte gUnknown_203F3D4
- thumb_func_end sub_8149490
-
- thumb_func_start sub_8149534
-sub_8149534: @ 8149534
- push {r4,r5,lr}
- ldr r5, _08149560 @ =gUnknown_203F3D4
- ldr r1, [r5]
- ldr r0, [r1, 0x14]
- cmp r0, 0x8
- bne _081495C6
- ldr r0, [r1, 0x18]
- cmp r0, 0x7
- bne _081495C6
- ldr r4, [r1, 0x58]
- cmp r4, 0
- bne _08149564
- bl sub_8149878
- ldr r0, [r5]
- str r4, [r0, 0x54]
- movs r1, 0x1
- str r1, [r0, 0x58]
- adds r0, 0x71
- strb r4, [r0]
- b _081495C6
- .align 2, 0
-_08149560: .4byte gUnknown_203F3D4
-_08149564:
- ldr r0, [r1, 0x54]
- cmp r0, 0x5
- bne _08149578
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0xC]
- bl sub_8149898
- b _0814957C
-_08149578:
- movs r0, 0
- strh r0, [r1, 0xC]
-_0814957C:
- ldr r4, _08149628 @ =gUnknown_203F3D4
- ldr r1, [r4]
- ldr r0, [r1, 0x54]
- cmp r0, 0x1
- ble _08149596
- movs r0, 0x1
- str r0, [r1, 0x64]
- adds r0, r1, 0
- adds r0, 0x86
- adds r1, 0x81
- movs r2, 0x5
- bl memcpy
-_08149596:
- bl sub_8149878
- ldr r0, [r4]
- movs r2, 0
- str r2, [r0, 0x54]
- movs r1, 0x1
- str r1, [r0, 0x58]
- adds r0, 0x71
- strb r2, [r0]
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x74
- ldrh r1, [r2]
- ldr r0, _0814962C @ =0x0000270e
- cmp r1, r0
- bhi _081495BA
- adds r0, r1, 0x1
- strh r0, [r2]
-_081495BA:
- movs r0, 0xA
- bl sub_8149780
- movs r0, 0x3
- bl sub_8147F10
-_081495C6:
- ldr r4, _08149628 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldr r0, [r0, 0x64]
- cmp r0, 0
- beq _081495FC
- bl sub_8149710
- cmp r0, 0x1
- beq _081495E0
- ldr r0, [r4]
- ldr r0, [r0, 0x14]
- cmp r0, 0
- bne _081495FC
-_081495E0:
- ldr r0, [r4]
- adds r0, 0x86
- bl sub_8149834
- bl sub_8149888
- bl sub_8149780
- movs r0, 0x3
- bl sub_8147F10
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x64]
-_081495FC:
- ldr r4, _08149628 @ =gUnknown_203F3D4
- ldr r0, [r4]
- ldr r0, [r0, 0x58]
- cmp r0, 0
- beq _08149622
- bl sub_81497A8
- adds r2, r0, 0
- ldr r1, [r4]
- ldr r0, [r1, 0x54]
- cmp r2, r0
- ble _08149622
- str r2, [r1, 0x54]
- adds r0, r1, 0
- adds r0, 0x81
- adds r1, 0x7C
- movs r2, 0x5
- bl memcpy
-_08149622:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149628: .4byte gUnknown_203F3D4
-_0814962C: .4byte 0x0000270e
- thumb_func_end sub_8149534
-
- thumb_func_start sub_8149630
-sub_8149630: @ 8149630
- push {r4,r5,lr}
- ldr r5, _08149664 @ =gUnknown_203F3D4
- ldr r1, [r5]
- ldr r0, [r1, 0x14]
- cmp r0, 0x6
- bne _0814967A
- ldr r4, _08149668 @ =0x000083ac
- adds r0, r1, r4
- ldr r1, [r0]
- ldr r0, [r1]
- cmp r0, 0
- bne _0814967A
- ldrh r0, [r1, 0x12]
- cmp r0, 0x1
- bne _08149670
- bl sub_81491D8
- adds r1, r0, 0
- cmp r1, 0x1
- bne _08149670
- ldr r0, [r5]
- adds r0, r4
- ldr r0, [r0]
- str r1, [r0, 0x14]
- b _0814967A
- .align 2, 0
-_08149664: .4byte gUnknown_203F3D4
-_08149668: .4byte 0x000083ac
-_0814966C:
- movs r0, 0
- b _081496C2
-_08149670:
- bl sub_8149288
- movs r0, 0x3
- bl sub_8147F10
-_0814967A:
- ldr r0, _081496C8 @ =gUnknown_203F3D4
- ldr r1, [r0]
- ldr r0, [r1, 0x14]
- cmp r0, 0x7
- bne _081496A0
- ldr r0, [r1, 0x18]
- cmp r0, 0x6
- bne _081496A0
- ldr r2, _081496CC @ =0x000083ac
- adds r0, r1, r2
- ldr r1, [r0]
- ldrh r0, [r1, 0x10]
- cmp r0, 0x2
- beq _081496A0
- movs r0, 0x1
- str r0, [r1, 0x14]
- movs r0, 0x3
- bl sub_8147F10
-_081496A0:
- movs r2, 0
- ldr r0, _081496C8 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r2, r1
- bge _081496C0
- adds r3, r1, 0
- ldr r4, _081496D0 @ =0x000082f4
- adds r1, r0, r4
-_081496B2:
- ldrh r0, [r1]
- cmp r0, 0x2
- beq _0814966C
- adds r1, 0x28
- adds r2, 0x1
- cmp r2, r3
- blt _081496B2
-_081496C0:
- movs r0, 0x1
-_081496C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081496C8: .4byte gUnknown_203F3D4
-_081496CC: .4byte 0x000083ac
-_081496D0: .4byte 0x000082f4
- thumb_func_end sub_8149630
-
- thumb_func_start sub_81496D4
-sub_81496D4: @ 81496D4
- push {r4,lr}
- ldr r0, _08149708 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrb r3, [r0, 0x5]
- movs r4, 0
- cmp r4, r3
- bge _081496F8
- ldr r1, _0814970C @ =0x000082f8
- adds r2, r0, r1
- adds r1, r3, 0
-_081496E8:
- ldr r0, [r2]
- cmp r0, 0
- beq _081496F0
- adds r4, 0x1
-_081496F0:
- adds r2, 0x28
- subs r1, 0x1
- cmp r1, 0
- bne _081496E8
-_081496F8:
- movs r0, 0
- cmp r4, r3
- bne _08149700
- movs r0, 0x1
-_08149700:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149708: .4byte gUnknown_203F3D4
-_0814970C: .4byte 0x000082f8
- thumb_func_end sub_81496D4
-
- thumb_func_start sub_8149710
-sub_8149710: @ 8149710
- push {r4,lr}
- movs r2, 0
- ldr r0, _08149730 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r2, r1
- bge _08149740
- adds r3, r1, 0
- ldr r4, _08149734 @ =0x000082f8
- adds r1, r0, r4
-_08149724:
- ldr r0, [r1]
- cmp r0, 0x1
- beq _08149738
- movs r0, 0
- b _08149742
- .align 2, 0
-_08149730: .4byte gUnknown_203F3D4
-_08149734: .4byte 0x000082f8
-_08149738:
- adds r1, 0x28
- adds r2, 0x1
- cmp r2, r3
- blt _08149724
-_08149740:
- movs r0, 0x1
-_08149742:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8149710
-
- thumb_func_start sub_8149748
-sub_8149748: @ 8149748
- push {lr}
- ldr r0, _0814975C @ =gUnknown_203F3D4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x45
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08149760
-_08149758:
- movs r0, 0
- b _0814977C
- .align 2, 0
-_0814975C: .4byte gUnknown_203F3D4
-_08149760:
- movs r2, 0x1
- ldrb r0, [r1, 0x5]
- cmp r2, r0
- bge _0814977A
- adds r3, r0, 0
- adds r1, 0x92
-_0814976C:
- ldrh r0, [r1]
- cmp r0, 0x1
- beq _08149758
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r3
- blt _0814976C
-_0814977A:
- movs r0, 0x1
-_0814977C:
- pop {r1}
- bx r1
- thumb_func_end sub_8149748
-
- thumb_func_start sub_8149780
-sub_8149780: @ 8149780
- push {lr}
- ldr r1, _081497A0 @ =gUnknown_203F3D4
- ldr r2, [r1]
- ldr r1, [r2, 0x78]
- adds r1, r0
- str r1, [r2, 0x78]
- movs r0, 0x1
- str r0, [r2, 0x5C]
- ldr r0, _081497A4 @ =0x00018695
- cmp r1, r0
- bls _0814979A
- adds r0, 0x1
- str r0, [r2, 0x78]
-_0814979A:
- pop {r0}
- bx r0
- .align 2, 0
-_081497A0: .4byte gUnknown_203F3D4
-_081497A4: .4byte 0x00018695
- thumb_func_end sub_8149780
-
- thumb_func_start sub_81497A8
-sub_81497A8: @ 81497A8
- push {r4-r7,lr}
- movs r5, 0
- ldr r1, _081497E0 @ =gUnknown_203F3D4
- ldr r0, [r1]
- ldrb r4, [r0, 0x5]
- movs r2, 0
- cmp r5, r4
- bge _081497FA
- mov r12, r1
- movs r3, 0
- ldr r7, _081497E4 @ =0x000082e4
- movs r6, 0x1E
- negs r6, r6
-_081497C2:
- mov r0, r12
- ldr r1, [r0]
- adds r0, r1, r7
- adds r0, r3
- ldr r0, [r0]
- cmp r0, r6
- bne _081497E8
- adds r0, r1, 0
- adds r0, 0x7C
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- adds r5, 0x1
- b _081497F2
- .align 2, 0
-_081497E0: .4byte gUnknown_203F3D4
-_081497E4: .4byte 0x000082e4
-_081497E8:
- adds r0, r1, 0
- adds r0, 0x7C
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
-_081497F2:
- adds r3, 0x28
- adds r2, 0x1
- cmp r2, r4
- blt _081497C2
-_081497FA:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81497A8
-
- thumb_func_start sub_8149804
-sub_8149804: @ 8149804
- push {lr}
- movs r2, 0
- ldr r1, _08149828 @ =Rfu
- ldr r3, _0814982C @ =0x0000069e
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08149820
- ldr r3, _08149830 @ =0x000008d2
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08149820
- movs r2, 0x1
-_08149820:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08149828: .4byte Rfu
-_0814982C: .4byte 0x0000069e
-_08149830: .4byte 0x000008d2
- thumb_func_end sub_8149804
-
- thumb_func_start sub_8149834
-sub_8149834: @ 8149834
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- ldr r6, _08149874 @ =gUnknown_203F3D4
- movs r5, 0x1
-_08149842:
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08149852
- adds r0, r5, 0
- lsls r0, r1
- orrs r2, r0
- adds r3, 0x1
-_08149852:
- adds r1, 0x1
- cmp r1, 0x4
- ble _08149842
- ldr r0, [r6]
- adds r0, 0x71
- strb r2, [r0]
- cmp r2, 0
- beq _0814986A
- ldr r0, [r6]
- adds r0, 0x4D
- movs r1, 0x1
- strb r1, [r0]
-_0814986A:
- adds r0, r3, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149874: .4byte gUnknown_203F3D4
- thumb_func_end sub_8149834
-
- thumb_func_start sub_8149878
-sub_8149878: @ 8149878
- ldr r0, _08149884 @ =gUnknown_203F3D4
- ldr r0, [r0]
- adds r0, 0x44
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08149884: .4byte gUnknown_203F3D4
- thumb_func_end sub_8149878
-
- thumb_func_start sub_8149888
-sub_8149888: @ 8149888
- ldr r1, _08149894 @ =gUnknown_846B744
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08149894: .4byte gUnknown_846B744
- thumb_func_end sub_8149888
-
- thumb_func_start sub_8149898
-sub_8149898: @ 8149898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _081498B0 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrh r2, [r0, 0xE]
- cmp r1, r2
- bls _081498AA
- strh r1, [r0, 0xE]
-_081498AA:
- pop {r0}
- bx r0
- .align 2, 0
-_081498B0: .4byte gUnknown_203F3D4
- thumb_func_end sub_8149898
-
- thumb_func_start sub_81498B4
-sub_81498B4: @ 81498B4
- push {lr}
- ldr r0, _081498C8 @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldr r1, _081498CC @ =gUnknown_846B76C
- ldr r2, [r0, 0x78]
- ldr r0, [r1]
- cmp r2, r0
- bcs _081498D0
- movs r0, 0
- b _081498D2
- .align 2, 0
-_081498C8: .4byte gUnknown_203F3D4
-_081498CC: .4byte gUnknown_846B76C
-_081498D0:
- movs r0, 0x1
-_081498D2:
- pop {r1}
- bx r1
- thumb_func_end sub_81498B4
-
- thumb_func_start sub_81498D8
-sub_81498D8: @ 81498D8
- push {r4,lr}
- bl sub_8149910
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8149930
- lsls r0, 16
- lsrs r0, 4
- ldr r1, _081498FC @ =0x00000fff
- ands r4, r1
- orrs r0, r4
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081498FC: .4byte 0x00000fff
- thumb_func_end sub_81498D8
-
- thumb_func_start sub_8149900
-sub_8149900: @ 8149900
- lsls r0, 16
- lsrs r3, r0, 28
- strh r3, [r2]
- lsls r0, 4
- lsrs r0, 20
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8149900
-
- thumb_func_start sub_8149910
-sub_8149910: @ 8149910
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- ldr r0, _0814992C @ =gUnknown_846B75C
- lsrs r1, 15
- adds r1, r0
- ldrh r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0814992C: .4byte gUnknown_846B75C
- thumb_func_end sub_8149910
-
- thumb_func_start sub_8149930
-sub_8149930: @ 8149930
- push {r4-r6,lr}
- movs r5, 0
- movs r4, 0
- ldr r3, _08149964 @ =gUnknown_203F3D4
- ldr r0, [r3]
- ldr r2, _08149968 @ =gUnknown_846B76C
- ldr r1, [r0, 0x78]
- ldr r0, [r2]
- cmp r1, r0
- bcc _0814996C
- ldr r5, [r2, 0x4]
- adds r6, r3, 0
- adds r3, r2, 0x4
-_0814994A:
- adds r3, 0x8
- adds r2, 0x8
- adds r4, 0x1
- cmp r4, 0x4
- bhi _0814996C
- ldr r0, [r6]
- ldr r1, [r0, 0x78]
- ldr r0, [r2]
- cmp r1, r0
- bcc _0814996C
- ldr r5, [r3]
- b _0814994A
- .align 2, 0
-_08149964: .4byte gUnknown_203F3D4
-_08149968: .4byte gUnknown_846B76C
-_0814996C:
- lsls r0, r5, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8149930
-
- thumb_func_start sub_8149978
-sub_8149978: @ 8149978
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- b _0814998A
-_08149984:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0814998A:
- cmp r4, 0
- beq _0814999C
- adds r0, r5, 0
- adds r1, r4, 0
- bl CheckBagHasSpace
- lsls r0, 24
- cmp r0, 0
- beq _08149984
-_0814999C:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8149978
-
- thumb_func_start sub_81499A4
-sub_81499A4: @ 81499A4
- push {lr}
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_81499A4
-
- thumb_func_start sub_81499B4
-sub_81499B4: @ 81499B4
- ldr r0, _081499BC @ =gUnknown_203F3D4
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- bx lr
- .align 2, 0
-_081499BC: .4byte gUnknown_203F3D4
- thumb_func_end sub_81499B4
-
- thumb_func_start sub_81499C0
-sub_81499C0: @ 81499C0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081499D8 @ =gUnknown_203F3D4
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _081499DC @ =0x000082a8
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_081499D8: .4byte gUnknown_203F3D4
-_081499DC: .4byte 0x000082a8
- thumb_func_end sub_81499C0
-
- thumb_func_start sub_81499E0
-sub_81499E0: @ 81499E0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081499FC @ =gUnknown_203F3D4
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, [r2]
- adds r0, r1
- movs r1, 0x83
- lsls r1, 8
- adds r0, r1
- bx lr
- .align 2, 0
-_081499FC: .4byte gUnknown_203F3D4
- thumb_func_end sub_81499E0
-
- thumb_func_start IsSpeciesAllowedInPokemonJump
-IsSpeciesAllowedInPokemonJump: @ 8149A00
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8147D00
- lsls r0, 16
- asrs r0, 16
- mvns r0, r0
- lsrs r0, 31
- pop {r1}
- bx r1
- thumb_func_end IsSpeciesAllowedInPokemonJump
-
- thumb_func_start IsPokemonJumpSpeciesInParty
-IsPokemonJumpSpeciesInParty: @ 8149A18
- push {r4,r5,lr}
- movs r5, 0
-_08149A1C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08149A4C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _08149A54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl IsSpeciesAllowedInPokemonJump
- cmp r0, 0
- beq _08149A54
- ldr r1, _08149A50 @ =gSpecialVar_Result
- movs r0, 0x1
- b _08149A5E
- .align 2, 0
-_08149A4C: .4byte gPlayerParty
-_08149A50: .4byte gSpecialVar_Result
-_08149A54:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08149A1C
- ldr r1, _08149A68 @ =gSpecialVar_Result
- movs r0, 0
-_08149A5E:
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149A68: .4byte gSpecialVar_Result
- thumb_func_end IsPokemonJumpSpeciesInParty
-
- thumb_func_start sub_8149A6C
-sub_8149A6C: @ 8149A6C
- push {lr}
- sub sp, 0xC
- mov r2, sp
- movs r1, 0x1
- strb r1, [r2]
- ldrh r1, [r0]
- strh r1, [r2, 0x2]
- ldr r1, [r0, 0x4]
- str r1, [sp, 0x8]
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x4]
- mov r0, sp
- bl RfuPrepareSend0x2f00
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8149A6C
-
- thumb_func_start sub_8149A90
-sub_8149A90: @ 8149A90
- push {r4,lr}
- sub sp, 0xC
- adds r4, r1, 0
- ldr r3, _08149AC4 @ =gRecvCmds
- lsls r2, r0, 4
- adds r0, r2, r3
- ldrh r1, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- movs r1, 0xBC
- lsls r1, 6
- cmp r0, r1
- bne _08149AC0
- adds r1, r3, 0x2
- adds r1, r2, r1
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08149AC8
-_08149AC0:
- movs r0, 0
- b _08149AD8
- .align 2, 0
-_08149AC4: .4byte gRecvCmds
-_08149AC8:
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r4]
- ldr r0, [sp, 0x8]
- str r0, [r4, 0x4]
- ldr r0, [sp, 0x4]
- str r0, [r4, 0x8]
- movs r0, 0x1
-_08149AD8:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8149A90
-
- thumb_func_start sub_8149AE0
-sub_8149AE0: @ 8149AE0
- push {lr}
- sub sp, 0xC
- mov r2, sp
- movs r1, 0x2
- strb r1, [r2]
- str r0, [sp, 0x4]
- mov r0, sp
- bl RfuPrepareSend0x2f00
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8149AE0
-
- thumb_func_start sub_8149AF8
-sub_8149AF8: @ 8149AF8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r3, sp
- movs r2, 0x3
- strb r2, [r3]
- ldr r3, [r1, 0x8]
- lsls r3, 15
- ldr r2, [sp, 0x8]
- ldr r4, _08149B74 @ =0x00007fff
- mov r8, r4
- ands r2, r4
- orrs r2, r3
- str r2, [sp, 0x8]
- mov r6, sp
- ldrb r2, [r1, 0x1]
- movs r5, 0x1F
- adds r3, r5, 0
- ands r3, r2
- ldrb r4, [r6, 0x3]
- movs r2, 0x20
- negs r2, r2
- ands r2, r4
- orrs r2, r3
- strb r2, [r6, 0x3]
- mov r3, sp
- ldrb r2, [r1]
- strb r2, [r3, 0x1]
- ldrh r2, [r1, 0x2]
- strh r2, [r3, 0x6]
- mov r4, sp
- ldrh r2, [r1, 0x4]
- mov r1, r8
- ands r2, r1
- ldrh r3, [r4, 0x8]
- ldr r1, _08149B78 @ =0xffff8000
- ands r1, r3
- orrs r1, r2
- strh r1, [r4, 0x8]
- mov r2, sp
- ldrh r1, [r0, 0x10]
- strb r1, [r2, 0x2]
- mov r3, sp
- ldr r1, [r0, 0x14]
- lsls r1, 5
- ldrb r2, [r3, 0x3]
- ands r5, r2
- orrs r5, r1
- strb r5, [r3, 0x3]
- mov r1, sp
- ldrh r0, [r0, 0xE]
- strh r0, [r1, 0x4]
- mov r0, sp
- bl RfuPrepareSend0x2f00
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B74: .4byte 0x00007fff
-_08149B78: .4byte 0xffff8000
- thumb_func_end sub_8149AF8
-
- thumb_func_start sub_8149B7C
-sub_8149B7C: @ 8149B7C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r2, _08149BE4 @ =gRecvCmds
- ldrh r0, [r2]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _08149BE8
- adds r1, r2, 0x2
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08149BE8
- ldr r0, [sp, 0x8]
- lsrs r0, 15
- str r0, [r4, 0x8]
- mov r0, sp
- ldrb r1, [r0, 0x3]
- lsls r0, r1, 27
- lsrs r0, 27
- strb r0, [r4, 0x1]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r4]
- mov r0, sp
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- lsls r0, 17
- lsrs r0, 17
- strh r0, [r4, 0x4]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strh r0, [r5, 0x10]
- lsls r1, 24
- lsrs r1, 29
- str r1, [r5, 0x14]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0xE]
- movs r0, 0x1
- b _08149BEA
- .align 2, 0
-_08149BE4: .4byte gRecvCmds
-_08149BE8:
- movs r0, 0
-_08149BEA:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8149B7C
-
- thumb_func_start sub_8149BF4
-sub_8149BF4: @ 8149BF4
- push {r4,lr}
- sub sp, 0xC
- mov r4, sp
- movs r3, 0x4
- strb r3, [r4]
- ldrh r3, [r0, 0x10]
- strb r3, [r4, 0x1]
- ldr r3, [r0, 0x14]
- strb r3, [r4, 0x2]
- ldr r3, [r0, 0x18]
- strb r3, [r4, 0x3]
- mov r3, sp
- ldrh r0, [r0, 0xE]
- strh r0, [r3, 0x4]
- mov r0, sp
- strb r1, [r0, 0x6]
- strh r2, [r0, 0x8]
- bl RfuPrepareSend0x2f00
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149BF4
-
- thumb_func_start sub_8149C24
-sub_8149C24: @ 8149C24
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, _08149C80 @ =gRecvCmds
- lsls r2, r1, 4
- adds r0, r2, r3
- ldrh r1, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- movs r1, 0xBC
- lsls r1, 6
- cmp r0, r1
- bne _08149C84
- adds r1, r3, 0x2
- adds r1, r2, r1
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08149C84
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strh r0, [r4, 0x10]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- str r0, [r4, 0x14]
- mov r0, sp
- ldrb r0, [r0, 0x3]
- str r0, [r4, 0x18]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0xE]
- mov r0, sp
- ldrb r0, [r0, 0x6]
- strb r0, [r5]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r6]
- movs r0, 0x1
- b _08149C86
- .align 2, 0
-_08149C80: .4byte gRecvCmds
-_08149C84:
- movs r0, 0
-_08149C86:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8149C24
-
- thumb_func_start sub_8149C90
-sub_8149C90: @ 8149C90
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r3, _08149CDC @ =gRecvCmds
- lsls r2, r1, 4
- adds r0, r2, r3
- ldrh r1, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- movs r1, 0xBC
- lsls r1, 6
- cmp r0, r1
- bne _08149CE0
- adds r1, r3, 0x2
- adds r1, r2, r1
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08149CE0
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strh r0, [r4, 0x10]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- str r0, [r4, 0x14]
- mov r0, sp
- ldrb r0, [r0, 0x3]
- str r0, [r4, 0x18]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- b _08149CE2
- .align 2, 0
-_08149CDC: .4byte gRecvCmds
-_08149CE0:
- movs r0, 0
-_08149CE2:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8149C90
-
- thumb_func_start sub_8149CEC
-sub_8149CEC: @ 8149CEC
- push {r4,lr}
- ldr r4, _08149D18 @ =gUnknown_203F3D8
- str r0, [r4]
- bl sub_8149D34
- ldr r0, _08149D1C @ =sub_8149DA4
- movs r1, 0x3
- bl CreateTask
- ldr r1, [r4]
- strb r0, [r1, 0x6]
- ldr r2, [r4]
- ldrb r0, [r2, 0x6]
- movs r1, 0x2
- bl SetWordTaskArg
- ldr r0, _08149D20 @ =sub_8149DC8
- bl sub_8149D80
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149D18: .4byte gUnknown_203F3D8
-_08149D1C: .4byte sub_8149DA4
-_08149D20: .4byte sub_8149DC8
- thumb_func_end sub_8149CEC
-
- thumb_func_start sub_8149D24
-sub_8149D24: @ 8149D24
- push {lr}
- bl FreeAllWindowBuffers
- bl DigitObjUtil_Teardown
- pop {r0}
- bx r0
- thumb_func_end sub_8149D24
-
- thumb_func_start sub_8149D34
-sub_8149D34: @ 8149D34
- movs r1, 0
- strh r1, [r0, 0x4]
- str r1, [r0]
- movs r1, 0xFF
- strh r1, [r0, 0x12]
- bx lr
- thumb_func_end sub_8149D34
-
- thumb_func_start sub_8149D40
-sub_8149D40: @ 8149D40
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- ldr r4, _08149D64 @ =gUnknown_846D8FC
-_08149D48:
- ldr r0, [r4]
- cmp r0, r6
- bne _08149D54
- ldr r0, [r4, 0x4]
- bl sub_8149D80
-_08149D54:
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, 0x9
- bls _08149D48
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149D64: .4byte gUnknown_846D8FC
- thumb_func_end sub_8149D40
-
- thumb_func_start sub_8149D68
-sub_8149D68: @ 8149D68
- ldr r0, _08149D7C @ =gUnknown_203F3D8
- ldr r0, [r0]
- ldr r1, [r0]
- movs r0, 0x1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .align 2, 0
-_08149D7C: .4byte gUnknown_203F3D8
- thumb_func_end sub_8149D68
-
- thumb_func_start sub_8149D80
-sub_8149D80: @ 8149D80
- push {r4,lr}
- adds r2, r0, 0
- ldr r4, _08149DA0 @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldrb r0, [r0, 0x6]
- movs r1, 0
- bl SetWordTaskArg
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0x4]
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149DA0: .4byte gUnknown_203F3D8
- thumb_func_end sub_8149D80
-
- thumb_func_start sub_8149DA4
-sub_8149DA4: @ 8149DA4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08149DC4 @ =gUnknown_203F3D8
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- bne _08149DC0
- adds r0, r1, 0
- movs r1, 0
- bl GetWordTaskArg
- bl _call_via_r0
-_08149DC0:
- pop {r0}
- bx r0
- .align 2, 0
-_08149DC4: .4byte gUnknown_203F3D8
- thumb_func_end sub_8149DA4
-
- thumb_func_start sub_8149DC8
-sub_8149DC8: @ 8149DC8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08149DE4 @ =gUnknown_203F3D8
- ldr r1, [r6]
- ldrh r5, [r1, 0x4]
- cmp r5, 0x1
- bne _08149DD8
- b _08149F18
-_08149DD8:
- cmp r5, 0x1
- bgt _08149DE8
- cmp r5, 0
- beq _08149DF0
- b _08149F5A
- .align 2, 0
-_08149DE4: .4byte gUnknown_203F3D8
-_08149DE8:
- cmp r5, 0x2
- bne _08149DEE
- b _08149F56
-_08149DEE:
- b _08149F5A
-_08149DF0:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08149EE8 @ =gUnknown_846D8D4
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, _08149EEC @ =gUnknown_846D8E4
- bl InitWindows
- bl ResetBgPositions
- bl ResetTempTileDataBuffers
- ldr r0, [r6]
- bl sub_814AD6C
- bl sub_814A9C8
- ldr r0, _08149EF0 @ =gUnknown_846B7B4
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _08149EF4 @ =gUnknown_846B7D4
- str r5, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r1, _08149EF8 @ =gUnknown_846BA00
- movs r4, 0x1
- str r4, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r0, _08149EFC @ =gUnknown_846BBB0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _08149F00 @ =gUnknown_846BBD0
- str r5, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r1, _08149F04 @ =gUnknown_846C520
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r0, _08149F08 @ =gUnknown_846C8D8
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _08149F0C @ =gUnknown_846C8F8
- str r5, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r1, _08149F10 @ =gUnknown_846D3A8
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- ldr r0, _08149F14 @ =gUnknown_846B794
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r1, [r6]
- movs r0, 0xD3
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- bl sub_814A84C
- movs r0, 0
- bl sub_814AA24
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xE0
- bl sub_814FDA0
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD0
- bl LoadUserWindowBorderGfx
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _08149F4C
- .align 2, 0
-_08149EE8: .4byte gUnknown_846D8D4
-_08149EEC: .4byte gUnknown_846D8E4
-_08149EF0: .4byte gUnknown_846B7B4
-_08149EF4: .4byte gUnknown_846B7D4
-_08149EF8: .4byte gUnknown_846BA00
-_08149EFC: .4byte gUnknown_846BBB0
-_08149F00: .4byte gUnknown_846BBD0
-_08149F04: .4byte gUnknown_846C520
-_08149F08: .4byte gUnknown_846C8D8
-_08149F0C: .4byte gUnknown_846C8F8
-_08149F10: .4byte gUnknown_846D3A8
-_08149F14: .4byte gUnknown_846B794
-_08149F18:
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- cmp r0, 0
- bne _08149F5A
- bl sub_814A8B8
- ldr r0, [r6]
- bl sub_814B294
- ldr r0, [r6]
- movs r1, 0x6
- bl sub_814B348
- movs r0, 0x3
- bl ShowBg
- movs r0, 0
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- bl HideBg
-_08149F4C:
- ldr r1, [r6]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _08149F5A
-_08149F56:
- movs r0, 0x1
- str r0, [r1]
-_08149F5A:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8149DC8
-
- thumb_func_start sub_8149F64
-sub_8149F64: @ 8149F64
- push {r4,lr}
- ldr r4, _08149F7C @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldrh r0, [r0, 0x4]
- cmp r0, 0x1
- beq _08149F90
- cmp r0, 0x1
- bgt _08149F80
- cmp r0, 0
- beq _08149F8A
- b _08149FCA
- .align 2, 0
-_08149F7C: .4byte gUnknown_203F3D8
-_08149F80:
- cmp r0, 0x2
- beq _08149FA2
- cmp r0, 0x3
- beq _08149FBA
- b _08149FCA
-_08149F8A:
- bl sub_814AADC
- b _08149FB0
-_08149F90:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08149FCA
- movs r0, 0
- bl sub_814AC30
- b _08149FB0
-_08149FA2:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08149FCA
- bl sub_814AC94
-_08149FB0:
- ldr r1, [r4]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _08149FCA
-_08149FBA:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08149FCA
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1]
-_08149FCA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149F64
-
- thumb_func_start sub_8149FD0
-sub_8149FD0: @ 8149FD0
- push {r4,lr}
- ldr r4, _08149FE8 @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldrh r0, [r0, 0x4]
- cmp r0, 0x1
- beq _08149FFC
- cmp r0, 0x1
- bgt _08149FEC
- cmp r0, 0
- beq _08149FF6
- b _0814A036
- .align 2, 0
-_08149FE8: .4byte gUnknown_203F3D8
-_08149FEC:
- cmp r0, 0x2
- beq _0814A00E
- cmp r0, 0x3
- beq _0814A026
- b _0814A036
-_08149FF6:
- bl sub_814AADC
- b _0814A01C
-_08149FFC:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A036
- movs r0, 0x1
- bl sub_814AC30
- b _0814A01C
-_0814A00E:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A036
- bl sub_814AC94
-_0814A01C:
- ldr r1, [r4]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A036
-_0814A026:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A036
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1]
-_0814A036:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149FD0
-
- thumb_func_start sub_814A03C
-sub_814A03C: @ 814A03C
- push {r4,r5,lr}
- bl sub_81499A4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0814A058 @ =gUnknown_203F3D8
- ldr r0, [r0]
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- beq _0814A05C
- cmp r0, 0x1
- beq _0814A090
- b _0814A0BE
- .align 2, 0
-_0814A058: .4byte gUnknown_203F3D8
-_0814A05C:
- movs r4, 0
- cmp r4, r5
- bge _0814A078
-_0814A062:
- ldr r0, _0814A08C @ =gUnknown_203F3D8
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x1C
- adds r0, r1
- ldrb r0, [r0]
- bl ClearWindowTilemap
- adds r4, 0x1
- cmp r4, r5
- blt _0814A062
-_0814A078:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r0, _0814A08C @ =gUnknown_203F3D8
- ldr r1, [r0]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A0BE
- .align 2, 0
-_0814A08C: .4byte gUnknown_203F3D8
-_0814A090:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A0BE
- movs r4, 0
- cmp r4, r5
- bge _0814A0B6
-_0814A0A0:
- ldr r0, _0814A0C4 @ =gUnknown_203F3D8
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x1C
- adds r0, r1
- ldrb r0, [r0]
- bl RemoveWindow
- adds r4, 0x1
- cmp r4, r5
- blt _0814A0A0
-_0814A0B6:
- ldr r0, _0814A0C4 @ =gUnknown_203F3D8
- ldr r1, [r0]
- movs r0, 0x1
- str r0, [r1]
-_0814A0BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A0C4: .4byte gUnknown_203F3D8
- thumb_func_end sub_814A03C
-
- thumb_func_start sub_814A0C8
-sub_814A0C8: @ 814A0C8
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, _0814A0E0 @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0x1
- beq _0814A124
- cmp r4, 0x1
- bgt _0814A0E4
- cmp r4, 0
- beq _0814A0EA
- b _0814A16C
- .align 2, 0
-_0814A0E0: .4byte gUnknown_203F3D8
-_0814A0E4:
- cmp r4, 0x2
- beq _0814A15C
- b _0814A16C
-_0814A0EA:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0x14
- movs r3, 0x2
- bl sub_814A754
- ldr r1, [r5]
- strh r0, [r1, 0x12]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A120 @ =gUnknown_841CBFD
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- b _0814A152
- .align 2, 0
-_0814A120: .4byte gUnknown_841CBFD
-_0814A124:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A16C
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl PutWindowTilemap
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- movs r2, 0xE
- bl DrawTextBorderOuter
- movs r0, 0x17
- movs r1, 0x7
- movs r2, 0
- bl sub_814A7D0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_0814A152:
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A16C
-_0814A15C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A16C
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1]
-_0814A16C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A0C8
-
- thumb_func_start sub_814A174
-sub_814A174: @ 814A174
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, _0814A18C @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0x1
- beq _0814A1D0
- cmp r4, 0x1
- bgt _0814A190
- cmp r4, 0
- beq _0814A196
- b _0814A20E
- .align 2, 0
-_0814A18C: .4byte gUnknown_203F3D8
-_0814A190:
- cmp r4, 0x2
- beq _0814A1FE
- b _0814A20E
-_0814A196:
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x1A
- movs r3, 0x4
- bl sub_814A754
- ldr r1, [r5]
- strh r0, [r1, 0x12]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A1CC @ =gUnknown_841CC42
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- b _0814A1F4
- .align 2, 0
-_0814A1CC: .4byte gUnknown_841CC42
-_0814A1D0:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A20E
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl PutWindowTilemap
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- movs r2, 0xE
- bl DrawTextBorderOuter
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_0814A1F4:
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A20E
-_0814A1FE:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A20E
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1]
-_0814A20E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A174
-
- thumb_func_start sub_814A218
-sub_814A218: @ 814A218
- push {r4,r5,lr}
- ldr r5, _0814A22C @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0
- beq _0814A230
- cmp r4, 0x1
- beq _0814A248
- b _0814A25E
- .align 2, 0
-_0814A22C: .4byte gUnknown_203F3D8
-_0814A230:
- bl sub_814A6CC
- bl DestroyYesNoMenu
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A25E
-_0814A248:
- bl sub_814A6FC
- cmp r0, 0
- bne _0814A25E
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A25E
- ldr r0, [r5]
- str r4, [r0]
-_0814A25E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A218
-
- thumb_func_start sub_814A264
-sub_814A264: @ 814A264
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, _0814A27C @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0x1
- beq _0814A2C0
- cmp r4, 0x1
- bgt _0814A280
- cmp r4, 0
- beq _0814A286
- b _0814A2FE
- .align 2, 0
-_0814A27C: .4byte gUnknown_203F3D8
-_0814A280:
- cmp r4, 0x2
- beq _0814A2EE
- b _0814A2FE
-_0814A286:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x16
- movs r3, 0x4
- bl sub_814A754
- ldr r1, [r5]
- strh r0, [r1, 0x12]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A2BC @ =gUnknown_841CC11
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- b _0814A2E4
- .align 2, 0
-_0814A2BC: .4byte gUnknown_841CC11
-_0814A2C0:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A2FE
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl PutWindowTilemap
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- movs r2, 0xE
- bl DrawTextBorderOuter
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_0814A2E4:
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A2FE
-_0814A2EE:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A2FE
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1]
-_0814A2FE:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A264
-
- thumb_func_start sub_814A308
-sub_814A308: @ 814A308
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, _0814A320 @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0x1
- beq _0814A364
- cmp r4, 0x1
- bgt _0814A324
- cmp r4, 0
- beq _0814A32A
- b _0814A3A2
- .align 2, 0
-_0814A320: .4byte gUnknown_203F3D8
-_0814A324:
- cmp r4, 0x2
- beq _0814A392
- b _0814A3A2
-_0814A32A:
- movs r0, 0x7
- movs r1, 0xA
- movs r2, 0x10
- movs r3, 0x2
- bl sub_814A754
- ldr r1, [r5]
- strh r0, [r1, 0x12]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A360 @ =gUnknown_841CC64
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- b _0814A388
- .align 2, 0
-_0814A360: .4byte gUnknown_841CC64
-_0814A364:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A3A2
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl PutWindowTilemap
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- movs r2, 0xE
- bl DrawTextBorderOuter
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_0814A388:
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A3A2
-_0814A392:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A3A2
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1]
-_0814A3A2:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A308
-
- thumb_func_start sub_814A3AC
-sub_814A3AC: @ 814A3AC
- push {r4,r5,lr}
- ldr r5, _0814A3C0 @ =gUnknown_203F3D8
- ldr r0, [r5]
- ldrh r4, [r0, 0x4]
- cmp r4, 0
- beq _0814A3C4
- cmp r4, 0x1
- beq _0814A3D2
- b _0814A3DE
- .align 2, 0
-_0814A3C0: .4byte gUnknown_203F3D8
-_0814A3C4:
- bl sub_814B43C
- ldr r1, [r5]
- ldrh r0, [r1, 0x4]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- b _0814A3DE
-_0814A3D2:
- bl sub_814B460
- cmp r0, 0
- bne _0814A3DE
- ldr r0, [r5]
- str r4, [r0]
-_0814A3DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A3AC
-
- thumb_func_start sub_814A3E4
-sub_814A3E4: @ 814A3E4
- push {lr}
- ldr r1, _0814A404 @ =gUnknown_203F3D8
- ldr r0, [r1]
- movs r2, 0
- strb r2, [r0, 0xA]
- ldr r0, [r1]
- strb r2, [r0, 0xB]
- ldr r2, [r1]
- movs r0, 0x6
- strb r0, [r2, 0xC]
- ldr r0, [r1]
- ldrb r0, [r0, 0xC]
- bl sub_814A95C
- pop {r0}
- bx r0
- .align 2, 0
-_0814A404: .4byte gUnknown_203F3D8
- thumb_func_end sub_814A3E4
-
- thumb_func_start sub_814A408
-sub_814A408: @ 814A408
- push {r4,lr}
- ldr r0, _0814A41C @ =gUnknown_203F3D8
- ldr r2, [r0]
- ldrb r3, [r2, 0xA]
- adds r4, r0, 0
- cmp r3, 0
- beq _0814A420
- cmp r3, 0x1
- beq _0814A45A
- b _0814A45E
- .align 2, 0
-_0814A41C: .4byte gUnknown_203F3D8
-_0814A420:
- ldrb r0, [r2, 0xB]
- adds r0, 0x1
- strb r0, [r2, 0xB]
- ldr r1, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0xA
- bls _0814A44A
- strb r3, [r1, 0xB]
- ldr r0, [r4]
- ldrb r1, [r0, 0xC]
- adds r1, 0x1
- strb r1, [r0, 0xC]
- ldr r1, [r4]
- ldrb r0, [r1, 0xC]
- cmp r0, 0x9
- bls _0814A44A
- strb r3, [r1, 0xC]
- ldr r1, [r4]
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_0814A44A:
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- bl sub_814A95C
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- cmp r0, 0x7
- bne _0814A45E
-_0814A45A:
- movs r0, 0
- b _0814A460
-_0814A45E:
- movs r0, 0x1
-_0814A460:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814A408
-
- thumb_func_start sub_814A468
-sub_814A468: @ 814A468
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r5, _0814A52C @ =gUnknown_203F3D8
- ldr r1, [r5]
- adds r1, 0x26
- adds r0, r4, 0
- bl CopyItemName
- ldr r0, [r5]
- adds r0, 0x66
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- subs r4, 0x85
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x29
- bhi _0814A4C2
- cmp r6, 0x1
- bls _0814A4C2
- ldr r0, [r5]
- adds r0, 0x26
- bl StringLength
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0814A4C2
- ldr r0, [r5]
- adds r0, r1, r0
- adds r0, 0x25
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x26
- ldr r1, _0814A530 @ =gUnknown_846D94C
- bl StringAppend
-_0814A4C2:
- bl DynamicPlaceholderTextUtil_Reset
- ldr r4, _0814A52C @ =gUnknown_203F3D8
- ldr r1, [r4]
- adds r1, 0x26
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r1, [r4]
- adds r1, 0x66
- movs r0, 0x1
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r4]
- adds r0, 0xA6
- ldr r1, _0814A534 @ =gUnknown_841CBA9
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- movs r0, 0x4
- movs r1, 0x8
- movs r2, 0x16
- movs r3, 0x4
- bl sub_814A754
- ldr r2, [r4]
- movs r5, 0
- movs r3, 0
- strh r0, [r2, 0x12]
- lsls r0, 24
- lsrs r0, 24
- adds r2, 0xA6
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r1, 0x2
- bl AddTextPrinterParameterized
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r1, [r4]
- ldr r0, _0814A538 @ =0x00000101
- strh r0, [r1, 0x14]
- strb r5, [r1, 0xD]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A52C: .4byte gUnknown_203F3D8
-_0814A530: .4byte gUnknown_846D94C
-_0814A534: .4byte gUnknown_841CBA9
-_0814A538: .4byte 0x00000101
- thumb_func_end sub_814A468
-
- thumb_func_start sub_814A53C
-sub_814A53C: @ 814A53C
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0814A5AC @ =gUnknown_203F3D8
- ldr r1, [r4]
- adds r1, 0x26
- bl CopyItemName
- bl DynamicPlaceholderTextUtil_Reset
- ldr r1, [r4]
- adds r1, 0x26
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r4]
- adds r0, 0xA6
- ldr r1, _0814A5B0 @ =gUnknown_841CBCA
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- movs r0, 0x4
- movs r1, 0x8
- movs r2, 0x16
- movs r3, 0x4
- bl sub_814A754
- ldr r2, [r4]
- movs r6, 0
- movs r5, 0
- strh r0, [r2, 0x12]
- lsls r0, 24
- lsrs r0, 24
- adds r2, 0xA6
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- strh r5, [r0, 0x14]
- strb r6, [r0, 0xD]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A5AC: .4byte gUnknown_203F3D8
-_0814A5B0: .4byte gUnknown_841CBCA
- thumb_func_end sub_814A53C
-
- thumb_func_start sub_814A5B4
-sub_814A5B4: @ 814A5B4
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0814A624 @ =gUnknown_203F3D8
- ldr r1, [r4]
- adds r1, 0x26
- bl CopyItemName
- bl DynamicPlaceholderTextUtil_Reset
- ldr r1, [r4]
- adds r1, 0x26
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r4]
- adds r0, 0xA6
- ldr r1, _0814A628 @ =gUnknown_841CBE4
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- movs r0, 0x4
- movs r1, 0x9
- movs r2, 0x16
- movs r3, 0x2
- bl sub_814A754
- ldr r2, [r4]
- movs r6, 0
- movs r5, 0
- strh r0, [r2, 0x12]
- lsls r0, 24
- lsrs r0, 24
- adds r2, 0xA6
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- strh r5, [r0, 0x14]
- strb r6, [r0, 0xD]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A624: .4byte gUnknown_203F3D8
-_0814A628: .4byte gUnknown_841CBE4
- thumb_func_end sub_814A5B4
-
- thumb_func_start sub_814A62C
-sub_814A62C: @ 814A62C
- push {r4,lr}
- ldr r4, _0814A644 @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldrb r0, [r0, 0xD]
- cmp r0, 0x1
- beq _0814A680
- cmp r0, 0x1
- bgt _0814A648
- cmp r0, 0
- beq _0814A652
- b _0814A6C4
- .align 2, 0
-_0814A644: .4byte gUnknown_203F3D8
-_0814A648:
- cmp r0, 0x2
- beq _0814A6A6
- cmp r0, 0x3
- beq _0814A6BA
- b _0814A6C4
-_0814A652:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A6C4
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- bl PutWindowTilemap
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- movs r2, 0xE
- bl DrawTextBorderOuter
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r1, [r4]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
- b _0814A6C4
-_0814A680:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A6C4
- ldr r1, [r4]
- ldrh r0, [r1, 0x14]
- cmp r0, 0
- bne _0814A698
- ldrb r0, [r1, 0xD]
- adds r0, 0x2
- b _0814A6B8
-_0814A698:
- ldrh r0, [r1, 0x14]
- bl PlayFanfare
- ldr r1, [r4]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_0814A6A6:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _0814A6C4
- ldr r0, _0814A6C0 @ =gUnknown_203F3D8
- ldr r1, [r0]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
-_0814A6B8:
- strb r0, [r1, 0xD]
-_0814A6BA:
- movs r0, 0
- b _0814A6C6
- .align 2, 0
-_0814A6C0: .4byte gUnknown_203F3D8
-_0814A6C4:
- movs r0, 0x1
-_0814A6C6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814A62C
-
- thumb_func_start sub_814A6CC
-sub_814A6CC: @ 814A6CC
- push {r4,lr}
- ldr r4, _0814A6F8 @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldrh r0, [r0, 0x12]
- cmp r0, 0xFF
- beq _0814A6F0
- lsls r0, 24
- lsrs r0, 24
- bl rbox_fill_rectangle
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- movs r1, 0x1
- bl CopyWindowToVram
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0xD]
-_0814A6F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A6F8: .4byte gUnknown_203F3D8
- thumb_func_end sub_814A6CC
-
- thumb_func_start sub_814A6FC
-sub_814A6FC: @ 814A6FC
- push {r4,lr}
- ldr r4, _0814A70C @ =gUnknown_203F3D8
- ldr r1, [r4]
- ldrh r0, [r1, 0x12]
- cmp r0, 0xFF
- bne _0814A710
-_0814A708:
- movs r0, 0
- b _0814A73C
- .align 2, 0
-_0814A70C: .4byte gUnknown_203F3D8
-_0814A710:
- ldrb r0, [r1, 0xD]
- cmp r0, 0
- bne _0814A736
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814A73A
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- bl RemoveWindow
- ldr r1, [r4]
- movs r0, 0xFF
- strh r0, [r1, 0x12]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
- b _0814A708
-_0814A736:
- cmp r0, 0x1
- beq _0814A708
-_0814A73A:
- movs r0, 0x1
-_0814A73C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814A6FC
-
- thumb_func_start sub_814A744
-sub_814A744: @ 814A744
- push {lr}
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_814A744
-
- thumb_func_start sub_814A754
-sub_814A754: @ 814A754
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _0814A7BC @ =0xffffff00
- ldr r4, [sp]
- ands r4, r6
- lsls r0, 24
- lsrs r0, 16
- ldr r5, _0814A7C0 @ =0xffff00ff
- ands r4, r5
- orrs r4, r0
- lsls r1, 24
- lsrs r1, 8
- ldr r0, _0814A7C4 @ =0xff00ffff
- ands r4, r0
- orrs r4, r1
- lsls r2, 24
- ldr r0, _0814A7C8 @ =0x00ffffff
- ands r4, r0
- orrs r4, r2
- str r4, [sp]
- lsls r3, 24
- lsrs r3, 24
- ldr r0, [sp, 0x4]
- ands r0, r6
- orrs r0, r3
- ands r0, r5
- movs r1, 0xF0
- lsls r1, 4
- orrs r0, r1
- ldr r1, _0814A7CC @ =0x0000ffff
- ands r0, r1
- movs r1, 0x86
- lsls r1, 15
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7BC: .4byte 0xffffff00
-_0814A7C0: .4byte 0xffff00ff
-_0814A7C4: .4byte 0xff00ffff
-_0814A7C8: .4byte 0x00ffffff
-_0814A7CC: .4byte 0x0000ffff
- thumb_func_end sub_814A754
-
- thumb_func_start sub_814A7D0
-sub_814A7D0: @ 814A7D0
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r2, 24
- lsrs r2, 24
- ldr r5, _0814A838 @ =0xffffff00
- ldr r3, [sp, 0xC]
- ands r3, r5
- lsls r0, 24
- lsrs r0, 16
- ldr r4, _0814A83C @ =0xffff00ff
- ands r3, r4
- orrs r3, r0
- lsls r1, 24
- lsrs r1, 8
- ldr r0, _0814A840 @ =0xff00ffff
- ands r3, r0
- orrs r3, r1
- ldr r0, _0814A844 @ =0x00ffffff
- ands r3, r0
- movs r0, 0xC0
- lsls r0, 19
- orrs r3, r0
- str r3, [sp, 0xC]
- ldr r0, [sp, 0x10]
- ands r0, r5
- movs r1, 0x4
- orrs r0, r1
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _0814A848 @ =0x0000ffff
- ands r0, r1
- movs r1, 0xAC
- lsls r1, 14
- orrs r0, r1
- str r0, [sp, 0x10]
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- str r2, [sp, 0x8]
- add r0, sp, 0xC
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl CreateYesNoMenu
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A838: .4byte 0xffffff00
-_0814A83C: .4byte 0xffff00ff
-_0814A840: .4byte 0xff00ffff
-_0814A844: .4byte 0x00ffffff
-_0814A848: .4byte 0x0000ffff
- thumb_func_end sub_814A7D0
-
- thumb_func_start sub_814A84C
-sub_814A84C: @ 814A84C
- push {r4,lr}
- sub sp, 0x10
- ldr r1, _0814A8AC @ =gUnknown_846D950
- add r0, sp, 0xC
- movs r2, 0x3
- bl memcpy
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- add r0, sp, 0xC
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, _0814A8B0 @ =gUnknown_841CB52
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- add r0, sp, 0xC
- str r0, [sp]
- str r4, [sp, 0x4]
- ldr r0, _0814A8B4 @ =gUnknown_841CB5A
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A8AC: .4byte gUnknown_846D950
-_0814A8B0: .4byte gUnknown_841CB52
-_0814A8B4: .4byte gUnknown_841CB5A
- thumb_func_end sub_814A84C
-
- thumb_func_start sub_814A8B8
-sub_814A8B8: @ 814A8B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- bl sub_81499A4
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r1, _0814A934 @ =gUnknown_846D9D4
- subs r0, 0x2
- lsls r0, 2
- adds r0, r1
- ldr r5, [r0]
- movs r6, 0
- cmp r6, r10
- bge _0814A922
- ldr r0, _0814A938 @ =gMonFrontPicCoords
- mov r9, r0
- ldr r1, _0814A93C @ =gUnknown_203F3D8
- mov r8, r1
-_0814A8E6:
- lsls r4, r6, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_81499C0
- adds r1, r0, 0
- ldrh r0, [r1]
- lsls r0, 2
- add r0, r9
- ldrb r3, [r0, 0x1]
- mov r2, r8
- ldr r0, [r2]
- movs r7, 0
- ldrsh r2, [r5, r7]
- adds r3, 0x70
- str r4, [sp]
- bl sub_814ADCC
- mov r1, r8
- ldr r0, [r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x70
- adds r3, r4, 0
- bl sub_814B240
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, r10
- blt _0814A8E6
-_0814A922:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A934: .4byte gUnknown_846D9D4
-_0814A938: .4byte gMonFrontPicCoords
-_0814A93C: .4byte gUnknown_203F3D8
- thumb_func_end sub_814A8B8
-
- thumb_func_start sub_814A940
-sub_814A940: @ 814A940
- ldr r2, _0814A954 @ =gUnknown_203F3D8
- ldr r2, [r2]
- lsls r0, 2
- ldr r3, _0814A958 @ =0x000081a8
- adds r2, r3
- adds r2, r0
- ldr r0, [r2]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0814A954: .4byte gUnknown_203F3D8
-_0814A958: .4byte 0x000081a8
- thumb_func_end sub_814A940
-
- thumb_func_start sub_814A95C
-sub_814A95C: @ 814A95C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0814A984 @ =gUnknown_203F3D8
- ldr r0, [r0]
- adds r1, r4, 0
- bl sub_814B348
- ldr r0, _0814A988 @ =gUnknown_846D953
- adds r4, r0
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 13
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgY
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A984: .4byte gUnknown_203F3D8
-_0814A988: .4byte gUnknown_846D953
- thumb_func_end sub_814A95C
-
- thumb_func_start sub_814A98C
-sub_814A98C: @ 814A98C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- movs r6, 0
-_0814A996:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0814A9AA
- ldr r0, _0814A9C4 @ =gUnknown_203F3D8
- ldr r0, [r0]
- adds r1, r5, 0
- bl sub_814AF0C
- adds r6, 0x1
-_0814A9AA:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x4
- ble _0814A996
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- bl sub_814ACCC
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A9C4: .4byte gUnknown_203F3D8
- thumb_func_end sub_814A98C
-
- thumb_func_start sub_814A9C8
-sub_814A9C8: @ 814A9C8
- push {r4,lr}
- sub sp, 0x10
- mov r1, sp
- movs r0, 0x40 @ strConvMode = 0
- @ shape = SPRITE_SHAPE(8x8)
- @ size = SPRITE_SIZE(8x8)
- @ priority = 1
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x8
- strb r0, [r1, 0x2]
- movs r0, 0x6C
- strh r0, [r1, 0x4]
- movs r4, 0x6
- strh r4, [r1, 0x6]
- ldr r0, _0814AA1C @ =gUnknown_846D960
- str r0, [sp, 0x8]
- ldr r0, _0814AA20 @ =gUnknown_846D968
- str r0, [sp, 0xC]
- movs r0, 0x2
- bl DigitObjUtil_Init
- movs r0, 0
- movs r1, 0
- mov r2, sp
- bl DigitObjUtil_CreatePrinter
- mov r1, sp
- movs r0, 0x4
- strb r0, [r1, 0x1]
- movs r0, 0x1E
- strh r0, [r1, 0x4]
- mov r0, sp
- strh r4, [r0, 0x6]
- movs r0, 0x1
- movs r1, 0
- mov r2, sp
- bl DigitObjUtil_CreatePrinter
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AA1C: .4byte gUnknown_846D960
-_0814AA20: .4byte gUnknown_846D968
- thumb_func_end sub_814A9C8
-
- thumb_func_start sub_814AA24
-sub_814AA24: @ 814AA24
- push {lr}
- adds r1, r0, 0
- movs r0, 0
- bl DigitObjUtil_PrintNumOn
- pop {r0}
- bx r0
- thumb_func_end sub_814AA24
-
- thumb_func_start sub_814AA34
-sub_814AA34: @ 814AA34
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x1
- bl DigitObjUtil_PrintNumOn
- pop {r0}
- bx r0
- thumb_func_end sub_814AA34
-
- thumb_func_start sub_814AA48
-sub_814AA48: @ 814AA48
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0814AA5C @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814AFE8
- pop {r0}
- bx r0
- .align 2, 0
-_0814AA5C: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AA48
-
- thumb_func_start sub_814AA60
-sub_814AA60: @ 814AA60
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0814AA74 @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B080
- pop {r0}
- bx r0
- .align 2, 0
-_0814AA74: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AA60
-
- thumb_func_start sub_814AA78
-sub_814AA78: @ 814AA78
- push {lr}
- adds r1, r0, 0
- ldr r0, _0814AA88 @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B010
- pop {r1}
- bx r1
- .align 2, 0
-_0814AA88: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AA78
-
- thumb_func_start sub_814AA8C
-sub_814AA8C: @ 814AA8C
- push {lr}
- ldr r0, _0814AA9C @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B0A8
- pop {r0}
- bx r0
- .align 2, 0
-_0814AA9C: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AA8C
-
- thumb_func_start sub_814AAA0
-sub_814AAA0: @ 814AAA0
- push {lr}
- ldr r0, _0814AAB0 @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B134
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAB0: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AAA0
-
- thumb_func_start sub_814AAB4
-sub_814AAB4: @ 814AAB4
- push {lr}
- adds r1, r0, 0
- ldr r0, _0814AAC4 @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B168
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAC4: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AAB4
-
- thumb_func_start sub_814AAC8
-sub_814AAC8: @ 814AAC8
- push {lr}
- ldr r0, _0814AAD8 @ =gUnknown_203F3D8
- ldr r0, [r0]
- bl sub_814B190
- pop {r1}
- bx r1
- .align 2, 0
-_0814AAD8: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AAC8
-
- thumb_func_start sub_814AADC
-sub_814AADC: @ 814AADC
- push {r4-r7,lr}
- sub sp, 0x8
- bl sub_81499A4
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _0814AB7C @ =gUnknown_846D9A8
- subs r0, r7, 0x2
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- ldr r2, _0814AB80 @ =0xffffff00
- ldr r0, [sp]
- ands r0, r2
- ldr r1, _0814AB84 @ =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 20
- orrs r0, r1
- str r0, [sp]
- ldr r0, [sp, 0x4]
- ands r0, r2
- movs r1, 0x2
- orrs r0, r1
- ldr r1, _0814AB88 @ =0xffff00ff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _0814AB8C @ =0x0000ffff
- ands r0, r1
- movs r1, 0xAC
- lsls r1, 14
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r5, 0
- cmp r5, r7
- bge _0814AB6C
- mov r6, sp
-_0814AB2A:
- ldrb r0, [r4]
- lsls r0, 8
- ldr r2, _0814AB88 @ =0xffff00ff
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- ldrb r2, [r4, 0x2]
- lsls r2, 16
- ldr r0, _0814AB90 @ =0xff00ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp]
- mov r0, sp
- bl AddWindow
- ldr r1, _0814AB94 @ =gUnknown_203F3D8
- ldr r1, [r1]
- lsls r2, r5, 1
- adds r1, 0x1C
- adds r1, r2
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- ldrh r0, [r6, 0x6]
- adds r0, 0x10
- strh r0, [r6, 0x6]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r7
- blt _0814AB2A
-_0814AB6C:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AB7C: .4byte gUnknown_846D9A8
-_0814AB80: .4byte 0xffffff00
-_0814AB84: .4byte 0x00ffffff
-_0814AB88: .4byte 0xffff00ff
-_0814AB8C: .4byte 0x0000ffff
-_0814AB90: .4byte 0xff00ffff
-_0814AB94: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AADC
-
- thumb_func_start sub_814AB98
-sub_814AB98: @ 814AB98
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- add r0, sp, 0xC
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r3, [r0, 0x2]
- ldr r6, _0814AC2C @ =gUnknown_203F3D8
- ldr r0, [r6]
- lsls r1, r5, 1
- mov r8, r1
- adds r0, 0x1C
- add r0, r8
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_81499E0
- adds r1, r0, 0
- movs r2, 0x1
- negs r2, r2
- mov r9, r2
- movs r0, 0
- bl GetStringWidth
- movs r4, 0x40
- subs r4, r0
- lsrs r4, 1
- adds r0, r5, 0
- bl sub_81499E0
- adds r1, r0, 0
- ldr r0, [r6]
- adds r0, 0x1C
- add r0, r8
- ldrb r0, [r0]
- lsls r4, 24
- lsrs r4, 24
- add r2, sp, 0xC
- str r2, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- ldr r0, [r6]
- adds r0, 0x1C
- add r0, r8
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AC2C: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AB98
-
- thumb_func_start sub_814AC30
-sub_814AC30: @ 814AC30
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_81499A4
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- bne _0814AC5A
- movs r4, 0
- cmp r4, r5
- bge _0814AC8C
-_0814AC46:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x3
- bl sub_814AB98
- adds r4, 0x1
- cmp r4, r5
- blt _0814AC46
- b _0814AC8C
-_0814AC5A:
- bl sub_81499B4
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
- cmp r4, r5
- bge _0814AC8C
-_0814AC68:
- cmp r6, r4
- beq _0814AC7A
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x3
- bl sub_814AB98
- b _0814AC86
-_0814AC7A:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x4
- movs r3, 0x5
- bl sub_814AB98
-_0814AC86:
- adds r4, 0x1
- cmp r4, r5
- blt _0814AC68
-_0814AC8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_814AC30
-
- thumb_func_start sub_814AC94
-sub_814AC94: @ 814AC94
- push {r4,r5,lr}
- bl sub_81499A4
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
- cmp r4, r5
- bge _0814ACBA
-_0814ACA4:
- ldr r0, _0814ACC8 @ =gUnknown_203F3D8
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x1C
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- adds r4, 0x1
- cmp r4, r5
- blt _0814ACA4
-_0814ACBA:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ACC8: .4byte gUnknown_203F3D8
- thumb_func_end sub_814AC94
-
- thumb_func_start sub_814ACCC
-sub_814ACCC: @ 814ACCC
- push {r4,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0814AD10 @ =gUnknown_203F3D8
- ldr r2, [r0]
- movs r0, 0
- str r0, [r2, 0x18]
- lsrs r1, 25
- lsls r1, 16
- movs r0, 0x1
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- ands r4, r0
- lsls r4, 8
- subs r4, 0x28
- lsls r4, 8
- adds r1, r4, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- bl ShowBg
- ldr r0, _0814AD14 @ =sub_814AD50
- movs r1, 0x4
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AD10: .4byte gUnknown_203F3D8
-_0814AD14: .4byte sub_814AD50
- thumb_func_end sub_814ACCC
-
- thumb_func_start sub_814AD18
-sub_814AD18: @ 814AD18
- push {r4,lr}
- ldr r4, _0814AD28 @ =gUnknown_203F3D8
- ldr r0, [r4]
- ldr r0, [r0, 0x18]
- cmp r0, 0x1F
- bls _0814AD2C
- movs r0, 0
- b _0814AD4A
- .align 2, 0
-_0814AD28: .4byte gUnknown_203F3D8
-_0814AD2C:
- movs r0, 0x1
- movs r1, 0x80
- movs r2, 0x1
- bl ChangeBgY
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r0, 0x1
- str r0, [r1, 0x18]
- cmp r0, 0x1F
- bls _0814AD48
- movs r0, 0x1
- bl HideBg
-_0814AD48:
- movs r0, 0x1
-_0814AD4A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814AD18
-
- thumb_func_start sub_814AD50
-sub_814AD50: @ 814AD50
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_814AD18
- cmp r0, 0
- bne _0814AD64
- adds r0, r4, 0
- bl DestroyTask
-_0814AD64:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814AD50
-
- thumb_func_start sub_814AD6C
-sub_814AD6C: @ 814AD6C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r4, 0
- ldr r5, _0814ADAC @ =gUnknown_846E0B0
-_0814AD74:
- adds r0, r5, 0
- bl LoadCompressedSpriteSheet
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x4
- bls _0814AD74
- movs r4, 0
- ldr r5, _0814ADB0 @ =gUnknown_846E0D8
-_0814AD86:
- adds r0, r5, 0
- bl LoadSpritePalette
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x1
- bls _0814AD86
- movs r0, 0x5
- bl IndexOfSpritePaletteTag
- strb r0, [r6, 0xE]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- strb r0, [r6, 0xF]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADAC: .4byte gUnknown_846E0B0
-_0814ADB0: .4byte gUnknown_846E0D8
- thumb_func_end sub_814AD6C
-
- thumb_func_start sub_814ADB4
-sub_814ADB4: @ 814ADB4
- push {lr}
- movs r2, 0
- movs r1, 0x7
- adds r0, 0x3C
-_0814ADBC:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0814ADBC
- pop {r0}
- bx r0
- thumb_func_end sub_814ADB4
-
- thumb_func_start sub_814ADCC
-sub_814ADCC: @ 814ADCC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- mov r9, r0
- adds r7, r1, 0
- ldr r0, [sp, 0x54]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x28]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x2C]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, sp
- ldr r0, _0814AE20 @ =gUnknown_846E0E8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x80
- lsls r0, 6
- bl Alloc
- mov r8, r0
- movs r0, 0x80
- lsls r0, 4
- bl Alloc
- mov r10, r0
- bl sub_81499B4
- lsls r0, 16
- lsrs r0, 16
- cmp r6, r0
- bne _0814AE24
- movs r0, 0x3
- b _0814AE2A
- .align 2, 0
-_0814AE20: .4byte gUnknown_846E0E8
-_0814AE24:
- adds r0, r6, 0x4
- lsls r0, 24
- lsrs r0, 24
-_0814AE2A:
- str r0, [sp, 0x30]
- mov r1, r8
- cmp r1, 0
- beq _0814AEEC
- mov r2, r10
- cmp r2, 0
- beq _0814AEEC
- ldrh r2, [r7]
- lsls r0, r2, 3
- ldr r1, _0814AED8 @ =gMonFrontPicTable
- adds r0, r1
- ldr r3, [r7, 0x8]
- mov r1, r8
- bl HandleLoadSpecialPokePic
- mov r3, r8
- str r3, [sp, 0x18]
- adds r4, r6, 0
- add r0, sp, 0x18
- ldr r5, _0814AEDC @ =0xffff0000
- lsls r1, r4, 16
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- ldrh r0, [r7]
- ldr r1, [r7, 0x4]
- ldr r2, [r7, 0x8]
- bl GetMonSpritePalFromSpeciesAndPersonality
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r4
- str r1, [r0, 0x4]
- bl LoadCompressedSpritePalette
- mov r0, r8
- bl Free
- mov r0, r10
- bl Free
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- adds r0, r6
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- adds r0, r6
- strh r0, [r1, 0x2]
- ldr r4, [sp, 0x28]
- lsls r1, r4, 16
- asrs r1, 16
- ldr r0, [sp, 0x2C]
- lsls r2, r0, 16
- asrs r2, 16
- mov r0, sp
- ldr r3, [sp, 0x30]
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0814AEEC
- lsls r0, r6, 2
- ldr r2, _0814AEE0 @ =0x000081a8
- add r2, r9
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AEE4 @ =gSprites
- adds r0, r1
- str r0, [r2]
- ldr r0, _0814AEE8 @ =0x000081fc
- add r0, r9
- adds r0, r6
- add r1, sp, 0x30
- ldrb r1, [r1]
- strb r1, [r0]
- b _0814AEF8
- .align 2, 0
-_0814AED8: .4byte gMonFrontPicTable
-_0814AEDC: .4byte 0xffff0000
-_0814AEE0: .4byte 0x000081a8
-_0814AEE4: .4byte gSprites
-_0814AEE8: .4byte 0x000081fc
-_0814AEEC:
- lsls r0, r6, 2
- ldr r1, _0814AF08 @ =0x000081a8
- add r1, r9
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0814AEF8:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AF08: .4byte 0x000081a8
- thumb_func_end sub_814ADCC
-
- thumb_func_start sub_814AF0C
-sub_814AF0C: @ 814AF0C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r6, r1, 2
- ldr r0, _0814AF64 @ =0x000081bc
- adds r5, r4, r0
- adds r5, r6
- ldr r0, [r5]
- bl sub_814ADB4
- ldr r2, [r5]
- ldr r0, _0814AF68 @ =0x000081a8
- adds r4, r0
- adds r4, r6
- ldr r1, [r4]
- ldr r0, _0814AF6C @ =gSprites
- subs r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r1, r0, 8
- adds r0, r1
- lsls r1, r0, 16
- adds r0, r1
- negs r0, r0
- asrs r0, 2
- strh r0, [r2, 0x3C]
- ldr r1, [r5]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- movs r0, 0x60
- strh r0, [r1, 0x22]
- ldr r0, [r5]
- ldr r1, _0814AF70 @ =sub_814AF74
- str r1, [r0, 0x1C]
- movs r1, 0x1
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AF64: .4byte 0x000081bc
-_0814AF68: .4byte 0x000081a8
-_0814AF6C: .4byte gSprites
-_0814AF70: .4byte sub_814AF74
- thumb_func_end sub_814AF0C
-
- thumb_func_start sub_814AF74
-sub_814AF74: @ 814AF74
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _0814AFA0
- cmp r0, 0x1
- bgt _0814AF8A
- cmp r0, 0
- beq _0814AF90
- b _0814AFDE
-_0814AF8A:
- cmp r0, 0x2
- beq _0814AFC0
- b _0814AFDE
-_0814AF90:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814AFDE
- b _0814AFCE
-_0814AFA0:
- ldrh r1, [r2, 0x22]
- subs r1, 0x1
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x48
- bgt _0814AFDE
- movs r0, 0x48
- strh r0, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _0814AFDE
-_0814AFC0:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _0814AFDE
-_0814AFCE:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldr r0, _0814AFE4 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0814AFDE:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AFE4: .4byte SpriteCallbackDummy
- thumb_func_end sub_814AF74
-
- thumb_func_start sub_814AFE8
-sub_814AFE8: @ 814AFE8
- push {lr}
- lsls r1, 2
- ldr r2, _0814B008 @ =0x000081a8
- adds r0, r2
- adds r0, r1
- ldr r2, [r0]
- ldr r1, _0814B00C @ =sub_814B038
- str r1, [r2, 0x1C]
- movs r1, 0
- strh r1, [r2, 0x26]
- ldr r0, [r0]
- bl sub_814ADB4
- pop {r0}
- bx r0
- .align 2, 0
-_0814B008: .4byte 0x000081a8
-_0814B00C: .4byte sub_814B038
- thumb_func_end sub_814AFE8
-
- thumb_func_start sub_814B010
-sub_814B010: @ 814B010
- push {lr}
- movs r2, 0
- lsls r1, 2
- ldr r3, _0814B030 @ =0x000081a8
- adds r0, r3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- ldr r0, _0814B034 @ =sub_814B038
- cmp r1, r0
- bne _0814B028
- movs r2, 0x1
-_0814B028:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814B030: .4byte 0x000081a8
-_0814B034: .4byte sub_814B038
- thumb_func_end sub_814B010
-
- thumb_func_start sub_814B038
-sub_814B038: @ 814B038
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0814B064
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814B05C
- movs r0, 0x2
- b _0814B05E
-_0814B05C:
- ldr r0, _0814B078 @ =0x0000fffe
-_0814B05E:
- strh r0, [r2, 0x26]
- movs r0, 0
- strh r0, [r2, 0x30]
-_0814B064:
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0xC
- ble _0814B074
- movs r0, 0
- strh r0, [r2, 0x26]
- ldr r0, _0814B07C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0814B074:
- pop {r0}
- bx r0
- .align 2, 0
-_0814B078: .4byte 0x0000fffe
-_0814B07C: .4byte SpriteCallbackDummy
- thumb_func_end sub_814B038
-
- thumb_func_start sub_814B080
-sub_814B080: @ 814B080
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 2
- ldr r0, _0814B0A0 @ =0x000081a8
- adds r4, r0
- adds r4, r1
- ldr r0, [r4]
- bl sub_814ADB4
- ldr r1, [r4]
- ldr r0, _0814B0A4 @ =sub_814B100
- str r0, [r1, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B0A0: .4byte 0x000081a8
-_0814B0A4: .4byte sub_814B100
- thumb_func_end sub_814B080
-
- thumb_func_start sub_814B0A8
-sub_814B0A8: @ 814B0A8
- push {r4-r7,lr}
- adds r4, r0, 0
- bl sub_81499A4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0814B0EC
- movs r1, 0x5
- negs r1, r1
- mov r12, r1
- ldr r1, _0814B0F4 @ =0x000081a8
- adds r3, r4, r1
- ldr r7, _0814B0F8 @ =sub_814B100
- ldr r6, _0814B0FC @ =SpriteCallbackDummy
- movs r5, 0xA
- adds r4, r0, 0
-_0814B0CA:
- ldr r2, [r3]
- ldr r0, [r2, 0x1C]
- cmp r0, r7
- bne _0814B0E4
- adds r2, 0x3E
- ldrb r1, [r2]
- mov r0, r12
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- str r6, [r0, 0x1C]
- adds r0, 0x43
- strb r5, [r0]
-_0814B0E4:
- adds r3, 0x4
- subs r4, 0x1
- cmp r4, 0
- bne _0814B0CA
-_0814B0EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B0F4: .4byte 0x000081a8
-_0814B0F8: .4byte sub_814B100
-_0814B0FC: .4byte SpriteCallbackDummy
- thumb_func_end sub_814B0A8
-
- thumb_func_start sub_814B100
-sub_814B100: @ 814B100
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0814B12E
- movs r0, 0
- strh r0, [r3, 0x2E]
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0814B12E:
- pop {r0}
- bx r0
- thumb_func_end sub_814B100
-
- thumb_func_start sub_814B134
-sub_814B134: @ 814B134
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_81499A4
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r3
- bge _0814B15E
- ldr r0, _0814B164 @ =0x000081fc
- adds r5, r4, r0
- subs r0, 0x54
- adds r4, r0
-_0814B14E:
- ldm r4!, {r0}
- adds r1, r5, r2
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r3
- blt _0814B14E
-_0814B15E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B164: .4byte 0x000081fc
- thumb_func_end sub_814B134
-
- thumb_func_start sub_814B168
-sub_814B168: @ 814B168
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 2
- ldr r0, _0814B188 @ =0x000081a8
- adds r4, r0
- adds r4, r1
- ldr r0, [r4]
- bl sub_814ADB4
- ldr r1, [r4]
- ldr r0, _0814B18C @ =sub_814B1CC
- str r0, [r1, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B188: .4byte 0x000081a8
-_0814B18C: .4byte sub_814B1CC
- thumb_func_end sub_814B168
-
- thumb_func_start sub_814B190
-sub_814B190: @ 814B190
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_81499A4
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r3
- bge _0814B1C4
- ldr r5, _0814B1B4 @ =sub_814B1CC
- ldr r0, _0814B1B8 @ =0x000081a8
- adds r1, r4, r0
-_0814B1A8:
- ldr r0, [r1]
- ldr r0, [r0, 0x1C]
- cmp r0, r5
- bne _0814B1BC
- movs r0, 0x1
- b _0814B1C6
- .align 2, 0
-_0814B1B4: .4byte sub_814B1CC
-_0814B1B8: .4byte 0x000081a8
-_0814B1BC:
- adds r1, 0x4
- adds r2, 0x1
- cmp r2, r3
- blt _0814B1A8
-_0814B1C4:
- movs r0, 0
-_0814B1C6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_814B190
-
- thumb_func_start sub_814B1CC
-sub_814B1CC: @ 814B1CC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- cmp r4, 0
- beq _0814B1DE
- cmp r4, 0x1
- beq _0814B1EC
- b _0814B234
-_0814B1DE:
- movs r0, 0x1C
- bl PlaySE
- strh r4, [r5, 0x30]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0814B1EC:
- ldrh r0, [r5, 0x30]
- adds r0, 0x4
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _0814B1FE
- movs r0, 0
- strh r0, [r5, 0x30]
-_0814B1FE:
- ldr r1, _0814B22C @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r5, 0x26]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- cmp r1, 0
- bne _0814B234
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0814B230
- strh r1, [r5, 0x2E]
- b _0814B234
- .align 2, 0
-_0814B22C: .4byte gSineTable
-_0814B230:
- ldr r0, _0814B23C @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_0814B234:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B23C: .4byte SpriteCallbackDummy
- thumb_func_end sub_814B1CC
-
- thumb_func_start sub_814B240
-sub_814B240: @ 814B240
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, _0814B288 @ =gUnknown_846E2B4
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0814B280
- ldr r0, _0814B28C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- lsls r2, r4, 2
- ldr r3, _0814B290 @ =0x000081bc
- adds r0, r5, r3
- adds r0, r2
- str r1, [r0]
-_0814B280:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B288: .4byte gUnknown_846E2B4
-_0814B28C: .4byte gSprites
-_0814B290: .4byte 0x000081bc
- thumb_func_end sub_814B240
-
- thumb_func_start sub_814B294
-sub_814B294: @ 814B294
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- movs r4, 0
- ldr r6, _0814B334 @ =gUnknown_846E100
-_0814B29E:
- ldr r1, _0814B338 @ =gUnknown_846E160
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r2, _0814B33C @ =gUnknown_846E150
- lsls r1, r5, 1
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r6, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r5, 2
- ldr r3, _0814B340 @ =0x000081d0
- adds r2, r7, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814B344 @ =gSprites
- adds r0, r1
- str r0, [r2]
- adds r5, 0x1
- adds r6, 0x14
- adds r4, 0x1
- cmp r4, 0x3
- ble _0814B29E
- movs r4, 0x3
- movs r6, 0x3C
-_0814B2E0:
- ldr r1, _0814B338 @ =gUnknown_846E160
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r2, _0814B33C @ =gUnknown_846E150
- lsls r1, r5, 1
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _0814B334 @ =gUnknown_846E100
- adds r2, r6, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r5, 2
- ldr r3, _0814B340 @ =0x000081d0
- adds r2, r7, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814B344 @ =gSprites
- adds r0, r1
- str r0, [r2]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- adds r5, 0x1
- subs r6, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _0814B2E0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B334: .4byte gUnknown_846E100
-_0814B338: .4byte gUnknown_846E160
-_0814B33C: .4byte gUnknown_846E150
-_0814B340: .4byte 0x000081d0
-_0814B344: .4byte gSprites
- thumb_func_end sub_814B294
-
- thumb_func_start sub_814B348
-sub_814B348: @ 814B348
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp, 0x8]
- cmp r1, 0x5
- ble _0814B368
- movs r0, 0xA
- subs r1, r0, r1
- movs r0, 0x3
- str r0, [sp]
- ldr r2, [sp, 0x8]
- ldrb r0, [r2, 0xF]
- b _0814B370
-_0814B368:
- movs r3, 0x2
- str r3, [sp]
- ldr r7, [sp, 0x8]
- ldrb r0, [r7, 0xE]
-_0814B370:
- movs r6, 0
- lsls r2, r1, 1
- str r2, [sp, 0x4]
- lsls r0, 4
- mov r9, r0
- lsls r1, 24
- mov r8, r1
- ldr r0, _0814B434 @ =gUnknown_846E100
- adds r4, r2, r0
- ldr r3, [sp]
- lsls r3, 2
- mov r10, r3
- movs r5, 0x3
-_0814B38A:
- lsls r0, r6, 2
- ldr r7, [sp, 0x8]
- ldr r1, _0814B438 @ =0x000081d0
- adds r2, r7, r1
- adds r2, r0
- ldr r1, [r2]
- ldrh r0, [r4]
- strh r0, [r1, 0x22]
- ldr r3, [r2]
- ldrb r0, [r3, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r9
- orrs r0, r7
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r6, 0x1
- adds r4, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _0814B38A
- movs r5, 0x3
- ldr r0, _0814B434 @ =gUnknown_846E100
- ldr r3, [sp, 0x4]
- adds r0, r3, r0
- adds r4, r0, 0
- adds r4, 0x3C
- ldr r7, [sp]
- lsls r7, 2
- mov r10, r7
-_0814B3E0:
- lsls r0, r6, 2
- ldr r1, [sp, 0x8]
- ldr r3, _0814B438 @ =0x000081d0
- adds r2, r1, r3
- adds r2, r0
- ldr r1, [r2]
- ldrh r0, [r4]
- strh r0, [r1, 0x22]
- ldr r3, [r2]
- ldrb r0, [r3, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r9
- orrs r0, r7
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r6, 0x1
- subs r4, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _0814B3E0
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B434: .4byte gUnknown_846E100
-_0814B438: .4byte 0x000081d0
- thumb_func_end sub_814B348
-
- thumb_func_start sub_814B43C
-sub_814B43C: @ 814B43C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0x7
- movs r2, 0x78
- movs r3, 0x50
- bl StartMinigameCountdown
- adds r0, r4, 0
- bl sub_814B134
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814B43C
-
- thumb_func_start sub_814B460
-sub_814B460: @ 814B460
- push {lr}
- bl IsMinigameCountdownRunning
- pop {r1}
- bx r1
- thumb_func_end sub_814B460
-
- thumb_func_start sub_814B46C
-sub_814B46C: @ 814B46C
- ldr r0, _0814B478 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xB0
- lsls r1, 4
- adds r0, r1
- bx lr
- .align 2, 0
-_0814B478: .4byte gSaveBlock2Ptr
- thumb_func_end sub_814B46C
-
- thumb_func_start ResetPokeJumpResults
-ResetPokeJumpResults: @ 814B47C
- push {lr}
- bl sub_814B46C
- movs r1, 0
- strh r1, [r0]
- str r1, [r0, 0xC]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- str r1, [r0, 0x8]
- strh r1, [r0, 0x2]
- pop {r0}
- bx r0
- thumb_func_end ResetPokeJumpResults
-
- thumb_func_start sub_814B494
-sub_814B494: @ 814B494
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- bl sub_814B46C
- adds r1, r0, 0
- movs r2, 0
- ldr r0, [r1, 0xC]
- cmp r0, r4
- bcs _0814B4B8
- ldr r0, _0814B4E0 @ =0x00018696
- cmp r4, r0
- bhi _0814B4B8
- str r4, [r1, 0xC]
- movs r2, 0x1
-_0814B4B8:
- ldrh r0, [r1]
- cmp r0, r5
- bcs _0814B4C8
- ldr r0, _0814B4E4 @ =0x0000270f
- cmp r5, r0
- bhi _0814B4C8
- strh r5, [r1]
- movs r2, 0x1
-_0814B4C8:
- ldrh r0, [r1, 0x4]
- cmp r0, r6
- bcs _0814B4D8
- ldr r0, _0814B4E4 @ =0x0000270f
- cmp r6, r0
- bhi _0814B4D8
- strh r6, [r1, 0x4]
- movs r2, 0x1
-_0814B4D8:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814B4E0: .4byte 0x00018696
-_0814B4E4: .4byte 0x0000270f
- thumb_func_end sub_814B494
-
- thumb_func_start sub_814B4E8
-sub_814B4E8: @ 814B4E8
- push {lr}
- bl sub_814B46C
- adds r2, r0, 0
- ldrh r1, [r2, 0x6]
- ldr r0, _0814B500 @ =0x0000270e
- cmp r1, r0
- bhi _0814B4FC
- adds r0, r1, 0x1
- strh r0, [r2, 0x6]
-_0814B4FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0814B500: .4byte 0x0000270e
- thumb_func_end sub_814B4E8
-
- thumb_func_start ShowPokemonJumpRecords
-ShowPokemonJumpRecords: @ 814B504
- push {r4,lr}
- ldr r4, _0814B520 @ =sub_814B524
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B520: .4byte sub_814B524
- thumb_func_end ShowPokemonJumpRecords
-
- thumb_func_start sub_814B524
-sub_814B524: @ 814B524
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814B548 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0814B570
- cmp r0, 0x1
- bgt _0814B54C
- cmp r0, 0
- beq _0814B556
- b _0814B5BE
- .align 2, 0
-_0814B548: .4byte gTasks+0x8
-_0814B54C:
- cmp r0, 0x2
- beq _0814B57C
- cmp r0, 0x3
- beq _0814B5A4
- b _0814B5BE
-_0814B556:
- ldr r0, _0814B56C @ =gUnknown_846E2CC
- bl AddWindow
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x2]
- bl sub_814B5C4
- ldrb r0, [r4, 0x2]
- movs r1, 0x3
- b _0814B592
- .align 2, 0
-_0814B56C: .4byte gUnknown_846E2CC
-_0814B570:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814B5BE
- b _0814B596
-_0814B57C:
- ldr r0, _0814B5A0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0814B5BE
- ldrb r0, [r4, 0x2]
- bl rbox_fill_rectangle
- ldrb r0, [r4, 0x2]
- movs r1, 0x1
-_0814B592:
- bl CopyWindowToVram
-_0814B596:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0814B5BE
- .align 2, 0
-_0814B5A0: .4byte gMain
-_0814B5A4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0814B5BE
- ldrb r0, [r4, 0x2]
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0814B5BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814B524
-
- thumb_func_start sub_814B5C4
-sub_814B5C4: @ 814B5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x28]
- bl sub_814B46C
- ldrh r1, [r0]
- str r1, [sp, 0x14]
- ldr r1, [r0, 0xC]
- str r1, [sp, 0x18]
- ldrh r0, [r0, 0x4]
- str r0, [sp, 0x1C]
- ldr r0, [sp, 0x28]
- lsls r4, r0, 24
- lsrs r4, 24
- ldr r5, _0814B6C8 @ =0x0000021d
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xD0
- bl TextWindow_SetStdFrame0_WithPal
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xD
- bl DrawTextBorderOuter
- adds r0, r4, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, _0814B6CC @ =gUnknown_841CB63
- movs r1, 0
- str r1, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized5
- movs r7, 0
- mov r8, r4
- movs r1, 0xFF
- mov r10, r1
- movs r6, 0
- mov r0, sp
- adds r0, 0x14
- str r0, [sp, 0x2C]
- movs r1, 0xA0
- lsls r1, 21
- mov r9, r1
- add r5, sp, 0x20
-_0814B63E:
- ldr r1, _0814B6D0 @ =gUnknown_846E2D4
- lsls r0, r7, 2
- adds r0, r1
- ldr r2, [r0]
- mov r0, r9
- lsrs r4, r0, 24
- str r4, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- str r6, [sp, 0x10]
- mov r0, r8
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized5
- ldr r0, [sp, 0x2C]
- ldm r0!, {r1}
- str r0, [sp, 0x2C]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- bl sub_814B6D4
- movs r0, 0x2
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- movs r3, 0xDE
- subs r3, r0
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- str r6, [sp, 0x10]
- mov r0, r8
- movs r1, 0x2
- adds r2, r5, 0
- bl AddTextPrinterParameterized5
- movs r0, 0xE0
- lsls r0, 20
- add r9, r0
- adds r7, 0x1
- ldr r1, [sp, 0x28]
- lsls r0, r1, 24
- cmp r7, 0x2
- bls _0814B63E
- lsrs r0, 24
- bl PutWindowTilemap
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814B6C8: .4byte 0x0000021d
-_0814B6CC: .4byte gUnknown_841CB63
-_0814B6D0: .4byte gUnknown_846E2D4
- thumb_func_end sub_814B5C4
-
- thumb_func_start sub_814B6D4
-sub_814B6D4: @ 814B6D4
- push {lr}
- adds r1, r0, 0
- b _0814B6DC
-_0814B6DA:
- adds r1, 0x1
-_0814B6DC:
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0814B6EA
- cmp r0, 0
- bne _0814B6DA
- movs r0, 0xFF
- strb r0, [r1]
-_0814B6EA:
- pop {r0}
- bx r0
- thumb_func_end sub_814B6D4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/pokemon_jump.s b/data/pokemon_jump.s
deleted file mode 100644
index 8f37f94e0..000000000
--- a/data/pokemon_jump.s
+++ /dev/null
@@ -1,438 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_846AFE8:: @ 846AFE8
- .incbin "graphics/misc/unk_846B008.gbapal"
-
-gUnknown_846B008:: @ 846B008
- .incbin "graphics/misc/unk_846B008.4bpp.lz"
-
-gUnknown_846B42C:: @ 846B42C
- obj_tiles gUnknown_846B008, 0x0c00, 0x2000
- null_obj_tiles
-
-gUnknown_846B43C:: @ 846B43C
- obj_pal gUnknown_846AFE8, 0x2000
- null_obj_pal
-
-gUnknown_846B44C:: @ 846B44C
- obj_image_anim_frame 0x00, 0
- obj_image_anim_end
-
-gUnknown_846B454:: @ 846B454
- obj_image_anim_frame 0x10, 0
- obj_image_anim_end
-
-gUnknown_846B45C:: @ 846B45C
- obj_image_anim_frame 0x20, 0
- obj_image_anim_end
-
-gUnknown_846B464:: @ 846B464
- obj_image_anim_frame 0x40, 0
- obj_image_anim_end
-
-gUnknown_846B46C:: @ 846B46C
- obj_image_anim_frame 0x30, 0
- obj_image_anim_end
-
-gUnknown_846B474:: @ 846B474
- obj_image_anim_frame 0x50, 0
- obj_image_anim_end
-
-gUnknown_846B47C::
- .4byte gUnknown_846B44C
- .4byte gUnknown_846B454
- .4byte gUnknown_846B45C
- .4byte gUnknown_846B464
- .4byte gUnknown_846B46C
- .4byte gUnknown_846B474
-
-gUnknown_846B494:: @ 846B494
- spr_template 0x2000, 0x2000, gOamData_AffineOff_ObjNormal_32x32, gUnknown_846B47C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846B4AC:: @ 846B4AC
- @ This is a 2D array with one row.
- @ Why this was done this way is beyond me.
- @ The data that follow this row are not at all function pointers.
- .4byte sub_81477C0, sub_814784C, sub_81479D4, sub_8147A34
-
-gUnknown_846B4BC:: @ 846B4BC
- .2byte 0x0001, 0x0002, 0x0004, 0x0001, 0x0007, 0x0000, 0x000a, 0x0001, 0x000b, 0x0001, 0x000d, 0x0001, 0x000e, 0x0001, 0x0013, 0x0001
- .2byte 0x0014, 0x0001, 0x0019, 0x0000, 0x001b, 0x0000, 0x001d, 0x0000, 0x0020, 0x0000, 0x0023, 0x0000, 0x0025, 0x0000, 0x0027, 0x0002
- .2byte 0x002b, 0x0002, 0x002e, 0x0001, 0x0034, 0x0000, 0x0036, 0x0002, 0x0038, 0x0001, 0x003a, 0x0001, 0x003c, 0x0002, 0x0045, 0x0002
- .2byte 0x005a, 0x0001, 0x0062, 0x0001, 0x0066, 0x0002, 0x0068, 0x0000, 0x0084, 0x0002, 0x0085, 0x0000, 0x008a, 0x0001, 0x008c, 0x0001
- .2byte 0x0098, 0x0002, 0x009b, 0x0001, 0x009e, 0x0000, 0x00a7, 0x0001, 0x00ac, 0x0000, 0x00ad, 0x0000, 0x00ae, 0x0002, 0x00af, 0x0002
- .2byte 0x00b3, 0x0000, 0x00b6, 0x0002, 0x00b7, 0x0002, 0x00bf, 0x0002, 0x00c2, 0x0002, 0x00cc, 0x0002, 0x00d1, 0x0000, 0x00d5, 0x0002
- .2byte 0x00d8, 0x0000, 0x00da, 0x0002, 0x00dc, 0x0000, 0x00e4, 0x0001, 0x00e7, 0x0000, 0x00e9, 0x0000, 0x00ec, 0x0001, 0x00ee, 0x0002
- .2byte 0x00ef, 0x0001, 0x00f0, 0x0001, 0x00f6, 0x0001, 0x0115, 0x0001, 0x0118, 0x0002, 0x011b, 0x0000, 0x011c, 0x0000, 0x011e, 0x0001
- .2byte 0x0120, 0x0000, 0x0121, 0x0000, 0x0122, 0x0001, 0x0123, 0x0002, 0x0125, 0x0002, 0x0127, 0x0002, 0x012a, 0x0001, 0x0188, 0x0000
- .2byte 0x0189, 0x0000, 0x0137, 0x0002, 0x0132, 0x0002, 0x012d, 0x0001, 0x0172, 0x0000, 0x015e, 0x0002, 0x013b, 0x0000, 0x0142, 0x0000
- .2byte 0x0163, 0x0000, 0x017e, 0x0001, 0x0164, 0x0002, 0x0151, 0x0001, 0x0161, 0x0001, 0x0162, 0x0001, 0x0182, 0x0000, 0x0183, 0x0000
- .2byte 0x016b, 0x0002, 0x016f, 0x0002, 0x0153, 0x0002, 0x0141, 0x0002, 0x015f, 0x0000, 0x014c, 0x0002, 0x0158, 0x0002, 0x0186, 0x0001
- .2byte 0x0168, 0x0000, 0x015a, 0x0000, 0x0175, 0x0001, 0x018b, 0x0001
-
-gUnknown_846B64C:: @ 846B64C
- .4byte sub_8148344
- .4byte sub_81483D0
- .4byte sub_8148464
- .4byte sub_81484D0
- .4byte sub_81485C8
- .4byte sub_81486C4
- .4byte sub_8148760
- .4byte sub_81487B4
- .4byte sub_814881C
-
-gUnknown_846B670:: @ 846B670
- .4byte sub_8148398
- .4byte sub_8148418
- .4byte sub_81484B0
- .4byte sub_814856C
- .4byte sub_8148664
- .4byte sub_8148724
- .4byte sub_8148760
- .4byte sub_8148800
- .4byte sub_814881C
-
-gUnknown_846B694:: @ 846B694
- .2byte 0x001a, 0x001f, 0x0024, 0x0029, 0x002e, 0x0033, 0x0038, 0x003d
-
-gUnknown_846B6A4:: @ 846B6A4
- .2byte 0x0000, 0x0001, 0x0001, 0x0002
-
-gUnknown_846B6AC:: @ 846B6AC
- .2byte 0x0058, 0x005f, 0x00dd, 0x00fe
-
-gUnknown_846B6B4:: @ 846B6B4
- .byte 0xfd, 0xfa, 0xf8, 0xf6, 0xf3, 0xf1, 0xef, 0xed, 0xeb, 0xe9, 0xe7, 0xe5, 0xe4, 0xe3, 0xe2, 0xe2, 0xe2, 0xe4, 0xe5, 0xe6, 0xe7, 0xe9, 0xea, 0xec, 0xee, 0xef, 0xf1, 0xf3, 0xf5, 0xf8, 0xfa, 0xfc
- .byte 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfa, 0xf7, 0xf5, 0xf2, 0xf0, 0xee, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe3, 0xe2, 0xe2, 0xe4
- .byte 0xe6, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2, 0xf5, 0xf7, 0xfa, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0xfd, 0xfa, 0xf7, 0xf5, 0xf3, 0xf1, 0xef, 0xed, 0xeb, 0xe9, 0xe7, 0xe5, 0xe4, 0xe3, 0xe2, 0xe2, 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 0xe4, 0xe5, 0xe5, 0xe6, 0xe7, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2
- .byte 0xf4, 0xf5, 0xf7, 0xfa, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-gUnknown_846B744:: @ 846B744
- .4byte 0, 0, 50, 100, 200, 500
-
-gUnknown_846B75C:: @ 846B75C
- .2byte 0x008a, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093
-
-gUnknown_846B76C:: @ 846B76C
- .4byte 5000, 1
- .4byte 8000, 2
- .4byte 12000, 3
- .4byte 16000, 4
- .4byte 20000, 5
-
-gUnknown_846B794:: @ 846B794 gbapal
- .incbin "graphics/link_games/unk_846B794.gbapal"
-
-gUnknown_846B7B4:: @ 846B7B4 gbapal
- .incbin "graphics/link_games/unk_846B7B4.gbapal"
-
-gUnknown_846B7D4:: @ 846B7D4 4bpp.lz
- .incbin "graphics/link_games/unk_846B7D4.4bpp.lz"
-
-gUnknown_846BA00:: @ 846BA00 bin.lz
- .incbin "graphics/link_games/unk_846BA00.bin.lz"
-
-gUnknown_846BBB0:: @ 846BBB0 gbapal
- .incbin "graphics/link_games/unk_846BBB0.gbapal"
-
-gUnknown_846BBD0:: @ 846BBD0 4bpp.lz
- .incbin "graphics/link_games/unk_846BBD0.4bpp.lz"
-
-gUnknown_846C520:: @ 846C520 bin.lz
- .incbin "graphics/link_games/unk_846C520.bin.lz"
-
-gUnknown_846C8D8:: @ 846C8D8 gbapal
- .incbin "graphics/link_games/unk_846C8D8.gbapal"
-
-gUnknown_846C8F8:: @ 846C8F8 4bpp.lz
- .incbin "graphics/link_games/unk_846C8F8.4bpp.lz"
-
-gUnknown_846D3A8:: @ 846D3A8 bin.lz
- .incbin "graphics/link_games/unk_846D3A8.bin.lz"
-
-gUnknown_846D8D4:: @ 846D8D4
- .4byte 0x000001b0
- @ {
- @ .bg = 0,
- @ .charBaseIndex = 0,
- @ .mapBaseIndex = 27,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 0,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000025e6
- @ {
- @ .bg = 2,
- @ .charBaseIndex = 1,
- @ .mapBaseIndex = 30,
- @ .screenSize = 2,
- @ .paletteMode = 0,
- @ .priority = 2,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000016c9
- @ {
- @ .bg = 1,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 12,
- @ .screenSize = 3,
- @ .paletteMode = 0,
- @ .priority = 1,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000031df
- @ {
- @ .bg = 3,
- @ .charBaseIndex = 3,
- @ .mapBaseIndex = 29,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 3,
- @ .baseTile = 0x0000
- @ }
-
-gUnknown_846D8E4:: @ 846D8E4
- .byte 0, 19, 0, 6, 2, 2
- .2byte 0x0013
- .byte 0, 8, 0, 6, 2, 2
- .2byte 0x001f
- .byte 255, 0, 0, 0, 0, 0
- .2byte 0x0000
-
-gUnknown_846D8FC:: @ 846D8FC
- .4byte 0, sub_8149DC8
- .4byte 1, sub_8149F64
- .4byte 2, sub_8149FD0
- .4byte 3, sub_814A03C
- .4byte 4, sub_814A0C8
- .4byte 5, sub_814A174
- .4byte 6, sub_814A218
- .4byte 7, sub_814A264
- .4byte 9, sub_814A3AC
- .4byte 8, sub_814A308
-
-gUnknown_846D94C:: @ 846D94C
- .string "IES$"
-
-gUnknown_846D950:: @ 846D950
- .byte 0x00, 0x02, 0x03
-
-gUnknown_846D953:: @ 846D953
- .byte 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
-
-gUnknown_846D960:: @ 846D960
- obj_tiles gUnknown_8479688, 0, 800
-
-gUnknown_846D968:: @ 846D968
- obj_pal gUnknown_8479668, 800
-
-gUnknown_846D970::
- .2byte 0x0006, 0x0008, 0x0010, 0x0008
-
-gUnknown_846D978::
- .2byte 0x0006, 0x0008, 0x000b, 0x0006, 0x0010, 0x0008
-
-gUnknown_846D984::
- .2byte 0x0002, 0x0006, 0x0006, 0x0008, 0x0010, 0x0008, 0x0014, 0x0006
-
-gUnknown_846D994::
- .2byte 0x0002, 0x0006, 0x0006, 0x0008, 0x000b, 0x0006, 0x0010, 0x0008, 0x0014, 0x0006
-
-gUnknown_846D9A8:: @ 846D9A8
- .4byte gUnknown_846D970
- .4byte gUnknown_846D978
- .4byte gUnknown_846D984
- .4byte gUnknown_846D994
-
-gUnknown_846D9B8::
- .2byte 0x0058, 0x0098
-
-gUnknown_846D9BC::
- .2byte 0x0058, 0x0078, 0x0098
-
-gUnknown_846D9C2::
- .2byte 0x0038, 0x0058, 0x0098, 0x00b8
-
-gUnknown_846D9CA::
- .2byte 0x0038, 0x0058, 0x0078, 0x0098, 0x00b8
-
-gUnknown_846D9D4:: @ 846D9D4
- .4byte gUnknown_846D9B8
- .4byte gUnknown_846D9BC
- .4byte gUnknown_846D9C2
- .4byte gUnknown_846D9CA
-
-gUnknown_846D9E4:: @ gbapal
- .incbin "graphics/link_games/unk_846D9E4.gbapal"
-
-gUnknown_846DA04:: @ gbapal
- .incbin "graphics/link_games/unk_846DA04.gbapal"
-
-gUnknown_846DA24:: @ 4bpp.lz
- .incbin "graphics/link_games/unk_846DA24.4bpp.lz"
-
-gUnknown_846DB44:: @ 4bpp.lz
- .incbin "graphics/link_games/unk_846DB44.4bpp.lz"
-
-gUnknown_846DD18:: @ 4bpp.lz
- .incbin "graphics/link_games/unk_846DD18.4bpp.lz"
-
-gUnknown_846DE48:: @ 4bpp.lz
- .incbin "graphics/link_games/unk_846DE48.4bpp.lz"
-
-gUnknown_846DF44:: @ 4bpp.lz
- .incbin "graphics/link_games/unk_846DF44.4bpp.lz"
-
-gUnknown_846E0B0:: @ 846E0B0
- obj_tiles gUnknown_846DA24, 0x0600, 5
- obj_tiles gUnknown_846DB44, 0x0c00, 6
- obj_tiles gUnknown_846DD18, 0x0600, 7
- obj_tiles gUnknown_846DE48, 0x0600, 8
- obj_tiles gUnknown_846DF44, 0x0200, 10
-
-gUnknown_846E0D8:: @ 846E0D8
- obj_pal gUnknown_846D9E4, 5
- obj_pal gUnknown_846DA04, 6
-
-gUnknown_846E0E8:: @ 846E0E8
- spr_template 0, 0, gUnknown_846E170, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E100:: @ 846E100
- .2byte 0x0060, 0x0060, 0x0060, 0x0072, 0x0078, 0x0078, 0x0078, 0x0072, 0x0060, 0x0060, 0x0046, 0x0050, 0x0060, 0x0072, 0x0078, 0x0080
- .2byte 0x0078, 0x0072, 0x0060, 0x0050, 0x0032, 0x0048, 0x0060, 0x0072, 0x0080, 0x0088, 0x0080, 0x0072, 0x0060, 0x0048, 0x002a, 0x0048
- .2byte 0x0060, 0x0072, 0x0080, 0x0088, 0x0080, 0x0072, 0x0060, 0x0048
-
-gUnknown_846E150:: @ 846E150
- .2byte 0x0010, 0x0028, 0x0048, 0x0068, 0x0088, 0x00a8, 0x00c8, 0x00e0
-
-gUnknown_846E160:: @ 846E160
- .4byte gUnknown_846E220
- .4byte gUnknown_846E238
- .4byte gUnknown_846E250
- .4byte gUnknown_846E268
-
-gUnknown_846E170::
- .4byte 0xc0000000, 0x00000800
-
-gUnknown_846E178::
- .4byte 0x80008000, 0x00000800
-
-gUnknown_846E180::
- .4byte 0x80000000, 0x00000800
-
-gUnknown_846E188::
- .4byte 0x80004000, 0x00000800
-
-gUnknown_846E190::
- obj_image_anim_frame 0x0000, 1
- obj_image_anim_end
-
-gUnknown_846E198::
- obj_image_anim_frame 0x0008, 1
- obj_image_anim_end
-
-gUnknown_846E1A0::
- obj_image_anim_frame 0x0010, 1
- obj_image_anim_end
-
-gUnknown_846E1A8::
- obj_image_anim_frame 0x0018, 1
- obj_image_anim_end
-
-gUnknown_846E1B0::
- obj_image_anim_frame 0x0020, 1
- obj_image_anim_end
-
-gUnknown_846E1B8::
- obj_image_anim_frame 0x0028, 1
- obj_image_anim_end
-
-gUnknown_846E1C0::
- obj_image_anim_frame 0x0000, 1
- obj_image_anim_end
-
-gUnknown_846E1C8::
- obj_image_anim_frame 0x0010, 1
- obj_image_anim_end
-
-gUnknown_846E1D0::
- obj_image_anim_frame 0x0020, 1
- obj_image_anim_end
-
-gUnknown_846E1D8::
- obj_image_anim_frame 0x0030, 1
- obj_image_anim_end
-
-gUnknown_846E1E0::
- obj_image_anim_frame 0x0040, 1
- obj_image_anim_end
-
-gUnknown_846E1E8::
- obj_image_anim_frame 0x0050, 1
- obj_image_anim_end
-
-gUnknown_846E1F0::
- .4byte gUnknown_846E190
- .4byte gUnknown_846E198
- .4byte gUnknown_846E1A0
- .4byte gUnknown_846E1A8
- .4byte gUnknown_846E1B0
- .4byte gUnknown_846E1B8
-
-gUnknown_846E208::
- .4byte gUnknown_846E1C0
- .4byte gUnknown_846E1C8
- .4byte gUnknown_846E1D0
- .4byte gUnknown_846E1D8
- .4byte gUnknown_846E1E0
- .4byte gUnknown_846E1E8
-
-gUnknown_846E220::
- spr_template 5, 5, gUnknown_846E178, gUnknown_846E1F0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E238::
- spr_template 6, 5, gUnknown_846E180, gUnknown_846E208, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E250::
- spr_template 7, 5, gUnknown_846E188, gUnknown_846E1F0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E268::
- spr_template 8, 5, gUnknown_846E188, gUnknown_846E1F0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E280::
- .4byte 0x40000000, 0x00000400
-
-gUnknown_846E288::
- obj_image_anim_frame 0x0000, 0
- obj_image_anim_end
-
-gUnknown_846E290::
- obj_image_anim_frame 0x0000, 4
- obj_image_anim_frame 0x0004, 4
- obj_image_anim_frame 0x0008, 4
- obj_image_anim_frame 0x000c, 4
- obj_image_anim_loop 1
- obj_image_anim_frame 0x0000, 4
- obj_image_anim_end
-
-gUnknown_846E2AC::
- .4byte gUnknown_846E288
- .4byte gUnknown_846E290
-
-gUnknown_846E2B4:: @ 846E2B4
- spr_template 10, 5, gUnknown_846E280, gUnknown_846E2AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_846E2CC:: @ 846E2CC
- .byte 0, 1, 1, 28, 9, 15
- .2byte 0x0001
-
-gUnknown_846E2D4:: @ 846E2D4
- .4byte gUnknown_841CB78
- .4byte gUnknown_841CB88
- .4byte gUnknown_841CB94
diff --git a/data/strings.s b/data/strings.s
index f595170ff..1d56d6be7 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -3289,46 +3289,46 @@ gString_Help:: @ 841CB49
gString_HelpSystem_ClearTo8:: @ 841CB4E
.string "{CLEAR_TO 8}$"
-gUnknown_841CB52:: @ 841CB52
+gText_SpacePoints2:: @ 841CB52
.string " points$"
-gUnknown_841CB5A:: @ 841CB5A
+gText_SpaceTimes3:: @ 841CB5A
.string " time(s)$"
-gUnknown_841CB63:: @ 841CB63
+gText_PkmnJumpRecords:: @ 841CB63
.string "POKéMON JUMP RECORDS$"
-gUnknown_841CB78::
+gText_JumpsInARow::
.string "Jumps in a row:$"
-gUnknown_841CB88::
+gText_BestScore2::
.string "Best score:$"
-gUnknown_841CB94::
+gText_ExcellentsInARow::
.string "EXCELLENTS in a row:$"
-gUnknown_841CBA9:: @ 841CBA9
+gText_AwesomeWonF701F700:: @ 841CBA9
.string "Awesome score! You've\n"
.string "won {DYNAMIC 01} {DYNAMIC 00}!$"
-gUnknown_841CBCA:: @ 841CBCA
+gText_FilledStorageSpace2:: @ 841CBCA
.string "There's no room left now.$"
-gUnknown_841CBE4:: @ 841CBE4
+gText_CantHoldMore:: @ 841CBE4
.string "You can't hold any more!$"
-gUnknown_841CBFD:: @ 841CBFD
+gText_WantToPlayAgain2:: @ 841CBFD
.string "Want to play again?$"
-gUnknown_841CC11:: @ 841CC11
+gText_SomeoneDroppedOut2:: @ 841CC11
.string "Somebody dropped out.\n"
.string "The link will be canceled.$"
-gUnknown_841CC42:: @ 841CC42
+gText_SavingDontTurnOffPower:: @ 841CC42
.string "SAVING…\n"
.string "DON'T TURN OFF THE POWER.$"
-gUnknown_841CC64:: @ 841CC64
+gText_CommunicationStandby4:: @ 841CC64
.string "Communication standby…$"
.string "SAVING...\n"
diff --git a/graphics/link_games/unk_846BA00.bin b/graphics/link_games/pkmnjump_bg.bin
index 68303ba7e..68303ba7e 100644
--- a/graphics/link_games/unk_846BA00.bin
+++ b/graphics/link_games/pkmnjump_bg.bin
Binary files differ
diff --git a/graphics/link_games/unk_846B7B4.pal b/graphics/link_games/pkmnjump_bg.pal
index aed4bcc8b..aed4bcc8b 100644
--- a/graphics/link_games/unk_846B7B4.pal
+++ b/graphics/link_games/pkmnjump_bg.pal
diff --git a/graphics/link_games/unk_846B7D4.png b/graphics/link_games/pkmnjump_bg.png
index ceef49004..ceef49004 100644
--- a/graphics/link_games/unk_846B7D4.png
+++ b/graphics/link_games/pkmnjump_bg.png
Binary files differ
diff --git a/graphics/link_games/unk_846D9E4.pal b/graphics/link_games/pkmnjump_pal1.pal
index 936a2b39f..936a2b39f 100644
--- a/graphics/link_games/unk_846D9E4.pal
+++ b/graphics/link_games/pkmnjump_pal1.pal
diff --git a/graphics/link_games/unk_846DA04.pal b/graphics/link_games/pkmnjump_pal2.pal
index d7fc1394b..d7fc1394b 100644
--- a/graphics/link_games/unk_846DA04.pal
+++ b/graphics/link_games/pkmnjump_pal2.pal
diff --git a/graphics/link_games/unk_846B794.pal b/graphics/link_games/pkmnjump_pal3.pal
index 6b73be372..6b73be372 100644
--- a/graphics/link_games/unk_846B794.pal
+++ b/graphics/link_games/pkmnjump_pal3.pal
diff --git a/graphics/link_games/unk_846D3A8.bin b/graphics/link_games/pkmnjump_results.bin
index b17c5052c..b17c5052c 100644
--- a/graphics/link_games/unk_846D3A8.bin
+++ b/graphics/link_games/pkmnjump_results.bin
Binary files differ
diff --git a/graphics/link_games/unk_846C8D8.pal b/graphics/link_games/pkmnjump_results.pal
index aca961de3..aca961de3 100644
--- a/graphics/link_games/unk_846C8D8.pal
+++ b/graphics/link_games/pkmnjump_results.pal
diff --git a/graphics/link_games/unk_846C8F8.png b/graphics/link_games/pkmnjump_results.png
index b87d50659..b87d50659 100644
--- a/graphics/link_games/unk_846C8F8.png
+++ b/graphics/link_games/pkmnjump_results.png
Binary files differ
diff --git a/graphics/link_games/unk_846DA24.png b/graphics/link_games/pkmnjump_rope1.png
index 03d2f2778..03d2f2778 100644
--- a/graphics/link_games/unk_846DA24.png
+++ b/graphics/link_games/pkmnjump_rope1.png
Binary files differ
diff --git a/graphics/link_games/unk_846DB44.png b/graphics/link_games/pkmnjump_rope2.png
index 6e397966e..6e397966e 100644
--- a/graphics/link_games/unk_846DB44.png
+++ b/graphics/link_games/pkmnjump_rope2.png
Binary files differ
diff --git a/graphics/link_games/unk_846DD18.png b/graphics/link_games/pkmnjump_rope3.png
index 907169a4c..907169a4c 100644
--- a/graphics/link_games/unk_846DD18.png
+++ b/graphics/link_games/pkmnjump_rope3.png
Binary files differ
diff --git a/graphics/link_games/unk_846DE48.png b/graphics/link_games/pkmnjump_rope4.png
index b238382a0..b238382a0 100644
--- a/graphics/link_games/unk_846DE48.png
+++ b/graphics/link_games/pkmnjump_rope4.png
Binary files differ
diff --git a/graphics/link_games/unk_846DF44.png b/graphics/link_games/pkmnjump_star.png
index 96abce388..96abce388 100644
--- a/graphics/link_games/unk_846DF44.png
+++ b/graphics/link_games/pkmnjump_star.png
Binary files differ
diff --git a/graphics/link_games/unk_846C520.bin b/graphics/link_games/pkmnjump_venusaur.bin
index 093c0a5a5..093c0a5a5 100644
--- a/graphics/link_games/unk_846C520.bin
+++ b/graphics/link_games/pkmnjump_venusaur.bin
Binary files differ
diff --git a/graphics/link_games/unk_846BBB0.pal b/graphics/link_games/pkmnjump_venusaur.pal
index a3514b004..a3514b004 100644
--- a/graphics/link_games/unk_846BBB0.pal
+++ b/graphics/link_games/pkmnjump_venusaur.pal
diff --git a/graphics/link_games/unk_846BBD0.png b/graphics/link_games/pkmnjump_venusaur.png
index d555d324d..d555d324d 100644
--- a/graphics/link_games/unk_846BBD0.png
+++ b/graphics/link_games/pkmnjump_venusaur.png
Binary files differ
diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h
index b2ecd42bc..11d51f1fc 100644
--- a/include/digit_obj_util.h
+++ b/include/digit_obj_util.h
@@ -15,6 +15,11 @@ struct DigitObjUtilTemplate
const struct SpritePalette *spritePal;
};
+extern const u16 gUnknown_8479668[];
+extern const u32 gUnknown_8479688[];
+extern const u32 gUnknown_8479748[];
+
+bool32 DigitObjUtil_Init(u32 count);
void DigitObjUtil_Teardown(void);
bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template);
void DigitObjUtil_PrintNumOn(u32 id, s32 num);
diff --git a/include/global.h b/include/global.h
index 54d8fdec3..b3fdfe231 100644
--- a/include/global.h
+++ b/include/global.h
@@ -148,8 +148,7 @@ struct PokemonJumpResults // possibly used in the game itself?
u16 field2;
u16 excellentsInRow;
u16 field6;
- u16 field8;
- u16 fieldA;
+ u32 field8;
u32 bestJumpScore;
};
diff --git a/include/link_rfu.h b/include/link_rfu.h
index aff5d93d0..5ef954dd5 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -183,6 +183,7 @@ typedef struct UnkRfuStruct_2
extern struct GFtgtGname gHostRFUtgtGnameBuffer;
extern u8 gHostRFUtgtUnameBuffer[];
+extern GF_RFU_MANAGER Rfu;
// GameFreak signatures
void AddTextPrinterToWindow1(const u8 *str);
diff --git a/include/minigame_countdown.h b/include/minigame_countdown.h
new file mode 100644
index 000000000..930205218
--- /dev/null
+++ b/include/minigame_countdown.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_MINIGAME_COUNTDOWN_H
+#define GUARD_MINIGAME_COUNTDOWN_H
+
+void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority);
+bool32 IsMinigameCountdownRunning(void);
+
+#endif //GUARD_MINIGAME_COUNTDOWN_H
diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h
index fa4105a0e..83e28d2fd 100644
--- a/include/pokemon_jump.h
+++ b/include/pokemon_jump.h
@@ -2,9 +2,122 @@
#define GUARD_POKEMON_JUMP_H
#include "main.h"
+#include "link.h"
+
+struct PokemonJump1_MonInfo
+{
+ u16 species;
+ u32 otId;
+ u32 personality;
+};
+
+struct PokemonJump1_82E4
+{
+ int unk0;
+ int unk4;
+ u8 filler8[0x4];
+ u16 unkC;
+ u16 unkE;
+ u16 unk10;
+ u16 unk12;
+ int unk14;
+ int unk18;
+ u8 unk1C[11];
+};
+
+struct PokemonJump2
+{
+ int unk0;
+ u16 unk4;
+ u8 unk6;
+ u8 filler7[0xa - 0x7];
+ u8 unkA;
+ u8 unkB;
+ u8 unkC;
+ u8 unkD;
+ u8 unkE;
+ u8 unkF;
+ u16 filler10;
+ u16 unk12;
+ u16 unk14;
+ u32 unk18;
+ u16 unk1C[5];
+ u8 txtBuff[2][0x40];
+ u8 strBuff[0x100];
+ u16 tilemapBuffer[0x4000]; // Bug: way larger than it should be
+ struct Sprite *unk81A8[MAX_RFU_PLAYERS];
+ struct Sprite *unk81BC[MAX_RFU_PLAYERS];
+ struct Sprite *unk81D0[8];
+ u8 filler81F0[0xC];
+ u8 unk81FC[MAX_RFU_PLAYERS];
+};
+
+struct PokemonJump1Sub
+{
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+ u16 unk4;
+ u32 unk8;
+};
void ResetPokeJumpResults(void);
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
void StartPokemonJump(u16 species, MainCallback callback);
+u16 sub_81499A4(void);
+u16 sub_81499B4(void);
+struct PokemonJump1_MonInfo *sub_81499C0(u8 multiplayerId);
+u8 *sub_81499E0(u8 multiplayerId);
+
+void sub_814A95C(int id);
+void sub_8149CEC(struct PokemonJump2 *);
+void sub_8149D24(void);
+void sub_8149D40(int);
+bool32 sub_8149D68(void);
+void sub_814A3E4(void);
+bool32 sub_814A408(void);
+void sub_814A468(u16 itemId, u16 quantity);
+void sub_814A53C(u16 itemId);
+void sub_814A5B4(u16 itemId);
+bool32 sub_814A62C(void);
+void sub_814A6CC(void);
+void sub_814A940(u32 id, s16 y);
+void sub_814AA48(u8 multiplayerId);
+bool32 sub_814A6FC(void);
+void sub_814AA24(int);
+s8 sub_814A744(void);
+int sub_814A98C(u8 flags);
+void sub_814AA34(u16);
+void sub_814AA60(u8 multiplayerId);
+int sub_814AA78(int multiplayerId);
+void sub_814AA8C(void);
+void sub_814AAA0(void);
+void sub_814AAB4(int);
+int sub_814AAC8(void);
+void sub_8149A6C(struct PokemonJump1_MonInfo *arg0);
+bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0);
+void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
+bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
+void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2);
+bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3);
+bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId);
+bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow);
+void sub_814B4E8(void);
+
+void sub_814AD6C(struct PokemonJump2 *);
+void sub_814B294(struct PokemonJump2 *);
+void sub_814B43C(struct PokemonJump2 *);
+bool32 sub_814B460(void);
+void sub_814B348(struct PokemonJump2 *, int);
+void sub_814AF0C(struct PokemonJump2 *, int);
+void sub_814ADCC(struct PokemonJump2 *, struct PokemonJump1_MonInfo *,s16, s16, u8);
+void sub_814B240(struct PokemonJump2 *,s16, s16, u8);
+void sub_814AFE8(struct PokemonJump2 *, int multiplayerId);
+void sub_814B080(struct PokemonJump2 *, int multiplayerId);
+bool32 sub_814B010(struct PokemonJump2 *, int multiplayerId);
+void sub_814B0A8(struct PokemonJump2 *);
+void sub_814B134(struct PokemonJump2 *);
+void sub_814B168(struct PokemonJump2 *, int multiplayerId);
+bool32 sub_814B190(struct PokemonJump2 *);
#endif // GUARD_POKEMON_JUMP_H
diff --git a/include/save.h b/include/save.h
index ed527eefd..32c09896a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -113,8 +113,6 @@ u8 sub_80DA45C(void);
bool8 sub_80DA4A0(void);
u8 Save_LoadGameData(u8 saveType);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
-u32 sub_8153634(u8 sector, u8* src);
-void sub_8153688(u8 taskId);
u32 TryWriteSpecialSaveSection(u8 sector, u8* src);
void sub_80DA634(u8 taskId);
diff --git a/include/strings.h b/include/strings.h
index d468af4f3..8c19ea5cb 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1126,4 +1126,19 @@ extern const u8 gJPText_NewTrainerHasComeToSevii[];
extern const u8 gJPText_PleaseWaitAMoment[];
extern const u8 gJPText_WriteErrorUnableToSaveData[];
+// pokemon_jump
+extern const u8 gText_WantToPlayAgain2[];
+extern const u8 gText_SavingDontTurnOffPower[];
+extern const u8 gText_SomeoneDroppedOut2[];
+extern const u8 gText_CommunicationStandby4[];
+extern const u8 gText_AwesomeWonF701F700[];
+extern const u8 gText_FilledStorageSpace2[];
+extern const u8 gText_CantHoldMore[];
+extern const u8 gText_SpacePoints2[];
+extern const u8 gText_SpaceTimes3[];
+extern const u8 gText_JumpsInARow[];
+extern const u8 gText_BestScore2[];
+extern const u8 gText_ExcellentsInARow[];
+extern const u8 gText_PkmnJumpRecords[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 341c816e3..d15778e06 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -274,8 +274,12 @@ SECTIONS {
src/mevent_show_news.o(.text);
src/menews_jisan.o(.text);
src/seagallop.o(.text);
- asm/pokemon_jump.o(.text);
- asm/pokemon_jump_2.o(.text);
+ src/pokemon_jump.o(.text);
+ src/pokemon_jump_2.o(.text);
+ src/pokemon_jump_3.o(.text);
+ src/pokemon_jump_4.o(.text);
+ src/pokemon_jump_5.o(.text);
+ src/pokemon_jump_6.o(.text);
asm/berry_crush.o(.text);
asm/berry_crush_2.o(.text);
asm/berry_crush_3.o(.text);
@@ -565,7 +569,11 @@ SECTIONS {
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
src/seagallop.o(.rodata);
- data/pokemon_jump.o(.rodata);
+ src/pokemon_jump.o(.rodata);
+ src/pokemon_jump_2.o(.rodata);
+ src/pokemon_jump_4.o(.rodata);
+ src/pokemon_jump_5.o(.rodata);
+ src/pokemon_jump_6.o(.rodata);
data/berry_crush.o(.rodata);
src/wireless_communication_status_screen.o(.rodata);
src/braille_text.o(.rodata);
diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c
index d100caea1..5911676bb 100644
--- a/src/minigame_countdown.c
+++ b/src/minigame_countdown.c
@@ -34,7 +34,7 @@ void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriori
gTasks[taskId].tSubpriority = subpriority;
}
-bool8 IsMinigameCountdownRunning(void)
+bool32 IsMinigameCountdownRunning(void)
{
return FuncIsActiveTask(Task_MinigameCountdown);
}
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
new file mode 100644
index 000000000..063176151
--- /dev/null
+++ b/src/pokemon_jump.c
@@ -0,0 +1,254 @@
+#include "global.h"
+#include "gflib.h"
+#include "battle_anim.h"
+#include "decompress.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "task.h"
+#include "constants/songs.h"
+
+static void sub_8147654(u8 taskId);
+static void sub_81477C0(u8 taskId);
+static void sub_814784C(u8 taskId);
+static void sub_81479D4(u8 taskId);
+static void sub_8147A34(u8 taskId);
+
+static const u16 gUnknown_846AFE8[] = INCBIN_U16("graphics/misc/unk_846B008.gbapal");
+static const u32 gUnknown_846B008[] = INCBIN_U32("graphics/misc/unk_846B008.4bpp.lz");
+
+static const struct CompressedSpriteSheet gUnknown_846B42C[] = {
+ {gUnknown_846B008, 0x0C00, 0x2000},
+ {}
+};
+
+static const struct SpritePalette gUnknown_846B43C[] = {
+ {gUnknown_846AFE8, 0x2000},
+ {}
+};
+
+static const union AnimCmd gUnknown_846B44C[] = {
+ ANIMCMD_FRAME(0x00, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B454[] = {
+ ANIMCMD_FRAME(0x10, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B45C[] = {
+ ANIMCMD_FRAME(0x20, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B464[] = {
+ ANIMCMD_FRAME(0x40, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B46C[] = {
+ ANIMCMD_FRAME(0x30, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gUnknown_846B474[] = {
+ ANIMCMD_FRAME(0x50, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gUnknown_846B47C[] = {
+ gUnknown_846B44C,
+ gUnknown_846B454,
+ gUnknown_846B45C,
+ gUnknown_846B464,
+ gUnknown_846B46C,
+ gUnknown_846B474
+};
+
+static const struct SpriteTemplate gUnknown_846B494[] = {
+ {
+ .tileTag = 0x2000,
+ .paletteTag = 0x2000,
+ .oam = &gOamData_AffineOff_ObjNormal_32x32,
+ .anims = gUnknown_846B47C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ },
+};
+
+static const TaskFunc gUnknown_846B4AC[][4] = {
+ { sub_81477C0, sub_814784C, sub_81479D4, sub_8147A34 }
+};
+
+// Unused, but looks like it was intended to be a hook
+UNUSED u8 sub_81475C0(u8 data1, u8 priority)
+{
+ u8 taskId;
+ struct Task * task;
+
+ taskId = CreateTask(sub_8147654, priority);
+ task = &gTasks[taskId];
+ task->data[0] = 1;
+ task->data[1] = data1;
+ gUnknown_846B4AC[data1][0](taskId);
+ return taskId;
+}
+
+// Unused, but looks like it was intended to be a hook
+UNUSED bool32 sub_814760C(void)
+{
+ u8 taskId;
+
+ taskId = FindTaskIdByFunc(sub_8147654);
+ if (taskId == 0xFF)
+ return FALSE;
+ gTasks[taskId].data[0] = 2;
+ return TRUE;
+}
+
+// Unused, but looks like it was intended to be a hook
+UNUSED bool32 sub_8147640(void)
+{
+ return FuncIsActiveTask(sub_8147654);
+}
+
+static void sub_8147654(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 2:
+ gUnknown_846B4AC[data[1]][2](taskId);
+ data[0] = 3;
+ break;
+ case 3:
+ gUnknown_846B4AC[data[1]][3](taskId);
+ break;
+ case 4:
+ gUnknown_846B4AC[data[1]][1](taskId);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static void sub_81476E0(u8 taskId, s16 *data)
+{
+ u8 i;
+ struct Sprite *sprite;
+
+ LoadCompressedSpriteSheet(&gUnknown_846B42C[data[3]]);
+ LoadSpritePalette(&gUnknown_846B43C[data[4]]);
+ for (i = 0; i < data[8]; i++)
+ data[13 + i] = CreateSprite(&gUnknown_846B494[data[2]], data[9], data[10], data[7]);
+ for (i = 0; i < data[8]; i++)
+ {
+ sprite = &gSprites[data[13 + i]];
+ sprite->oam.priority = data[6];
+ sprite->invisible = TRUE;
+ sprite->data[1] = data[5];
+ sprite->data[3] = taskId;
+ sprite->data[4] = i;
+ sprite->data[5] = data[13];
+ }
+}
+
+static void sub_81477C0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[2] = 0;
+ data[3] = 0;
+ data[4] = 0;
+ data[5] = 60;
+ data[6] = 0;
+ data[7] = 0;
+ data[8] = 3;
+ data[9] = 120;
+ data[10] = 88;
+ sub_81476E0(taskId, data);
+
+ StartSpriteAnim(&gSprites[data[14]], 4);
+ gSprites[data[14]].pos2.x = -32;
+
+ StartSpriteAnim(&gSprites[data[15]], 5);
+ gSprites[data[15]].pos2.x = 32;
+}
+
+static void sub_814784C(u8 taskId)
+{
+ u8 i = 0;
+ s16 *data = gTasks[taskId].data;
+
+ for (i = 0; i < data[8]; i++)
+ DestroySprite(&gSprites[data[13 + i]]);
+ FreeSpriteTilesByTag(gUnknown_846B42C[data[3]].tag);
+ FreeSpritePaletteByTag(gUnknown_846B43C[data[4]].tag);
+}
+
+static void sub_81478BC(struct Sprite *sprite)
+{
+ s16 *data = gTasks[sprite->data[3]].data;
+
+ if (data[11] % data[5] != 0)
+ return;
+ if (data[11] == data[10])
+ return;
+
+ data[10] = data[11];
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->invisible = FALSE;
+ case 1:
+ case 2:
+ PlaySE(SE_KON);
+ StartSpriteAnim(sprite, sprite->data[2]);
+ break;
+ case 3:
+ PlaySE(SE_PIN);
+ StartSpriteAnim(sprite, sprite->data[2]);
+ gSprites[data[14]].invisible = FALSE;
+ gSprites[data[15]].invisible = FALSE;
+ break;
+ case 4:
+ sprite->invisible = TRUE;
+ gSprites[data[14]].invisible = TRUE;
+ gSprites[data[15]].invisible = TRUE;
+ data[0] = 4;
+ return;
+ }
+ sprite->data[2]++;
+}
+
+static void sub_81479D4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ PlaySE(SE_KON);
+ gSprites[data[13]].callback = sub_81478BC;
+ gSprites[data[13]].invisible = FALSE;
+ gTasks[taskId].data[0] = 3;
+}
+
+static void sub_8147A34(u8 taskId)
+{
+ u16 packet[6];
+ s16 *data = gTasks[taskId].data;
+
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (gRecvCmds[0][1] == 0x7FFF)
+ data[11] = gRecvCmds[0][2];
+ if (GetMultiplayerId() == 0)
+ {
+ data[12]++;
+ memset(packet, 0, sizeof(packet));
+ packet[0] = 0x7FFF;
+ packet[1] = data[12];
+ RfuPrepareSend0x2f00(packet);
+ }
+ }
+ else
+ {
+ data[11]++;
+ }
+}
diff --git a/src/pokemon_jump_2.c b/src/pokemon_jump_2.c
new file mode 100644
index 000000000..aa1238e3f
--- /dev/null
+++ b/src/pokemon_jump_2.c
@@ -0,0 +1,2035 @@
+#include "global.h"
+#include "gflib.h"
+#include "event_data.h"
+#include "item.h"
+#include "link_rfu.h"
+#include "menu.h"
+#include "random.h"
+#include "save.h"
+#include "task.h"
+#include "pokemon_jump.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+
+struct PokemonJump1
+{
+ MainCallback returnCallback;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u16 unk8;
+ u16 unkA;
+ u16 unkC;
+ u16 unkE;
+ int unk10;
+ u32 unk14;
+ u32 unk18;
+ int unk1C;
+ u32 unk20;
+ u32 unk24;
+ u32 unk28;
+ int unk2C;
+ u32 unk30;
+ u16 unk34;
+ u16 unk36;
+ u8 filler38[0x2];
+ u16 unk3A;
+ u16 unk3C;
+ u16 unk3E;
+ u16 unk40;
+ u16 unk42;
+ u8 unk44;
+ u8 unk45;
+ u8 unk46;
+ u8 isLeader;
+ u8 unk48;
+ u8 unk49;
+ u16 unk4A;
+ u8 unk4C;
+ u8 unk4D;
+ u16 unk4E;
+ u8 unk50;
+ u8 unk51;
+ u8 filler52[0x2];
+ int unk54;
+ int unk58;
+ int unk5C;
+ int unk60;
+ int unk64;
+ int unk68;
+ int unk6C;
+ struct PokemonJump1Sub unk70;
+ u8 unk7C[MAX_RFU_PLAYERS];
+ u8 unk81[MAX_RFU_PLAYERS];
+ u8 unk86[MAX_RFU_PLAYERS];
+ u8 unk8B[MAX_RFU_PLAYERS];
+ u16 unk90[MAX_RFU_PLAYERS];
+ u16 unk9A[MAX_RFU_PLAYERS];
+ struct PokemonJump2 unkA4;
+ struct PokemonJump1_MonInfo unk82A8[MAX_RFU_PLAYERS];
+ struct PokemonJump1_82E4 unk82E4[MAX_RFU_PLAYERS];
+ struct PokemonJump1_82E4 *unk83AC;
+};
+
+static void sub_8147B60(struct PokemonJump1 *);
+static void sub_8147B94(struct PokemonJump1 *);
+static void sub_8147C20(void);
+static void sub_8147C98(void);
+static s16 GetPokemonJumpSpeciesIdx(u16 species);
+static void sub_8147D2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon);
+static void sub_8147D6C(void);
+static void sub_8147DA0(u8 taskId);
+static void sub_814807C(u8 taskId);
+static void sub_8148104(void);
+static void sub_8148290(u8 taskId);
+static void sub_81482F8(void);
+static bool32 sub_8148344(void);
+static bool32 sub_81483D0(void);
+static bool32 sub_8148464(void);
+static bool32 sub_81484D0(void);
+static bool32 sub_814856C(void);
+static bool32 sub_81485C8(void);
+static bool32 sub_8148664(void);
+static bool32 sub_81486C4(void);
+static bool32 sub_8148724(void);
+static bool32 sub_8148760(void);
+static bool32 sub_81487B4(void);
+static bool32 sub_8148800(void);
+static bool32 sub_814881C(void);
+static bool32 sub_81488DC(void);
+static bool32 sub_81489C8(void);
+static bool32 sub_8148A60(void);
+static bool32 sub_8148398(void);
+static bool32 sub_8148418(void);
+static bool32 sub_81484B0(void);
+static bool32 sub_8148B54(void);
+static bool32 sub_8148C80(void);
+static bool32 sub_8148D5C(void);
+static bool32 sub_8148E2C(void);
+static void sub_8148E80(u8 taskId);
+static void sub_8148F5C(TaskFunc func, u8 taskPriority);
+static void sub_8148F7C(void);
+static void sub_8148F9C(void);
+static void sub_8148FE0(void);
+static int sub_8149044(void);
+static void sub_8149078(void);
+static int sub_8149194(void);
+static void sub_81491B4(void);
+static void sub_81491E4(void);
+static void sub_8149210(void);
+static bool32 sub_814922C(u16);
+static void sub_8149260(void);
+static void sub_81492D8(void);
+static void sub_814933C(void);
+static void sub_814935C(void);
+static void sub_814936C(void);
+static void sub_814937C(void);
+static void sub_8149490(int);
+static void sub_8149534(void);
+static bool32 sub_8149630(void);
+static bool32 sub_81496D4(void);
+static bool32 sub_8149710(void);
+static bool32 sub_8149748(void);
+static void sub_8149780(int);
+static int sub_81497A8(void);
+static bool32 sub_8149804(void);
+static int sub_8149834(u8 *);
+static void sub_8149878(void);
+static int sub_8149888(int);
+static void sub_8149898(u16);
+static bool32 sub_81498B4(void);
+static u16 sub_81498D8(void);
+static void sub_8149900(u16, u16 *, u16 *);
+static u16 sub_8149910(void);
+static u16 sub_8149930(void);
+static u16 sub_8149978(u16 item, u16 quantity);
+
+EWRAM_DATA static struct PokemonJump1 *gUnknown_203F3D4 = NULL;
+
+static const struct PokemonJumpMons
+{
+ u16 species;
+ u16 unk2;
+} sPkmnJumpSpecies[] =
+{
+ { .species = SPECIES_BULBASAUR, .unk2 = 2, },
+ { .species = SPECIES_CHARMANDER, .unk2 = 1, },
+ { .species = SPECIES_SQUIRTLE, .unk2 = 0, },
+ { .species = SPECIES_CATERPIE, .unk2 = 1, },
+ { .species = SPECIES_METAPOD, .unk2 = 1, },
+ { .species = SPECIES_WEEDLE, .unk2 = 1, },
+ { .species = SPECIES_KAKUNA, .unk2 = 1, },
+ { .species = SPECIES_RATTATA, .unk2 = 1, },
+ { .species = SPECIES_RATICATE, .unk2 = 1, },
+ { .species = SPECIES_PIKACHU, .unk2 = 0, },
+ { .species = SPECIES_SANDSHREW, .unk2 = 0, },
+ { .species = SPECIES_NIDORAN_F, .unk2 = 0, },
+ { .species = SPECIES_NIDORAN_M, .unk2 = 0, },
+ { .species = SPECIES_CLEFAIRY, .unk2 = 0, },
+ { .species = SPECIES_VULPIX, .unk2 = 0, },
+ { .species = SPECIES_JIGGLYPUFF, .unk2 = 2, },
+ { .species = SPECIES_ODDISH, .unk2 = 2, },
+ { .species = SPECIES_PARAS, .unk2 = 1, },
+ { .species = SPECIES_MEOWTH, .unk2 = 0, },
+ { .species = SPECIES_PSYDUCK, .unk2 = 2, },
+ { .species = SPECIES_MANKEY, .unk2 = 1, },
+ { .species = SPECIES_GROWLITHE, .unk2 = 1, },
+ { .species = SPECIES_POLIWAG, .unk2 = 2, },
+ { .species = SPECIES_BELLSPROUT, .unk2 = 2, },
+ { .species = SPECIES_SHELLDER, .unk2 = 1, },
+ { .species = SPECIES_KRABBY, .unk2 = 1, },
+ { .species = SPECIES_EXEGGCUTE, .unk2 = 2, },
+ { .species = SPECIES_CUBONE, .unk2 = 0, },
+ { .species = SPECIES_DITTO, .unk2 = 2, },
+ { .species = SPECIES_EEVEE, .unk2 = 0, },
+ { .species = SPECIES_OMANYTE, .unk2 = 1, },
+ { .species = SPECIES_KABUTO, .unk2 = 1, },
+ { .species = SPECIES_CHIKORITA, .unk2 = 2, },
+ { .species = SPECIES_CYNDAQUIL, .unk2 = 1, },
+ { .species = SPECIES_TOTODILE, .unk2 = 0, },
+ { .species = SPECIES_SPINARAK, .unk2 = 1, },
+ { .species = SPECIES_PICHU, .unk2 = 0, },
+ { .species = SPECIES_CLEFFA, .unk2 = 0, },
+ { .species = SPECIES_IGGLYBUFF, .unk2 = 2, },
+ { .species = SPECIES_TOGEPI, .unk2 = 2, },
+ { .species = SPECIES_MAREEP, .unk2 = 0, },
+ { .species = SPECIES_BELLOSSOM, .unk2 = 2, },
+ { .species = SPECIES_MARILL, .unk2 = 2, },
+ { .species = SPECIES_SUNKERN, .unk2 = 2, },
+ { .species = SPECIES_WOOPER, .unk2 = 2, },
+ { .species = SPECIES_PINECO, .unk2 = 2, },
+ { .species = SPECIES_SNUBBULL, .unk2 = 0, },
+ { .species = SPECIES_SHUCKLE, .unk2 = 2, },
+ { .species = SPECIES_TEDDIURSA, .unk2 = 0, },
+ { .species = SPECIES_SLUGMA, .unk2 = 2, },
+ { .species = SPECIES_SWINUB, .unk2 = 0, },
+ { .species = SPECIES_HOUNDOUR, .unk2 = 1, },
+ { .species = SPECIES_PHANPY, .unk2 = 0, },
+ { .species = SPECIES_PORYGON2, .unk2 = 0, },
+ { .species = SPECIES_TYROGUE, .unk2 = 1, },
+ { .species = SPECIES_SMOOCHUM, .unk2 = 2, },
+ { .species = SPECIES_ELEKID, .unk2 = 1, },
+ { .species = SPECIES_MAGBY, .unk2 = 1, },
+ { .species = SPECIES_LARVITAR, .unk2 = 1, },
+ { .species = SPECIES_TREECKO, .unk2 = 1, },
+ { .species = SPECIES_TORCHIC, .unk2 = 2, },
+ { .species = SPECIES_MUDKIP, .unk2 = 0, },
+ { .species = SPECIES_MARSHTOMP, .unk2 = 0, },
+ { .species = SPECIES_POOCHYENA, .unk2 = 1, },
+ { .species = SPECIES_ZIGZAGOON, .unk2 = 0, },
+ { .species = SPECIES_LINOONE, .unk2 = 0, },
+ { .species = SPECIES_WURMPLE, .unk2 = 1, },
+ { .species = SPECIES_SILCOON, .unk2 = 2, },
+ { .species = SPECIES_CASCOON, .unk2 = 2, },
+ { .species = SPECIES_LOTAD, .unk2 = 2, },
+ { .species = SPECIES_SEEDOT, .unk2 = 1, },
+ { .species = SPECIES_RALTS, .unk2 = 0, },
+ { .species = SPECIES_KIRLIA, .unk2 = 0, },
+ { .species = SPECIES_SURSKIT, .unk2 = 2, },
+ { .species = SPECIES_SHROOMISH, .unk2 = 2, },
+ { .species = SPECIES_NINCADA, .unk2 = 1, },
+ { .species = SPECIES_WHISMUR, .unk2 = 0, },
+ { .species = SPECIES_AZURILL, .unk2 = 2, },
+ { .species = SPECIES_SKITTY, .unk2 = 0, },
+ { .species = SPECIES_SABLEYE, .unk2 = 0, },
+ { .species = SPECIES_MAWILE, .unk2 = 0, },
+ { .species = SPECIES_ARON, .unk2 = 1, },
+ { .species = SPECIES_MEDITITE, .unk2 = 2, },
+ { .species = SPECIES_ELECTRIKE, .unk2 = 1, },
+ { .species = SPECIES_PLUSLE, .unk2 = 1, },
+ { .species = SPECIES_MINUN, .unk2 = 1, },
+ { .species = SPECIES_VOLBEAT, .unk2 = 0, },
+ { .species = SPECIES_ILLUMISE, .unk2 = 0, },
+ { .species = SPECIES_ROSELIA, .unk2 = 2, },
+ { .species = SPECIES_GULPIN, .unk2 = 2, },
+ { .species = SPECIES_NUMEL, .unk2 = 2, },
+ { .species = SPECIES_TORKOAL, .unk2 = 2, },
+ { .species = SPECIES_SPOINK, .unk2 = 0, },
+ { .species = SPECIES_TRAPINCH, .unk2 = 2, },
+ { .species = SPECIES_CACNEA, .unk2 = 2, },
+ { .species = SPECIES_ANORITH, .unk2 = 1, },
+ { .species = SPECIES_WYNAUT, .unk2 = 0, },
+ { .species = SPECIES_SNORUNT, .unk2 = 0, },
+ { .species = SPECIES_CLAMPERL, .unk2 = 1, },
+ { .species = SPECIES_BAGON, .unk2 = 1, },
+};
+
+void StartPokemonJump(u16 partyIndex, MainCallback callback)
+{
+ u8 taskId;
+
+ if (gReceivedRemoteLinkPlayers)
+ {
+ gUnknown_203F3D4 = Alloc(sizeof(*gUnknown_203F3D4));
+ if (gUnknown_203F3D4 != NULL)
+ {
+ ResetTasks();
+ taskId = CreateTask(sub_8147DA0, 1);
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->returnCallback = callback;
+ gUnknown_203F3D4->unk4 = taskId;
+ gUnknown_203F3D4->unk6 = GetMultiplayerId();
+ sub_8147D2C(&gUnknown_203F3D4->unk82A8[gUnknown_203F3D4->unk6], &gPlayerParty[partyIndex]);
+ sub_8147B60(gUnknown_203F3D4);
+ SetWordTaskArg(taskId, 2, (uintptr_t)gUnknown_203F3D4);
+ SetMainCallback2(sub_8147D6C);
+ return;
+ }
+ }
+
+ SetMainCallback2(callback);
+}
+
+static void sub_8147B48(void)
+{
+ sub_8149D24();
+ Free(gUnknown_203F3D4);
+}
+
+static void sub_8147B60(struct PokemonJump1 *arg0)
+{
+ arg0->unk5 = GetLinkPlayerCount();
+ arg0->unk70.unk0 = 5;
+ arg0->unk70.unk2 = 0;
+ sub_8147C20();
+ sub_8147B94(arg0);
+ if (arg0->unk5 == MAX_RFU_PLAYERS)
+ sub_814B4E8();
+}
+
+static void sub_8147B94(struct PokemonJump1 *arg0)
+{
+ int i;
+
+ arg0->unk14 = 6;
+ arg0->unk18 = 6;
+ arg0->unk4A = 0;
+ arg0->unk1C = 0;
+ arg0->unk5C = 0;
+ arg0->isLeader = GetMultiplayerId() == 0;
+ arg0->unk8 = 0;
+ arg0->unkA = 0;
+ arg0->unkC = 0;
+ arg0->unkE = 0;
+ arg0->unk58 = 0;
+ arg0->unk3A = 0;
+ arg0->unk44 = 0;
+ arg0->unk54 = 0;
+ arg0->unk46 = 0;
+ arg0->unk49 = 0;
+ arg0->unk48 = 1;
+ arg0->unk70.unk8 = 0;
+ arg0->unk70.unk1 = 0;
+ arg0->unk70.unk4 = 0;
+ arg0->unk60 = 1;
+ arg0->unk4D = 0;
+ arg0->unk68 = 0;
+ arg0->unk64 = 0;
+ arg0->unk2C = 0;
+ arg0->unk30 = 0;
+ sub_8147C98();
+ sub_81491E4();
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ arg0->unk7C[i] = 0;
+ arg0->unk9A[i] = 0;
+ }
+}
+
+static void sub_8147C20(void)
+{
+ int i, index;
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ index = GetPokemonJumpSpeciesIdx(gUnknown_203F3D4->unk82A8[i].species);
+ gUnknown_203F3D4->unk82E4[i].unkC = sPkmnJumpSpecies[index].unk2;
+ }
+
+ gUnknown_203F3D4->unk83AC = &gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6];
+}
+
+static void sub_8147C98(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ gUnknown_203F3D4->unk82E4[i].unkE = 0;
+ gUnknown_203F3D4->unk82E4[i].unk10 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk12 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk0 = 0;
+ gUnknown_203F3D4->unk82E4[i].unk4 = 0x7FFFFFFF;
+ gUnknown_203F3D4->unk82E4[i].unk14 = 0;
+ gUnknown_203F3D4->unk8B[i] = 9;
+ }
+}
+
+static s16 GetPokemonJumpSpeciesIdx(u16 species)
+{
+ u32 i;
+ for (i = 0; i < NELEMS(sPkmnJumpSpecies); i++)
+ {
+ if (sPkmnJumpSpecies[i].species == species)
+ return i;
+ }
+
+ return -1; // species isnt allowed
+}
+
+static void sub_8147D2C(struct PokemonJump1_MonInfo *monInfo, struct Pokemon *mon)
+{
+ monInfo->species = GetMonData(mon, MON_DATA_SPECIES);
+ monInfo->otId = GetMonData(mon, MON_DATA_OT_ID);
+ monInfo->personality = GetMonData(mon, MON_DATA_PERSONALITY);
+}
+
+static void sub_8147D58(void)
+{
+ TransferPlttBuffer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+static void sub_8147D6C(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void sub_8147D84(TaskFunc func)
+{
+ gUnknown_203F3D4->unk4 = CreateTask(func, 1);
+ gUnknown_203F3D4->unk8 = 0;
+}
+
+static void sub_8147DA0(u8 taskId)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ sub_8148F5C(sub_8148E80, 5);
+ FadeOutMapMusic(4);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!FuncIsActiveTask(sub_8148E80))
+ {
+ sub_8149CEC(&gUnknown_203F3D4->unkA4);
+ LoadWirelessStatusIndicatorSpriteGfx();
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (!sub_8149D68() && IsNotWaitingForBGMStop() == TRUE)
+ {
+ FadeOutAndPlayNewMapMusic(MUS_JUMP, 8);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK);
+ SetVBlankCallback(sub_8147D58);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 4:
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ gUnknown_203F3D4->unk7 = 0;
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 5:
+ gUnknown_203F3D4->unk7++;
+ if (gUnknown_203F3D4->unk7 >= 20)
+ {
+ if (gUnknown_203F3D4->isLeader)
+ sub_8147D84(sub_814807C);
+ else
+ sub_8147D84(sub_8148290);
+
+ sub_8148F7C();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_8147F10(int arg0)
+{
+ if (arg0 == 0)
+ {
+ gUnknown_203F3D4->unk30 = 0x1111;
+ gUnknown_203F3D4->unk2C = 1;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk30 = (1 << (arg0 - 1)) - 1;
+ gUnknown_203F3D4->unk2C = 0;
+ }
+}
+
+static void sub_8147F4C(u8 arg0)
+{
+ int i;
+
+ gUnknown_203F3D4->unk70.unk0 = arg0;
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->unkA = 0;
+ gUnknown_203F3D4->unk48 = 1;
+ gUnknown_203F3D4->unk49 = 0;
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ gUnknown_203F3D4->unk82E4[i].unk18 = 0;
+}
+
+static void sub_8147FA0(void)
+{
+ int i;
+ int count;
+ u16 var0;
+ u8 var1;
+ u16 var2;
+
+ for (i = 1, count = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ var0 = gUnknown_203F3D4->unk82E4[i].unk10;
+ if (sub_8149C24(&gUnknown_203F3D4->unk82E4[i], i, &var1, &var2))
+ {
+ gUnknown_203F3D4->unk90[i] = var2;
+ gUnknown_203F3D4->unk8B[i] = var1;
+ gUnknown_203F3D4->unk82E4[i].unk12 = var0;
+ }
+
+ if (gUnknown_203F3D4->unk82E4[i].unk18 && gUnknown_203F3D4->unk8B[i] == gUnknown_203F3D4->unk70.unk0)
+ count++;
+ }
+
+ if (count == gUnknown_203F3D4->unk5 - 1)
+ gUnknown_203F3D4->unk49 = 1;
+}
+
+static bool32 (* const gUnknown_846B64C[])(void) =
+{
+ sub_8148344,
+ sub_81483D0,
+ sub_8148464,
+ sub_81484D0,
+ sub_81485C8,
+ sub_81486C4,
+ sub_8148760,
+ sub_81487B4,
+ sub_814881C,
+};
+
+static void sub_814807C(u8 taskId)
+{
+ sub_8147FA0();
+ sub_8149534();
+ if (!gUnknown_203F3D4->unk48 && gUnknown_203F3D4->unk49)
+ {
+ sub_8147F4C(gUnknown_203F3D4->unk4C);
+ sub_8147F10(3);
+ }
+
+ if (gUnknown_203F3D4->unk48 == 1)
+ {
+ if (!gUnknown_846B64C[gUnknown_203F3D4->unk70.unk0]())
+ {
+ gUnknown_203F3D4->unk48 = 0;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 1;
+ }
+ }
+
+ sub_81492D8();
+ sub_8148104();
+}
+
+static void sub_8148104(void)
+{
+ if (!gUnknown_203F3D4->unk2C)
+ sub_8149AF8(gUnknown_203F3D4->unk82E4, &gUnknown_203F3D4->unk70);
+
+ if (gUnknown_203F3D4->unk30 != 0x1111)
+ {
+ gUnknown_203F3D4->unk2C++;
+ gUnknown_203F3D4->unk2C &= gUnknown_203F3D4->unk30;
+ }
+}
+
+static void sub_8148140(u8 arg0)
+{
+ gUnknown_203F3D4->unk70.unk0 = arg0;
+ gUnknown_203F3D4->unk8 = 0;
+ gUnknown_203F3D4->unkA = 0;
+ gUnknown_203F3D4->unk48 = 1;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 0;
+}
+
+static void sub_8148174(void)
+{
+ int i;
+ u16 var0;
+ struct PokemonJump1Sub sp0;
+
+ var0 = gUnknown_203F3D4->unk82E4[0].unk10;
+ if (sub_8149B7C(gUnknown_203F3D4->unk82E4, &sp0))
+ {
+ if (gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 == 1
+ && sp0.unk0 != gUnknown_203F3D4->unk70.unk0)
+ {
+ sub_8148140(sp0.unk0);
+ }
+
+ if (gUnknown_203F3D4->unk70.unk8 != sp0.unk8)
+ {
+ gUnknown_203F3D4->unk70.unk8 = sp0.unk8;
+ gUnknown_203F3D4->unk5C = 1;
+ gUnknown_203F3D4->unk70.unk1 = sp0.unk1;
+ if (gUnknown_203F3D4->unk70.unk1)
+ gUnknown_203F3D4->unk4D = 1;
+ else
+ gUnknown_203F3D4->unk4D = 0;
+ }
+
+ gUnknown_203F3D4->unk70.unk2 = sp0.unk2;
+ gUnknown_203F3D4->unk70.unk4 = sp0.unk4;
+ gUnknown_203F3D4->unk82E4[0].unk12 = var0;
+ }
+
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (i != gUnknown_203F3D4->unk6)
+ {
+ var0 = gUnknown_203F3D4->unk82E4[i].unk10;
+ if (sub_8149C90(&gUnknown_203F3D4->unk82E4[i], i))
+ gUnknown_203F3D4->unk82E4[i].unk12 = var0;
+ }
+ }
+}
+
+static bool32 (* const gUnknown_846B670[])(void) =
+{
+ sub_8148398,
+ sub_8148418,
+ sub_81484B0,
+ sub_814856C,
+ sub_8148664,
+ sub_8148724,
+ sub_8148760,
+ sub_8148800,
+ sub_814881C,
+};
+
+static void sub_8148290(u8 taskId)
+{
+ sub_8148174();
+ if (gUnknown_203F3D4->unk48)
+ {
+ if (!gUnknown_846B670[gUnknown_203F3D4->unk70.unk0]())
+ {
+ gUnknown_203F3D4->unk48 = 0;
+ gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk18 = 1;
+ sub_8147F10(3);
+ }
+ }
+
+ sub_81492D8();
+ sub_81482F8();
+}
+
+static void sub_81482F8(void)
+{
+ if (!gUnknown_203F3D4->unk2C)
+ sub_8149BF4(&gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6], gUnknown_203F3D4->unk70.unk0, gUnknown_203F3D4->unk42);
+
+ if (gUnknown_203F3D4->unk30 != 0x1111)
+ {
+ gUnknown_203F3D4->unk2C++;
+ gUnknown_203F3D4->unk2C &= gUnknown_203F3D4->unk30;
+ }
+}
+
+static bool32 sub_8148344(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(3);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_81488DC())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk4C = 1;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148398(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk24 = gUnknown_203F3D4->unk70.unk2;
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ return sub_81488DC();
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81483D0(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_81491E4();
+ sub_8147F10(5);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk49)
+ {
+ gUnknown_203F3D4->unk4C = 2;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148418(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_81491E4();
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk4A = gUnknown_203F3D4->unk70.unk2;
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (sub_8149804())
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148464(void)
+{
+ if (!sub_81489C8())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk4C = 1;
+ }
+ else if (sub_8149630())
+ {
+ return TRUE;
+ }
+ else
+ {
+ sub_81491B4();
+ gUnknown_203F3D4->unk4C = 3;
+ }
+
+ return FALSE;
+}
+
+static bool32 sub_81484B0(void)
+{
+ if (!sub_81489C8())
+ ;
+ else if (sub_8149630())
+ return TRUE;
+ else
+ sub_81491B4();
+
+ return FALSE;
+}
+
+static bool32 sub_81484D0(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8149630();
+ if (sub_81496D4())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148A60())
+ {
+ if (sub_81498B4())
+ {
+ gUnknown_203F3D4->unk70.unk2 = sub_81498D8();
+ gUnknown_203F3D4->unk4C = 7;
+ }
+ else if (gUnknown_203F3D4->unk70.unk4 >= 200)
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 8;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 4;
+ }
+
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_814856C(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8149630())
+ sub_81491B4();
+ if (sub_81496D4())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148A60())
+ {
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81485C8(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(4);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_8148C80())
+ {
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (gUnknown_203F3D4->unk49)
+ {
+ if (sub_8149748())
+ gUnknown_203F3D4->unk4C = 5;
+ else
+ gUnknown_203F3D4->unk4C = 6;
+
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 3:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148664(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ // fall through
+ case 1:
+ if (!sub_8148C80())
+ {
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ gUnknown_203F3D4->unk42 = gUnknown_203F3D4->unk45;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81486C4(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8148E2C())
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk49)
+ {
+ sub_8147B94(gUnknown_203F3D4);
+ gUnknown_203F3D4->unk24 = Random();
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unk24;
+ gUnknown_203F3D4->unk4C = 0;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148724(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ if (!sub_8148E2C())
+ {
+ sub_8147B94(gUnknown_203F3D4);
+ gUnknown_203F3D4->unk8++;
+ return FALSE;
+ }
+ break;
+ case 1:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148760(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ gUnknown_203F3D4->unk8 = 1;
+ break;
+ case 1:
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 2:
+ if (!sub_8148D5C())
+ {
+ SetMainCallback2(gUnknown_203F3D4->returnCallback);
+ sub_8147B48();
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81487B4(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_8147F10(4);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8148B54())
+ {
+ gUnknown_203F3D4->unk70.unk2 = gUnknown_203F3D4->unkE;
+ gUnknown_203F3D4->unk4C = 8;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148800(void)
+{
+ sub_8147F10(0);
+ if (!sub_8148B54())
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static bool32 sub_814881C(void)
+{
+ switch (gUnknown_203F3D4->unk8)
+ {
+ case 0:
+ sub_814B494(gUnknown_203F3D4->unk70.unk8, gUnknown_203F3D4->unk70.unk4, gUnknown_203F3D4->unk70.unk2);
+ sub_8149D40(5);
+ gUnknown_203F3D4->unk8++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ {
+ sub_8147F10(0);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 2:
+ if (sub_8149804())
+ {
+ CreateTask(sub_80DA634, 6);
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 3:
+ if (!FuncIsActiveTask(sub_80DA634))
+ {
+ sub_814A6CC();
+ gUnknown_203F3D4->unk8++;
+ }
+ break;
+ case 4:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unk4C = 4;
+ return FALSE;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81488DC(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149D40(2);
+ sub_814AAA0();
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ {
+ sub_814AAB4(gUnknown_203F3D4->unk6);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ if (++gUnknown_203F3D4->unk3C > 120)
+ {
+ sub_8149D40(3);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (sub_8149D68() != 1 && sub_814AAC8() != 1)
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 4:
+ sub_8149D40(9);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 5:
+ if (!sub_8149D68())
+ {
+ sub_814935C();
+ sub_814A3E4();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 6:
+ if (!sub_814A408())
+ {
+ sub_814936C();
+ sub_8148F9C();
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 7:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81489C8(void)
+{
+ sub_8148FE0();
+ if (gUnknown_203F3D4->unk36)
+ {
+ gUnknown_203F3D4->unk36 = 0;
+ return FALSE;
+ }
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ if (sub_814922C(0))
+ gUnknown_203F3D4->unkA++;
+ else
+ break;
+ // fall through
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_8149260();
+ sub_8147F10(3);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ if (sub_814922C(1) == TRUE)
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 3:
+ if (sub_814922C(0) == TRUE)
+ gUnknown_203F3D4->unkA = 0;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148A60(void)
+{
+ int i;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (sub_814AA78(i) == 1)
+ return TRUE;
+ }
+
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk10 == 2)
+ sub_814AA60(i);
+ }
+
+ sub_8149D40(1);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 2:
+ if (++gUnknown_203F3D4->unk3C > 100)
+ {
+ sub_8149D40(3);
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (!sub_8149D68())
+ {
+ sub_814AA8C();
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ sub_8149210();
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 4:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148B54(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149900(gUnknown_203F3D4->unk70.unk2, &gUnknown_203F3D4->unk3E, &gUnknown_203F3D4->unk40);
+ sub_814A468(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ case 4:
+ if (!sub_814A62C())
+ {
+ gUnknown_203F3D4->unk3C = 0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ case 5:
+ gUnknown_203F3D4->unk3C++;
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON) || gUnknown_203F3D4->unk3C > 180)
+ {
+ sub_814A6CC();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unk40 = sub_8149978(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40);
+ if (gUnknown_203F3D4->unk40 && AddBagItem(gUnknown_203F3D4->unk3E, gUnknown_203F3D4->unk40))
+ {
+ if (!CheckBagHasSpace(gUnknown_203F3D4->unk3E, 1))
+ {
+ sub_814A53C(gUnknown_203F3D4->unk3E);
+ gUnknown_203F3D4->unkA = 4;
+ }
+ else
+ {
+ gUnknown_203F3D4->unkA = 6;
+ break;
+ }
+ }
+ else
+ {
+ sub_814A5B4(gUnknown_203F3D4->unk3E);
+ gUnknown_203F3D4->unkA = 4;
+ }
+ }
+ break;
+ case 6:
+ if (!sub_814A6FC())
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148C80(void)
+{
+ s8 input;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_8149D40(4);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_8149D68())
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 2:
+ input = sub_814A744();
+ switch (input)
+ {
+ case MENU_B_PRESSED:
+ case 1:
+ gUnknown_203F3D4->unk45 = 1;
+ sub_8149D40(6);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 0:
+ gUnknown_203F3D4->unk45 = 2;
+ sub_8149D40(6);
+ gUnknown_203F3D4->unkA++;
+ break;
+ }
+ break;
+ case 3:
+ if (!sub_8149D68())
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 4:
+ sub_8149D40(8);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 5:
+ if (!sub_8149D68())
+ {
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 6:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148D5C(void)
+{
+ int var0;
+
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_814A6CC();
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_814A6FC())
+ {
+ sub_8149D40(7);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 2:
+ var0 = sub_8149D68();
+ if (!var0)
+ {
+ gUnknown_203F3D4->unk3C = var0;
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 3:
+ if (++gUnknown_203F3D4->unk3C > 120)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ Link_TryStartSend5FFF();
+ gUnknown_203F3D4->unkA++;
+ }
+ break;
+ case 5:
+ if (!gReceivedRemoteLinkPlayers)
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8148E2C(void)
+{
+ switch (gUnknown_203F3D4->unkA)
+ {
+ case 0:
+ sub_814A6CC();
+ sub_814AA24(0);
+ gUnknown_203F3D4->unkA++;
+ break;
+ case 1:
+ if (!sub_814A6FC())
+ {
+ gUnknown_203F3D4->unkA++;
+ return FALSE;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void sub_8148E80(u8 taskId)
+{
+ int i;
+ s16 *taskData = gTasks[taskId].data;
+ struct PokemonJump1 *ptr = (struct PokemonJump1 *)GetWordTaskArg(taskId, 14);
+
+ switch (taskData[0])
+ {
+ case 0:
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ taskData[i + 2] = 0;
+
+ taskData[0]++;
+ // fall through
+ case 1:
+ sub_8149A6C(&ptr->unk82A8[ptr->unk6]);
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ if (!taskData[i + 2] && sub_8149A90(i, &ptr->unk82A8[i]))
+ {
+ StringCopy(ptr->unk82E4[i].unk1C, gLinkPlayers[i].name);
+ taskData[i + 2] = 1;
+ taskData[1]++;
+ if (taskData[1] == ptr->unk5)
+ {
+ sub_8147C20();
+ DestroyTask(taskId);
+ break;
+ }
+ }
+ }
+ break;
+ }
+}
+
+static void sub_8148F5C(TaskFunc func, u8 taskPriority)
+{
+ u8 taskId = CreateTask(func, taskPriority);
+ SetWordTaskArg(taskId, 14, (uintptr_t)gUnknown_203F3D4);
+}
+
+static void sub_8148F7C(void)
+{
+ gUnknown_203F3D4->unk4A = 0;
+ gUnknown_203F3D4->unk14 = 6;
+ gUnknown_203F3D4->unk34 = 0;
+ gUnknown_203F3D4->unk1C = 0;
+ gUnknown_203F3D4->unk36 = 0;
+ gUnknown_203F3D4->unk10 = 0;
+}
+
+static void sub_8148F9C(void)
+{
+ gUnknown_203F3D4->unk4A = 0;
+ gUnknown_203F3D4->unk34 = 0x6FF;
+ gUnknown_203F3D4->unk14 = 7;
+ gUnknown_203F3D4->unk36 = 0;
+ gUnknown_203F3D4->unk10 = 0;
+ gUnknown_203F3D4->unk51 = 0;
+ gUnknown_203F3D4->unk50 = 0;
+ gUnknown_203F3D4->unk20 = 0;
+ gUnknown_203F3D4->unk4E = 0;
+ gUnknown_203F3D4->unk6C = 0;
+ sub_8149078();
+}
+
+static void sub_8148FE0(void)
+{
+ if (gUnknown_203F3D4->unk46)
+ {
+ gUnknown_203F3D4->unk4A++;
+ gUnknown_203F3D4->unk34 += sub_8149044();
+ if (gUnknown_203F3D4->unk34 >= 0x9FF)
+ gUnknown_203F3D4->unk34 -= 0x9FF;
+
+ gUnknown_203F3D4->unk18 = gUnknown_203F3D4->unk14;
+ gUnknown_203F3D4->unk14 = gUnknown_203F3D4->unk34 >> 8;
+ if (gUnknown_203F3D4->unk14 > 6 && gUnknown_203F3D4->unk18 < 7)
+ {
+ gUnknown_203F3D4->unk36++;
+ sub_8149078();
+ }
+ }
+}
+
+static int sub_8149044(void)
+{
+ int result;
+
+ if (gUnknown_203F3D4->unk10)
+ return 0;
+
+ result = gUnknown_203F3D4->unk1C;
+ if (gUnknown_203F3D4->unk34 <= 0x5FF)
+ {
+ gUnknown_203F3D4->unk20 += 80;
+ result += gUnknown_203F3D4->unk20 >> 8;
+ }
+
+ return result;
+}
+
+static const u16 gUnknown_846B694[] = {0x1a, 0x1f, 0x24, 0x29, 0x2e, 0x33, 0x38, 0x3d};
+static const u16 gUnknown_846B6A4[] = {0, 1, 1, 2};
+
+static void sub_8149078(void)
+{
+ int var0;
+
+ gUnknown_203F3D4->unk20 = 0;
+ if (gUnknown_203F3D4->unk4E)
+ {
+ gUnknown_203F3D4->unk4E--;
+ if (gUnknown_203F3D4->unk6C)
+ {
+ if (sub_8149194() % 4 != 0)
+ {
+ gUnknown_203F3D4->unk1C = gUnknown_203F3D4->unk28;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk28 > 54)
+ gUnknown_203F3D4->unk1C = 30;
+ else
+ gUnknown_203F3D4->unk1C = 82;
+ }
+ }
+ }
+ else
+ {
+ if (!(gUnknown_203F3D4->unk50 & 8))
+ {
+ gUnknown_203F3D4->unk28 = gUnknown_846B694[gUnknown_203F3D4->unk50] + (gUnknown_203F3D4->unk51 * 7);
+ gUnknown_203F3D4->unk4E = gUnknown_846B6A4[sub_8149194() % NELEMS(gUnknown_846B6A4)] + 2;
+ gUnknown_203F3D4->unk50++;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk50 == 8)
+ {
+ if (gUnknown_203F3D4->unk51 < 3)
+ gUnknown_203F3D4->unk51++;
+ else
+ gUnknown_203F3D4->unk6C = 1;
+ }
+
+ var0 = gUnknown_846B694[15 - gUnknown_203F3D4->unk50];
+ gUnknown_203F3D4->unk28 = var0 + (gUnknown_203F3D4->unk51 * 7);
+ if (++gUnknown_203F3D4->unk50 > 15)
+ {
+ if (sub_8149194() % 4 == 0)
+ gUnknown_203F3D4->unk28 -= 5;
+
+ gUnknown_203F3D4->unk50 = 0;
+ }
+ }
+
+ gUnknown_203F3D4->unk1C = gUnknown_203F3D4->unk28;
+ }
+}
+
+static int sub_8149194(void)
+{
+ // The number 1103515245 comes from the example implementation of rand and srand
+ gUnknown_203F3D4->unk24 = gUnknown_203F3D4->unk24 * 1103515245 + 24691;
+ return gUnknown_203F3D4->unk24 >> 16;
+}
+
+static void sub_81491B4(void)
+{
+ gUnknown_203F3D4->unk10 = 1;
+ gUnknown_203F3D4->unk14 = 6;
+ gUnknown_203F3D4->unk34 = 0x5FF;
+ sub_814936C();
+}
+
+static int sub_81491D8(void)
+{
+ return gUnknown_203F3D4->unk10;
+}
+
+static void sub_81491E4(void)
+{
+ int i;
+ for (i = 0; i < MAX_RFU_PLAYERS; i++)
+ gUnknown_203F3D4->unk82E4[i].unk14 = 0;
+}
+
+static void sub_8149210(void)
+{
+ gUnknown_203F3D4->unk83AC->unk10 = 0;
+ gUnknown_203F3D4->unk83AC->unk12 = 0;
+}
+
+static bool32 sub_814922C(u16 arg0)
+{
+ if (gUnknown_203F3D4->unk82E4[gUnknown_203F3D4->unk6].unk10 == arg0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void sub_8149260(void)
+{
+ gUnknown_203F3D4->unk83AC->unkE = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 1;
+}
+
+static void sub_8149288(void)
+{
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 2;
+ gUnknown_203F3D4->unk83AC->unkE = gUnknown_203F3D4->unk4A;
+ gUnknown_203F3D4->unk83AC->unk14 = 2;
+}
+
+static void sub_81492B8(void)
+{
+ gUnknown_203F3D4->unk83AC->unk12 = gUnknown_203F3D4->unk83AC->unk10;
+ gUnknown_203F3D4->unk83AC->unk10 = 0;
+}
+
+static const u16 gUnknown_846B6AC[] = {SE_REGI, SE_REAPOKE, SE_W234, SE_EXCELLENT};
+
+static void sub_81492D8(void)
+{
+ if (gUnknown_203F3D4->unk5C)
+ {
+ sub_814AA24(gUnknown_203F3D4->unk70.unk8);
+ gUnknown_203F3D4->unk5C = 0;
+ if (gUnknown_203F3D4->unk4D)
+ {
+ int index = sub_814A98C(gUnknown_203F3D4->unk70.unk1);
+ PlaySE(gUnknown_846B6AC[index - 2]);
+ gUnknown_203F3D4->unk4D = 0;
+ }
+ }
+
+ sub_814AA34(gUnknown_203F3D4->unk70.unk4);
+ sub_814937C();
+ sub_814933C();
+}
+
+static void sub_814933C(void)
+{
+ if (gUnknown_203F3D4->unk46)
+ sub_814A95C(gUnknown_203F3D4->unk14);
+}
+
+static void sub_814935C(void)
+{
+ gUnknown_203F3D4->unk46 = 0;
+}
+
+static void sub_814936C(void)
+{
+ gUnknown_203F3D4->unk46 = 1;
+}
+
+static void sub_814937C(void)
+{
+ int i;
+ int whichSound = 0;
+ int numLinkPlayers = gUnknown_203F3D4->unk5;
+
+ for (i = 0; i < numLinkPlayers; i++)
+ {
+ switch (gUnknown_203F3D4->unk82E4[i].unk10)
+ {
+ case 0:
+ sub_814A940(i, 0);
+ break;
+ case 1:
+ if (gUnknown_203F3D4->unk82E4[i].unk12 != 1 || gUnknown_203F3D4->unk82E4[i].unkE != gUnknown_203F3D4->unk9A[i])
+ {
+ if (i == gUnknown_203F3D4->unk6)
+ gUnknown_203F3D4->unk82E4[i].unk12 = 1;
+
+ whichSound |= 0x1;
+ gUnknown_203F3D4->unk82E4[i].unk4 = 0x7FFFFFFF;
+ gUnknown_203F3D4->unk9A[i] = gUnknown_203F3D4->unk82E4[i].unkE;
+ }
+
+ sub_8149490(i);
+ break;
+ case 2:
+ if (gUnknown_203F3D4->unk82E4[i].unk12 != 2)
+ {
+ if (i == gUnknown_203F3D4->unk6)
+ gUnknown_203F3D4->unk82E4[i].unk12 = 2;
+
+ whichSound |= 0x2;
+ sub_814AA48(i);
+ }
+ break;
+ }
+ }
+
+ if (whichSound & 0x2)
+ PlaySE(SE_NAWAMISS);
+ else if (whichSound & 0x1)
+ PlaySE(SE_DANSA);
+}
+
+static const s8 gUnknown_846B6B4[][48] =
+{
+ {-3, -6, -8, -10, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -28, -27,
+ -26, -25, -23, -22, -20, -18, -17, -15, -13, -11, -8, -6, -4, -1},
+
+ {-3, -6, -9, -11, -14, -16, -18, -20, -22, -24, -26, -28, -29, -30, -30, -28, -26, -24, -22,
+ -20, -18, -16, -14, -11, -9, -6, -4, -1},
+
+ {-3, -6, -9, -11, -13, -15, -17, -19, -21, -23, -25, -27, -28, -29, -30, -30, -30, -30, -29,
+ -29, -28, -28, -27, -27, -26, -25, -24, -22, -20, -18, -16, -14,
+ -12, -11, -9, -6, -4, -1},
+};
+
+static void sub_8149490(int multiplayerId)
+{
+ int var0;
+ int var1;
+ struct PokemonJump1_82E4 *player;
+
+ if (gUnknown_203F3D4->unk68)
+ return;
+
+ player = &gUnknown_203F3D4->unk82E4[multiplayerId];
+ if (player->unk4 != 0x7FFFFFFF)
+ {
+ player->unk4++;
+ var0 = player->unk4;
+ }
+ else
+ {
+ var0 = gUnknown_203F3D4->unk4A - player->unkE;
+ if (var0 >= 65000)
+ {
+ var0 -= 65000;
+ var0 += gUnknown_203F3D4->unk4A;
+ }
+
+ player->unk4 = var0;
+ }
+
+ if (var0 < 4)
+ return;
+
+ var0 -= 4;
+ if (var0 < 48)
+ var1 = gUnknown_846B6B4[player->unkC][var0];
+ else
+ var1 = 0;
+
+ sub_814A940(multiplayerId, var1);
+ if (!var1 && multiplayerId == gUnknown_203F3D4->unk6)
+ sub_81492B8();
+
+ player->unk0 = var1;
+}
+
+static void sub_8149534(void)
+{
+ if (gUnknown_203F3D4->unk14 == 8 && gUnknown_203F3D4->unk18 == 7)
+ {
+ if (gUnknown_203F3D4->unk58 == 0)
+ {
+ sub_8149878();
+ gUnknown_203F3D4->unk54 = 0;
+ gUnknown_203F3D4->unk58 = 1;
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ }
+ else
+ {
+ if (gUnknown_203F3D4->unk54 == 5)
+ {
+ gUnknown_203F3D4->unkC++;
+ sub_8149898(gUnknown_203F3D4->unkC);
+ }
+ else
+ {
+ gUnknown_203F3D4->unkC = 0;
+ }
+
+ if (gUnknown_203F3D4->unk54 > 1)
+ {
+ gUnknown_203F3D4->unk64 = 1;
+ memcpy(gUnknown_203F3D4->unk86, gUnknown_203F3D4->unk81, sizeof(u8) * MAX_RFU_PLAYERS);
+ }
+
+ sub_8149878();
+ gUnknown_203F3D4->unk54 = 0;
+ gUnknown_203F3D4->unk58 = 1;
+ gUnknown_203F3D4->unk70.unk1 = 0;
+ if (gUnknown_203F3D4->unk70.unk4 < 9999)
+ gUnknown_203F3D4->unk70.unk4++;
+
+ sub_8149780(10);
+ sub_8147F10(3);
+ }
+ }
+
+ if (gUnknown_203F3D4->unk64 && (sub_8149710() == TRUE || !gUnknown_203F3D4->unk14))
+ {
+ int var0 = sub_8149834(gUnknown_203F3D4->unk86);
+ sub_8149780(sub_8149888(var0));
+ sub_8147F10(3);
+ gUnknown_203F3D4->unk64 = 0;
+ }
+
+ if (gUnknown_203F3D4->unk58)
+ {
+ int var1 = sub_81497A8();
+ if (var1 > gUnknown_203F3D4->unk54)
+ {
+ gUnknown_203F3D4->unk54 = var1;
+ memcpy(gUnknown_203F3D4->unk81, gUnknown_203F3D4->unk7C, sizeof(u8) * MAX_RFU_PLAYERS);
+ }
+ }
+}
+
+static bool32 sub_8149630(void)
+{
+ int i;
+
+ if (gUnknown_203F3D4->unk14 == 6 && !gUnknown_203F3D4->unk83AC->unk0)
+ {
+ if (gUnknown_203F3D4->unk83AC->unk12 == 1 && sub_81491D8() == 1)
+ {
+ gUnknown_203F3D4->unk83AC->unk14 = 1;
+ }
+ else
+ {
+ sub_8149288();
+ sub_8147F10(3);
+ }
+ }
+
+ if (gUnknown_203F3D4->unk14 == 7
+ && gUnknown_203F3D4->unk18 == 6
+ && gUnknown_203F3D4->unk83AC->unk10 != 2)
+ {
+ gUnknown_203F3D4->unk83AC->unk14 = 1;
+ sub_8147F10(3);
+ }
+
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk10 == 2)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_81496D4(void)
+{
+ int i;
+ int numPlayers = gUnknown_203F3D4->unk5;
+ int count = 0;
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk14)
+ count++;
+ }
+
+ return count == numPlayers;
+}
+
+static bool32 sub_8149710(void)
+{
+ int i;
+ for (i = 0; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk14 != 1)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static bool32 sub_8149748(void)
+{
+ int i;
+
+ if (gUnknown_203F3D4->unk45 == 1)
+ return FALSE;
+
+ for (i = 1; i < gUnknown_203F3D4->unk5; i++)
+ {
+ if (gUnknown_203F3D4->unk90[i] == 1)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void sub_8149780(int arg0)
+{
+ gUnknown_203F3D4->unk70.unk8 += arg0;
+ gUnknown_203F3D4->unk5C = 1;
+ if (gUnknown_203F3D4->unk70.unk8 >= 99990)
+ gUnknown_203F3D4->unk70.unk8 = 99990;
+}
+
+static int sub_81497A8(void)
+{
+ int i;
+ int count = 0;
+ int numPlayers = gUnknown_203F3D4->unk5;
+
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (gUnknown_203F3D4->unk82E4[i].unk0 == -30)
+ {
+ gUnknown_203F3D4->unk7C[i] = 1;
+ count++;
+ }
+ else
+ {
+ gUnknown_203F3D4->unk7C[i] = 0;
+ }
+ }
+
+ return count;
+}
+
+static bool32 sub_8149804(void)
+{
+ return !Rfu.unk_124.count && !Rfu.unk_9e8.count;
+}
+
+static int sub_8149834(u8 *arg0)
+{
+ int i;
+ int flags;
+ int count;
+
+ for (i = 0, flags = 0, count = 0; i < MAX_RFU_PLAYERS; i++)
+ {
+ if (arg0[i])
+ {
+ flags |= 1 << i;
+ count++;
+ }
+ }
+
+ gUnknown_203F3D4->unk70.unk1 = flags;
+ if (flags)
+ gUnknown_203F3D4->unk4D = 1;
+
+ return count;
+}
+
+static void sub_8149878(void)
+{
+ gUnknown_203F3D4->unk44 = 0;
+}
+
+static const int gUnknown_846B74C[] = {0, 0, 50, 100, 200, 500};
+
+static int sub_8149888(int arg0)
+{
+ return gUnknown_846B74C[arg0];
+}
+
+static void sub_8149898(u16 arg0)
+{
+ if (arg0 > gUnknown_203F3D4->unkE)
+ gUnknown_203F3D4->unkE = arg0;
+}
+
+static const u16 gUnknown_846B764[] = {0x8a, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93};
+static const u32 gUnknown_846B76C[][2] =
+{
+ {0x1388, 1},
+ {0x1f40, 2},
+ {0x2ee0, 3},
+ {0x3e80, 4},
+ {0x4e20, 5},
+};
+
+static bool32 sub_81498B4(void)
+{
+ if (gUnknown_203F3D4->unk70.unk8 >= gUnknown_846B76C[0][0])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static u16 sub_81498D8(void)
+{
+ u16 lo = sub_8149910();
+ u16 hi = sub_8149930();
+ return (hi << 12) | (lo & 0xFFF);
+}
+
+static void sub_8149900(u16 arg0, u16 *arg1, u16 *arg2)
+{
+ *arg2 = arg0 >> 12;
+ *arg1 = arg0 & 0xFFF;
+}
+
+static u16 sub_8149910(void)
+{
+ u16 index = Random() % NELEMS(gUnknown_846B764);
+ return gUnknown_846B764[index];
+}
+
+static u16 sub_8149930(void)
+{
+ u32 val, i;
+
+ val = 0;
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_203F3D4->unk70.unk8 < gUnknown_846B76C[i][0])
+ break;
+ else if (1) // required to match, see pret/pokeemerald#982
+ val = gUnknown_846B76C[i][1];
+ else
+ break;
+ }
+
+ return val;
+}
+
+static u16 sub_8149978(u16 item, u16 quantity)
+{
+ while (quantity && !CheckBagHasSpace(item, quantity))
+ quantity--;
+
+ return quantity;
+}
+
+u16 sub_81499A4(void)
+{
+ return GetLinkPlayerCount();
+}
+
+u16 sub_81499B4(void)
+{
+ return gUnknown_203F3D4->unk6;
+}
+
+struct PokemonJump1_MonInfo *sub_81499C0(u8 multiplayerId)
+{
+ return &gUnknown_203F3D4->unk82A8[multiplayerId];
+}
+
+u8 *sub_81499E0(u8 multiplayerId)
+{
+ return gUnknown_203F3D4->unk82E4[multiplayerId].unk1C;
+}
+
+bool32 IsSpeciesAllowedInPokemonJump(u16 species)
+{
+ return GetPokemonJumpSpeciesIdx(species) > -1;
+}
+
+void IsPokemonJumpSpeciesInParty(void)
+{
+ int i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES))
+ {
+ u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (IsSpeciesAllowedInPokemonJump(species))
+ {
+ gSpecialVar_Result = TRUE;
+ return;
+ }
+ }
+ }
+
+ gSpecialVar_Result = FALSE;
+}
diff --git a/src/pokemon_jump_3.c b/src/pokemon_jump_3.c
new file mode 100644
index 000000000..04d9ad439
--- /dev/null
+++ b/src/pokemon_jump_3.c
@@ -0,0 +1,167 @@
+#include "global.h"
+#include "link_rfu.h"
+#include "pokemon_jump.h"
+
+struct MonInfoPacket
+{
+ u8 id; // packet id
+ u16 species;
+ u32 personality;
+ u32 otId;
+};
+
+void sub_8149A6C(struct PokemonJump1_MonInfo *arg0)
+{
+ struct MonInfoPacket packet;
+ packet.id = 1;
+ packet.species = arg0->species;
+ packet.otId = arg0->otId;
+ packet.personality = arg0->personality;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0)
+{
+ struct MonInfoPacket packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id == 1)
+ {
+ arg0->species = packet.species;
+ arg0->otId = packet.otId;
+ arg0->personality = packet.personality;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+struct UnkPacket2
+{
+ u8 id; // packet id
+ u32 unk4;
+ u32 unk8;
+};
+
+void sub_8149AE0(u32 arg0)
+{
+ struct UnkPacket2 packet;
+ packet.id = 2;
+ packet.unk4 = arg0;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+struct UnkPacket3
+{
+ u8 id; // packet id
+ u8 unk1;
+ u8 unk2;
+ u8 unk3_0:5;
+ u8 unk3_1:3;
+ u16 unk4;
+ u16 unk6;
+ u32 unk8_0:15;
+ u32 unk8_1:17;
+};
+
+void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
+{
+ struct UnkPacket3 packet;
+ packet.id = 3;
+ packet.unk8_1 = arg1->unk8;
+ packet.unk3_0 = arg1->unk1;
+ packet.unk1 = arg1->unk0;
+ packet.unk6 = arg1->unk2;
+ packet.unk8_0 = arg1->unk4;
+ packet.unk2 = arg0->unk10;
+ packet.unk3_1 = arg0->unk14;
+ packet.unk4 = arg0->unkE;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1)
+{
+ struct UnkPacket3 packet;
+
+ if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[0][1], sizeof(packet));
+ if (packet.id != 3)
+ return FALSE;
+
+ arg1->unk8 = packet.unk8_1;
+ arg1->unk1 = packet.unk3_0;
+ arg1->unk0 = packet.unk1;
+ arg1->unk2 = packet.unk6;
+ arg1->unk4 = packet.unk8_0;
+ arg0->unk10 = packet.unk2;
+ arg0->unk14 = packet.unk3_1;
+ arg0->unkE = packet.unk4;
+ return TRUE;
+}
+
+struct UnkPacket4
+{
+ u8 id; // packet id
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u16 unk4;
+ u8 unk6;
+ u16 unk8;
+};
+
+void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2)
+{
+ struct UnkPacket4 packet;
+ packet.id = 4;
+ packet.unk1 = arg0->unk10;
+ packet.unk2 = arg0->unk14;
+ packet.unk3 = arg0->unk18;
+ packet.unk4 = arg0->unkE;
+ packet.unk6 = arg1;
+ packet.unk8 = arg2;
+ RfuPrepareSend0x2f00(&packet);
+}
+
+bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3)
+{
+ struct UnkPacket4 packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id != 4)
+ return FALSE;
+
+ arg0->unk10 = packet.unk1;
+ arg0->unk14 = packet.unk2;
+ arg0->unk18 = packet.unk3;
+ arg0->unkE = packet.unk4;
+ *arg2 = packet.unk6;
+ *arg3 = packet.unk8;
+ return TRUE;
+}
+
+bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId)
+{
+ struct UnkPacket4 packet;
+
+ if ((gRecvCmds[multiplayerId][0] & 0xFF00) != 0x2F00)
+ return FALSE;
+
+ memcpy(&packet, &gRecvCmds[multiplayerId][1], sizeof(packet));
+ if (packet.id != 4)
+ return FALSE;
+
+ arg0->unk10 = packet.unk1;
+ arg0->unk14 = packet.unk2;
+ arg0->unk18 = packet.unk3;
+ arg0->unkE = packet.unk4;
+ return TRUE;
+}
diff --git a/src/pokemon_jump_4.c b/src/pokemon_jump_4.c
new file mode 100644
index 000000000..d1c049e7a
--- /dev/null
+++ b/src/pokemon_jump_4.c
@@ -0,0 +1,922 @@
+#include "global.h"
+#include "gflib.h"
+#include "data.h"
+#include "digit_obj_util.h"
+#include "dynamic_placeholder_text_util.h"
+#include "item.h"
+#include "menu.h"
+#include "new_menu_helpers.h"
+#include "pokemon_jump.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+#include "constants/songs.h"
+#include "constants/items.h"
+
+EWRAM_DATA static struct PokemonJump2 *gUnknown_203F3D8 = NULL;
+
+static void sub_8149D80(void (*func)(void));
+static void sub_8149DA4(u8 taskId);
+static void sub_8149DC8(void);
+static void sub_8149F64(void);
+static void sub_8149FD0(void);
+static void sub_814A03C(void);
+static void sub_814A0C8(void);
+static void sub_814A174(void);
+static void sub_814A218(void);
+static void sub_814A264(void);
+static void sub_814A308(void);
+static void sub_814A3AC(void);
+static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height);
+static void sub_814A7D0(u16 left, u16 top, u8 cursorPos);
+static void sub_814A84C(void);
+static void sub_814A8B8(void);
+static void sub_814A9C8(void);
+static void sub_814AADC(void);
+static void sub_814AC30(bool32 arg0);
+static void sub_814AC94(void);
+static void sub_814ACCC(u8 arg0);
+static void sub_814AD50(u8 taskId);
+
+static void sub_8149D34(struct PokemonJump2 *);
+
+void sub_8149CEC(struct PokemonJump2 *arg0)
+{
+ u8 taskId;
+
+ gUnknown_203F3D8 = arg0;
+ sub_8149D34(gUnknown_203F3D8);
+ taskId = CreateTask(sub_8149DA4, 3);
+ gUnknown_203F3D8->unk6 = taskId;
+ SetWordTaskArg(gUnknown_203F3D8->unk6, 2, (uintptr_t)gUnknown_203F3D8);
+ sub_8149D80(sub_8149DC8);
+}
+
+void sub_8149D24(void)
+{
+ FreeAllWindowBuffers();
+ DigitObjUtil_Teardown();
+}
+
+static void sub_8149D34(struct PokemonJump2 *arg0)
+{
+ arg0->unk4 = 0;
+ arg0->unk0 = 0;
+ arg0->unk12 = 0xFF;
+}
+
+// Gfx
+static const u16 sPkmnJumpPal3[] = INCBIN_U16("graphics/link_games/pkmnjump_pal3.gbapal");
+
+static const u16 sPkmnJumpBgPal[] = INCBIN_U16("graphics/link_games/pkmnjump_bg.gbapal");
+static const u32 sPkmnJumpBgGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.4bpp.lz");
+static const u32 sPkmnJumpBgTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_bg.bin.lz");
+
+static const u16 sPkmnJumpVenusaurPal[] = INCBIN_U16("graphics/link_games/pkmnjump_venusaur.gbapal");
+static const u32 sPkmnJumpVenusaurGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.4bpp.lz");
+static const u32 sPkmnJumpVenusaurTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_venusaur.bin.lz");
+
+static const u16 sPkmnJumpResultsPal[] = INCBIN_U16("graphics/link_games/pkmnjump_results.gbapal");
+static const u32 sPkmnJumpResultsGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_results.4bpp.lz");
+static const u32 sPkmnJumpResultsTilemap[] = INCBIN_U32("graphics/link_games/pkmnjump_results.bin.lz");
+
+static const struct BgTemplate gUnknown_846D8D4[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 27,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 12,
+ .screenSize = 3,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ },
+};
+
+static const struct WindowTemplate gUnknown_846D8E4[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 19,
+ .tilemapTop = 0,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 2,
+ .baseBlock = 0x13,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 8,
+ .tilemapTop = 0,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 2,
+ .baseBlock = 0x1F,
+ },
+ DUMMY_WIN_TEMPLATE,
+};
+
+struct
+{
+ int id;
+ void (*func)(void);
+} static const gUnknown_846D8FC[] =
+{
+ {0x00, sub_8149DC8},
+ {0x01, sub_8149F64},
+ {0x02, sub_8149FD0},
+ {0x03, sub_814A03C},
+ {0x04, sub_814A0C8},
+ {0x05, sub_814A174},
+ {0x06, sub_814A218},
+ {0x07, sub_814A264},
+ {0x09, sub_814A3AC},
+ {0x08, sub_814A308},
+};
+
+void sub_8149D40(int arg0)
+{
+ int i;
+
+ for (i = 0; i < NELEMS(gUnknown_846D8FC); i++)
+ {
+ if (gUnknown_846D8FC[i].id == arg0)
+ sub_8149D80(gUnknown_846D8FC[i].func);
+ }
+}
+
+bool32 sub_8149D68(void)
+{
+ return (gUnknown_203F3D8->unk0 != 1);
+}
+
+static void sub_8149D80(void (*func)(void))
+{
+ SetWordTaskArg(gUnknown_203F3D8->unk6, 0, (uintptr_t)func);
+ gUnknown_203F3D8->unk4 = 0;
+ gUnknown_203F3D8->unk0 = 0;
+}
+
+static void sub_8149DA4(u8 taskId)
+{
+ if (!gUnknown_203F3D8->unk0)
+ {
+ void (*func)(void) = (void *)(GetWordTaskArg(taskId, 0));
+
+ func();
+ }
+}
+
+static void sub_8149DC8(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gUnknown_846D8D4, NELEMS(gUnknown_846D8D4));
+ InitWindows(gUnknown_846D8E4);
+ ResetBgPositions();
+ ResetTempTileDataBuffers();
+ sub_814AD6C(gUnknown_203F3D8);
+ sub_814A9C8();
+ LoadPalette(sPkmnJumpBgPal, 0, 0x20);
+ DecompressAndCopyTileDataToVram(3, sPkmnJumpBgGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(3, sPkmnJumpBgTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpVenusaurPal, 0x30, 0x20);
+ DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(2, sPkmnJumpVenusaurTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpResultsPal, 0x10, 0x20);
+ DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsGfx, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(1, sPkmnJumpResultsTilemap, 0, 0, 1);
+ LoadPalette(sPkmnJumpPal3, 0x20, 0x20);
+ SetBgTilemapBuffer(0, gUnknown_203F3D8->tilemapBuffer);
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
+ sub_814A84C();
+ sub_814AA24(0);
+ sub_814FDA0(0, 1, 0xE0);
+ LoadUserWindowBorderGfx(0, 0x00A, 0xD0);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!FreeTempTileDataBuffersIfPossible())
+ {
+ sub_814A8B8();
+ sub_814B294(gUnknown_203F3D8);
+ sub_814B348(gUnknown_203F3D8, 6);
+ ShowBg(3);
+ ShowBg(0);
+ ShowBg(2);
+ HideBg(1);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_8149F64(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814AADC();
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC30(FALSE);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC94();
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_8149FD0(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814AADC();
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC30(TRUE);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ sub_814AC94();
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A03C(void)
+{
+ int i, numPlayers;
+
+ numPlayers = sub_81499A4();
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ for (i = 0; i < numPlayers; i++)
+ ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ for (i = 0; i < numPlayers; i++)
+ RemoveWindow(gUnknown_203F3D8->unk1C[i]);
+
+ gUnknown_203F3D8->unk0 = 1;
+ }
+ break;
+ }
+}
+
+static void sub_814A0C8(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ sub_814A7D0(23, 7, 0);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A174(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A218(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814A6CC();
+ DestroyYesNoMenu();
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!sub_814A6FC() && !IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A264(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A308(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unk4++;
+ }
+ break;
+ case 2:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+static void sub_814A3AC(void)
+{
+ switch (gUnknown_203F3D8->unk4)
+ {
+ case 0:
+ sub_814B43C(gUnknown_203F3D8);
+ gUnknown_203F3D8->unk4++;
+ break;
+ case 1:
+ if (!sub_814B460())
+ gUnknown_203F3D8->unk0 = 1;
+ break;
+ }
+}
+
+void sub_814A3E4(void)
+{
+ gUnknown_203F3D8->unkA = 0;
+ gUnknown_203F3D8->unkB = 0;
+ gUnknown_203F3D8->unkC = 6;
+ sub_814A95C(gUnknown_203F3D8->unkC);
+}
+
+bool32 sub_814A408(void)
+{
+ switch (gUnknown_203F3D8->unkA)
+ {
+ case 0:
+ gUnknown_203F3D8->unkB++;
+ if (gUnknown_203F3D8->unkB > 10)
+ {
+ gUnknown_203F3D8->unkB = 0;
+ gUnknown_203F3D8->unkC++;
+ if (gUnknown_203F3D8->unkC >= 10)
+ {
+ gUnknown_203F3D8->unkC = 0;
+ gUnknown_203F3D8->unkA++;
+ }
+ }
+ sub_814A95C(gUnknown_203F3D8->unkC);
+ if (gUnknown_203F3D8->unkC != 7)
+ break;
+ case 1:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static const u8 sPluralTxt[] = _("IES");
+
+void sub_814A468(u16 itemId, u16 quantity)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ ConvertIntToDecimalStringN(gUnknown_203F3D8->txtBuff[1], quantity, STR_CONV_MODE_LEFT_ALIGN, 1);
+ if (itemId >= FIRST_BERRY_INDEX && itemId < LAST_BERRY_INDEX)
+ {
+ if (quantity > 1)
+ {
+ int endi = StringLength(gUnknown_203F3D8->txtBuff[0]);
+ if (endi != 0)
+ {
+ endi--;
+ endi[gUnknown_203F3D8->txtBuff[0]] = EOS;
+ StringAppend(gUnknown_203F3D8->txtBuff[0], sPluralTxt);
+ }
+ }
+ }
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_203F3D8->txtBuff[1]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = MUS_FANFA1;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+void sub_814A53C(u16 itemId)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = 0;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+void sub_814A5B4(u16 itemId)
+{
+ CopyItemName(itemId, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_Reset();
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_203F3D8->txtBuff[0]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore);
+ gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2);
+ AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ gUnknown_203F3D8->unk14 = 0;
+ gUnknown_203F3D8->unkD = 0;
+}
+
+bool32 sub_814A62C(void)
+{
+ switch (gUnknown_203F3D8->unkD)
+ {
+ case 0:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ PutWindowTilemap(gUnknown_203F3D8->unk12);
+ DrawTextBorderOuter(gUnknown_203F3D8->unk12, 1, 14);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203F3D8->unkD++;
+ }
+ break;
+ case 1:
+ if (IsDma3ManagerBusyWithBgCopy())
+ break;
+ if (gUnknown_203F3D8->unk14 == 0)
+ {
+ gUnknown_203F3D8->unkD += 2;
+ return FALSE;
+ }
+ PlayFanfare(gUnknown_203F3D8->unk14);
+ gUnknown_203F3D8->unkD++;
+ case 2:
+ if (!IsFanfareTaskInactive())
+ break;
+ gUnknown_203F3D8->unkD++;
+ case 3:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void sub_814A6CC(void)
+{
+ if (gUnknown_203F3D8->unk12 != 0xFF)
+ {
+ rbox_fill_rectangle(gUnknown_203F3D8->unk12);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, 1);
+ gUnknown_203F3D8->unkD = 0;
+ }
+}
+
+// Can't match this without the ugly GOTO, oh well.
+bool32 sub_814A6FC(void)
+{
+ if (gUnknown_203F3D8->unk12 == 0xFF)
+ {
+ RET_FALSE:
+ return FALSE;
+ }
+
+ if (gUnknown_203F3D8->unkD == 0)
+ {
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ RemoveWindow(gUnknown_203F3D8->unk12);
+ gUnknown_203F3D8->unk12 = 0xFF;
+ gUnknown_203F3D8->unkD++;
+ goto RET_FALSE;
+ }
+ }
+ else if (gUnknown_203F3D8->unkD == 1)
+ goto RET_FALSE;
+
+ return TRUE;
+}
+
+s8 sub_814A744(void)
+{
+ return Menu_ProcessInputNoWrapClearOnChoose();
+}
+
+static u32 sub_814A754(u32 left, u32 top, u32 width, u32 height)
+{
+ u32 windowId;
+ struct WindowTemplate window;
+
+ window.bg = 0;
+ window.tilemapLeft = left;
+ window.tilemapTop = top;
+ window.width = width;
+ window.height = height;
+ window.paletteNum = 0xF;
+ window.baseBlock = 0x43;
+
+ windowId = AddWindow(&window);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ return windowId;
+}
+
+static void sub_814A7D0(u16 left, u16 top, u8 cursorPos)
+{
+ struct WindowTemplate window;
+ u8 a = cursorPos;
+
+ window.bg = 0;
+ window.tilemapLeft = left;
+ window.tilemapTop = top;
+ window.width = 6;
+ window.height = 4;
+ window.paletteNum = 2;
+ window.baseBlock = 0x2B;
+
+ CreateYesNoMenu(&window, 2, 0, 2, 0x00a, 0xD, a);
+}
+
+static void sub_814A84C(void)
+{
+ u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
+
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ FillWindowPixelBuffer(0, PIXEL_FILL(0));
+ FillWindowPixelBuffer(1, PIXEL_FILL(0));
+ AddTextPrinterParameterized3(0, 0, 0, 2, color, 0, gText_SpacePoints2);
+ AddTextPrinterParameterized3(1, 0, 0, 2, color, 0, gText_SpaceTimes3);
+}
+
+static const u8 gUnknown_846D953[] = {2, 2, 0, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0};
+
+static const struct CompressedSpriteSheet gUnknown_846D960 = {gUnknown_8479688, 0, 0x320};
+static const struct SpritePalette gUnknown_846D968 = {gUnknown_8479668, 0x320};
+
+static const u16 gUnknown_846D970[] = {0x06, 0x08, 0x10, 0x08};
+static const u16 gUnknown_846D978[] = {0x06, 0x08, 0x0b, 0x06, 0x10, 0x08};
+static const u16 gUnknown_846D984[] = {0x02, 0x06, 0x06, 0x08, 0x10, 0x08, 0x14, 0x06};
+static const u16 gUnknown_846D994[] = {0x02, 0x06, 0x06, 0x08, 0x0b, 0x06, 0x10, 0x08, 0x14, 0x06};
+
+static const u16 *const gUnknown_846D9A8[] =
+{
+ gUnknown_846D970,
+ gUnknown_846D978,
+ gUnknown_846D984,
+ gUnknown_846D994,
+};
+
+static const s16 gUnknown_846D9B8[] = {0x0058, 0x0098};
+static const s16 gUnknown_846D9BC[] = {0x0058, 0x0078, 0x0098};
+static const s16 gUnknown_846D9C2[] = {0x0038, 0x0058, 0x0098, 0x00b8};
+static const s16 gUnknown_846D9CA[] = {0x0038, 0x0058, 0x0078, 0x0098, 0x00b8};
+
+static const s16 *const gUnknown_846D9D4[] =
+{
+ gUnknown_846D9B8,
+ gUnknown_846D9BC,
+ gUnknown_846D9C2,
+ gUnknown_846D9CA,
+};
+
+static void sub_814A8B8(void)
+{
+ int i, y, playersCount = sub_81499A4();
+ const s16 *xCoords = gUnknown_846D9D4[playersCount - 2];
+
+ for (i = 0; i < playersCount; i++)
+ {
+ struct PokemonJump1_MonInfo *info = sub_81499C0(i);
+
+ y = gMonFrontPicCoords[info->species].y_offset;
+ sub_814ADCC(gUnknown_203F3D8, info, *xCoords, y + 112, i);
+ sub_814B240(gUnknown_203F3D8, *xCoords, 112, i);
+ xCoords++;
+ }
+}
+
+void sub_814A940(u32 id, s16 y)
+{
+ gUnknown_203F3D8->unk81A8[id]->pos2.y = y;
+}
+
+void sub_814A95C(int id)
+{
+ sub_814B348(gUnknown_203F3D8, id);
+ ChangeBgY(2, (gUnknown_846D953[id] * 5) << 0xD, 0);
+}
+
+int sub_814A98C(u8 flags)
+{
+ int i, count;
+
+ for (i = 0, count = 0; i < 5; i++)
+ {
+ if (flags & 1)
+ {
+ sub_814AF0C(gUnknown_203F3D8, i);
+ count++;
+ }
+ flags >>= 1;
+ }
+
+ sub_814ACCC(count - 2);
+ return count;
+}
+
+static void sub_814A9C8(void)
+{
+ struct DigitObjUtilTemplate unkStruct;
+ struct DigitObjUtilTemplate *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why.
+
+ ptr->shape = SPRITE_SHAPE(8x8);
+ ptr->size = SPRITE_SIZE(8x8);
+ ptr->strConvMode = 0;
+ ptr->priority = 1;
+ ptr->oamCount = 5;
+ ptr->xDelta = 8;
+ ptr->x = 108;
+ ptr->y = 6;
+ ptr->spriteSheet = (void*) &gUnknown_846D960;
+ ptr->spritePal = &gUnknown_846D968;
+
+ DigitObjUtil_Init(2);
+ DigitObjUtil_CreatePrinter(0, 0, ptr);
+
+ unkStruct.oamCount = 4;
+ unkStruct.x = 30;
+ unkStruct.y = 6;
+ DigitObjUtil_CreatePrinter(1, 0, &unkStruct);
+}
+
+void sub_814AA24(int arg0)
+{
+ DigitObjUtil_PrintNumOn(0, arg0);
+}
+
+void sub_814AA34(u16 arg0)
+{
+ DigitObjUtil_PrintNumOn(1, arg0);
+}
+
+void sub_814AA48(u8 multiplayerId)
+{
+ sub_814AFE8(gUnknown_203F3D8, multiplayerId);
+}
+
+void sub_814AA60(u8 multiplayerId)
+{
+ sub_814B080(gUnknown_203F3D8, multiplayerId);
+}
+
+int sub_814AA78(int multiplayerId)
+{
+ return sub_814B010(gUnknown_203F3D8, multiplayerId);
+}
+
+void sub_814AA8C(void)
+{
+ sub_814B0A8(gUnknown_203F3D8);
+}
+
+void sub_814AAA0(void)
+{
+ sub_814B134(gUnknown_203F3D8);
+}
+
+void sub_814AAB4(int multiplayerId)
+{
+ sub_814B168(gUnknown_203F3D8, multiplayerId);
+}
+
+int sub_814AAC8(void)
+{
+ return sub_814B190(gUnknown_203F3D8);
+}
+
+static void sub_814AADC(void)
+{
+ struct WindowTemplate window;
+ int i, playersCount = sub_81499A4();
+ const u16 *winCoords = gUnknown_846D9A8[playersCount - 2];
+
+ window.bg = 0;
+ window.width = 8;
+ window.height = 2;
+ window.paletteNum = 2;
+ window.baseBlock = 0x2B;
+
+ for (i = 0; i < playersCount; i++)
+ {
+ window.tilemapLeft = winCoords[0];
+ window.tilemapTop = winCoords[1];
+ gUnknown_203F3D8->unk1C[i] = AddWindow(&window);
+ ClearWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+ window.baseBlock += 0x10;
+ winCoords += 2;
+ }
+
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void sub_814AB98(int multiplayerId, u8 clr1, u8 clr2, u8 clr3)
+{
+ u32 x;
+ u8 colors[3] = {clr1, clr2, clr3};
+
+ FillWindowPixelBuffer(gUnknown_203F3D8->unk1C[multiplayerId], PIXEL_FILL(0));
+ x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1);
+ x /= 2;
+ AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId));
+ CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], 2);
+}
+
+static void sub_814AC30(bool32 arg0)
+{
+ int i, var, playersCount = sub_81499A4();
+
+ if (!arg0)
+ {
+ for (i = 0; i < playersCount; i++)
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ }
+ else
+ {
+ var = sub_81499B4();
+ for (i = 0; i < playersCount; i++)
+ {
+ if (var != i)
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ else
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
+ }
+ }
+}
+
+static void sub_814AC94(void)
+{
+ int i, playersCount = sub_81499A4();
+
+ for (i = 0; i < playersCount; i++)
+ PutWindowTilemap(gUnknown_203F3D8->unk1C[i]);
+ CopyBgTilemapBufferToVram(0);
+}
+
+static void sub_814ACCC(u8 arg0)
+{
+ gUnknown_203F3D8->unk18 = 0;
+ ChangeBgX(1, (arg0 / 2) << 16, 0);
+ ChangeBgY(1, (((arg0 % 2) << 8) - 40) << 8, 0);
+ ShowBg(1);
+ CreateTask(sub_814AD50, 4);
+}
+
+static bool32 sub_814AD18(void)
+{
+ if (gUnknown_203F3D8->unk18 >= 32)
+ {
+ return FALSE;
+ }
+ else
+ {
+ ChangeBgY(1, 128, 1);
+ if (++gUnknown_203F3D8->unk18 >= 32)
+ HideBg(1);
+ return TRUE;
+ }
+}
+
+static void sub_814AD50(u8 taskId)
+{
+ if (!sub_814AD18())
+ DestroyTask(taskId);
+}
diff --git a/src/pokemon_jump_5.c b/src/pokemon_jump_5.c
new file mode 100644
index 000000000..f8abb2a1f
--- /dev/null
+++ b/src/pokemon_jump_5.c
@@ -0,0 +1,637 @@
+#include "global.h"
+#include "gflib.h"
+#include "decompress.h"
+#include "minigame_countdown.h"
+#include "pokemon_jump.h"
+#include "data.h"
+#include "trig.h"
+#include "constants/songs.h"
+
+static void sub_814AF74(struct Sprite *sprite);
+static void sub_814B038(struct Sprite *sprite);
+static void sub_814B100(struct Sprite *sprite);
+static void sub_814B1CC(struct Sprite *sprite);
+
+static const u16 sPkmnJumpPal1[] = INCBIN_U16("graphics/link_games/pkmnjump_pal1.gbapal");
+static const u16 sPkmnJumpPal2[] = INCBIN_U16("graphics/link_games/pkmnjump_pal2.gbapal");
+
+static const u32 sPkmnJumpRopeGfx1[] = INCBIN_U32("graphics/link_games/pkmnjump_rope1.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx2[] = INCBIN_U32("graphics/link_games/pkmnjump_rope2.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx3[] = INCBIN_U32("graphics/link_games/pkmnjump_rope3.4bpp.lz");
+static const u32 sPkmnJumpRopeGfx4[] = INCBIN_U32("graphics/link_games/pkmnjump_rope4.4bpp.lz");
+
+static const u32 sPkmnJumpStarGfx[] = INCBIN_U32("graphics/link_games/pkmnjump_star.4bpp.lz");
+
+static const struct CompressedSpriteSheet gUnknown_846E0B0[] =
+{
+ {sPkmnJumpRopeGfx1, 0x600, 5},
+ {sPkmnJumpRopeGfx2, 0x0c00, 6},
+ {sPkmnJumpRopeGfx3, 0x0600, 7},
+ {sPkmnJumpRopeGfx4, 0x0600, 8},
+ {sPkmnJumpStarGfx, 0x0200, 10},
+};
+
+static const struct SpritePalette gUnknown_846E0D8[] =
+{
+ {sPkmnJumpPal1, 5},
+ {sPkmnJumpPal2, 6},
+};
+
+// Forward declarations.
+static const struct OamData sOamData_846E170;
+static const struct SpriteTemplate gUnknown_846E220;
+static const struct SpriteTemplate gUnknown_846E238;
+static const struct SpriteTemplate gUnknown_846E250;
+static const struct SpriteTemplate gUnknown_846E268;
+
+static const struct SpriteTemplate gUnknown_846E0E8 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_846E170,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const s16 gUnknown_846E100[][10] =
+{
+ {0x60, 0x60, 0x60, 0x72, 0x78, 0x78, 0x78, 0x72, 0x60, 0x60},
+ {0x46, 0x50, 0x60, 0x72, 0x78, 0x80, 0x78, 0x72, 0x60, 0x50},
+ {0x32, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48},
+ {0x2a, 0x48, 0x60, 0x72, 0x80, 0x88, 0x80, 0x72, 0x60, 0x48},
+};
+
+static const s16 gUnknown_846E150[] = {0x10, 0x28, 0x48, 0x68, 0x88, 0xa8, 0xc8, 0xe0};
+
+static const struct SpriteTemplate *const gUnknown_846E160[] =
+{
+ &gUnknown_846E220,
+ &gUnknown_846E238,
+ &gUnknown_846E250,
+ &gUnknown_846E268,
+};
+
+static const struct OamData sOamData_846E170 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E178 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x32),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E180 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x32),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData sOamData_846E188 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x16),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_846E190[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E198[] =
+{
+ ANIMCMD_FRAME(8, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1A0[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1A8[] =
+{
+ ANIMCMD_FRAME(24, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1B0[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1B8[] =
+{
+ ANIMCMD_FRAME(40, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1C0[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1C8[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1D0[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1D8[] =
+{
+ ANIMCMD_FRAME(48, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1E0[] =
+{
+ ANIMCMD_FRAME(64, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E1E8[] =
+{
+ ANIMCMD_FRAME(80, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E1F0[] =
+{
+ sSpriteAnim_846E190,
+ sSpriteAnim_846E198,
+ sSpriteAnim_846E1A0,
+ sSpriteAnim_846E1A8,
+ sSpriteAnim_846E1B0,
+ sSpriteAnim_846E1B8
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E208[] =
+{
+ sSpriteAnim_846E1C0,
+ sSpriteAnim_846E1C8,
+ sSpriteAnim_846E1D0,
+ sSpriteAnim_846E1D8,
+ sSpriteAnim_846E1E0,
+ sSpriteAnim_846E1E8
+};
+
+static const struct SpriteTemplate gUnknown_846E220 =
+{
+ .tileTag = 5,
+ .paletteTag = 5,
+ .oam = &sOamData_846E178,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E238 =
+{
+ .tileTag = 6,
+ .paletteTag = 5,
+ .oam = &sOamData_846E180,
+ .anims = sSpriteAnimTable_846E208,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E250 =
+{
+ .tileTag = 7,
+ .paletteTag = 5,
+ .oam = &sOamData_846E188,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct SpriteTemplate gUnknown_846E268 =
+{
+ .tileTag = 8,
+ .paletteTag = 5,
+ .oam = &sOamData_846E188,
+ .anims = sSpriteAnimTable_846E1F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_846E280 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = 0,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x16),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_846E288[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_846E290[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_FRAME(12, 4),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_846E2AC[] =
+{
+ sSpriteAnim_846E288,
+ sSpriteAnim_846E290
+};
+
+static const struct SpriteTemplate gUnknown_846E2B4 =
+{
+ .tileTag = 10,
+ .paletteTag = 5,
+ .oam = &sOamData_846E280,
+ .anims = sSpriteAnimTable_846E2AC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+void sub_814AD6C(struct PokemonJump2 *arg0)
+{
+ int i;
+
+ for (i = 0; i < NELEMS(gUnknown_846E0B0); i++)
+ LoadCompressedSpriteSheet(&gUnknown_846E0B0[i]);
+
+ for (i = 0; i < NELEMS(gUnknown_846E0D8); i++)
+ LoadSpritePalette(&gUnknown_846E0D8[i]);
+
+ arg0->unkE = IndexOfSpritePaletteTag(5);
+ arg0->unkF = IndexOfSpritePaletteTag(6);
+}
+
+static void sub_814ADB4(struct Sprite *sprite)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ sprite->data[i] = 0;
+}
+
+void sub_814ADCC(struct PokemonJump2 *arg0, struct PokemonJump1_MonInfo *jumpMon, s16 x, s16 y, u8 multiplayerId)
+{
+ struct SpriteTemplate spriteTemplate;
+ struct SpriteSheet spriteSheet;
+ struct CompressedSpritePalette spritePalette;
+ u8 *buffer;
+ u8 *unusedBuffer;
+ u8 subpriority;
+ u8 spriteId;
+
+ spriteTemplate = gUnknown_846E0E8;
+ buffer = Alloc(0x2000);
+ unusedBuffer = Alloc(0x800);
+ if (multiplayerId == sub_81499B4())
+ subpriority = 3;
+ else
+ subpriority = multiplayerId + 4;
+
+ if (buffer && unusedBuffer)
+ {
+ HandleLoadSpecialPokePic(
+ &gMonFrontPicTable[jumpMon->species],
+ buffer,
+ jumpMon->species,
+ jumpMon->personality);
+
+ spriteSheet.data = buffer;
+ spriteSheet.tag = multiplayerId;
+ spriteSheet.size = 0x800;
+ LoadSpriteSheet(&spriteSheet);
+
+ spritePalette.data = GetMonSpritePalFromSpeciesAndPersonality(jumpMon->species, jumpMon->otId, jumpMon->personality);
+ spritePalette.tag = multiplayerId;
+ LoadCompressedSpritePalette(&spritePalette);
+
+ Free(buffer);
+ Free(unusedBuffer);
+
+ spriteTemplate.tileTag += multiplayerId;
+ spriteTemplate.paletteTag += multiplayerId;
+ spriteId = CreateSprite(&spriteTemplate, x, y, subpriority);
+ if (spriteId != MAX_SPRITES)
+ {
+ arg0->unk81A8[multiplayerId] = &gSprites[spriteId];
+ arg0->unk81FC[multiplayerId] = subpriority;
+ return;
+ }
+ }
+
+ arg0->unk81A8[multiplayerId] = NULL;
+}
+
+void sub_814AF0C(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81BC[multiplayerId]);
+ arg0->unk81BC[multiplayerId]->data[7] = arg0->unk81A8[multiplayerId] - gSprites;
+ arg0->unk81BC[multiplayerId]->invisible = FALSE;
+ arg0->unk81BC[multiplayerId]->pos1.y = 96;
+ arg0->unk81BC[multiplayerId]->callback = sub_814AF74;
+ StartSpriteAnim(arg0->unk81BC[multiplayerId], 1);
+}
+
+static void sub_814AF74(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (sprite->animEnded)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ case 1:
+ sprite->pos1.y--;
+ sprite->data[1]++;
+ if (sprite->pos1.y <= 72)
+ {
+ sprite->pos1.y = 72;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (++sprite->data[1] >= 48)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+}
+
+void sub_814AFE8(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ arg0->unk81A8[multiplayerId]->callback = sub_814B038;
+ arg0->unk81A8[multiplayerId]->pos2.y = 0;
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+}
+
+bool32 sub_814B010(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ return arg0->unk81A8[multiplayerId]->callback == sub_814B038;
+}
+
+static void sub_814B038(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 1)
+ {
+ if (++sprite->data[2] & 1)
+ sprite->pos2.y = 2;
+ else
+ sprite->pos2.y = -2;
+
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[2] > 12)
+ {
+ sprite->pos2.y = 0;
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+void sub_814B080(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+ arg0->unk81A8[multiplayerId]->callback = sub_814B100;
+}
+
+void sub_814B0A8(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (arg0->unk81A8[i]->callback == sub_814B100)
+ {
+ arg0->unk81A8[i]->invisible = FALSE;
+ arg0->unk81A8[i]->callback = SpriteCallbackDummy;
+ arg0->unk81A8[i]->subpriority = 10;
+ }
+ }
+}
+
+static void sub_814B100(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 3)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible ^= 1;
+ }
+}
+
+void sub_814B134(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ arg0->unk81A8[i]->subpriority = arg0->unk81FC[i];
+}
+
+void sub_814B168(struct PokemonJump2 *arg0, int multiplayerId)
+{
+ sub_814ADB4(arg0->unk81A8[multiplayerId]);
+ arg0->unk81A8[multiplayerId]->callback = sub_814B1CC;
+}
+
+bool32 sub_814B190(struct PokemonJump2 *arg0)
+{
+ int i;
+ u16 numPlayers = sub_81499A4();
+ for (i = 0; i < numPlayers; i++)
+ {
+ if (arg0->unk81A8[i]->callback == sub_814B1CC)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void sub_814B1CC(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ PlaySE(SE_JITE_PYOKO);
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ // fall through
+ case 1:
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 0x7F)
+ sprite->data[1] = 0;
+
+ sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3);
+ if (sprite->data[1] == 0)
+ {
+ if (++sprite->data[2] < 2)
+ sprite->data[0] = 0;
+ else
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+}
+
+void sub_814B240(struct PokemonJump2 *arg0, s16 x, s16 y, u8 multiplayerId)
+{
+ u8 spriteId = CreateSprite(&gUnknown_846E2B4, x, y, 1);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].invisible = TRUE;
+ arg0->unk81BC[multiplayerId] = &gSprites[spriteId];
+ }
+}
+
+void sub_814B294(struct PokemonJump2 *arg0)
+{
+ int i;
+ int count;
+ u8 spriteId;
+
+ count = 0;
+ for (i = 0; i < 4; i++)
+ {
+ spriteId = CreateSprite(gUnknown_846E160[i], gUnknown_846E150[count], gUnknown_846E100[i][0], 2);
+ arg0->unk81D0[count] = &gSprites[spriteId];
+ count++;
+ }
+
+ for (i = 3; i >= 0; i--)
+ {
+ spriteId = CreateSprite(gUnknown_846E160[i], gUnknown_846E150[count], gUnknown_846E100[i][0], 2);
+ arg0->unk81D0[count] = &gSprites[spriteId];
+ arg0->unk81D0[count]->hFlip = 1;
+ count++;
+ }
+}
+
+void sub_814B348(struct PokemonJump2 *arg0, int arg1)
+{
+ int i, count, palNum;
+ int priority;
+
+ if (arg1 > 5)
+ {
+ arg1 = 10 - arg1;
+ priority = 3;
+ palNum = arg0->unkF;
+ }
+ else
+ {
+ priority = 2;
+ palNum = arg0->unkE;
+ }
+
+ count = 0;
+ for (i = 0; i < 4; i++)
+ {
+ arg0->unk81D0[count]->pos1.y = gUnknown_846E100[i][arg1];
+ arg0->unk81D0[count]->oam.priority = priority;
+ arg0->unk81D0[count]->oam.paletteNum = palNum;
+ StartSpriteAnim(arg0->unk81D0[count], arg1);
+ count++;
+ }
+
+ for (i = 3; i >= 0; i--)
+ {
+ arg0->unk81D0[count]->pos1.y = gUnknown_846E100[i][arg1];
+ arg0->unk81D0[count]->oam.priority = priority;
+ arg0->unk81D0[count]->oam.paletteNum = palNum;
+ StartSpriteAnim(arg0->unk81D0[count], arg1);
+ count++;
+ }
+}
+
+void sub_814B43C(struct PokemonJump2 *arg0)
+{
+ StartMinigameCountdown(9, 7, 120, 80, 0);
+ sub_814B134(arg0);
+}
+
+bool32 sub_814B460(void)
+{
+ return IsMinigameCountdownRunning();
+}
diff --git a/src/pokemon_jump_6.c b/src/pokemon_jump_6.c
new file mode 100644
index 000000000..140ec5df6
--- /dev/null
+++ b/src/pokemon_jump_6.c
@@ -0,0 +1,141 @@
+#include "global.h"
+#include "gflib.h"
+#include "menu.h"
+#include "pokemon_jump.h"
+#include "script.h"
+#include "strings.h"
+#include "task.h"
+#include "text_window.h"
+
+static void Task_ShowPokemonJumpRecords(u8 taskId);
+static void TruncateToFirstWordOnly(u8 *str);
+static void sub_814B5C4(u16 windowId);
+
+static struct PokemonJumpResults *sub_814B46C(void)
+{
+ return &gSaveBlock2Ptr->pokeJump;
+}
+
+void ResetPokeJumpResults(void)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ pokeJump->jumpsInRow = 0;
+ pokeJump->bestJumpScore = 0;
+ pokeJump->excellentsInRow = 0;
+ pokeJump->field6 = 0;
+ pokeJump->field8 = 0;
+ pokeJump->field2 = 0;
+}
+
+bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ bool32 ret = FALSE;
+
+ if (pokeJump->bestJumpScore < jumpScore && jumpScore <= 99990)
+ pokeJump->bestJumpScore = jumpScore, ret = TRUE;
+ if (pokeJump->jumpsInRow < jumpsInRow && jumpsInRow <= 9999)
+ pokeJump->jumpsInRow = jumpsInRow, ret = TRUE;
+ if (pokeJump->excellentsInRow < excellentsInRow && excellentsInRow <= 9999)
+ pokeJump->excellentsInRow = excellentsInRow, ret = TRUE;
+
+ return ret;
+}
+
+void sub_814B4E8(void)
+{
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ if (pokeJump->field6 < 9999)
+ pokeJump->field6++;
+}
+
+void ShowPokemonJumpRecords(void)
+{
+ u8 taskId = CreateTask(Task_ShowPokemonJumpRecords, 0);
+ Task_ShowPokemonJumpRecords(taskId);
+}
+
+static const struct WindowTemplate gUnknown_846E2CC =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 9,
+ .paletteNum = 15,
+ .baseBlock = 0x1,
+};
+
+static const u8 *const gUnknown_846E2D4[] = {gText_JumpsInARow, gText_BestScore2, gText_ExcellentsInARow};
+
+static void Task_ShowPokemonJumpRecords(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ data[1] = AddWindow(&gUnknown_846E2CC);
+ sub_814B5C4(data[1]);
+ CopyWindowToVram(data[1], 3);
+ data[0]++;
+ break;
+ case 1:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ data[0]++;
+ break;
+ case 2:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ rbox_fill_rectangle(data[1]);
+ CopyWindowToVram(data[1], 1);
+ data[0]++;
+ }
+ break;
+ case 3:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ RemoveWindow(data[1]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+
+static void sub_814B5C4(u16 windowId)
+{
+ int i, x;
+ int results[3];
+ struct PokemonJumpResults *pokeJump = sub_814B46C();
+ u8 strbuf[8];
+ results[0] = pokeJump->jumpsInRow;
+ results[1] = pokeJump->bestJumpScore;
+ results[2] = pokeJump->excellentsInRow;
+
+ TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0);
+ DrawTextBorderOuter(windowId, 0x21D, 0xD);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ AddTextPrinterParameterized5(windowId, 2, gText_PkmnJumpRecords, 0, 0, TEXT_SPEED_FF, NULL, 1, 0);
+ for (i = 0; i < NELEMS(gUnknown_846E2D4); i++)
+ {
+ AddTextPrinterParameterized5(windowId, 2, gUnknown_846E2D4[i], 0, 20 + (i * 14), TEXT_SPEED_FF, NULL, 1, 0);
+ ConvertIntToDecimalStringN(strbuf, results[i], STR_CONV_MODE_LEFT_ALIGN, 5);
+ TruncateToFirstWordOnly(strbuf);
+ x = 0xDE - GetStringWidth(2, strbuf, 0);
+ AddTextPrinterParameterized5(windowId, 2, strbuf, x, 20 + (i * 14), TEXT_SPEED_FF, NULL, 0, 0);
+ }
+ PutWindowTilemap(windowId);
+}
+
+static void TruncateToFirstWordOnly(u8 *str)
+{
+ for (;*str != EOS; str++)
+ {
+ if (*str == CHAR_SPACE)
+ {
+ *str = EOS;
+ break;
+ }
+ }
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 32229ac11..877a870c5 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -448,13 +448,10 @@ gUnknown_203B170: @ 203B170
.include "src/mevent_show_news.o"
.align 2
.include "src/seagallop.o"
-
.align 2
-gUnknown_203F3D4: @ 203F3D4
- .space 0x4
-
-gUnknown_203F3D8: @ 203F3D8
- .space 0x4
+ .include "src/pokemon_jump_2.o"
+ .align 2
+ .include "src/pokemon_jump_4.o"
gUnknown_203F3DC: @ 203F3DC
.space 0x4