summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_storage_system.s3230
-rw-r--r--data/pokemon_storage_system.s57
-rw-r--r--include/decoration.h6
-rwxr-xr-xinclude/ewram.h1
-rw-r--r--include/gba/macro.h2
-rw-r--r--include/main.h2
-rw-r--r--include/mon_markings.h26
-rw-r--r--include/pc_screen_effect.h19
-rw-r--r--include/pokemon.h8
-rw-r--r--include/sprite.h1
-rw-r--r--ld_script.txt4
-rw-r--r--src/engine/naming_screen.c2
-rw-r--r--src/field/choose_party.c3
-rw-r--r--src/field/field_effect.c1
-rw-r--r--src/field/pc_screen_effect.c17
-rw-r--r--src/field/use_pokeblock.c1
-rw-r--r--src/pokemon/mon_markings.c20
-rw-r--r--src/pokemon/pokemon_storage_system.c1233
-rw-r--r--src/scene/hall_of_fame.c4
-rw-r--r--sym_ewram.txt54
20 files changed, 1598 insertions, 3093 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 69c6d9e4f..8dab0b2fd 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,2638 +5,6 @@
.text
- thumb_func_start sub_8095ADC
-sub_8095ADC: @ 8095ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_08095AF0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B20 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095B0C
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095B0C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095AF0
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095B20: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_8095ADC
-
- thumb_func_start sub_8095B24
-sub_8095B24: @ 8095B24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r5, r0, 5
-_08095B36:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B54 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095B58
- lsls r0, r4, 16
- asrs r0, 16
- b _08095B66
- .align 2, 0
-_08095B54: .4byte gPokemonStorage + 0x4
-_08095B58:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095B36
- movs r0, 0x1
- negs r0, r0
-_08095B66:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B24
-
- thumb_func_start GetNumValidDaycarePartyMons
-GetNumValidDaycarePartyMons: @ 8095B6C
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
-_08095B72:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095BB0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095B9A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095B9A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095B9A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095B72
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095BB0: .4byte gPlayerParty
- thumb_func_end GetNumValidDaycarePartyMons
-
- thumb_func_start CountAlivePartyMonsExceptOne
-CountAlivePartyMonsExceptOne: @ 8095BB4
- push {r4-r7,lr}
- lsls r0, 24
- movs r5, 0
- movs r6, 0
- lsrs r7, r0, 24
-_08095BBE:
- cmp r5, r7
- beq _08095BF6
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095C0C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095BF6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095BF6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095BBE
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C0C: .4byte gPlayerParty
- thumb_func_end CountAlivePartyMonsExceptOne
-
- thumb_func_start CountAlivePartyMonsExceptSelectedOne
-CountAlivePartyMonsExceptSelectedOne: @ 8095C10
- push {lr}
- ldr r0, _08095C24 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl CountAlivePartyMonsExceptOne
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08095C24: .4byte gSpecialVar_0x8004
- thumb_func_end CountAlivePartyMonsExceptSelectedOne
-
- thumb_func_start StorageSystemGetPartySize
-StorageSystemGetPartySize: @ 8095C28
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08095C2E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08095C5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095C46
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095C46:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08095C2E
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C5C: .4byte gPlayerParty
- thumb_func_end StorageSystemGetPartySize
-
- thumb_func_start unref_sub_8095C60
-unref_sub_8095C60: @ 8095C60
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl StringCopy
- adds r1, r0, 0
- adds r5, r4
- cmp r1, r5
- bcs _08095C7E
- movs r0, 0
-_08095C76:
- strb r0, [r1]
- adds r1, 0x1
- cmp r1, r5
- bcc _08095C76
-_08095C7E:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8095C60
-
- thumb_func_start sub_8095C8C
-sub_8095C8C: @ 8095C8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _08095CFC
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_08095CE2:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _08095CE2
-_08095CFC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095C8C
-
- thumb_func_start unref_sub_8095D08
-unref_sub_8095D08: @ 8095D08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _08095DB2
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, _08095D74 @ =0x040000d4
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_08095D4E:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _08095D78
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _08095DA6
- .align 2, 0
-_08095D74: .4byte 0x040000d4
-_08095D78:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _08095DC4 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, _08095DC8 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _08095D78
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08095DA6:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _08095D4E
-_08095DB2:
- 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
-_08095DC4: .4byte 0x040000d4
-_08095DC8: .4byte 0x81000800
- thumb_func_end unref_sub_8095D08
-
- thumb_func_start StorageSystemGetNextMonIndex
-StorageSystemGetNextMonIndex: @ 8095DCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r0, r3, 24
- cmp r0, 0
- beq _08095DE8
- cmp r0, 0x2
- bne _08095DEC
-_08095DE8:
- movs r2, 0x1
- b _08095DEE
-_08095DEC:
- ldr r2, _08095E38 @ =0x0000ffff
-_08095DEE:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095E44
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E10:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095E3C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E10
- b _08095E90
- .align 2, 0
-_08095E38: .4byte 0x0000ffff
-_08095E3C:
- adds r0, r4, 0
- b _08095E94
-_08095E40:
- adds r0, r5, 0
- b _08095E94
-_08095E44:
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E5C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E80
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E40
-_08095E80:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E5C
-_08095E90:
- movs r0, 0x1
- negs r0, r0
-_08095E94:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end StorageSystemGetNextMonIndex
-
- thumb_func_start StorageSystemClearMessageWindow
-StorageSystemClearMessageWindow: @ 8095EA0
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end StorageSystemClearMessageWindow
-
- thumb_func_start Task_PokemonStorageSystem
-Task_PokemonStorageSystem: @ 8095EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08095ED8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08095ECE
- b _080960F4
-_08095ECE:
- lsls r0, 2
- ldr r1, _08095EDC @ =_08095EE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08095ED8: .4byte gTasks
-_08095EDC: .4byte _08095EE0
- .align 2, 0
-_08095EE0:
- .4byte _08095EF4
- .4byte _08095F1C
- .4byte _08095F30
- .4byte _08096042
- .4byte _080960DC
-_08095EF4:
- ldrb r0, [r4, 0xA]
- bl StorageSystemCreatePrimaryMenu
- bl MenuDisplayMessageBox
- ldr r1, _08095F18 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _08095F28
- .align 2, 0
-_08095F18: .4byte gUnknown_083B600C
-_08095F1C:
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- bne _08095F28
- b _080960F4
-_08095F28:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080960F4
-_08095F30:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08095FC8
- cmp r1, r0
- bgt _08095F52
- subs r0, 0x1
- cmp r1, r0
- beq _08095F58
- b _08095FE8
-_08095F52:
- cmp r1, 0x3
- beq _08095FC8
- b _08095FE8
-_08095F58:
- ldrh r3, [r4, 0xA]
- strh r3, [r4, 0xE]
- ldr r2, _08095FC0 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095F76
- subs r0, r3, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _08095F76
- movs r0, 0x3
- strh r0, [r4, 0xE]
-_08095F76:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08095F92
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08095F92
- movs r0, 0
- strh r0, [r4, 0xE]
-_08095F92:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08095FA2
- b _080960F4
-_08095FA2:
- strh r2, [r4, 0xA]
- bl StorageSystemClearMessageWindow
- ldr r0, _08095FC4 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _080960F4
- .align 2, 0
-_08095FC0: .4byte gMain
-_08095FC4: .4byte gUnknown_083B600C
-_08095FC8:
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080960F4
-_08095FE8:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08096008
- bl StorageSystemGetPartySize
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08096008
- bl StorageSystemClearMessageWindow
- ldr r0, _08096004 @ =gPCText_PartyFull2
- b _08096022
- .align 2, 0
-_08096004: .4byte gPCText_PartyFull2
-_08096008:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08096034
- bl StorageSystemGetPartySize
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08096034
- bl StorageSystemClearMessageWindow
- ldr r0, _08096030 @ =gPCText_OnlyOne
-_08096022:
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_08096030: .4byte gPCText_OnlyOne
-_08096034:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080960F4
-_08096042:
- ldr r0, _08096088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080960B8
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08096090
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0809606A
- strh r3, [r4, 0xA]
-_0809606A:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl StorageSystemClearMessageWindow
- ldr r1, _0809608C @ =gUnknown_083B600C
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- b _080960C2
- .align 2, 0
-_08096088: .4byte gMain
-_0809608C: .4byte gUnknown_083B600C
-_08096090:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080960F4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080960A8
- strh r2, [r4, 0xA]
-_080960A8:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
-_080960B8:
- bl StorageSystemClearMessageWindow
- ldr r1, _080960D8 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
-_080960C2:
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_080960D8: .4byte gUnknown_083B600C
-_080960DC:
- ldr r0, _080960FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080960F4
- ldrb r0, [r4, 0xC]
- bl task_intro_29
- adds r0, r5, 0
- bl DestroyTask
-_080960F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080960FC: .4byte gPaletteFade
- thumb_func_end Task_PokemonStorageSystem
-
- thumb_func_start ShowPokemonStorageSystem
-ShowPokemonStorageSystem: @ 8096100
- push {lr}
- ldr r0, _08096128 @ =Task_PokemonStorageSystem
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809612C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08096128: .4byte Task_PokemonStorageSystem
-_0809612C: .4byte gTasks
- thumb_func_end ShowPokemonStorageSystem
-
- thumb_func_start sub_8096130
-sub_8096130: @ 8096130
- push {lr}
- ldr r0, _0809615C @ =Task_PokemonStorageSystem
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _08096164 @ =gUnknown_02038474
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0809615C: .4byte Task_PokemonStorageSystem
-_08096160: .4byte gTasks
-_08096164: .4byte gUnknown_02038474
- thumb_func_end sub_8096130
-
- thumb_func_start StorageSystemCreatePrimaryMenu
-StorageSystemCreatePrimaryMenu: @ 8096168
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080961A4 @ =gUnknown_083B600C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080961A4: .4byte gUnknown_083B600C
- thumb_func_end StorageSystemCreatePrimaryMenu
-
- thumb_func_start sub_80961A8
-sub_80961A8: @ 80961A8
- push {lr}
- ldr r1, _080961C4 @ =gUnknown_02038474
- ldr r0, _080961C8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- strb r0, [r1]
- ldr r1, _080961CC @ =gFieldCallback
- ldr r0, _080961D0 @ =sub_8096130
- str r0, [r1]
- ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080961C4: .4byte gUnknown_02038474
-_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gFieldCallback
-_080961D0: .4byte sub_8096130
-_080961D4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80961A8
-
- thumb_func_start ResetPokemonStorageSystem
-ResetPokemonStorageSystem: @ 80961D8
- push {r4-r7,lr}
- ldr r1, _08096258 @ =gPokemonStorage
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r7, r1, 0x4
-_080961E4:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_080961F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r7
- adds r0, r6, r0
- bl ZeroBoxMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080961F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080961E4
- movs r5, 0
-_08096214:
- lsls r0, r5, 3
- adds r0, r5
- ldr r6, _0809625C @ =gPokemonStorage + 0x8344
- adds r0, r6
- ldr r1, _08096260 @ =gPCText_BOX
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _08096214
- movs r5, 0
- adds r3, r6, 0
- adds r3, 0x7E
- movs r2, 0x3
-_0809623E:
- adds r0, r5, r3
- adds r1, r5, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0809623E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gPokemonStorage + 0x8344
-_08096260: .4byte gPCText_BOX
- thumb_func_end ResetPokemonStorageSystem
-
- thumb_func_start sub_8096264
-sub_8096264: @ 8096264
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x20
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
- str r0, [sp, 0x18]
- ldr r1, _080962F8 @ =0xffff0000
- add r5, sp, 0x18
- ldr r0, [r5, 0x4]
- ands r0, r1
- orrs r0, r6
- str r0, [r5, 0x4]
- mov r1, sp
- ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r4, [r1, 0x6]
- ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r4, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- bl LoadSpritePalette
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, _08096304 @ =gUnknown_02038478
- mov r1, r8
- str r1, [r0]
- movs r0, 0x90
- lsls r0, 2
- add r0, r8
- strh r4, [r0]
- ldr r0, _08096308 @ =0x00000242
- add r0, r8
- strh r6, [r0]
- ldr r0, _0809630C @ =0x0000023e
- add r8, r0
- mov r0, r9
- mov r1, r8
- strb r0, [r1]
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080962F4: .4byte gBoxSelectionPopupPalette
-_080962F8: .4byte 0xffff0000
-_080962FC: .4byte gBoxSelectionPopupCenterTiles
-_08096300: .4byte gBoxSelectionPopupSidesTiles
-_08096304: .4byte gUnknown_02038478
-_08096308: .4byte 0x00000242
-_0809630C: .4byte 0x0000023e
- thumb_func_end sub_8096264
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,r5,lr}
- ldr r4, _08096344 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r1, _08096348 @ =0x00000242
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r5
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096344: .4byte gUnknown_02038478
-_08096348: .4byte 0x00000242
- thumb_func_end sub_8096310
-
- thumb_func_start sub_809634C
-sub_809634C: @ 809634C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80963D0
- pop {r0}
- bx r0
- thumb_func_end sub_809634C
-
- thumb_func_start sub_809635C
-sub_809635C: @ 809635C
- push {lr}
- bl sub_809658C
- pop {r0}
- bx r0
- thumb_func_end sub_809635C
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {lr}
- ldr r0, _08096380 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096384
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080963CC
- .align 2, 0
-_08096380: .4byte gMain
-_08096384:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080963A4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080963A0 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080963CC
- .align 2, 0
-_080963A0: .4byte gUnknown_02038478
-_080963A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080963B8
- movs r0, 0x5
- bl PlaySE
- bl sub_809662C
- b _080963CA
-_080963B8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080963CA
- movs r0, 0x5
- bl PlaySE
- bl sub_80965F8
-_080963CA:
- movs r0, 0xC8
-_080963CC:
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_80963D0
-sub_80963D0: @ 80963D0
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, _08096564 @ =0xffff0fff
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, _08096568 @ =gDummySpriteAnimTable
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x2C]
- ldr r0, _08096570 @ =SpriteCallbackDummy
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, _08096574 @ =gUnknown_02038478
- ldr r0, [r6]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _08096578 @ =0x00000242
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
- str r0, [sp, 0xC]
- movs r4, 0
-_08096488:
- ldr r0, [r6]
- ldr r1, _08096584 @ =0x0000023e
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080964C2
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080964C2:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080964E6
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080964E6:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08096488
- movs r4, 0
- ldr r5, _08096574 @ =gUnknown_02038478
-_08096504:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, _08096584 @ =0x0000023e
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_809A9A0
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _0809654C
- movs r1, 0x1
- cmp r4, 0
- bne _08096544
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_08096544:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, _08096588 @ =sub_8096784
- str r0, [r1, 0x1C]
-_0809654C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08096504
- bl sub_809665C
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096564: .4byte 0xffff0fff
-_08096568: .4byte gDummySpriteAnimTable
-_0809656C: .4byte gDummySpriteAffineAnimTable
-_08096570: .4byte SpriteCallbackDummy
-_08096574: .4byte gUnknown_02038478
-_08096578: .4byte 0x00000242
-_0809657C: .4byte gSprites
-_08096580: .4byte gSpriteAnimTable_83B604C
-_08096584: .4byte 0x0000023e
-_08096588: .4byte sub_8096784
- thumb_func_end sub_80963D0
-
- thumb_func_start sub_809658C
-sub_809658C: @ 809658C
- push {r4-r6,lr}
- ldr r4, _080965F4 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080965A2
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080965A2:
- movs r5, 0
- adds r6, r4, 0
-_080965A6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080965C2
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080965C2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080965A6
- movs r5, 0
-_080965CE:
- ldr r0, _080965F4 @ =gUnknown_02038478
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080965E2
- bl DestroySprite
-_080965E2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080965CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F4: .4byte gUnknown_02038478
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965F8
-sub_80965F8: @ 80965F8
- push {lr}
- ldr r2, _08096628 @ =gUnknown_02038478
- ldr r1, [r2]
- movs r0, 0x8F
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _0809661E
- ldr r0, [r2]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0809661E:
- bl sub_809665C
- pop {r0}
- bx r0
- .align 2, 0
-_08096628: .4byte gUnknown_02038478
- thumb_func_end sub_80965F8
-
- thumb_func_start sub_809662C
-sub_809662C: @ 809662C
- push {lr}
- ldr r0, _08096644 @ =gUnknown_02038478
- ldr r2, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096648
- subs r1, r0, 0x1
- b _0809664A
- .align 2, 0
-_08096644: .4byte gUnknown_02038478
-_08096648:
- movs r1, 0xD
-_0809664A:
- movs r3, 0x8F
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_809665C
- pop {r0}
- bx r0
- thumb_func_end sub_809662C
-
- thumb_func_start sub_809665C
-sub_809665C: @ 809665C
- push {r4-r7,lr}
- ldr r5, _080966B4 @ =gUnknown_02038478
- ldr r0, [r5]
- movs r4, 0x8F
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8095ADC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080966B8 @ =gStringVar1
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- movs r0, 0xF
- strb r0, [r2, 0x2]
- movs r0, 0x1
- strb r0, [r2, 0x3]
- movs r0, 0xE
- strb r0, [r2, 0x4]
- adds r2, 0x5
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- ldr r0, _080966BC @ =gPokemonStorage + 0x8344
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFE
- strb r0, [r2]
- strb r6, [r2, 0x1]
- movs r0, 0x11
- strb r0, [r2, 0x2]
- cmp r7, 0x9
- bhi _080966C0
- movs r0, 0x28
- b _080966C2
- .align 2, 0
-_080966B4: .4byte gUnknown_02038478
-_080966B8: .4byte gStringVar1
-_080966BC: .4byte gPokemonStorage + 0x8344
-_080966C0:
- movs r0, 0x22
-_080966C2:
- strb r0, [r2, 0x3]
- adds r2, 0x4
- adds r0, r2, 0
- adds r1, r7, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xA4
- strb r0, [r2, 0x1]
- movs r0, 0xA1
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080966F0 @ =gStringVar1
- movs r1, 0
- movs r2, 0x1
- bl sub_80966F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080966F0: .4byte gStringVar1
- thumb_func_end sub_809665C
-
- thumb_func_start sub_80966F4
-sub_80966F4: @ 80966F4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08096764 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 11
- lsls r4, 8
- ldr r2, _08096768 @ =0x06010000
- adds r4, r2
- adds r6, r4
- lsls r5, 5
- adds r6, r5
- ldr r0, _0809676C @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- ldr r2, _08096770 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08096774 @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- ldr r0, _08096778 @ =0x81000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809677C @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- mov r2, r8
- bl sub_8004E3C
- str r5, [r4]
- str r6, [r4, 0x4]
- ldr r0, _08096780 @ =0x80000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096764: .4byte gUnknown_02038478
-_08096768: .4byte 0x06010000
-_0809676C: .4byte gUnknown_083B6DB8
-_08096770: .4byte 0x00001111
-_08096774: .4byte 0x040000d4
-_08096778: .4byte 0x81000200
-_0809677C: .4byte gWindowConfig_81E6D38
-_08096780: .4byte 0x80000200
- thumb_func_end sub_80966F4
-
- thumb_func_start sub_8096784
-sub_8096784: @ 8096784
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080967B4
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080967B4
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080967B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8096784
-
- thumb_func_start task_intro_29
-task_intro_29: @ 80967B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080967D0 @ =gUnknown_0203847D
- strb r0, [r1]
- ldr r1, _080967D4 @ =gSharedMem
- strb r0, [r1, 0x5]
- ldr r0, _080967D8 @ =sub_8096884
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte gSharedMem
-_080967D8: .4byte sub_8096884
- thumb_func_end task_intro_29
-
- thumb_func_start sub_80967DC
-sub_80967DC: @ 80967DC
- ldr r0, _08096800 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08096800: .4byte REG_BG0HOFS
- thumb_func_end sub_80967DC
-
- thumb_func_start sub_8096804
-sub_8096804: @ 8096804
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r1, _0809683C @ =gReservedSpriteTileCount
- movs r2, 0xA0
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08096840 @ =gSharedMem + 0x20
- adds r1, r0, 0
- adds r1, 0x8
- movs r2, 0x8
- bl sub_809CFDC
- ldr r1, _08096844 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte gSharedMem + 0x20
-_08096844: .4byte gKeyRepeatStartDelay
- thumb_func_end sub_8096804
-
- thumb_func_start sub_8096848
-sub_8096848: @ 8096848
- push {lr}
- bl sub_809B0D4
- ldr r2, _08096868 @ =gUnknown_0203847C
- movs r1, 0
- ldr r0, _0809686C @ =gSharedMem
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809685C
- movs r1, 0x1
-_0809685C:
- strb r1, [r2]
- ldr r1, _08096870 @ =gUnknown_0203847E
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte gSharedMem
-_08096870: .4byte gUnknown_0203847E
- thumb_func_end sub_8096848
-
- thumb_func_start sub_8096874
-sub_8096874: @ 8096874
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8096874
-
- thumb_func_start sub_8096884
-sub_8096884: @ 8096884
- push {lr}
- ldr r0, _080968A0 @ =gMain
- ldr r1, _080968A4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08096894
- b _08096986
-_08096894:
- lsls r0, 2
- ldr r1, _080968A8 @ =_080968AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080968A0: .4byte gMain
-_080968A4: .4byte 0x0000043c
-_080968A8: .4byte _080968AC
- .align 2, 0
-_080968AC:
- .4byte _080968D4
- .4byte _080968E8
- .4byte _080968F4
- .4byte _08096904
- .4byte _0809690E
- .4byte _08096918
- .4byte _0809691E
- .4byte _08096924
- .4byte _0809692A
- .4byte _08096964
-_080968D4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl sub_8096804
- b _0809697A
-_080968E8:
- ldr r0, _080968F0 @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _0809697A
- .align 2, 0
-_080968F0: .4byte gWindowConfig_81E6D00
-_080968F4:
- ldr r0, _08096900 @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _0809697A
- .align 2, 0
-_08096900: .4byte gWindowConfig_81E6D00
-_08096904:
- bl sub_80967DC
- bl sub_8096848
- b _0809697A
-_0809690E:
- bl sub_8098B48
- bl sub_809AA24
- b _0809697A
-_08096918:
- bl sub_8097DE0
- b _0809697A
-_0809691E:
- bl sub_8097E70
- b _0809697A
-_08096924:
- bl sub_8098400
- b _0809697A
-_0809692A:
- ldr r0, _08096950 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096954 @ =gSharedMem
- ldr r1, _08096958 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _0809695C @ =0x000012be
- adds r2, r1
- ldr r1, _08096960 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _0809697A
- .align 2, 0
-_08096950: .4byte gPokemonStorage
-_08096954: .4byte gSharedMem
-_08096958: .4byte 0x000012bc
-_0809695C: .4byte 0x000012be
-_08096960: .4byte 0x0000dacb
-_08096964:
- bl sub_8096874
- ldr r0, _0809698C @ =sub_8096BF0
- bl sub_8096BE0
- ldr r0, _08096990 @ =sub_8096B38
- bl SetMainCallback2
- ldr r0, _08096994 @ =sub_8096AFC
- bl SetVBlankCallback
-_0809697A:
- ldr r1, _08096998 @ =gMain
- ldr r0, _0809699C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096986:
- pop {r0}
- bx r0
- .align 2, 0
-_0809698C: .4byte sub_8096BF0
-_08096990: .4byte sub_8096B38
-_08096994: .4byte sub_8096AFC
-_08096998: .4byte gMain
-_0809699C: .4byte 0x0000043c
- thumb_func_end sub_8096884
-
- thumb_func_start sub_80969A0
-sub_80969A0: @ 80969A0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080969BC @ =gMain
- ldr r1, _080969C0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _080969B2
- b _08096AE4
-_080969B2:
- lsls r0, 2
- ldr r1, _080969C4 @ =_080969C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080969BC: .4byte gMain
-_080969C0: .4byte 0x0000043c
-_080969C4: .4byte _080969C8
- .align 2, 0
-_080969C8:
- .4byte _080969F4
- .4byte _08096A34
- .4byte _08096A40
- .4byte _08096A50
- .4byte _08096A56
- .4byte _08096A60
- .4byte _08096A66
- .4byte _08096A6C
- .4byte _08096A72
- .4byte _08096AAC
- .4byte _08096AC8
-_080969F4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08096A28 @ =gSharedMem
- ldr r0, _08096A2C @ =gUnknown_0203847D
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- bl sub_8096804
- ldr r4, _08096A30 @ =gUnknown_0203847F
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08096A1A
- bl sub_809BBC0
-_08096A1A:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08096AD8
- bl sub_809BD14
- b _08096AD8
- .align 2, 0
-_08096A28: .4byte gSharedMem
-_08096A2C: .4byte gUnknown_0203847D
-_08096A30: .4byte gUnknown_0203847F
-_08096A34:
- ldr r0, _08096A3C @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _08096AD8
- .align 2, 0
-_08096A3C: .4byte gWindowConfig_81E6D00
-_08096A40:
- ldr r0, _08096A4C @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _08096AD8
- .align 2, 0
-_08096A4C: .4byte gWindowConfig_81E6D00
-_08096A50:
- bl sub_80967DC
- b _08096AD8
-_08096A56:
- bl sub_8098B48
- bl sub_809AA98
- b _08096AD8
-_08096A60:
- bl sub_8097DE0
- b _08096AD8
-_08096A66:
- bl sub_8097E70
- b _08096AD8
-_08096A6C:
- bl sub_8098400
- b _08096AD8
-_08096A72:
- ldr r0, _08096A98 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096A9C @ =gSharedMem
- ldr r1, _08096AA0 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _08096AA4 @ =0x000012be
- adds r2, r1
- ldr r1, _08096AA8 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _08096AD8
- .align 2, 0
-_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte gSharedMem
-_08096AA0: .4byte 0x000012bc
-_08096AA4: .4byte 0x000012be
-_08096AA8: .4byte 0x0000dacb
-_08096AAC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08096AC4 @ =sub_8096AFC
- bl SetVBlankCallback
- b _08096AD8
- .align 2, 0
-_08096AC4: .4byte sub_8096AFC
-_08096AC8:
- bl sub_8096874
- ldr r0, _08096AEC @ =sub_8096C68
- bl sub_8096BE0
- ldr r0, _08096AF0 @ =sub_8096B38
- bl SetMainCallback2
-_08096AD8:
- ldr r1, _08096AF4 @ =gMain
- ldr r0, _08096AF8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096AE4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096AEC: .4byte sub_8096C68
-_08096AF0: .4byte sub_8096B38
-_08096AF4: .4byte gMain
-_08096AF8: .4byte 0x0000043c
- thumb_func_end sub_80969A0
-
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =gSharedMem
- ldr r3, _08096B34 @ =0x000008b4
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte gSharedMem
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58 @ =gSharedMem
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte gSharedMem
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70 @ =gSharedMem
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte gSharedMem
-_08096B74:
- ldr r1, _08096B98 @ =0x00002690
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C @ =0x0000268d
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0 @ =0x0000268c
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4 @ =sub_80969A0
- ldr r5, _08096BA8 @ =0x0000268e
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4 @ =gPokemonStorage
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8 @ =0x00008344
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC @ =sub_80969A0
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =gSharedMem
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte gSharedMem
- thumb_func_end sub_8096BE0
-
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte gSharedMem
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48 @ =0x0000dad0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64 @ =sub_8096C84
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80 @ =sub_8096C84
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
- thumb_func_start sub_8096C84
-sub_8096C84: @ 8096C84
- push {r4,lr}
- ldr r0, _08096C9C @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _08096C90
- b _08096FBA
-_08096C90:
- lsls r0, 2
- ldr r1, _08096CA0 @ =_08096CA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096C9C: .4byte gSharedMem
-_08096CA0: .4byte _08096CA4
- .align 2, 0
-_08096CA4:
- .4byte _08096CC0
- .4byte _08096EE0
- .4byte _08096F1C
- .4byte _08096F60
- .4byte _08096F80
- .4byte _08096F8A
- .4byte _08096FA4
-_08096CC0:
- bl sub_809CA40
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0xF
- bls _08096CD0
- b _08096FBA
-_08096CD0:
- lsls r0, 2
- ldr r1, _08096CDC @ =_08096CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096CDC: .4byte _08096CE0
- .align 2, 0
-_08096CE0:
- .4byte _08096D20
- .4byte _08096FBA
- .4byte _08096FBA
- .4byte _08096D94
- .4byte _08096D34
- .4byte _08096D5C
- .4byte _08096DAC
- .4byte _08096DC0
- .4byte _08096DD4
- .4byte _08096DFC
- .4byte _08096E30
- .4byte _08096EB8
- .4byte _08096E70
- .4byte _08096E8C
- .4byte _08096ECC
- .4byte _08096DA0
-_08096D20:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08096D30 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D30: .4byte gSharedMem
-_08096D34:
- ldr r4, _08096D48 @ =gSharedMem
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D4C
- movs r0, 0x10
- bl sub_8098898
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D48: .4byte gSharedMem
-_08096D4C:
- bl sub_809B0D4
- ldr r0, _08096D58 @ =sub_8096FC8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D58: .4byte sub_8096FC8
-_08096D5C:
- ldr r4, _08096D88 @ =gSharedMem
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D66
- b _08096FBA
-_08096D66:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08096D80
- ldr r1, _08096D8C @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- bne _08096E4C
-_08096D80:
- ldr r0, _08096D90 @ =sub_8097004
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D88: .4byte gSharedMem
-_08096D8C: .4byte 0x000011f2
-_08096D90: .4byte sub_8097004
-_08096D94:
- ldr r0, _08096D9C @ =sub_8097BA0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D9C: .4byte sub_8097BA0
-_08096DA0:
- ldr r0, _08096DA8 @ =sub_8097CC0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DA8: .4byte sub_8097CC0
-_08096DAC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DBC @ =sub_809789C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DBC: .4byte sub_809789C
-_08096DC0:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DD0 @ =sub_8097078
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DD0: .4byte sub_8097078
-_08096DD4:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096DF0 @ =gSharedMem
- ldr r0, _08096DF4 @ =gPokemonStorage
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r2, _08096DF8 @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0xD
- ble _08096E18
- movs r0, 0
- b _08096E16
- .align 2, 0
-_08096DF0: .4byte gSharedMem
-_08096DF4: .4byte gPokemonStorage
-_08096DF8: .4byte 0x000008b2
-_08096DFC:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096E24 @ =gSharedMem
- ldr r0, _08096E28 @ =gPokemonStorage
- ldrb r0, [r0]
- subs r0, 0x1
- ldr r2, _08096E2C @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0
- bge _08096E18
- movs r0, 0xD
-_08096E16:
- strh r0, [r1]
-_08096E18:
- ldrb r0, [r1]
- bl sub_8099C70
- movs r0, 0x2
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E24: .4byte gSharedMem
-_08096E28: .4byte gPokemonStorage
-_08096E2C: .4byte 0x000008b2
-_08096E30:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- ldr r4, _08096E54 @ =gSharedMem
- ldr r1, _08096E58 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _08096E5C
-_08096E4C:
- movs r0, 0x5
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E54: .4byte gSharedMem
-_08096E58: .4byte 0x000011f2
-_08096E5C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E6C @ =sub_809746C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E6C: .4byte sub_809746C
-_08096E70:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E88 @ =sub_80972A8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E88: .4byte sub_80972A8
-_08096E8C:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- bne _08096EA4
-_08096E96:
- ldr r1, _08096EA0 @ =gSharedMem
- movs r0, 0x4
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096EA0: .4byte gSharedMem
-_08096EA4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EB4 @ =c3_0808DC50
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EB4: .4byte c3_0808DC50
-_08096EB8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EC8 @ =sub_8097390
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EC8: .4byte sub_8097390
-_08096ECC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EDC @ =sub_80972FC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EDC: .4byte sub_80972FC
-_08096EE0:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- bl sub_809BF48
- lsls r0, 24
- cmp r0, 0
- beq _08096EFA
- bl sub_80986E8
- b _08096EFE
-_08096EFA:
- bl sub_8098710
-_08096EFE:
- ldr r4, _08096F14 @ =gSharedMem
- ldr r2, _08096F18 @ =0x000011f6
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096F0E
- bl BoxSetMosaic
-_08096F0E:
- movs r0, 0
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F14: .4byte gSharedMem
-_08096F18: .4byte 0x000011f6
-_08096F1C:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- ldr r1, _08096F50 @ =gPokemonStorage
- ldr r0, _08096F54 @ =gSharedMem
- ldr r2, _08096F58 @ =0x000008b2
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08096F5C @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096F70
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- bne _08096F70
- bl sub_809B440
- bl BoxSetMosaic
- b _08096F70
- .align 2, 0
-_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte gSharedMem
-_08096F58: .4byte 0x000008b2
-_08096F5C: .4byte gUnknown_0203847C
-_08096F60:
- ldr r0, _08096F78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
-_08096F70:
- ldr r1, _08096F7C @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F78: .4byte gMain
-_08096F7C: .4byte gSharedMem
-_08096F80:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08096F92
-_08096F8A:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08096F92:
- bl sub_8098898
- ldr r1, _08096FA0 @ =gSharedMem
- movs r0, 0x6
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096FA0: .4byte gSharedMem
-_08096FA4:
- ldr r0, _08096FC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
- ldr r0, _08096FC4 @ =sub_8096C84
- bl sub_8096BE0
-_08096FBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096FC0: .4byte gMain
-_08096FC4: .4byte sub_8096C84
- thumb_func_end sub_8096C84
-
thumb_func_start sub_8096FC8
sub_8096FC8: @ 8096FC8
push {r4,lr}
@@ -2661,7 +29,7 @@ _08096FE8:
cmp r0, 0
bne _08096FF8
ldr r0, _08097000 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08096FF8:
pop {r4}
pop {r0}
@@ -2720,7 +88,7 @@ _0809704C:
bl BoxSetMosaic
_08097064:
ldr r0, _08097074 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_0809706A:
pop {r4}
pop {r0}
@@ -2796,7 +164,7 @@ _080970E8:
_08097110:
bl sub_8098A5C
ldr r0, _0809711C @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_0809711C: .4byte sub_8096C84
@@ -2809,7 +177,7 @@ _08097120:
bl PlaySE
bl sub_8098A5C
ldr r0, _0809713C @ =sub_80972A8
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_0809713C: .4byte sub_80972A8
@@ -2818,7 +186,7 @@ _08097140:
bl PlaySE
bl sub_8098A5C
ldr r0, _08097154 @ =sub_80972FC
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_08097154: .4byte sub_80972FC
@@ -2831,7 +199,7 @@ _08097158:
bl PlaySE
bl sub_8098A5C
ldr r0, _08097174 @ =c3_0808DC50
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_08097174: .4byte c3_0808DC50
@@ -2840,7 +208,7 @@ _08097178:
bl PlaySE
bl sub_8098A5C
ldr r0, _0809718C @ =sub_8097390
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_0809718C: .4byte sub_8097390
@@ -2861,7 +229,7 @@ _08097190:
bl PlaySE
bl sub_8098A5C
ldr r0, _080971C8 @ =sub_809746C
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_080971C0: .4byte gSharedMem
@@ -2910,7 +278,7 @@ _0809721C:
movs r0, 0x5
bl PlaySE
ldr r0, _0809722C @ =sub_8097594
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_0809722C: .4byte sub_8097594
@@ -2918,7 +286,7 @@ _08097230:
movs r0, 0x5
bl PlaySE
ldr r0, _08097240 @ =sub_8097788
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_08097240: .4byte sub_8097788
@@ -2926,7 +294,7 @@ _08097244:
movs r0, 0x5
bl PlaySE
ldr r0, _08097254 @ =sub_80977E4
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809729A
.align 2, 0
_08097254: .4byte sub_80977E4
@@ -2961,7 +329,7 @@ _08097284:
beq _0809729A
bl sub_8098A5C
ldr r0, _080972A4 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_0809729A:
pop {r4}
pop {r0}
@@ -3000,14 +368,14 @@ _080972CA:
cmp r0, 0
beq _080972EC
ldr r0, _080972E8 @ =sub_8097858
- bl sub_8096BE0
+ bl SetPSSCallback
b _080972F2
.align 2, 0
_080972E4: .4byte gUnknown_0203847C
_080972E8: .4byte sub_8097858
_080972EC:
ldr r0, _080972F8 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_080972F2:
pop {r4}
pop {r0}
@@ -3045,14 +413,14 @@ _0809731E:
cmp r0, 0
beq _08097340
ldr r0, _0809733C @ =sub_8097858
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097346
.align 2, 0
_08097338: .4byte gUnknown_0203847C
_0809733C: .4byte sub_8097858
_08097340:
ldr r0, _0809734C @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08097346:
pop {r4}
pop {r0}
@@ -3087,7 +455,7 @@ _08097372:
bne _08097386
bl BoxSetMosaic
ldr r0, _0809738C @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08097386:
pop {r4}
pop {r0}
@@ -3152,7 +520,7 @@ _080973FC:
beq _08097462
bl sub_8098A5C
ldr r0, _08097418 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097462
.align 2, 0
_08097414: .4byte gMain
@@ -3188,7 +556,7 @@ _0809744C:
_08097458: .4byte gSharedMem
_0809745C:
ldr r0, _08097468 @ =sub_8097004
- bl sub_8096BE0
+ bl SetPSSCallback
_08097462:
pop {r0}
bx r0
@@ -3301,7 +669,7 @@ _08097548:
bl sub_80987DC
_0809755E:
ldr r0, _08097568 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097584
.align 2, 0
_08097568: .4byte sub_8096C84
@@ -3476,7 +844,7 @@ _080976C8:
b _08097744
_080976E0:
ldr r0, _080976E8 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _0809777A
.align 2, 0
_080976E8: .4byte sub_8096C84
@@ -3549,7 +917,7 @@ _08097764:
beq _0809777A
bl sub_8098A5C
ldr r0, _08097784 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_0809777A:
pop {r4}
pop {r0}
@@ -3652,7 +1020,7 @@ _08097824:
bl sub_809BDD8
bl sub_809801C
ldr r0, _08097854 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_0809784C:
pop {r4}
pop {r0}
@@ -3687,7 +1055,7 @@ _0809787C:
bne _08097890
bl sub_80987DC
ldr r0, _08097898 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08097890:
pop {r4}
pop {r0}
@@ -3750,7 +1118,7 @@ _08097914:
bl sub_809A860
bl sub_8098A5C
ldr r0, _08097928 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097968
.align 2, 0
_08097928: .4byte sub_8096C84
@@ -3758,7 +1126,7 @@ _0809792C:
movs r0, 0x5
bl PlaySE
ldr r0, _0809793C @ =sub_8097B44
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097968
.align 2, 0
_0809793C: .4byte sub_8097B44
@@ -3767,7 +1135,7 @@ _08097940:
bl PlaySE
bl sub_8098A5C
ldr r0, _08097954 @ =sub_8097974
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097968
.align 2, 0
_08097954: .4byte sub_8097974
@@ -3776,7 +1144,7 @@ _08097958:
bl PlaySE
bl sub_8098A5C
ldr r0, _08097970 @ =sub_8097A64
- bl sub_8096BE0
+ bl SetPSSCallback
_08097968:
pop {r4}
pop {r0}
@@ -3825,7 +1193,7 @@ _080979A2:
bl sub_809A860
bl sub_8098A5C
ldr r0, _080979D0 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097A5A
.align 2, 0
_080979CC: .4byte 0x00000d5e
@@ -3890,7 +1258,7 @@ _08097A44:
movs r0, 0x1
bl sub_809A860
ldr r0, _08097A60 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08097A5A:
pop {r4,r5}
pop {r0}
@@ -3963,7 +1331,7 @@ _08097AE4:
movs r0, 0x1
bl sub_809A860
ldr r0, _08097AFC @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097B32
.align 2, 0
_08097AF4: .4byte 0x000008b2
@@ -3992,7 +1360,7 @@ _08097B18:
ldrh r0, [r0]
strb r0, [r1]
ldr r0, _08097B40 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
_08097B32:
pop {r4,r5}
pop {r0}
@@ -4131,7 +1499,7 @@ _08097C46:
_08097C4A:
bl sub_8098A5C
ldr r0, _08097C58 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097CB0
.align 2, 0
_08097C58: .4byte sub_8096C84
@@ -4266,7 +1634,7 @@ _08097D66:
_08097D6C:
bl sub_8098A5C
ldr r0, _08097D78 @ =sub_8096C84
- bl sub_8096BE0
+ bl SetPSSCallback
b _08097DD0
.align 2, 0
_08097D78: .4byte sub_8096C84
@@ -5778,7 +3146,7 @@ sub_8098B48: @ 8098B48
push {r4,r5,lr}
bl sub_809D51C
movs r2, 0
- ldr r1, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r1, _08098BD8 @ =gPokemonStorageSystemPtr
ldr r0, [r1]
ldr r4, _08098BDC @ =0x000010d0
adds r3, r0, r4
@@ -5794,7 +3162,7 @@ _08098B5C:
cmp r2, 0x27
bls _08098B5C
movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, _08098BD8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x89
lsls r1, 5
@@ -5810,7 +3178,7 @@ _08098B7A:
cmp r2, 0x27
bls _08098B7A
movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, _08098BD8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r4, _08098BE0 @ =0x00001038
adds r3, r0, r4
@@ -5825,7 +3193,7 @@ _08098B96:
cmp r2, 0x5
bls _08098B96
movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
+ ldr r0, _08098BD8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08098BE4 @ =0x00001050
adds r3, r0, r1
@@ -5851,7 +3219,7 @@ _08098BB2:
pop {r0}
bx r0
.align 2, 0
-_08098BD8: .4byte gUnknown_083B6DB4
+_08098BD8: .4byte gPokemonStorageSystemPtr
_08098BDC: .4byte 0x000010d0
_08098BE0: .4byte 0x00001038
_08098BE4: .4byte 0x00001050
@@ -5863,7 +3231,7 @@ _08098BEC: .4byte 0x00000d5c
sub_8098BF0: @ 8098BF0
push {r4-r6,lr}
sub sp, 0x8
- ldr r0, _08098C38 @ =gUnknown_083B6DB4
+ ldr r0, _08098C38 @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r0, _08098C3C @ =0x000025b4
adds r4, r5, r0
@@ -5894,7 +3262,7 @@ sub_8098BF0: @ 8098BF0
pop {r0}
bx r0
.align 2, 0
-_08098C38: .4byte gUnknown_083B6DB4
+_08098C38: .4byte gPokemonStorageSystemPtr
_08098C3C: .4byte 0x000025b4
_08098C40: .4byte 0x00001034
_08098C44: .4byte sub_80999C4
@@ -5958,7 +3326,7 @@ _08098C70:
adds r0, r4, 0
asrs r3, 16
bl sub_8099AFC
- ldr r1, _08098CD0 @ =gUnknown_083B6DB4
+ ldr r1, _08098CD0 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
mov r3, r8
lsls r2, r3, 2
@@ -5969,10 +3337,10 @@ _08098C70:
b _08098CE8
.align 2, 0
_08098CCC: .4byte gPokemonStorage + 0x4
-_08098CD0: .4byte gUnknown_083B6DB4
+_08098CD0: .4byte gPokemonStorageSystemPtr
_08098CD4: .4byte 0x00001050
_08098CD8:
- ldr r0, _08098D18 @ =gUnknown_083B6DB4
+ ldr r0, _08098D18 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
mov r2, r8
lsls r1, r2, 2
@@ -6005,7 +3373,7 @@ _08098CE8:
pop {r0}
bx r0
.align 2, 0
-_08098D18: .4byte gUnknown_083B6DB4
+_08098D18: .4byte gPokemonStorageSystemPtr
_08098D1C: .4byte 0x00001050
thumb_func_end sub_8098C48
@@ -6081,7 +3449,7 @@ sub_8098D20: @ 8098D20
adds r2, r5, 0
adds r3, r4, 0
bl sub_8099AFC
- ldr r1, _08098DD8 @ =gUnknown_083B6DB4
+ ldr r1, _08098DD8 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _08098DDC @ =0x00001050
adds r1, r2
@@ -6097,7 +3465,7 @@ _08098DC4:
bx r0
.align 2, 0
_08098DD4: .4byte gPokemonStorage + 0x4
-_08098DD8: .4byte gUnknown_083B6DB4
+_08098DD8: .4byte gPokemonStorageSystemPtr
_08098DDC: .4byte 0x00001050
thumb_func_end sub_8098D20
@@ -6107,7 +3475,7 @@ sub_8098DE0: @ 8098DE0
lsls r0, 16
lsrs r4, r0, 16
movs r2, 0
- ldr r0, _08098E18 @ =gUnknown_083B6DB4
+ ldr r0, _08098E18 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08098E1C @ =0x00001050
adds r3, r0, r1
@@ -6134,7 +3502,7 @@ _08098E08:
pop {r0}
bx r0
.align 2, 0
-_08098E18: .4byte gUnknown_083B6DB4
+_08098E18: .4byte gPokemonStorageSystemPtr
_08098E1C: .4byte 0x00001050
_08098E20: .4byte sub_8098E68
thumb_func_end sub_8098DE0
@@ -6156,7 +3524,7 @@ sub_8098E24: @ 8098E24
strh r0, [r2, 0x20]
b _08098E56
_08098E40:
- ldr r0, _08098E5C @ =gUnknown_083B6DB4
+ ldr r0, _08098E5C @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r3, _08098E60 @ =0x00001178
adds r1, r3
@@ -6171,7 +3539,7 @@ _08098E56:
pop {r0}
bx r0
.align 2, 0
-_08098E5C: .4byte gUnknown_083B6DB4
+_08098E5C: .4byte gPokemonStorageSystemPtr
_08098E60: .4byte 0x00001178
_08098E64: .4byte SpriteCallbackDummy
thumb_func_end sub_8098E24
@@ -6216,7 +3584,7 @@ sub_8098EA0: @ 8098EA0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
- ldr r0, _08098ED8 @ =gUnknown_083B6DB4
+ ldr r0, _08098ED8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08098EDC @ =0x00001050
adds r7, r0, r1
@@ -6242,7 +3610,7 @@ _08098EC2:
pop {r0}
bx r0
.align 2, 0
-_08098ED8: .4byte gUnknown_083B6DB4
+_08098ED8: .4byte gPokemonStorageSystemPtr
_08098EDC: .4byte 0x00001050
thumb_func_end sub_8098EA0
@@ -6287,7 +3655,7 @@ sub_8098EE0: @ 8098EE0
movs r0, 0
str r0, [sp, 0x14]
mov r9, r0
- ldr r0, _08098FF8 @ =gUnknown_083B6DB4
+ ldr r0, _08098FF8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _08098FFC @ =0x0000117d
adds r2, r0
@@ -6388,7 +3756,7 @@ _08098FC8:
pop {r1}
bx r1
.align 2, 0
-_08098FF8: .4byte gUnknown_083B6DB4
+_08098FF8: .4byte gPokemonStorageSystemPtr
_08098FFC: .4byte 0x0000117d
_08099000: .4byte 0x00001050
_08099004: .4byte gPokemonStorage + 0x4
@@ -6400,7 +3768,7 @@ sub_809900C: @ 809900C
push {r4-r6,lr}
lsls r1, 24
lsrs r1, 24
- ldr r4, _08099058 @ =gUnknown_083B6DB4
+ ldr r4, _08099058 @ =gPokemonStorageSystemPtr
ldr r5, [r4]
ldr r3, _0809905C @ =0x0000117c
adds r2, r5, r3
@@ -6435,7 +3803,7 @@ sub_809900C: @ 809900C
movs r0, 0
b _08099076
.align 2, 0
-_08099058: .4byte gUnknown_083B6DB4
+_08099058: .4byte gPokemonStorageSystemPtr
_0809905C: .4byte 0x0000117c
_08099060: .4byte 0x0000117d
_08099064: .4byte 0x0000117b
@@ -6475,7 +3843,7 @@ _080990A8: .4byte 0x00001176
thumb_func_start sub_80990AC
sub_80990AC: @ 80990AC
push {r4-r6,lr}
- ldr r0, _080990D4 @ =gUnknown_083B6DB4
+ ldr r0, _080990D4 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _080990D8 @ =0x00001172
adds r3, r4, r0
@@ -6496,7 +3864,7 @@ _080990C0:
beq _080990E8
b _080991F0
.align 2, 0
-_080990D4: .4byte gUnknown_083B6DB4
+_080990D4: .4byte gPokemonStorageSystemPtr
_080990D8: .4byte 0x00001172
_080990DC: .4byte 0x0000117c
_080990E0:
@@ -6582,7 +3950,7 @@ _08099178:
cmp r0, 0
bne _080991B0
_08099182:
- ldr r0, _080991A8 @ =gUnknown_083B6DB4
+ ldr r0, _080991A8 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r2, _080991AC @ =0x0000117c
adds r1, r2
@@ -6596,10 +3964,10 @@ _08099198: .4byte 0x00001176
_0809919C: .4byte 0x0000117a
_080991A0: .4byte 0x00001178
_080991A4: .4byte 0x0000117b
-_080991A8: .4byte gUnknown_083B6DB4
+_080991A8: .4byte gPokemonStorageSystemPtr
_080991AC: .4byte 0x0000117c
_080991B0:
- ldr r0, _080991D0 @ =gUnknown_083B6DB4
+ ldr r0, _080991D0 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r5, _080991D4 @ =0x0000117a
adds r3, r1, r5
@@ -6615,7 +3983,7 @@ _080991B0:
strb r2, [r1]
b _080991F8
.align 2, 0
-_080991D0: .4byte gUnknown_083B6DB4
+_080991D0: .4byte gPokemonStorageSystemPtr
_080991D4: .4byte 0x0000117a
_080991D8: .4byte 0x0000117b
_080991DC: .4byte 0x0000117c
@@ -6668,7 +4036,7 @@ sub_8099200: @ 8099200
movs r2, 0x68
movs r3, 0x40
bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, _080992A4 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _080992A8 @ =0x00001038
adds r1, r2
@@ -6707,7 +4075,7 @@ _08099246:
adds r0, r5, 0
movs r2, 0x98
bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
+ ldr r1, _080992A4 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
lsls r2, r6, 2
ldr r3, _080992A8 @ =0x00001038
@@ -6720,10 +4088,10 @@ _08099246:
b _080992BA
.align 2, 0
_080992A0: .4byte gPlayerParty
-_080992A4: .4byte gUnknown_083B6DB4
+_080992A4: .4byte gPokemonStorageSystemPtr
_080992A8: .4byte 0x00001038
_080992AC:
- ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, _08099308 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _0809930C @ =0x00001038
@@ -6742,7 +4110,7 @@ _080992BA:
movs r6, 0
cmp r6, r7
bcs _080992FA
- ldr r0, _08099308 @ =gUnknown_083B6DB4
+ ldr r0, _08099308 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809930C @ =0x00001038
adds r3, r0, r1
@@ -6772,7 +4140,7 @@ _080992FA:
pop {r0}
bx r0
.align 2, 0
-_08099308: .4byte gUnknown_083B6DB4
+_08099308: .4byte gPokemonStorageSystemPtr
_0809930C: .4byte 0x00001038
thumb_func_end sub_8099200
@@ -6781,7 +4149,7 @@ sub_8099310: @ 8099310
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _08099368 @ =gUnknown_083B6DB4
+ ldr r0, _08099368 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r0, _0809936C @ =0x00001171
adds r1, r2, r0
@@ -6825,21 +4193,21 @@ _08099354:
pop {r0}
bx r0
.align 2, 0
-_08099368: .4byte gUnknown_083B6DB4
+_08099368: .4byte gPokemonStorageSystemPtr
_0809936C: .4byte 0x00001171
_08099370: .4byte 0x00001038
thumb_func_end sub_8099310
thumb_func_start sub_8099374
sub_8099374: @ 8099374
- ldr r0, _08099380 @ =gUnknown_083B6DB4
+ ldr r0, _08099380 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099384 @ =0x00001171
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
-_08099380: .4byte gUnknown_083B6DB4
+_08099380: .4byte gPokemonStorageSystemPtr
_08099384: .4byte 0x00001171
thumb_func_end sub_8099374
@@ -6953,7 +4321,7 @@ _08099446:
strh r0, [r3, 0x22]
ldr r0, _08099470 @ =SpriteCallbackDummy
str r0, [r3, 0x1C]
- ldr r0, _08099474 @ =gUnknown_083B6DB4
+ ldr r0, _08099474 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
movs r0, 0x30
ldrsh r1, [r3, r0]
@@ -6973,7 +4341,7 @@ _08099468:
bx r0
.align 2, 0
_08099470: .4byte SpriteCallbackDummy
-_08099474: .4byte gUnknown_083B6DB4
+_08099474: .4byte gPokemonStorageSystemPtr
_08099478: .4byte 0x00001038
_0809947C: .4byte 0x00001171
thumb_func_end sub_80993F4
@@ -6981,7 +4349,7 @@ _0809947C: .4byte 0x00001171
thumb_func_start sub_8099480
sub_8099480: @ 8099480
push {r4,lr}
- ldr r0, _080994A0 @ =gUnknown_083B6DB4
+ ldr r0, _080994A0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _080994A4 @ =0x00001034
adds r4, r0, r1
@@ -6996,7 +4364,7 @@ _08099498:
pop {r0}
bx r0
.align 2, 0
-_080994A0: .4byte gUnknown_083B6DB4
+_080994A0: .4byte gPokemonStorageSystemPtr
_080994A4: .4byte 0x00001034
thumb_func_end sub_8099480
@@ -7004,7 +4372,7 @@ _080994A4: .4byte 0x00001034
sub_80994A8: @ 80994A8
push {r4-r6,lr}
movs r3, 0
- ldr r1, _080994FC @ =gUnknown_083B6DB4
+ ldr r1, _080994FC @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _08099500 @ =0x00001038
adds r5, r1, r2
@@ -7046,7 +4414,7 @@ _080994BC:
strb r1, [r0]
b _0809950E
.align 2, 0
-_080994FC: .4byte gUnknown_083B6DB4
+_080994FC: .4byte gPokemonStorageSystemPtr
_08099500: .4byte 0x00001038
_08099504:
adds r2, 0x3E
@@ -7069,7 +4437,7 @@ _0809950E:
sub_8099520: @ 8099520
push {r4,lr}
lsls r0, 24
- ldr r1, _08099544 @ =gUnknown_083B6DB4
+ ldr r1, _08099544 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
lsrs r0, 22
ldr r2, _08099548 @ =0x00001038
@@ -7086,7 +4454,7 @@ _0809953E:
pop {r0}
bx r0
.align 2, 0
-_08099544: .4byte gUnknown_083B6DB4
+_08099544: .4byte gPokemonStorageSystemPtr
_08099548: .4byte 0x00001038
thumb_func_end sub_8099520
@@ -7094,7 +4462,7 @@ _08099548: .4byte 0x00001038
sub_809954C: @ 809954C
push {r4-r6,lr}
movs r5, 0
- ldr r0, _0809957C @ =gUnknown_083B6DB4
+ ldr r0, _0809957C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099580 @ =0x00001038
adds r6, r0, r1
@@ -7117,7 +4485,7 @@ _0809956A:
pop {r0}
bx r0
.align 2, 0
-_0809957C: .4byte gUnknown_083B6DB4
+_0809957C: .4byte gPokemonStorageSystemPtr
_08099580: .4byte 0x00001038
thumb_func_end sub_809954C
@@ -7131,7 +4499,7 @@ sub_8099584: @ 8099584
adds r5, r1, 0
cmp r4, 0
bne _080995B4
- ldr r3, _080995AC @ =gUnknown_083B6DB4
+ ldr r3, _080995AC @ =gPokemonStorageSystemPtr
ldr r0, [r3]
ldr r5, _080995B0 @ =0x00001034
adds r2, r0, r5
@@ -7144,12 +4512,12 @@ sub_8099584: @ 8099584
str r4, [r0]
b _080995D0
.align 2, 0
-_080995AC: .4byte gUnknown_083B6DB4
+_080995AC: .4byte gPokemonStorageSystemPtr
_080995B0: .4byte 0x00001034
_080995B4:
cmp r4, 0x1
bne _080995F4
- ldr r3, _080995FC @ =gUnknown_083B6DB4
+ ldr r3, _080995FC @ =gPokemonStorageSystemPtr
ldr r0, [r3]
ldr r1, _08099600 @ =0x00001034
adds r2, r0, r1
@@ -7185,7 +4553,7 @@ _080995F4:
pop {r0}
bx r0
.align 2, 0
-_080995FC: .4byte gUnknown_083B6DB4
+_080995FC: .4byte gPokemonStorageSystemPtr
_08099600: .4byte 0x00001034
_08099604: .4byte 0x00001050
_08099608: .4byte sub_80999C4
@@ -7200,7 +4568,7 @@ sub_809960C: @ 809960C
lsrs r6, r1, 24
cmp r0, 0xE
bne _08099654
- ldr r4, _08099648 @ =gUnknown_083B6DB4
+ ldr r4, _08099648 @ =gPokemonStorageSystemPtr
ldr r0, [r4]
lsls r1, r6, 2
ldr r2, _0809964C @ =0x00001038
@@ -7223,11 +4591,11 @@ sub_809960C: @ 809960C
strb r1, [r0]
b _0809968A
.align 2, 0
-_08099648: .4byte gUnknown_083B6DB4
+_08099648: .4byte gPokemonStorageSystemPtr
_0809964C: .4byte 0x00001038
_08099650: .4byte 0x00001034
_08099654:
- ldr r5, _080996A0 @ =gUnknown_083B6DB4
+ ldr r5, _080996A0 @ =gPokemonStorageSystemPtr
ldr r0, [r5]
lsls r1, r6, 2
ldr r2, _080996A4 @ =0x00001050
@@ -7266,7 +4634,7 @@ _0809968A:
pop {r0}
bx r0
.align 2, 0
-_080996A0: .4byte gUnknown_083B6DB4
+_080996A0: .4byte gPokemonStorageSystemPtr
_080996A4: .4byte 0x00001050
_080996A8: .4byte 0x00001034
_080996AC: .4byte SpriteCallbackDummy
@@ -7281,7 +4649,7 @@ sub_80996B0: @ 80996B0
lsrs r4, r1, 24
cmp r0, 0xE
bne _080996D8
- ldr r3, _080996CC @ =gUnknown_083B6DB4
+ ldr r3, _080996CC @ =gPokemonStorageSystemPtr
ldr r1, [r3]
ldr r0, _080996D0 @ =0x000010c8
adds r2, r1, r0
@@ -7289,11 +4657,11 @@ sub_80996B0: @ 80996B0
ldr r4, _080996D4 @ =0x00001038
b _080996E4
.align 2, 0
-_080996CC: .4byte gUnknown_083B6DB4
+_080996CC: .4byte gPokemonStorageSystemPtr
_080996D0: .4byte 0x000010c8
_080996D4: .4byte 0x00001038
_080996D8:
- ldr r3, _08099704 @ =gUnknown_083B6DB4
+ ldr r3, _08099704 @ =gPokemonStorageSystemPtr
ldr r1, [r3]
ldr r0, _08099708 @ =0x000010c8
adds r2, r1, r0
@@ -7317,7 +4685,7 @@ _080996E4:
pop {r0}
bx r0
.align 2, 0
-_08099704: .4byte gUnknown_083B6DB4
+_08099704: .4byte gPokemonStorageSystemPtr
_08099708: .4byte 0x000010c8
_0809970C: .4byte 0x00001050
_08099710: .4byte 0x00001034
@@ -7328,7 +4696,7 @@ _08099718: .4byte 0x00001170
thumb_func_start sub_809971C
sub_809971C: @ 809971C
push {r4-r7,lr}
- ldr r0, _08099730 @ =gUnknown_083B6DB4
+ ldr r0, _08099730 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r0, _08099734 @ =0x00001170
adds r7, r2, r0
@@ -7338,7 +4706,7 @@ sub_809971C: @ 809971C
movs r0, 0
b _08099800
.align 2, 0
-_08099730: .4byte gUnknown_083B6DB4
+_08099730: .4byte gPokemonStorageSystemPtr
_08099734: .4byte 0x00001170
_08099738:
adds r0, 0x1
@@ -7478,7 +4846,7 @@ _08099836:
beq _0809987C
b _080998C0
_0809983C:
- ldr r3, _0809984C @ =gUnknown_083B6DB4
+ ldr r3, _0809984C @ =gPokemonStorageSystemPtr
ldr r1, [r3]
ldr r0, _08099850 @ =0x000010cc
adds r2, r1, r0
@@ -7486,11 +4854,11 @@ _0809983C:
ldr r4, _08099854 @ =0x00001038
b _08099864
.align 2, 0
-_0809984C: .4byte gUnknown_083B6DB4
+_0809984C: .4byte gPokemonStorageSystemPtr
_08099850: .4byte 0x000010cc
_08099854: .4byte 0x00001038
_08099858:
- ldr r3, _08099870 @ =gUnknown_083B6DB4
+ ldr r3, _08099870 @ =gPokemonStorageSystemPtr
ldr r1, [r3]
ldr r0, _08099874 @ =0x000010cc
adds r2, r1, r0
@@ -7503,11 +4871,11 @@ _08099864:
adds r0, r3, 0
b _0809988A
.align 2, 0
-_08099870: .4byte gUnknown_083B6DB4
+_08099870: .4byte gPokemonStorageSystemPtr
_08099874: .4byte 0x000010cc
_08099878: .4byte 0x00001050
_0809987C:
- ldr r0, _080998C8 @ =gUnknown_083B6DB4
+ ldr r0, _080998C8 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r3, _080998CC @ =0x000010cc
adds r2, r1, r3
@@ -7545,7 +4913,7 @@ _080998C0:
pop {r0}
bx r0
.align 2, 0
-_080998C8: .4byte gUnknown_083B6DB4
+_080998C8: .4byte gPokemonStorageSystemPtr
_080998CC: .4byte 0x000010cc
_080998D0: .4byte 0x00001034
_080998D4: .4byte gSpriteAffineAnimTable_83B6F5C
@@ -7554,7 +4922,7 @@ _080998D4: .4byte gSpriteAffineAnimTable_83B6F5C
thumb_func_start sub_80998D8
sub_80998D8: @ 80998D8
push {lr}
- ldr r0, _080998FC @ =gUnknown_083B6DB4
+ ldr r0, _080998FC @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099900 @ =0x000010cc
adds r0, r1
@@ -7573,7 +4941,7 @@ _080998F8:
movs r0, 0
b _0809991A
.align 2, 0
-_080998FC: .4byte gUnknown_083B6DB4
+_080998FC: .4byte gPokemonStorageSystemPtr
_08099900: .4byte 0x000010cc
_08099904:
adds r0, r1, 0
@@ -7596,7 +4964,7 @@ _0809991A:
thumb_func_start sub_8099920
sub_8099920: @ 8099920
push {r4,lr}
- ldr r0, _08099950 @ =gUnknown_083B6DB4
+ ldr r0, _08099950 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099954 @ =0x000010cc
adds r4, r0, r1
@@ -7619,14 +4987,14 @@ _0809994A:
pop {r0}
bx r0
.align 2, 0
-_08099950: .4byte gUnknown_083B6DB4
+_08099950: .4byte gPokemonStorageSystemPtr
_08099954: .4byte 0x000010cc
thumb_func_end sub_8099920
thumb_func_start sub_8099958
sub_8099958: @ 8099958
push {lr}
- ldr r0, _08099988 @ =gUnknown_083B6DB4
+ ldr r0, _08099988 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809998C @ =0x000010cc
adds r3, r0, r1
@@ -7649,14 +5017,14 @@ _08099982:
pop {r0}
bx r0
.align 2, 0
-_08099988: .4byte gUnknown_083B6DB4
+_08099988: .4byte gPokemonStorageSystemPtr
_0809998C: .4byte 0x000010cc
thumb_func_end sub_8099958
thumb_func_start sub_8099990
sub_8099990: @ 8099990
push {lr}
- ldr r0, _080999A4 @ =gUnknown_083B6DB4
+ ldr r0, _080999A4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _080999A8 @ =0x000010cc
adds r2, r0, r1
@@ -7666,7 +5034,7 @@ sub_8099990: @ 8099990
movs r0, 0
b _080999C0
.align 2, 0
-_080999A4: .4byte gUnknown_083B6DB4
+_080999A4: .4byte gPokemonStorageSystemPtr
_080999A8: .4byte 0x000010cc
_080999AC:
ldr r0, [r0]
@@ -7687,7 +5055,7 @@ _080999C0:
thumb_func_start sub_80999C4
sub_80999C4: @ 80999C4
- ldr r1, _080999E4 @ =gUnknown_083B6DB4
+ ldr r1, _080999E4 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
movs r2, 0x8E
lsls r2, 5
@@ -7703,7 +5071,7 @@ sub_80999C4: @ 80999C4
strh r1, [r0, 0x22]
bx lr
.align 2, 0
-_080999E4: .4byte gUnknown_083B6DB4
+_080999E4: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_80999C4
thumb_func_start sub_80999E8
@@ -7712,7 +5080,7 @@ sub_80999E8: @ 80999E8
lsls r0, 16
lsrs r3, r0, 16
movs r4, 0
- ldr r1, _08099A58 @ =gUnknown_083B6DB4
+ ldr r1, _08099A58 @ =gPokemonStorageSystemPtr
ldr r0, [r1]
movs r2, 0x89
lsls r2, 5
@@ -7768,7 +5136,7 @@ _08099A4E:
ldr r0, _08099A5C @ =0x0000ffff
b _08099A94
.align 2, 0
-_08099A58: .4byte gUnknown_083B6DB4
+_08099A58: .4byte gPokemonStorageSystemPtr
_08099A5C: .4byte 0x0000ffff
_08099A60:
ldr r1, [r2]
@@ -7813,7 +5181,7 @@ sub_8099AAC: @ 8099AAC
lsls r0, 16
lsrs r6, r0, 16
movs r3, 0
- ldr r0, _08099AE4 @ =gUnknown_083B6DB4
+ ldr r0, _08099AE4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x89
lsls r1, 5
@@ -7838,7 +5206,7 @@ _08099AC6:
strh r0, [r2]
b _08099AF6
.align 2, 0
-_08099AE4: .4byte gUnknown_083B6DB4
+_08099AE4: .4byte gPokemonStorageSystemPtr
_08099AE8: .4byte 0x0000ffff
_08099AEC:
adds r0, r3, 0x1
@@ -7982,7 +5350,7 @@ sub_8099BF8: @ 8099BF8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _08099C50 @ =gUnknown_083B6DB4
+ ldr r0, _08099C50 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099C54 @ =0x000008ba
adds r2, r0, r1
@@ -8017,7 +5385,7 @@ sub_8099BF8: @ 8099BF8
pop {r0}
bx r0
.align 2, 0
-_08099C50: .4byte gUnknown_083B6DB4
+_08099C50: .4byte gPokemonStorageSystemPtr
_08099C54: .4byte 0x000008ba
_08099C58: .4byte 0x000008b4
_08099C5C: .4byte 0x040000d4
@@ -8039,7 +5407,7 @@ sub_8099C70: @ 8099C70
adds r0, r5, 0
adds r1, r4, 0
bl sub_8099EB0
- ldr r0, _08099D10 @ =gUnknown_083B6DB4
+ ldr r0, _08099D10 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
lsls r0, r4, 1
adds r0, r4
@@ -8107,7 +5475,7 @@ _08099CD6:
pop {r0}
bx r0
.align 2, 0
-_08099D10: .4byte gUnknown_083B6DB4
+_08099D10: .4byte gPokemonStorageSystemPtr
_08099D14: .4byte 0x000008b6
_08099D18: .4byte 0x000008b8
_08099D1C: .4byte 0x000008bb
@@ -8124,7 +5492,7 @@ sub_8099D34: @ 8099D34
bl sub_80990AC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _08099D78 @ =gUnknown_083B6DB4
+ ldr r0, _08099D78 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _08099D7C @ =0x000008b8
adds r3, r1, r0
@@ -8153,7 +5521,7 @@ _08099D74:
movs r0, 0x1
b _08099D8A
.align 2, 0
-_08099D78: .4byte gUnknown_083B6DB4
+_08099D78: .4byte gPokemonStorageSystemPtr
_08099D7C: .4byte 0x000008b8
_08099D80: .4byte 0x000008b4
_08099D84: .4byte 0x000001ff
@@ -8216,7 +5584,7 @@ sub_8099DCC: @ 8099DCC
adds r0, r1
movs r1, 0
strb r4, [r0]
- ldr r0, _08099E00 @ =gUnknown_083B6DB4
+ ldr r0, _08099E00 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _08099E04 @ =0x00001032
adds r0, r2
@@ -8227,7 +5595,7 @@ sub_8099DCC: @ 8099DCC
.align 2, 0
_08099DF8: .4byte gPokemonStorage
_08099DFC: .4byte 0x000083c2
-_08099E00: .4byte gUnknown_083B6DB4
+_08099E00: .4byte gPokemonStorageSystemPtr
_08099E04: .4byte 0x00001032
thumb_func_end sub_8099DCC
@@ -8235,7 +5603,7 @@ _08099E04: .4byte 0x00001032
sub_8099E08: @ 8099E08
push {r4,r5,lr}
sub sp, 0x4
- ldr r0, _08099E24 @ =gUnknown_083B6DB4
+ ldr r0, _08099E24 @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r0, _08099E28 @ =0x00001032
adds r4, r5, r0
@@ -8248,7 +5616,7 @@ sub_8099E08: @ 8099E08
beq _08099E36
b _08099EA6
.align 2, 0
-_08099E24: .4byte gUnknown_083B6DB4
+_08099E24: .4byte gPokemonStorageSystemPtr
_08099E28: .4byte 0x00001032
_08099E2C:
cmp r0, 0x2
@@ -8325,7 +5693,7 @@ sub_8099EB0: @ 8099EB0
lsrs r7, r1, 24
cmp r1, 0
beq _08099ED8
- ldr r0, _08099F38 @ =gUnknown_083B6DB4
+ ldr r0, _08099F38 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r2, 0
ldr r3, _08099F3C @ =0x000008ba
@@ -8348,7 +5716,7 @@ _08099ED8:
ldr r0, _08099F4C @ =gWallpaperTable
adds r4, r0
ldr r0, [r4, 0xC]
- ldr r1, _08099F38 @ =gUnknown_083B6DB4
+ ldr r1, _08099F38 @ =gPokemonStorageSystemPtr
ldr r5, [r1]
ldr r2, _08099F3C @ =0x000008ba
adds r6, r5, r2
@@ -8383,7 +5751,7 @@ _08099ED8:
pop {r0}
bx r0
.align 2, 0
-_08099F38: .4byte gUnknown_083B6DB4
+_08099F38: .4byte gPokemonStorageSystemPtr
_08099F3C: .4byte 0x000008ba
_08099F40: .4byte 0x0600d000
_08099F44: .4byte gPokemonStorage
@@ -8414,7 +5782,7 @@ sub_8099F58: @ 8099F58
lsls r0, 28
lsrs r0, 16
str r0, [sp, 0x4]
- ldr r0, _08099FB8 @ =gUnknown_083B6DB4
+ ldr r0, _08099FB8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _08099FBC @ =0x000008b4
adds r0, r1
@@ -8443,7 +5811,7 @@ sub_8099F58: @ 8099F58
movs r7, 0
b _0809A020
.align 2, 0
-_08099FB8: .4byte gUnknown_083B6DB4
+_08099FB8: .4byte gPokemonStorageSystemPtr
_08099FBC: .4byte 0x000008b4
_08099FC0:
cmp r2, 0x1F
@@ -8666,7 +6034,7 @@ _0809A13A:
sub_809A14C: @ 809A14C
push {r4-r6,lr}
adds r2, r0, 0
- ldr r0, _0809A174 @ =gUnknown_083B6DB4
+ ldr r0, _0809A174 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809A178 @ =0x000008b4
adds r0, r1
@@ -8685,7 +6053,7 @@ sub_809A14C: @ 809A14C
adds r0, r6
b _0809A184
.align 2, 0
-_0809A174: .4byte gUnknown_083B6DB4
+_0809A174: .4byte gPokemonStorageSystemPtr
_0809A178: .4byte 0x000008b4
_0809A17C:
lsls r0, 1
@@ -8801,7 +6169,7 @@ sub_809A23C: @ 809A23C
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r0, _0809A384 @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r1, _0809A388 @ =0x000008ca
adds r7, r5, r1
@@ -8913,7 +6281,7 @@ _0809A328:
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
+ ldr r0, _0809A384 @ =gPokemonStorageSystemPtr
ldr r5, [r0]
lsls r0, r4, 2
movs r3, 0xCF
@@ -8947,7 +6315,7 @@ _0809A328:
pop {r0}
bx r0
.align 2, 0
-_0809A384: .4byte gUnknown_083B6DB4
+_0809A384: .4byte gPokemonStorageSystemPtr
_0809A388: .4byte 0x000008ca
_0809A38C: .4byte 0x00030200
_0809A390: .4byte 0x00000ccc
@@ -8982,7 +6350,7 @@ sub_809A3D0: @ 809A3D0
lsls r1, 24
lsrs r1, 24
mov r10, r1
- ldr r3, _0809A43C @ =gUnknown_083B6DB4
+ ldr r3, _0809A43C @ =gPokemonStorageSystemPtr
ldr r5, [r3]
ldr r1, _0809A440 @ =0x000008ca
adds r0, r5, r1
@@ -9025,7 +6393,7 @@ _0809A41E:
mov r8, r0
b _0809A478
.align 2, 0
-_0809A43C: .4byte gUnknown_083B6DB4
+_0809A43C: .4byte gPokemonStorageSystemPtr
_0809A440: .4byte 0x000008ca
_0809A444: .4byte 0x0000ffff
_0809A448: .4byte 0x00030200
@@ -9111,7 +6479,7 @@ _0809A4DE:
bl CreateSprite
lsls r0, 24
lsrs r0, 24
- ldr r1, _0809A584 @ =gUnknown_083B6DB4
+ ldr r1, _0809A584 @ =gPokemonStorageSystemPtr
ldr r4, [r1]
lsls r6, r7, 2
ldr r1, _0809A588 @ =0x00000cf8
@@ -9174,7 +6542,7 @@ _0809A574: .4byte 0x0000dac9
_0809A578: .4byte 0x000008ca
_0809A57C: .4byte gPokemonStorage + 0x8344
_0809A580: .4byte gUnknown_083BB0A8
-_0809A584: .4byte gUnknown_083B6DB4
+_0809A584: .4byte gPokemonStorageSystemPtr
_0809A588: .4byte 0x00000cf8
_0809A58C: .4byte gSprites
_0809A590: .4byte sub_809A5E8
@@ -9184,7 +6552,7 @@ _0809A594: .4byte sub_809A61C
thumb_func_start sub_809A598
sub_809A598: @ 809A598
push {lr}
- ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
+ ldr r0, _0809A5B0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809A5B4 @ =0x00000cca
adds r0, r1
@@ -9195,13 +6563,13 @@ sub_809A598: @ 809A598
bl FreeSpriteTilesByTag
b _0809A5BE
.align 2, 0
-_0809A5B0: .4byte gUnknown_083B6DB4
+_0809A5B0: .4byte gPokemonStorageSystemPtr
_0809A5B4: .4byte 0x00000cca
_0809A5B8:
movs r0, 0x3
bl FreeSpriteTilesByTag
_0809A5BE:
- ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
+ ldr r0, _0809A5E0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r3, 0xCF
lsls r3, 4
@@ -9219,7 +6587,7 @@ _0809A5BE:
pop {r0}
bx r0
.align 2, 0
-_0809A5E0: .4byte gUnknown_083B6DB4
+_0809A5E0: .4byte gPokemonStorageSystemPtr
_0809A5E4: .4byte 0x00000cf4
thumb_func_end sub_809A598
@@ -9298,7 +6666,7 @@ sub_809A654: @ 809A654
adds r1, r2
adds r0, r1
ldrb r1, [r0]
- ldr r0, _0809A698 @ =gUnknown_083B6DB4
+ ldr r0, _0809A698 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r3, _0809A69C @ =0x00000cca
adds r0, r2, r3
@@ -9320,7 +6688,7 @@ sub_809A654: @ 809A654
.align 2, 0
_0809A690: .4byte gPokemonStorage
_0809A694: .4byte 0x000083c2
-_0809A698: .4byte gUnknown_083B6DB4
+_0809A698: .4byte gPokemonStorageSystemPtr
_0809A69C: .4byte 0x00000cca
_0809A6A0: .4byte gUnknown_083BB0A8
_0809A6A4: .4byte gPlttBufferUnfaded
@@ -9396,7 +6764,7 @@ _0809A6EC:
adds r0, r1, 0
_0809A72C:
strh r0, [r4, 0x34]
- ldr r0, _0809A770 @ =gUnknown_083B6DB4
+ ldr r0, _0809A770 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
lsls r1, r5, 2
movs r2, 0xD0
@@ -9425,7 +6793,7 @@ _0809A760: .4byte gUnknown_083BB288
_0809A764: .4byte gUnknown_083BB290
_0809A768: .4byte gSpriteTemplate_83BB2F0
_0809A76C: .4byte gSprites
-_0809A770: .4byte gUnknown_083B6DB4
+_0809A770: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809A6DC
thumb_func_start sub_809A774
@@ -9434,7 +6802,7 @@ sub_809A774: @ 809A774
lsls r0, 24
lsrs r6, r0, 24
movs r2, 0
- ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
+ ldr r7, _0809A7C4 @ =gPokemonStorageSystemPtr
ldr r0, [r7]
movs r1, 0xD0
lsls r1, 4
@@ -9472,7 +6840,7 @@ _0809A78A:
movs r2, 0x48
b _0809A7E8
.align 2, 0
-_0809A7C4: .4byte gUnknown_083B6DB4
+_0809A7C4: .4byte gPokemonStorageSystemPtr
_0809A7C8: .4byte 0x00000d04
_0809A7CC:
ldr r1, [r7]
@@ -9516,7 +6884,7 @@ _0809A80C: .4byte 0x00000d04
sub_809A810: @ 809A810
push {r4-r6,lr}
movs r3, 0
- ldr r0, _0809A85C @ =gUnknown_083B6DB4
+ ldr r0, _0809A85C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0xD0
lsls r1, 4
@@ -9552,7 +6920,7 @@ _0809A824:
pop {r0}
bx r0
.align 2, 0
-_0809A85C: .4byte gUnknown_083B6DB4
+_0809A85C: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809A810
thumb_func_start sub_809A860
@@ -9562,7 +6930,7 @@ sub_809A860: @ 809A860
cmp r0, 0
beq _0809A89C
movs r2, 0
- ldr r0, _0809A898 @ =gUnknown_083B6DB4
+ ldr r0, _0809A898 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0xD0
lsls r1, 4
@@ -9587,10 +6955,10 @@ _0809A878:
bls _0809A878
b _0809A8BC
.align 2, 0
-_0809A898: .4byte gUnknown_083B6DB4
+_0809A898: .4byte gPokemonStorageSystemPtr
_0809A89C:
movs r2, 0
- ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
+ ldr r0, _0809A8C4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r3, 0xD0
lsls r3, 4
@@ -9611,7 +6979,7 @@ _0809A8BC:
pop {r0}
bx r0
.align 2, 0
-_0809A8C4: .4byte gUnknown_083B6DB4
+_0809A8C4: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809A860
thumb_func_start sub_809A8C8
@@ -9669,7 +7037,7 @@ _0809A92C:
strh r0, [r2, 0x2E]
b _0809A994
_0809A932:
- ldr r0, _0809A97C @ =gUnknown_083B6DB4
+ ldr r0, _0809A97C @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809A980 @ =0x000008b6
adds r1, r0
@@ -9708,10 +7076,10 @@ _0809A958:
strh r0, [r2, 0x2E]
b _0809A994
.align 2, 0
-_0809A97C: .4byte gUnknown_083B6DB4
+_0809A97C: .4byte gPokemonStorageSystemPtr
_0809A980: .4byte 0x000008b6
_0809A984:
- ldr r0, _0809A998 @ =gUnknown_083B6DB4
+ ldr r0, _0809A998 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809A99C @ =0x000008b6
adds r0, r1
@@ -9723,7 +7091,7 @@ _0809A994:
pop {r0}
bx r0
.align 2, 0
-_0809A998: .4byte gUnknown_083B6DB4
+_0809A998: .4byte gPokemonStorageSystemPtr
_0809A99C: .4byte 0x000008b6
thumb_func_end sub_809A8C8
@@ -9797,7 +7165,7 @@ _0809AA1A:
thumb_func_start sub_809AA24
sub_809AA24: @ 809AA24
push {lr}
- ldr r0, _0809AA38 @ =gUnknown_083B6DB4
+ ldr r0, _0809AA38 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
cmp r1, 0x1
@@ -9807,7 +7175,7 @@ sub_809AA24: @ 809AA24
strb r0, [r1]
b _0809AA44
.align 2, 0
-_0809AA38: .4byte gUnknown_083B6DB4
+_0809AA38: .4byte gPokemonStorageSystemPtr
_0809AA3C: .4byte gUnknown_020384E4
_0809AA40:
ldr r0, _0809AA78 @ =gUnknown_020384E4
@@ -9826,7 +7194,7 @@ _0809AA44:
strb r1, [r0]
bl sub_809B0D4
bl sub_809CC04
- ldr r0, _0809AA90 @ =gUnknown_083B6DB4
+ ldr r0, _0809AA90 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809AA94 @ =0x000011e2
adds r0, r1
@@ -9842,7 +7210,7 @@ _0809AA80: .4byte gUnknown_020384E6
_0809AA84: .4byte gUnknown_020384E7
_0809AA88: .4byte gUnknown_020384E8
_0809AA8C: .4byte gUnknown_020384E9
-_0809AA90: .4byte gUnknown_083B6DB4
+_0809AA90: .4byte gPokemonStorageSystemPtr
_0809AA94: .4byte 0x000011e2
thumb_func_end sub_809AA24
@@ -9851,7 +7219,7 @@ sub_809AA98: @ 809AA98
push {lr}
bl sub_809CC04
bl sub_809C028
- ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
+ ldr r0, _0809AAC0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809AAC4 @ =0x000011e2
adds r0, r1
@@ -9866,7 +7234,7 @@ _0809AABA:
pop {r0}
bx r0
.align 2, 0
-_0809AAC0: .4byte gUnknown_083B6DB4
+_0809AAC0: .4byte gPokemonStorageSystemPtr
_0809AAC4: .4byte 0x000011e2
_0809AAC8: .4byte gUnknown_020384E6
thumb_func_end sub_809AA98
@@ -10036,7 +7404,7 @@ _0809ABFA:
thumb_func_start sub_809AC00
sub_809AC00: @ 809AC00
push {r4-r6,lr}
- ldr r0, _0809AC14 @ =gUnknown_083B6DB4
+ ldr r0, _0809AC14 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809AC18 @ =0x000011dc
adds r1, r4, r0
@@ -10046,7 +7414,7 @@ sub_809AC00: @ 809AC00
movs r0, 0
b _0809AD2C
.align 2, 0
-_0809AC14: .4byte gUnknown_083B6DB4
+_0809AC14: .4byte gPokemonStorageSystemPtr
_0809AC18: .4byte 0x000011dc
_0809AC1C:
subs r0, 0x1
@@ -10211,7 +7579,7 @@ sub_809AD3C: @ 809AD3C
mov r2, sp
adds r3, r6, 0
bl sub_809AACC
- ldr r0, _0809AD88 @ =gUnknown_083B6DB4
+ ldr r0, _0809AD88 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
movs r2, 0x8F
lsls r2, 5
@@ -10234,7 +7602,7 @@ sub_809AD3C: @ 809AD3C
pop {r0}
bx r0
.align 2, 0
-_0809AD88: .4byte gUnknown_083B6DB4
+_0809AD88: .4byte gPokemonStorageSystemPtr
_0809AD8C: .4byte 0x000011e1
_0809AD90: .4byte 0x000011da
thumb_func_end sub_809AD3C
@@ -10242,7 +7610,7 @@ _0809AD90: .4byte 0x000011da
thumb_func_start sub_809AD94
sub_809AD94: @ 809AD94
push {r4-r7,lr}
- ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
+ ldr r0, _0809ADB0 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r3, _0809ADB4 @ =0x000011de
adds r1, r2, r3
@@ -10255,7 +7623,7 @@ sub_809AD94: @ 809AD94
movs r0, 0xC
b _0809ADC2
.align 2, 0
-_0809ADB0: .4byte gUnknown_083B6DB4
+_0809ADB0: .4byte gPokemonStorageSystemPtr
_0809ADB4: .4byte 0x000011de
_0809ADB8: .4byte 0x000011dc
_0809ADBC:
@@ -10445,7 +7813,7 @@ sub_809AF18: @ 809AF18
ldrb r0, [r0]
cmp r0, 0
bne _0809AF46
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, _0809AFA8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -10462,7 +7830,7 @@ _0809AF46:
asrs r0, 24
cmp r0, 0x1
beq _0809AF70
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, _0809AFA8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _0809AFB0 @ =0x000011e2
adds r1, r0, r2
@@ -10482,7 +7850,7 @@ _0809AF70:
blt _0809AF9E
cmp r4, 0x3
bgt _0809AF9E
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
+ ldr r0, _0809AFA8 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r0, _0809AFB4 @ =0x000011c4
adds r2, r0
@@ -10505,7 +7873,7 @@ _0809AF9E:
bx r0
.align 2, 0
_0809AFA4: .4byte gUnknown_020384E6
-_0809AFA8: .4byte gUnknown_083B6DB4
+_0809AFA8: .4byte gPokemonStorageSystemPtr
_0809AFAC: .4byte gUnknown_020384E4
_0809AFB0: .4byte 0x000011e2
_0809AFB4: .4byte 0x000011c4
@@ -10515,7 +7883,7 @@ _0809AFB4: .4byte 0x000011c4
sub_809AFB8: @ 809AFB8
push {r4,r5,lr}
ldr r5, _0809B000 @ =gUnknown_020384E4
- ldr r0, _0809B004 @ =gUnknown_083B6DB4
+ ldr r0, _0809B004 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
movs r1, 0x8F
lsls r1, 5
@@ -10550,7 +7918,7 @@ _0809AFEA:
b _0809B05E
.align 2, 0
_0809B000: .4byte gUnknown_020384E4
-_0809B004: .4byte gUnknown_083B6DB4
+_0809B004: .4byte gPokemonStorageSystemPtr
_0809B008: .4byte gUnknown_020384E5
_0809B00C: .4byte 0x000011e1
_0809B010: .4byte gUnknown_020384E6
@@ -10619,7 +7987,7 @@ _0809B07C:
bls _0809B08A
movs r3, 0x5
_0809B08A:
- ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
+ ldr r0, _0809B0B8 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -10642,7 +8010,7 @@ _0809B0AA:
pop {r0}
bx r0
.align 2, 0
-_0809B0B8: .4byte gUnknown_083B6DB4
+_0809B0B8: .4byte gPokemonStorageSystemPtr
_0809B0BC: .4byte 0x000011e3
thumb_func_end sub_809B068
@@ -10692,7 +8060,7 @@ _0809B0FC: .4byte gUnknown_020384EA
thumb_func_start sub_809B100
sub_809B100: @ 809B100
lsls r0, 24
- ldr r1, _0809B120 @ =gUnknown_083B6DB4
+ ldr r1, _0809B120 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _0809B124 @ =0x000012a4
adds r3, r1, r2
@@ -10707,7 +8075,7 @@ sub_809B100: @ 809B100
strb r0, [r1]
bx lr
.align 2, 0
-_0809B120: .4byte gUnknown_083B6DB4
+_0809B120: .4byte gPokemonStorageSystemPtr
_0809B124: .4byte 0x000012a4
_0809B128: .4byte gUnknown_083BBBC8
_0809B12C: .4byte 0x000012a8
@@ -10716,7 +8084,7 @@ _0809B12C: .4byte 0x000012a8
thumb_func_start sub_809B130
sub_809B130: @ 809B130
push {lr}
- ldr r0, _0809B148 @ =gUnknown_083B6DB4
+ ldr r0, _0809B148 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809B14C @ =0x000012a4
adds r0, r1
@@ -10727,14 +8095,14 @@ sub_809B130: @ 809B130
pop {r1}
bx r1
.align 2, 0
-_0809B148: .4byte gUnknown_083B6DB4
+_0809B148: .4byte gPokemonStorageSystemPtr
_0809B14C: .4byte 0x000012a4
thumb_func_end sub_809B130
thumb_func_start sub_809B150
sub_809B150: @ 809B150
push {r4,r5,lr}
- ldr r0, _0809B16C @ =gUnknown_083B6DB4
+ ldr r0, _0809B16C @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r0, _0809B170 @ =0x000012a8
adds r4, r5, r0
@@ -10747,7 +8115,7 @@ sub_809B150: @ 809B150
beq _0809B17E
b _0809B1CE
.align 2, 0
-_0809B16C: .4byte gUnknown_083B6DB4
+_0809B16C: .4byte gPokemonStorageSystemPtr
_0809B170: .4byte 0x000012a8
_0809B174:
cmp r0, 0x2
@@ -10806,7 +8174,7 @@ _0809B1D0:
thumb_func_start sub_809B1D8
sub_809B1D8: @ 809B1D8
push {r4,r5,lr}
- ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
+ ldr r0, _0809B1F4 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809B1F8 @ =0x000012a8
adds r5, r4, r0
@@ -10819,7 +8187,7 @@ sub_809B1D8: @ 809B1D8
beq _0809B202
b _0809B244
.align 2, 0
-_0809B1F4: .4byte gUnknown_083B6DB4
+_0809B1F4: .4byte gPokemonStorageSystemPtr
_0809B1F8: .4byte 0x000012a8
_0809B1FC:
cmp r0, 0x2
@@ -10868,7 +8236,7 @@ _0809B246:
thumb_func_start sub_809B24C
sub_809B24C: @ 809B24C
push {r4,r5,lr}
- ldr r0, _0809B268 @ =gUnknown_083B6DB4
+ ldr r0, _0809B268 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809B26C @ =0x000012a8
adds r5, r4, r0
@@ -10881,7 +8249,7 @@ sub_809B24C: @ 809B24C
beq _0809B276
b _0809B31C
.align 2, 0
-_0809B268: .4byte gUnknown_083B6DB4
+_0809B268: .4byte gPokemonStorageSystemPtr
_0809B26C: .4byte 0x000012a8
_0809B270:
cmp r0, 0x2
@@ -10909,7 +8277,7 @@ _0809B298:
adds r1, r4, r2
_0809B2A0:
strb r0, [r1]
- ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
+ ldr r0, _0809B2D4 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -10931,7 +8299,7 @@ _0809B2A0:
b _0809B31C
.align 2, 0
_0809B2D0: .4byte 0x000012a9
-_0809B2D4: .4byte gUnknown_083B6DB4
+_0809B2D4: .4byte gPokemonStorageSystemPtr
_0809B2D8: .4byte gUnknown_020384E5
_0809B2DC: .4byte 0x000012a8
_0809B2E0:
@@ -10972,7 +8340,7 @@ _0809B31E:
thumb_func_start sub_809B324
sub_809B324: @ 809B324
push {lr}
- ldr r0, _0809B348 @ =gUnknown_083B6DB4
+ ldr r0, _0809B348 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -10990,7 +8358,7 @@ _0809B33E:
strh r0, [r1, 0x26]
b _0809B350
.align 2, 0
-_0809B348: .4byte gUnknown_083B6DB4
+_0809B348: .4byte gPokemonStorageSystemPtr
_0809B34C:
movs r0, 0
b _0809B352
@@ -11004,7 +8372,7 @@ _0809B352:
thumb_func_start sub_809B358
sub_809B358: @ 809B358
push {lr}
- ldr r0, _0809B378 @ =gUnknown_083B6DB4
+ ldr r0, _0809B378 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -11020,7 +8388,7 @@ sub_809B358: @ 809B358
movs r0, 0x1
b _0809B37E
.align 2, 0
-_0809B378: .4byte gUnknown_083B6DB4
+_0809B378: .4byte gPokemonStorageSystemPtr
_0809B37C:
movs r0, 0
_0809B37E:
@@ -11137,7 +8505,7 @@ sub_809B44C: @ 809B44C
lsrs r5, r1, 24
cmp r4, 0xE
bne _0809B488
- ldr r0, _0809B478 @ =gUnknown_083B6DB4
+ ldr r0, _0809B478 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809B47C @ =0x000025b4
adds r0, r1
@@ -11152,7 +8520,7 @@ sub_809B44C: @ 809B44C
bl memcpy
b _0809B4AA
.align 2, 0
-_0809B478: .4byte gUnknown_083B6DB4
+_0809B478: .4byte gPokemonStorageSystemPtr
_0809B47C: .4byte 0x000025b4
_0809B480: .4byte gPlayerParty
_0809B484: .4byte gUnknown_020384E5
@@ -11168,7 +8536,7 @@ _0809B488:
ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
- ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
+ ldr r1, _0809B4C4 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _0809B4C8 @ =0x000025b4
adds r1, r2
@@ -11186,7 +8554,7 @@ _0809B4AA:
bx r0
.align 2, 0
_0809B4C0: .4byte gPokemonStorage + 0x4
-_0809B4C4: .4byte gUnknown_083B6DB4
+_0809B4C4: .4byte gPokemonStorageSystemPtr
_0809B4C8: .4byte 0x000025b4
_0809B4CC: .4byte gUnknown_020384E7
_0809B4D0: .4byte gUnknown_020384E8
@@ -11205,7 +8573,7 @@ diegohint2: @ 809B4D4
movs r0, 0x64
muls r0, r5
adds r0, r1
- ldr r1, _0809B500 @ =gUnknown_083B6DB4
+ ldr r1, _0809B500 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _0809B504 @ =0x000025b4
adds r1, r2
@@ -11214,10 +8582,10 @@ diegohint2: @ 809B4D4
b _0809B536
.align 2, 0
_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gUnknown_083B6DB4
+_0809B500: .4byte gPokemonStorageSystemPtr
_0809B504: .4byte 0x000025b4
_0809B508:
- ldr r0, _0809B53C @ =gUnknown_083B6DB4
+ ldr r0, _0809B53C @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809B540 @ =0x000025b4
adds r4, r0
@@ -11243,7 +8611,7 @@ _0809B536:
pop {r0}
bx r0
.align 2, 0
-_0809B53C: .4byte gUnknown_083B6DB4
+_0809B53C: .4byte gPokemonStorageSystemPtr
_0809B540: .4byte 0x000025b4
_0809B544: .4byte gPokemonStorage
thumb_func_end diegohint2
@@ -11294,7 +8662,7 @@ diegohint1: @ 809B58C
lsrs r6, r1, 24
cmp r5, 0xE
bne _0809B5C0
- ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
+ ldr r0, _0809B5B4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809B5B8 @ =0x00002618
adds r0, r1
@@ -11306,7 +8674,7 @@ diegohint1: @ 809B58C
bl memcpy
b _0809B5E2
.align 2, 0
-_0809B5B4: .4byte gUnknown_083B6DB4
+_0809B5B4: .4byte gPokemonStorageSystemPtr
_0809B5B8: .4byte 0x00002618
_0809B5BC: .4byte gPlayerParty
_0809B5C0:
@@ -11321,7 +8689,7 @@ _0809B5C0:
ldr r2, _0809B614 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
- ldr r1, _0809B618 @ =gUnknown_083B6DB4
+ ldr r1, _0809B618 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _0809B61C @ =0x00002618
adds r1, r2
@@ -11330,7 +8698,7 @@ _0809B5E2:
adds r0, r5, 0
adds r1, r6, 0
bl diegohint2
- ldr r0, _0809B618 @ =gUnknown_083B6DB4
+ ldr r0, _0809B618 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809B620 @ =0x000025b4
adds r4, r1, r0
@@ -11351,7 +8719,7 @@ _0809B5E2:
bx r0
.align 2, 0
_0809B614: .4byte gPokemonStorage + 0x4
-_0809B618: .4byte gUnknown_083B6DB4
+_0809B618: .4byte gPokemonStorageSystemPtr
_0809B61C: .4byte 0x00002618
_0809B620: .4byte 0x000025b4
_0809B624: .4byte gUnknown_020384E7
@@ -11364,7 +8732,7 @@ sub_809B62C: @ 809B62C
lsls r0, 24
lsrs r6, r0, 24
adds r0, r6, 0
- bl sub_8095B24
+ bl GetIndexOfFirstEmptySpaceInBoxN
lsls r0, 16
lsrs r4, r0, 16
asrs r0, 16
@@ -11409,7 +8777,7 @@ _0809B686:
lsrs r0, r4, 24
bl sub_8098D20
_0809B698:
- ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
+ ldr r0, _0809B6B8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -11424,13 +8792,13 @@ _0809B6AC:
bx r1
.align 2, 0
_0809B6B4: .4byte gUnknown_020384E5
-_0809B6B8: .4byte gUnknown_083B6DB4
+_0809B6B8: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809B62C
thumb_func_start sub_809B6BC
sub_809B6BC: @ 809B6BC
push {lr}
- ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
+ ldr r0, _0809B6D8 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -11442,7 +8810,7 @@ sub_809B6BC: @ 809B6BC
pop {r0}
bx r0
.align 2, 0
-_0809B6D8: .4byte gUnknown_083B6DB4
+_0809B6D8: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809B6BC
thumb_func_start sub_809B6DC
@@ -11470,7 +8838,7 @@ _0809B700:
ldrb r1, [r0]
adds r0, r2, 0
bl sub_809981C
- ldr r0, _0809B728 @ =gUnknown_083B6DB4
+ ldr r0, _0809B728 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r2, _0809B72C @ =0x000026e4
adds r0, r1, r2
@@ -11482,7 +8850,7 @@ _0809B700:
.align 2, 0
_0809B720: .4byte gUnknown_020384E4
_0809B724: .4byte gUnknown_020384E5
-_0809B728: .4byte gUnknown_083B6DB4
+_0809B728: .4byte gPokemonStorageSystemPtr
_0809B72C: .4byte 0x000026e4
_0809B730: .4byte 0x000011fa
thumb_func_end sub_809B6DC
@@ -11497,7 +8865,7 @@ sub_809B734: @ 809B734
movs r0, 0x1
b _0809B758
_0809B744:
- ldr r0, _0809B75C @ =gUnknown_083B6DB4
+ ldr r0, _0809B75C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -11510,7 +8878,7 @@ _0809B758:
pop {r1}
bx r1
.align 2, 0
-_0809B75C: .4byte gUnknown_083B6DB4
+_0809B75C: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809B734
thumb_func_start sub_809B760
@@ -11561,7 +8929,7 @@ sub_809B7AC: @ 809B7AC
ldrb r0, [r0]
cmp r0, 0
beq _0809B7C8
- ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
+ ldr r0, _0809B7D0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 5
@@ -11574,7 +8942,7 @@ _0809B7C8:
bx r0
.align 2, 0
_0809B7CC: .4byte gUnknown_020384E6
-_0809B7D0: .4byte gUnknown_083B6DB4
+_0809B7D0: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809B7AC
thumb_func_start sub_809B7D4
@@ -11584,7 +8952,7 @@ sub_809B7D4: @ 809B7D4
ldrb r0, [r0]
cmp r0, 0
beq _0809B81C
- ldr r0, _0809B808 @ =gUnknown_083B6DB4
+ ldr r0, _0809B808 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r1, _0809B80C @ =0x00002618
adds r0, r4, r1
@@ -11604,7 +8972,7 @@ sub_809B7D4: @ 809B7D4
b _0809B8A6
.align 2, 0
_0809B804: .4byte gUnknown_020384E6
-_0809B808: .4byte gUnknown_083B6DB4
+_0809B808: .4byte gPokemonStorageSystemPtr
_0809B80C: .4byte 0x00002618
_0809B810: .4byte 0x000025b4
_0809B814: .4byte 0x00002682
@@ -11616,7 +8984,7 @@ _0809B81C:
asrs r0, 24
cmp r0, 0x1
bne _0809B864
- ldr r0, _0809B850 @ =gUnknown_083B6DB4
+ ldr r0, _0809B850 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r2, _0809B854 @ =0x00002618
adds r0, r4, r2
@@ -11635,7 +9003,7 @@ _0809B81C:
b _0809B896
.align 2, 0
_0809B84C: .4byte gUnknown_020384E4
-_0809B850: .4byte gUnknown_083B6DB4
+_0809B850: .4byte gPokemonStorageSystemPtr
_0809B854: .4byte 0x00002618
_0809B858: .4byte gPlayerParty
_0809B85C: .4byte gUnknown_020384E5
@@ -11657,7 +9025,7 @@ _0809B864:
adds r2, r5, 0x4
adds r1, r2
adds r0, r1
- ldr r1, _0809B904 @ =gUnknown_083B6DB4
+ ldr r1, _0809B904 @ =gPokemonStorageSystemPtr
ldr r4, [r1]
ldr r2, _0809B908 @ =0x00002618
adds r1, r4, r2
@@ -11667,7 +9035,7 @@ _0809B864:
adds r4, r1
_0809B896:
strb r0, [r4]
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r0, _0809B904 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809B900 @ =gUnknown_020384E5
ldrb r1, [r1]
@@ -11675,7 +9043,7 @@ _0809B896:
adds r0, r2
strb r1, [r0]
_0809B8A6:
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
+ ldr r0, _0809B904 @ =gPokemonStorageSystemPtr
ldr r6, [r0]
ldr r0, _0809B914 @ =0x0000267e
adds r4, r6, r0
@@ -11720,7 +9088,7 @@ _0809B8A6:
.align 2, 0
_0809B8FC: .4byte gPokemonStorage
_0809B900: .4byte gUnknown_020384E5
-_0809B904: .4byte gUnknown_083B6DB4
+_0809B904: .4byte gPokemonStorageSystemPtr
_0809B908: .4byte 0x00002618
_0809B90C: .4byte 0x00002682
_0809B910: .4byte 0x00002683
@@ -11740,7 +9108,7 @@ _0809B934:
adds r0, r6, r2
strb r1, [r0]
_0809B940:
- ldr r0, _0809B958 @ =gUnknown_083B6DB4
+ ldr r0, _0809B958 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809B95C @ =0x00002684
adds r0, r1
@@ -11751,7 +9119,7 @@ _0809B940:
bx r0
.align 2, 0
_0809B954: .4byte 0x0000267d
-_0809B958: .4byte gUnknown_083B6DB4
+_0809B958: .4byte gPokemonStorageSystemPtr
_0809B95C: .4byte 0x00002684
thumb_func_end sub_809B7D4
@@ -11762,7 +9130,7 @@ sub_809B960: @ 809B960
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0809B988 @ =gUnknown_083B6DB4
+ ldr r0, _0809B988 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r3, _0809B98C @ =0x0000267d
adds r1, r2, r3
@@ -11777,7 +9145,7 @@ sub_809B960: @ 809B960
asrs r0, 24
b _0809BB5C
.align 2, 0
-_0809B988: .4byte gUnknown_083B6DB4
+_0809B988: .4byte gPokemonStorageSystemPtr
_0809B98C: .4byte 0x0000267d
_0809B990: .4byte 0x0000267c
_0809B994:
@@ -11832,7 +9200,7 @@ _0809B9CC:
_0809B9F0:
movs r0, 0x2
ands r3, r0
- ldr r7, _0809BA3C @ =gUnknown_083B6DB4
+ ldr r7, _0809BA3C @ =gPokemonStorageSystemPtr
mov r12, r7
cmp r3, 0
beq _0809BA02
@@ -11864,7 +9232,7 @@ _0809BA2C: .4byte 0x00002683
_0809BA30: .4byte gPlayerParty
_0809BA34: .4byte 0x00002686
_0809BA38: .4byte 0x0000267e
-_0809BA3C: .4byte gUnknown_083B6DB4
+_0809BA3C: .4byte gPokemonStorageSystemPtr
_0809BA40: .4byte 0x0000267f
_0809BA44: .4byte 0x0000267d
_0809BA48: .4byte 0x0000267c
@@ -11972,7 +9340,7 @@ _0809BB00:
strb r0, [r1]
lsls r0, 24
asrs r0, 24
- ldr r7, _0809BB88 @ =gUnknown_083B6DB4
+ ldr r7, _0809BB88 @ =gPokemonStorageSystemPtr
mov r12, r7
cmp r0, 0x1D
ble _0809BB32
@@ -12028,7 +9396,7 @@ _0809BB78: .4byte gPokemonStorage + 0x4
_0809BB7C: .4byte 0x00002686
_0809BB80: .4byte 0x00002682
_0809BB84: .4byte 0x0000267e
-_0809BB88: .4byte gUnknown_083B6DB4
+_0809BB88: .4byte gPokemonStorageSystemPtr
_0809BB8C: .4byte 0x0000267d
thumb_func_end sub_809B960
@@ -12040,7 +9408,7 @@ sub_809BB90: @ 809BB90
cmp r0, 0
beq _0809BBAA
ldr r0, _0809BBB4 @ =gUnknown_02038480
- ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
+ ldr r1, _0809BBB8 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
ldr r2, _0809BBBC @ =0x000025b4
adds r1, r2
@@ -12052,7 +9420,7 @@ _0809BBAA:
.align 2, 0
_0809BBB0: .4byte gUnknown_020384E6
_0809BBB4: .4byte gUnknown_02038480
-_0809BBB8: .4byte gUnknown_083B6DB4
+_0809BBB8: .4byte gPokemonStorageSystemPtr
_0809BBBC: .4byte 0x000025b4
thumb_func_end sub_809BB90
@@ -12067,7 +9435,7 @@ sub_809BBC0: @ 809BBC0
ldrb r0, [r0]
cmp r0, 0xE
bne _0809BBF8
- ldr r0, _0809BBEC @ =gUnknown_083B6DB4
+ ldr r0, _0809BBEC @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809BBF0 @ =0x000025b4
adds r0, r1
@@ -12078,11 +9446,11 @@ sub_809BBC0: @ 809BBC0
.align 2, 0
_0809BBE4: .4byte gUnknown_020384E6
_0809BBE8: .4byte gUnknown_020384E7
-_0809BBEC: .4byte gUnknown_083B6DB4
+_0809BBEC: .4byte gPokemonStorageSystemPtr
_0809BBF0: .4byte 0x000025b4
_0809BBF4: .4byte gUnknown_02038480
_0809BBF8:
- ldr r0, _0809BC0C @ =gUnknown_083B6DB4
+ ldr r0, _0809BC0C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809BC10 @ =0x000025b4
adds r0, r1
@@ -12093,7 +9461,7 @@ _0809BC08:
pop {r0}
bx r0
.align 2, 0
-_0809BC0C: .4byte gUnknown_083B6DB4
+_0809BC0C: .4byte gPokemonStorageSystemPtr
_0809BC10: .4byte 0x000025b4
_0809BC14: .4byte gUnknown_02038480
thumb_func_end sub_809BBC0
@@ -12106,7 +9474,7 @@ sub_809BC18: @ 809BC18
cmp r5, 0
beq _0809BC64
bl sub_809BB90
- ldr r0, _0809BC4C @ =gUnknown_083B6DB4
+ ldr r0, _0809BC4C @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r0, _0809BC50 @ =0x00002690
adds r1, r2, r0
@@ -12125,7 +9493,7 @@ sub_809BC18: @ 809BC18
b _0809BCF2
.align 2, 0
_0809BC48: .4byte gUnknown_020384E6
-_0809BC4C: .4byte gUnknown_083B6DB4
+_0809BC4C: .4byte gPokemonStorageSystemPtr
_0809BC50: .4byte 0x00002690
_0809BC54: .4byte gUnknown_02038480
_0809BC58: .4byte 0x0000268d
@@ -12138,7 +9506,7 @@ _0809BC64:
asrs r0, 24
cmp r0, 0x1
bne _0809BCBC
- ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
+ ldr r0, _0809BCA0 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r2, _0809BCA4 @ =0x00002690
adds r1, r4, r2
@@ -12160,7 +9528,7 @@ _0809BC64:
b _0809BCF2
.align 2, 0
_0809BC9C: .4byte gUnknown_020384E4
-_0809BCA0: .4byte gUnknown_083B6DB4
+_0809BCA0: .4byte gPokemonStorageSystemPtr
_0809BCA4: .4byte 0x00002690
_0809BCA8: .4byte gPlayerParty
_0809BCAC: .4byte gUnknown_020384E5
@@ -12168,7 +9536,7 @@ _0809BCB0: .4byte 0x0000268d
_0809BCB4: .4byte 0x0000268c
_0809BCB8: .4byte 0x0000268e
_0809BCBC:
- ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
+ ldr r0, _0809BCF8 @ =gPokemonStorageSystemPtr
ldr r3, [r0]
ldr r0, _0809BCFC @ =0x00002690
adds r4, r3, r0
@@ -12200,7 +9568,7 @@ _0809BCF2:
pop {r0}
bx r0
.align 2, 0
-_0809BCF8: .4byte gUnknown_083B6DB4
+_0809BCF8: .4byte gPokemonStorageSystemPtr
_0809BCFC: .4byte 0x00002690
_0809BD00: .4byte gPokemonStorage
_0809BD04: .4byte gUnknown_020384E5
@@ -12324,7 +9692,7 @@ sub_809BDD8: @ 809BDD8
lsrs r0, 24
mov r1, sp
strb r0, [r1]
- ldr r1, _0809BE04 @ =gUnknown_083B6DB4
+ ldr r1, _0809BE04 @ =gPokemonStorageSystemPtr
ldr r2, [r1]
ldr r3, _0809BE08 @ =0x000011f7
adds r1, r2, r3
@@ -12340,7 +9708,7 @@ sub_809BDD8: @ 809BDD8
bl SetMonData
b _0809BE68
.align 2, 0
-_0809BE04: .4byte gUnknown_083B6DB4
+_0809BE04: .4byte gPokemonStorageSystemPtr
_0809BE08: .4byte 0x000011f7
_0809BE0C: .4byte gUnknown_020384E6
_0809BE10: .4byte 0x000025b4
@@ -12448,7 +9816,7 @@ sub_809BEBC: @ 809BEBC
lsls r0, 24
cmp r0, 0
bne _0809BEFC
- ldr r0, _0809BF0C @ =gUnknown_083B6DB4
+ ldr r0, _0809BF0C @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r2, _0809BF10 @ =0x000011f9
adds r0, r1, r2
@@ -12468,7 +9836,7 @@ _0809BEFC:
_0809BF00: .4byte gUnknown_020384E6
_0809BF04: .4byte gUnknown_020384E4
_0809BF08: .4byte gUnknown_020384E5
-_0809BF0C: .4byte gUnknown_083B6DB4
+_0809BF0C: .4byte gPokemonStorageSystemPtr
_0809BF10: .4byte 0x000011f9
_0809BF14: .4byte 0x000025b4
_0809BF18:
@@ -12535,7 +9903,7 @@ _0809BF70: .4byte gUnknown_020384E5
thumb_func_start sub_809BF74
sub_809BF74: @ 809BF74
push {r4,lr}
- ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
+ ldr r0, _0809BFA8 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
movs r2, 0
ldr r3, _0809BFAC @ =gUnknown_020384E6
@@ -12562,7 +9930,7 @@ _0809BF86:
beq _0809BFEE
b _0809C018
.align 2, 0
-_0809BFA8: .4byte gUnknown_083B6DB4
+_0809BFA8: .4byte gPokemonStorageSystemPtr
_0809BFAC: .4byte gUnknown_020384E6
_0809BFB0: .4byte 0x000011f6
_0809BFB4: .4byte gUnknown_020384E4
@@ -12655,7 +10023,7 @@ sub_809C04C: @ 809C04C
lsrs r1, 24
movs r0, 0
str r0, [sp]
- ldr r0, _0809C0FC @ =gUnknown_083B6DB4
+ ldr r0, _0809C0FC @ =gPokemonStorageSystemPtr
ldr r6, [r0]
ldr r2, _0809C100 @ =0x000011f2
adds r2, r6
@@ -12723,7 +10091,7 @@ _0809C08C:
bl GetMonData
b _0809C1B2
.align 2, 0
-_0809C0FC: .4byte gUnknown_083B6DB4
+_0809C0FC: .4byte gPokemonStorageSystemPtr
_0809C100: .4byte 0x000011f2
_0809C104: .4byte 0x000011f0
_0809C108: .4byte 0x000011f9
@@ -12814,7 +10182,7 @@ _0809C1D4:
ldrh r1, [r1]
strh r1, [r0]
_0809C1DE:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r0, _0809C224 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r2, _0809C220 @ =0x000011f0
adds r0, r4, r2
@@ -12822,7 +10190,7 @@ _0809C1DE:
cmp r1, 0
bne _0809C23C
_0809C1EC:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
+ ldr r0, _0809C224 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809C228 @ =0x000011fa
adds r2, r1, r0
@@ -12849,7 +10217,7 @@ _0809C1EC:
b _0809C43E
.align 2, 0
_0809C220: .4byte 0x000011f0
-_0809C224: .4byte gUnknown_083B6DB4
+_0809C224: .4byte gPokemonStorageSystemPtr
_0809C228: .4byte 0x000011fa
_0809C22C: .4byte 0x0000120f
_0809C230: .4byte 0x00001234
@@ -12910,7 +10278,7 @@ _0809C2AC:
movs r1, 0xFF
str r1, [sp]
_0809C2B0:
- ldr r0, _0809C388 @ =gUnknown_083B6DB4
+ ldr r0, _0809C388 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r2, _0809C38C @ =0x0000120f
adds r7, r4, r2
@@ -13015,7 +10383,7 @@ _0809C2B0:
beq _0809C3D0
b _0809C3EA
.align 2, 0
-_0809C388: .4byte gUnknown_083B6DB4
+_0809C388: .4byte gPokemonStorageSystemPtr
_0809C38C: .4byte 0x0000120f
_0809C390: .4byte 0x00001214
_0809C394: .4byte 0x000011fa
@@ -13058,7 +10426,7 @@ _0809C3E6:
_0809C3EA:
movs r5, 0xFF
strb r5, [r7]
- ldr r0, _0809C450 @ =gUnknown_083B6DB4
+ ldr r0, _0809C450 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r1, _0809C454 @ =0x0000127a
adds r7, r2, r1
@@ -13107,7 +10475,7 @@ _0809C43E:
pop {r0}
bx r0
.align 2, 0
-_0809C450: .4byte gUnknown_083B6DB4
+_0809C450: .4byte gPokemonStorageSystemPtr
_0809C454: .4byte 0x0000127a
_0809C458: .4byte 0x000011f2
_0809C45C: .4byte 0x0000127f
@@ -13125,7 +10493,7 @@ sub_809C464: @ 809C464
mov r8, r0
ldr r2, _0809C4DC @ =gUnknown_020384E5
ldrb r4, [r2]
- ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
+ ldr r0, _0809C4E0 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809C4E4 @ =0x000011de
adds r7, r1, r0
@@ -13178,7 +10546,7 @@ _0809C4BE:
.align 2, 0
_0809C4D8: .4byte gUnknown_020384E4
_0809C4DC: .4byte gUnknown_020384E5
-_0809C4E0: .4byte gUnknown_083B6DB4
+_0809C4E0: .4byte gPokemonStorageSystemPtr
_0809C4E4: .4byte 0x000011de
_0809C4E8: .4byte 0x000011df
_0809C4EC: .4byte gMain
@@ -13396,7 +10764,7 @@ sub_809C664: @ 809C664
mov r10, r0
ldr r7, _0809C6DC @ =gUnknown_020384E5
ldrb r4, [r7]
- ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
+ ldr r2, _0809C6E0 @ =gPokemonStorageSystemPtr
ldr r5, [r2]
ldr r1, _0809C6E4 @ =0x000011df
adds r0, r5, r1
@@ -13449,7 +10817,7 @@ _0809C6D0:
.align 2, 0
_0809C6D8: .4byte gUnknown_020384E4
_0809C6DC: .4byte gUnknown_020384E5
-_0809C6E0: .4byte gUnknown_083B6DB4
+_0809C6E0: .4byte gPokemonStorageSystemPtr
_0809C6E4: .4byte 0x000011df
_0809C6E8: .4byte 0x000011de
_0809C6EC: .4byte gMain
@@ -13577,7 +10945,7 @@ _0809C7D0:
ands r0, r1
cmp r0, 0
beq _0809C7F8
- ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
+ ldr r0, _0809C7F0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x1
@@ -13586,7 +10954,7 @@ _0809C7D0:
b _0809C84C
.align 2, 0
_0809C7EC: .4byte gMain
-_0809C7F0: .4byte gUnknown_083B6DB4
+_0809C7F0: .4byte gPokemonStorageSystemPtr
_0809C7F4:
movs r3, 0x1
mov r9, r3
@@ -13650,7 +11018,7 @@ _0809C84C:
thumb_func_start sub_809C85C
sub_809C85C: @ 809C85C
push {r4-r6,lr}
- ldr r0, _0809C894 @ =gUnknown_083B6DB4
+ ldr r0, _0809C894 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r1, _0809C898 @ =0x000011df
adds r0, r2, r1
@@ -13677,7 +11045,7 @@ sub_809C85C: @ 809C85C
movs r5, 0x2
b _0809C922
.align 2, 0
-_0809C894: .4byte gUnknown_083B6DB4
+_0809C894: .4byte gPokemonStorageSystemPtr
_0809C898: .4byte 0x000011df
_0809C89C: .4byte 0x000011de
_0809C8A0: .4byte 0x000011e3
@@ -13778,7 +11146,7 @@ sub_809C944: @ 809C944
mov r12, r0
ldr r7, _0809C98C @ =gUnknown_020384E5
ldrb r3, [r7]
- ldr r0, _0809C990 @ =gUnknown_083B6DB4
+ ldr r0, _0809C990 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809C994 @ =0x000011df
adds r5, r1, r0
@@ -13808,7 +11176,7 @@ sub_809C944: @ 809C944
.align 2, 0
_0809C988: .4byte gUnknown_020384E4
_0809C98C: .4byte gUnknown_020384E5
-_0809C990: .4byte gUnknown_083B6DB4
+_0809C990: .4byte gPokemonStorageSystemPtr
_0809C994: .4byte 0x000011df
_0809C998: .4byte 0x000011de
_0809C99C: .4byte gMain
@@ -13970,7 +11338,7 @@ sub_809CAB0: @ 809CAB0
bl sub_809AB8C
lsls r0, 16
lsrs r1, r0, 16
- ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
+ ldr r0, _0809CAD4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x1
@@ -13981,7 +11349,7 @@ sub_809CAB0: @ 809CAB0
beq _0809CAEA
b _0809CB24
.align 2, 0
-_0809CAD4: .4byte gUnknown_083B6DB4
+_0809CAD4: .4byte gPokemonStorageSystemPtr
_0809CAD8:
cmp r0, 0x2
beq _0809CAF6
@@ -14026,7 +11394,7 @@ _0809CB24:
_0809CB28:
movs r0, 0x6
bl sub_809CDEC
- ldr r0, _0809CB4C @ =gUnknown_083B6DB4
+ ldr r0, _0809CB4C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x2
@@ -14041,7 +11409,7 @@ _0809CB28:
bl sub_809CDEC
b _0809CB5A
.align 2, 0
-_0809CB4C: .4byte gUnknown_083B6DB4
+_0809CB4C: .4byte gPokemonStorageSystemPtr
_0809CB50: .4byte gUnknown_020384E4
_0809CB54:
movs r0, 0x1
@@ -14061,7 +11429,7 @@ _0809CB6E:
thumb_func_start sub_809CB74
sub_809CB74: @ 809CB74
- ldr r1, _0809CB90 @ =gUnknown_083B6DB4
+ ldr r1, _0809CB90 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
movs r2, 0x8E
lsls r2, 5
@@ -14075,7 +11443,7 @@ sub_809CB74: @ 809CB74
strh r1, [r0, 0x22]
bx lr
.align 2, 0
-_0809CB90: .4byte gUnknown_083B6DB4
+_0809CB90: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809CB74
thumb_func_start unref_sub_809CB94
@@ -14157,7 +11525,7 @@ sub_809CC04: @ 809CC04
bl LoadSpritePalettes
ldr r0, _0809CCB8 @ =0x0000dac6
bl IndexOfSpritePaletteTag
- ldr r1, _0809CCBC @ =gUnknown_083B6DB4
+ ldr r1, _0809CCBC @ =gPokemonStorageSystemPtr
ldr r6, [r1]
ldr r4, _0809CCC0 @ =0x000011e4
adds r7, r6, r4
@@ -14219,7 +11587,7 @@ sub_809CC04: @ 809CC04
_0809CCB0: .4byte gHandCursorSpriteSheets
_0809CCB4: .4byte gHandCursorSpritePalettes
_0809CCB8: .4byte 0x0000dac6
-_0809CCBC: .4byte gUnknown_083B6DB4
+_0809CCBC: .4byte gPokemonStorageSystemPtr
_0809CCC0: .4byte 0x000011e4
_0809CCC4: .4byte 0x0000dad1
_0809CCC8: .4byte 0x000011e5
@@ -14259,7 +11627,7 @@ _0809CD08:
lsrs r2, r0, 24
cmp r2, 0x40
beq _0809CD6C
- ldr r0, _0809CD5C @ =gUnknown_083B6DB4
+ ldr r0, _0809CD5C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809CD60 @ =0x000011c4
adds r4, r0, r1
@@ -14291,12 +11659,12 @@ _0809CD08:
b _0809CD78
.align 2, 0
_0809CD58: .4byte gSpriteTemplate_83BBC88
-_0809CD5C: .4byte gUnknown_083B6DB4
+_0809CD5C: .4byte gPokemonStorageSystemPtr
_0809CD60: .4byte 0x000011c4
_0809CD64: .4byte gSprites
_0809CD68: .4byte gUnknown_020384E4
_0809CD6C:
- ldr r0, _0809CD80 @ =gUnknown_083B6DB4
+ ldr r0, _0809CD80 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _0809CD84 @ =0x000011c4
adds r0, r2
@@ -14308,7 +11676,7 @@ _0809CD78:
pop {r0}
bx r0
.align 2, 0
-_0809CD80: .4byte gUnknown_083B6DB4
+_0809CD80: .4byte gPokemonStorageSystemPtr
_0809CD84: .4byte 0x000011c4
thumb_func_end sub_809CC04
@@ -14323,7 +11691,7 @@ sub_809CD88: @ 809CD88
movs r1, 0x1
_0809CD96:
strb r1, [r2]
- ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
+ ldr r0, _0809CDC4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r3, 0x8E
lsls r3, 5
@@ -14344,13 +11712,13 @@ _0809CD96:
bx r0
.align 2, 0
_0809CDC0: .4byte gUnknown_020384E9
-_0809CDC4: .4byte gUnknown_083B6DB4
+_0809CDC4: .4byte gPokemonStorageSystemPtr
_0809CDC8: .4byte 0x000011e4
thumb_func_end sub_809CD88
thumb_func_start sub_809CDCC
sub_809CDCC: @ 809CDCC
- ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
+ ldr r0, _0809CDE0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _0809CDE4 @ =0x000011b8
adds r1, r0, r2
@@ -14361,7 +11729,7 @@ sub_809CDCC: @ 809CDCC
strb r2, [r0]
bx lr
.align 2, 0
-_0809CDE0: .4byte gUnknown_083B6DB4
+_0809CDE0: .4byte gPokemonStorageSystemPtr
_0809CDE4: .4byte 0x000011b8
_0809CDE8: .4byte 0x000011b9
thumb_func_end sub_809CDCC
@@ -14371,7 +11739,7 @@ sub_809CDEC: @ 809CDEC
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _0809CE3C @ =gUnknown_083B6DB4
+ ldr r0, _0809CE3C @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r0, _0809CE40 @ =0x000011b8
adds r4, r5, r0
@@ -14410,7 +11778,7 @@ _0809CE36:
pop {r0}
bx r0
.align 2, 0
-_0809CE3C: .4byte gUnknown_083B6DB4
+_0809CE3C: .4byte gPokemonStorageSystemPtr
_0809CE40: .4byte 0x000011b8
_0809CE44: .4byte gUnknown_083BBCA0
_0809CE48: .4byte 0x000011b9
@@ -14421,7 +11789,7 @@ sub_809CE4C: @ 809CE4C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _0809CE70 @ =gUnknown_083B6DB4
+ ldr r0, _0809CE70 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r3, _0809CE74 @ =0x000011b8
adds r0, r1, r3
@@ -14436,7 +11804,7 @@ sub_809CE4C: @ 809CE4C
ldrsb r0, [r1, r0]
b _0809CE80
.align 2, 0
-_0809CE70: .4byte gUnknown_083B6DB4
+_0809CE70: .4byte gPokemonStorageSystemPtr
_0809CE74: .4byte 0x000011b8
_0809CE78: .4byte 0x00001184
_0809CE7C:
@@ -14455,7 +11823,7 @@ sub_809CE84: @ 809CE84
mov r4, r8
push {r4-r6}
sub sp, 0x8
- ldr r0, _0809CF20 @ =gUnknown_083B6DB4
+ ldr r0, _0809CF20 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809CF24 @ =0x000011b8
adds r0, r4
@@ -14525,7 +11893,7 @@ sub_809CE84: @ 809CE84
pop {r0}
bx r0
.align 2, 0
-_0809CF20: .4byte gUnknown_083B6DB4
+_0809CF20: .4byte gPokemonStorageSystemPtr
_0809CF24: .4byte 0x000011b8
_0809CF28: .4byte 0x000011bc
_0809CF2C: .4byte 0x000011b9
@@ -14583,7 +11951,7 @@ _0809CF8E:
cmp r5, r0
beq _0809CFB2
bl HandleDestroyMenuCursors
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r2, _0809CFD4 @ =0x000011ba
adds r0, r1, r2
@@ -14597,7 +11965,7 @@ _0809CF8E:
_0809CFB2:
cmp r5, 0
blt _0809CFC4
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
lsls r1, r5, 3
ldr r2, _0809CFD8 @ =0x00001184
@@ -14611,7 +11979,7 @@ _0809CFC4:
pop {r1}
bx r1
.align 2, 0
-_0809CFD0: .4byte gUnknown_083B6DB4
+_0809CFD0: .4byte gPokemonStorageSystemPtr
_0809CFD4: .4byte 0x000011ba
_0809CFD8: .4byte 0x00001184
thumb_func_end sub_809CF30
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
index b765656f7..b9b18e707 100644
--- a/data/pokemon_storage_system.s
+++ b/data/pokemon_storage_system.s
@@ -4,61 +4,6 @@
.section .rodata
.align 2
-gUnknown_083B600C:: @ 83B600C
- .4byte PCText_WithdrawPoke, PCText_MovePokeToParty
- .4byte PCText_DepositPoke, PCText_StorePokeInBox
- .4byte PCText_MovePoke, PCText_OrganizeBoxesParty
- .4byte PCText_SeeYa, PCText_ReturnToPrevMenu
-
- .align 2
-gSpriteAnim_83B602C:: @ 83B602C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6034:: @ 83B6034
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B603C:: @ 83B603C
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6044:: @ 83B6044
- obj_image_anim_frame 10, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83B604C:: @ 83B604C
- .4byte gSpriteAnim_83B602C
- .4byte gSpriteAnim_83B6034
- .4byte gSpriteAnim_83B603C
- .4byte gSpriteAnim_83B6044
-
- .align 2
-gSpriteAffineAnim_83B605C:: @ 83B605C
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83B606C:: @ 83B606C
- .4byte gSpriteAffineAnim_83B605C
-
- .align 2
-gBoxSelectionPopupPalette:: @ 83B6070
- .incbin "graphics/pokemon_storage/box_selection_popup.gbapal"
-
- .align 2
-gBoxSelectionPopupCenterTiles:: @ 83B6090
- .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp"
-
- .align 2
-gBoxSelectionPopupSidesTiles:: @ 83B6890
- .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp"
-
- .align 2
gPokemonStorageScrollingBGPalette:: @ 83B6A10
.incbin "graphics/pokemon_storage/scrolling_bg.gbapal"
@@ -125,7 +70,7 @@ gUnknown_083B6D94:: @ 83B6D94
.incbin "graphics/pokemon_storage/83B6D94.gbapal"
.align 2
-gUnknown_083B6DB4:: @ 83B6DB4
+gPokemonStorageSystemPtr:: @ 83B6DB4
.4byte gSharedMem
.align 2
diff --git a/include/decoration.h b/include/decoration.h
index 972e82faf..4ac26998e 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -127,17 +127,12 @@ extern u8 gUnknown_020388F5;
extern u8 gUnknown_020388F6;
extern u8 gUnknown_020388D6[16];
extern u8 gUnknown_020388E6[12];
-extern u16 gSpecialVar_0x8004;
-extern u16 gSpecialVar_0x8005;
-extern u16 gSpecialVar_0x8006;
-extern u16 gSpecialVar_0x8007;
extern u16 gUnknown_020391A4;
extern u16 gUnknown_020391A6;
extern u8 gUnknown_020391A8;
extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
-extern void (*gFieldCallback)(void);
extern const struct YesNoFuncTable gUnknown_083EC96C[];
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
@@ -161,7 +156,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0;
extern u8 sub_8134194(u8); // src/decoration_inventory
extern bool8 sub_81341D4(void); // src/decoration_inventory
extern void sub_8134104(u8); // src/decoration_inventory
-extern bool8 sub_807D770(void);
extern void sub_8109DAC(u8); // src/trader
extern void ReshowPlayerPC(u8); // src/player_pc
void Task_SecretBasePC_Decoration(u8);
diff --git a/include/ewram.h b/include/ewram.h
index 17ca3508a..19e05134f 100755
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -28,6 +28,7 @@ extern u8 gSharedMem[];
#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
+#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0))
#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
#define ewram520_2 (u8 *)(ewram_addr + 0x520)
diff --git a/include/gba/macro.h b/include/gba/macro.h
index dcad009e1..59b22758e 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -105,7 +105,7 @@
#define DmaClearLarge(dmaNum, dest, size, block, bit) \
{ \
- const void *_dest = dest; \
+ void *_dest = dest; \
u32 _size = size; \
while (1) \
{ \
diff --git a/include/main.h b/include/main.h
index ff9bb89c7..78403225e 100644
--- a/include/main.h
+++ b/include/main.h
@@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
+extern u16 gKeyRepeatStartDelay;
+
void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
diff --git a/include/mon_markings.h b/include/mon_markings.h
new file mode 100644
index 000000000..eae80861a
--- /dev/null
+++ b/include/mon_markings.h
@@ -0,0 +1,26 @@
+#ifndef POKERUBY_MON_MARKINGS_H
+#define POKERUBY_MON_MARKINGS_H
+
+struct PokemonMarkMenu
+{
+ /*0x0000*/ u16 baseTileTag;
+ /*0x0002*/ u16 basePaletteTag;
+ /*0x0004*/ u8 markings; // bit flags
+ /*0x0005*/ s8 cursorPos;
+ /*0x0006*/ bool8 markingsArray[4];
+ /*0x000A*/ u8 cursorBaseY;
+ /*0x000B*/ bool8 spriteSheetLoadRequired;
+ /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
+ /*0x0014*/ struct Sprite *menuMarkingSprites[4];
+ /*0x0024*/ struct Sprite *menuTextSprite;
+ /*0x0028*/ const u8 *frameTiles;
+ /*0x002C*/ const u16 *framePalette;
+ /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
+ /*0x1030*/ u8 filler1030[0x80];
+ /*0x10B0*/ u8 tileLoadState;
+}; // 10b4
+
+void sub_80F7404(void);
+void sub_80F727C(struct PokemonMarkMenu *ptr);
+
+#endif //POKERUBY_MON_MARKINGS_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..a791fc66f
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,19 @@
+#ifndef POKERUBY_PC_SCREEN_EFFECT_H
+#define POKERUBY_PC_SCREEN_EFFECT_H
+
+struct PCScreenEffectStruct
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag;
+ /*0x04*/ u16 unk04;
+ /*0x06*/ u16 unk06;
+ /*0x08*/ u16 unk08;
+ /*0x0A*/ u16 unk0A;
+ /*0x0C*/ s16 unk0C;
+ /*0x10*/ u32 selectedPalettes;
+};
+
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5DCC(void);
+
+#endif //POKERUBY_PC_SCREEN_EFFECT_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 71b35e65c..fd1709320 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -428,10 +428,10 @@ struct BattleMove
struct PokemonStorage
{
- /*0x00*/ u8 currentBox;
- /*0x01*/ struct BoxPokemon boxes[14][30];
- u8 boxNames[14][9];
- u8 unkArray[14];
+ /*0x0000*/ u8 currentBox;
+ /*0x0004*/ struct BoxPokemon boxes[14][30];
+ /*0x8344*/ u8 boxNames[14][9];
+ /*0x83c2*/ u8 wallpaper[14];
};
struct SpindaSpot
diff --git a/include/sprite.h b/include/sprite.h
index b72c09989..3ad418356 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -235,6 +235,7 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern u8 gReservedSpritePaletteCount;
+extern u16 gReservedSpriteTileCount;
extern u8 gOamLimit;
diff --git a/ld_script.txt b/ld_script.txt
index 68466c1a0..4b28ff022 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -127,8 +127,9 @@ SECTIONS {
src/engine/save_menu_util.o(.text);
src/battle/battle_party_menu.o(.text);
asm/unk_text_8095904.o(.text);
- asm/pokemon_storage_system.o(.text);
src/pokemon/pokemon_storage_system.o(.text);
+ asm/pokemon_storage_system.o(.text);
+ src/pokemon/pokemon_storage_system.o(.text.8098898);
asm/pokemon_storage_system.o(.text_8098A38);
src/pokemon/pokemon_icon.o(.text);
src/pokemon/pokemon_summary_screen.o(.text);
@@ -508,6 +509,7 @@ SECTIONS {
src/pokemon/pokedex.o(.rodata);
src/engine/trainer_card.o(.rodata);
src/battle/battle_party_menu.o(.rodata);
+ src/pokemon/pokemon_storage_system.o(.rodata);
data/pokemon_storage_system.o(.rodata);
src/pokemon/pokemon_icon.o(.rodata);
src/pokemon/pokemon_summary_screen.o(.rodata);
diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c
index 440504d5a..6f34fd678 100644
--- a/src/engine/naming_screen.c
+++ b/src/engine/naming_screen.c
@@ -26,8 +26,6 @@
#define COLUMN_COUNT 10
#endif
-extern u16 gKeyRepeatStartDelay;
-
extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
const u8 gSpriteImage_83CE094[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp");
diff --git a/src/field/choose_party.c b/src/field/choose_party.c
index d278eda4a..52763b911 100644
--- a/src/field/choose_party.c
+++ b/src/field/choose_party.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "decoration.h"
+#include "event_data.h"
#include "field_fadetransition.h"
#include "main.h"
#include "menu.h"
@@ -7,6 +7,7 @@
#include "palette.h"
#include "party_menu.h"
#include "pokemon_menu.h"
+#include "field_weather.h"
#include "pokemon.h"
#include "pokemon_summary_screen.h"
#include "overworld.h"
diff --git a/src/field/field_effect.c b/src/field/field_effect.c
index 1e2aaa4ed..1fe238901 100644
--- a/src/field/field_effect.c
+++ b/src/field/field_effect.c
@@ -25,6 +25,7 @@
#include "field_map_obj.h"
#include "util.h"
#include "field_effect_helpers.h"
+#include "pokemon_storage_system.h"
#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
diff --git a/src/field/pc_screen_effect.c b/src/field/pc_screen_effect.c
index 364fca0aa..dda569ea4 100644
--- a/src/field/pc_screen_effect.c
+++ b/src/field/pc_screen_effect.c
@@ -2,18 +2,7 @@
#include "main.h"
#include "palette.h"
#include "sprite.h"
-
-struct UnkStruct
-{
- /*0x00*/ u16 tileTag;
- /*0x02*/ u16 paletteTag;
- /*0x04*/ u16 unk04;
- /*0x06*/ u16 unk06;
- /*0x08*/ u16 unk08;
- /*0x0A*/ u16 unk0A;
- /*0x0C*/ s16 unk0C;
- /*0x10*/ u32 selectedPalettes;
-};
+#include "pc_screen_effect.h"
void sub_80C603C(void);
void sub_80C6078(void);
@@ -30,7 +19,7 @@ extern const u16 gUnknownPal_083D18EC[16];
extern const u8 gUnknownGfx_083D190C[128];
-extern struct UnkStruct *gUnknown_020387EC;
+extern struct PCScreenEffectStruct *gUnknown_020387EC;
const struct SpriteSheet gUnknown_083D1898 = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 };
@@ -58,7 +47,7 @@ const struct SpriteTemplate gSpriteTemplate_83D18C0 =
sub_80C6130,
};
-void sub_80C5CD4(struct UnkStruct *unkStruct)
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct)
{
u16 i;
diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c
index 7253ac901..354193c14 100644
--- a/src/field/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -104,7 +104,6 @@ static EWRAM_DATA struct Pokeblock *gUnknown_0203930C = NULL;
EWRAM_DATA u8 gPokeblockMonID = 0;
EWRAM_DATA s16 gPokeblockGain = 0;
-extern u16 gKeyRepeatStartDelay;
extern u16 gSpecialVar_ItemId; // FIXME: remove after merge of #349 Pokeblock
static void launch_c3_walk_stairs_and_run_once(void (*const)(void));
diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c
index b4144ea34..d27719c4a 100644
--- a/src/pokemon/mon_markings.c
+++ b/src/pokemon/mon_markings.c
@@ -5,6 +5,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
+#include "mon_markings.h"
#ifdef GERMAN
#define MENU_TEXT_SPRITE_X_OFFSET 24
@@ -12,25 +13,6 @@
#define MENU_TEXT_SPRITE_X_OFFSET 32
#endif
-struct PokemonMarkMenu
-{
- /*0x0000*/ u16 baseTileTag;
- /*0x0002*/ u16 basePaletteTag;
- /*0x0004*/ u8 markings; // bit flags
- /*0x0005*/ s8 cursorPos;
- /*0x0006*/ bool8 markingsArray[4];
- /*0x000A*/ u8 cursorBaseY;
- /*0x000B*/ bool8 spriteSheetLoadRequired;
- /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
- /*0x0014*/ struct Sprite *menuMarkingSprites[4];
- /*0x0024*/ struct Sprite *menuTextSprite;
- /*0x0028*/ const u8 *frameTiles;
- /*0x002C*/ const u16 *framePalette;
- /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
- /*0x1030*/ u8 filler1030[0x80];
- /*0x10B0*/ u8 tileLoadState;
-};
-
extern u8 gPokenavConditionMenuMisc_Gfx[];
extern u16 gUnknown_08E966B8[];
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 4a68b846a..b0a317cd9 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -1,17 +1,1248 @@
#include "global.h"
-#include "pokemon_storage_system.h"
+#include "palette.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "field_weather.h"
+#include "mon_markings.h"
+#include "overworld.h"
+#include "mail_data.h"
+#include "field_fadetransition.h"
#include "menu.h"
+#include "main.h"
+#include "strings.h"
#include "string_util.h"
+#include "event_data.h"
#include "ewram.h"
+#include "script.h"
+#include "pokemon_summary_screen.h"
+#include "pc_screen_effect.h"
+#include "naming_screen.h"
+#include "pokemon_storage_system.h"
struct StorageAction {
u8 *text;
u8 format;
};
+struct PSS_MenuStringPtrs {
+ const u8 *text;
+ const u8 *desc;
+};
+
+struct UnkStruct_2000020 {
+ struct UnkStruct_2000020 *unk_00;
+ u8 unk_04;
+ u8 unk_05;
+};
+
+struct UnkPSSStruct_2002370 {
+ struct Sprite *unk_0000;
+ struct Sprite *unk_0004[4];
+ u32 unk_0014[3];
+ struct Sprite *unk_0020[2];
+ u8 filler_0028[0x214];
+ u8 curBox;
+ u8 unk_023d;
+ u8 unk_023e;
+ u16 unk_0240;
+ u16 unk_0242;
+}; // 0244
+
+struct PokemonStorageSystemData {
+ void (*unk_0000)(void);
+ u8 unk_0004;
+ u8 unk_0005;
+ u8 unk_0006;
+ u16 unk_0008;
+ u16 unk_000a;
+ struct PCScreenEffectStruct unk_000c;
+ struct UnkStruct_2000020 unk_0020[274]; // refine size later
+ u8 filler_08b0[2];
+ s16 unk_08b2;
+ u16 unk_08b4;
+ u8 filler_08b6[0x93c];
+ u16 unk_11f2;
+ u8 filler_11f4[2];
+ u8 unk_11f6;
+ u8 filler_11f7[0xc5];
+ struct PokemonMarkMenu unk_12bc;
+ struct UnkPSSStruct_2002370 unk_2370;
+ u8 filler_25b4[0xd8];
+ u8 unk_268c;
+ u8 unk_268d;
+ u8 unk_268e;
+ struct Pokemon *unk_2690;
+};
+
+void StorageSystemCreatePrimaryMenu(u8 whichMenu);
+void sub_80963D0(u8 curBox);
+void sub_809658C(void);
+void sub_80965F8(void);
+void sub_809662C(void);
+void sub_809665C(void);
+void sub_80966F4(const u8 *sourceString, u16 x, u16 y);
+void sub_8096784(struct Sprite *sprite);
+void task_intro_29(u8 whichMenu);
+void sub_8096884(void);
+void sub_8096AFC(void);
+void sub_8096B38(void);
+void SetPSSCallback(void (*func)(void));
+void sub_8096BF0(void);
+void sub_8096C68(void);
+void sub_8096C84(void);
+void sub_8097004(void);
+void sub_8097078(void);
+void sub_80972A8(void);
+void sub_80972FC(void);
+void c3_0808DC50(void);
+void sub_8097390(void);
+void sub_809746C(void);
+void sub_809789C(void);
+void sub_8097BA0(void);
+void sub_8097CC0(void);
+void BoxSetMosaic(void);
+void sub_80986E8(void);
+void sub_8098710(void);
+void sub_8098A5C(void);
+void sub_809B440(void);
+void sub_8096FC8(void);
+void sub_8097DE0(void);
+void sub_8097E44(void);
+void sub_8097E70(void);
+void sub_8098400(void);
+void sub_8098734(void);
+void sub_8098898(u8 index);
+void sub_8098B48(void);
+void sub_8099BF8(u8 a0);
+void sub_8099C70(u8 whichBox);
+bool8 sub_8099D34(void);
+struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4);
+void sub_809AA24(void);
+void sub_809AA98(void);
+bool8 sub_809AC00(void);
+void sub_809B0D4(void);
+void sub_809BBC0(void);
+void sub_809BD14(void);
+bool8 sub_809BE80(void);
+bool8 sub_809BEBC(void);
+bool8 sub_809BF20(void);
+bool8 sub_809BF48(void);
+u8 sub_809CA40(void);
+void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 *a1, u8 a2);
+void sub_809CFF0(void);
+
+const struct PSS_MenuStringPtrs gUnknown_083B600C[] = {
+ {PCText_WithdrawPoke, PCText_MovePokeToParty},
+ {PCText_DepositPoke, PCText_StorePokeInBox},
+ {PCText_MovePoke, PCText_OrganizeBoxesParty},
+ {PCText_SeeYa, PCText_ReturnToPrevMenu}
+};
+
+const union AnimCmd gSpriteAnim_83B602C[] = {
+ ANIMCMD_FRAME( 0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B6034[] = {
+ ANIMCMD_FRAME( 4, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B603C[] = {
+ ANIMCMD_FRAME( 6, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B6044[] = {
+ ANIMCMD_FRAME(10, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83B604C[] = {
+ gSpriteAnim_83B602C,
+ gSpriteAnim_83B6034,
+ gSpriteAnim_83B603C,
+ gSpriteAnim_83B6044
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83B605C[] = {
+ AFFINEANIMCMD_FRAME(0xe0, 0xe0, 0, 0),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83B606C[] = {
+ gSpriteAffineAnim_83B605C
+};
+
+const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal");
+
+const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
+
+const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
+
extern const struct StorageAction gUnknown_083B6DF4[];
+extern const struct PokemonStorageSystemData *gPokemonStorageSystemPtr;
+extern u8 *const gUnknown_083B6DB8;
EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
+EWRAM_DATA u8 gUnknown_02038470[3] = {};
+EWRAM_DATA u8 gUnknown_02038473 = 0;
+EWRAM_DATA u8 gUnknown_02038474 = 0;
+EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478 = NULL;
+EWRAM_DATA u8 gUnknown_0203847C = 0;
+EWRAM_DATA u8 gUnknown_0203847D = 0;
+EWRAM_DATA u8 gUnknown_0203847E = 0;
+EWRAM_DATA u8 gUnknown_0203847F = 0;
+EWRAM_DATA struct Pokemon gUnknown_02038480 = {};
+EWRAM_DATA u8 gUnknown_020384E4 = 0;
+EWRAM_DATA u8 gUnknown_020384E5 = 0;
+EWRAM_DATA u8 gUnknown_020384E6 = 0;
+EWRAM_DATA u8 gUnknown_020384E7 = 0;
+EWRAM_DATA u8 gUnknown_020384E8 = 0;
+EWRAM_DATA u8 gUnknown_020384E9 = 0;
+EWRAM_DATA u16 gUnknown_020384EA = 0;
+EWRAM_DATA u32 gUnknown_020384EC = 0;
+
+static u8 CountPokemonInBoxN(u8 boxId)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < 30; i++)
+ {
+ if (GetBoxMonData(gPokemonStorage.boxes[boxId] + i, MON_DATA_SPECIES) != 0)
+ count++;
+ }
+ return count;
+}
+
+s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId)
+{
+ u16 i;
+
+ for (i = 0; i < 30; i++)
+ {
+ if (GetBoxMonData(gPokemonStorage.boxes[boxId] + i, MON_DATA_SPECIES) == 0)
+ return i;
+ }
+ return -1;
+}
+
+u8 GetNumValidDaycarePartyMons(void)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ struct Pokemon *pokemon = gPlayerParty + i;
+ if (GetMonData(pokemon, MON_DATA_SPECIES) != 0 && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ count++;
+ }
+ return count;
+}
+
+u8 CountAlivePartyMonsExceptOne(u8 toSkip)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ if (i != toSkip)
+ {
+ struct Pokemon *pokemon = gPlayerParty + i;
+ if (GetMonData(pokemon, MON_DATA_SPECIES) != 0 && !GetMonData(pokemon, MON_DATA_IS_EGG) && GetMonData(pokemon, MON_DATA_HP) != 0)
+ count++;
+ }
+ }
+ return count;
+}
+
+u8 CountAlivePartyMonsExceptSelectedOne(void)
+{
+ return CountAlivePartyMonsExceptOne(gSpecialVar_0x8004);
+}
+
+u8 StorageSystemGetPartySize(void)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES) != 0)
+ count++;
+ }
+ return count;
+}
+
+u8 *unref_sub_8095C60(u8 *dest, const u8 *src, u16 pad)
+{
+ u8 *_dest = StringCopy(dest, src);
+ while (_dest < dest + pad)
+ {
+ *_dest++ = CHAR_SPACE;
+ }
+ *_dest = EOS;
+ return _dest;
+}
+
+void sub_8095C8C(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width)
+{
+ u16 i;
+
+ dest_width *= 2;
+ dest += dest_top * 0x20 + dest_left;
+ src += src_top * src_width + src_left;
+ for (i = 0; i < dest_height; i++)
+ {
+ CpuCopy16(src, dest, dest_width);
+ dest += 0x20;
+ src += src_width;
+ }
+}
+
+#ifdef NONMATCHING
+void unref_sub_8095D08(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
+{
+ u16 i;
+
+ dest += dest_top * 0x20 + dest_left;
+ width *= 2;
+ for (i = 0; i < height; dest += 0x20, i++)
+ {
+ void *_dest = dest;
+ size_t _size = width;
+ if (_size <= 0x1000)
+ {
+ DmaFill16(3, 0, _dest, _size);
+ }
+ else
+ {
+ while (1)
+ {
+ DmaFill16(3, 0, _dest, 0x1000);
+ _dest += 0x1000;
+ _size -= 0x1000;
+ if (_size <= 0x1000)
+ {
+ DmaFill16(3, 0, _dest, _size);
+ break;
+ }
+ }
+ }
+ }
+}
+#else
+__attribute__((naked)) void unref_sub_8095D08(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x8\n"
+ "\tadds r4, r0, 0\n"
+ "\tldr r0, [sp, 0x28]\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r1, 16\n"
+ "\tlsls r2, 16\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r10, r0\n"
+ "\tlsrs r2, 11\n"
+ "\tadds r2, r1\n"
+ "\tlsls r2, 1\n"
+ "\tadds r4, r2\n"
+ "\tlsls r3, 17\n"
+ "\tlsrs r0, r3, 16\n"
+ "\tstr r0, [sp, 0x4]\n"
+ "\tmovs r0, 0\n"
+ "\tcmp r0, r10\n"
+ "\tbcs _08095DB2\n"
+ "\tmovs r6, 0x80\n"
+ "\tlsls r6, 5\n"
+ "\tmov r5, sp\n"
+ "\tldr r7, _08095D74 @ =0x040000d4\n"
+ "\tlsrs r3, 17\n"
+ "\tmov r9, r3\n"
+ "\tmov r1, r9\n"
+ "\tmovs r2, 0x81\n"
+ "\tlsls r2, 24\n"
+ "\torrs r1, r2\n"
+ "\tmov r9, r1\n"
+ "_08095D4E:\n"
+ "\tadds r3, r4, 0\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tmovs r1, 0x40\n"
+ "\tadds r1, r4\n"
+ "\tmov r8, r1\n"
+ "\tadds r0, 0x1\n"
+ "\tmov r12, r0\n"
+ "\tcmp r2, r6\n"
+ "\tbhi _08095D78\n"
+ "\tmovs r0, 0\n"
+ "\tstrh r0, [r5]\n"
+ "\tmov r2, sp\n"
+ "\tstr r2, [r7]\n"
+ "\tstr r4, [r7, 0x4]\n"
+ "\tmov r0, r9\n"
+ "\tstr r0, [r7, 0x8]\n"
+ "\tldr r0, [r7, 0x8]\n"
+ "\tb _08095DA6\n"
+ "\t.align 2, 0\n"
+ "_08095D74: .4byte 0x040000d4\n"
+ "_08095D78:\n"
+ "\tmovs r4, 0\n"
+ "\tstrh r4, [r5]\n"
+ "\tldr r1, _08095DC4 @ =0x040000d4\n"
+ "\tmov r0, sp\n"
+ "\tstr r0, [r1]\n"
+ "\tstr r3, [r1, 0x4]\n"
+ "\tldr r0, _08095DC8 @ =0x81000800\n"
+ "\tstr r0, [r1, 0x8]\n"
+ "\tldr r0, [r1, 0x8]\n"
+ "\tadds r3, r6\n"
+ "\tsubs r2, r6\n"
+ "\tcmp r2, r6\n"
+ "\tbhi _08095D78\n"
+ "\tstrh r4, [r5]\n"
+ "\tmov r0, sp\n"
+ "\tstr r0, [r1]\n"
+ "\tstr r3, [r1, 0x4]\n"
+ "\tlsrs r0, r2, 1\n"
+ "\tmovs r2, 0x81\n"
+ "\tlsls r2, 24\n"
+ "\torrs r0, r2\n"
+ "\tstr r0, [r1, 0x8]\n"
+ "\tldr r0, [r1, 0x8]\n"
+ "_08095DA6:\n"
+ "\tmov r4, r8\n"
+ "\tmov r1, r12\n"
+ "\tlsls r0, r1, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, r10\n"
+ "\tbcc _08095D4E\n"
+ "_08095DB2:\n"
+ "\tadd sp, 0x8\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08095DC4: .4byte 0x040000d4\n"
+ "_08095DC8: .4byte 0x81000800");
+}
+#endif
+
+s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode)
+{
+ s16 i;
+ s16 direction;
+ if (mode == 0 || mode == 2)
+ {
+ direction = 1;
+ }
+ else
+ {
+ direction = -1;
+ }
+ if (mode == 2 || mode == 3)
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0)
+ return i;
+ }
+ }
+ else
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0 && !GetBoxMonData(box + i, MON_DATA_IS_EGG))
+ return i;
+ }
+ }
+ return -1;
+}
+
+void StorageSystemClearMessageWindow(void)
+{
+ MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+}
+
+void Task_PokemonStorageSystem(u8 taskId)
+{
+ struct Task *task = gTasks + taskId;
+ switch (task->data[0])
+ {
+ case 0:
+ StorageSystemCreatePrimaryMenu(task->data[1]);
+ MenuDisplayMessageBox();
+ MenuPrint(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0]++;
+ break;
+ case 1:
+ if (sub_807D770())
+ {
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[2] = ProcessMenuInput();
+ switch(task->data[2])
+ {
+ case -2:
+ task->data[3] = task->data[1];
+ if (gMain.newKeys & DPAD_UP && --task->data[3] < 0)
+ task->data[3] = 3;
+
+ if (gMain.newKeys & DPAD_DOWN && ++task->data[3] > 3)
+ task->data[3] = 0;
+ if (task->data[1] != task->data[3])
+ {
+ task->data[1] = task->data[3];
+ StorageSystemClearMessageWindow();
+ MenuPrint(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ }
+ break;
+ case -1:
+ case 3:
+ HandleDestroyMenuCursors();
+ MenuZeroFillWindowRect(0, 0, 13, 9);
+ ScriptContext2_Disable();
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ default:
+ if (task->data[2] == 0 && StorageSystemGetPartySize() == PARTY_SIZE)
+ {
+ StorageSystemClearMessageWindow();
+ MenuPrint(gPCText_PartyFull2, 2, 15);
+ task->data[0] = 3;
+ }
+ else if (task->data[2] == 1 && StorageSystemGetPartySize() == 1)
+ {
+ StorageSystemClearMessageWindow();
+ MenuPrint(gPCText_OnlyOne, 2, 15);
+ task->data[0] = 3;
+ }
+ else
+ {
+ fade_screen(1, 0);
+ task->data[0] = 4;
+ }
+ break;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ StorageSystemClearMessageWindow();
+ MenuPrint(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ if (--task->data[1] < 0)
+ task->data[1] = 3;
+ MoveMenuCursor(-1);
+ task->data[1] = GetMenuCursorPos();
+ StorageSystemClearMessageWindow();
+ MenuPrint(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (++task->data[1] > 3)
+ task->data[1] = 0;
+ MoveMenuCursor(1);
+ task->data[1] = GetMenuCursorPos();
+ StorageSystemClearMessageWindow();
+ MenuPrint(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ task_intro_29(task->data[2]);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void ShowPokemonStorageSystem(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ ScriptContext2_Enable();
+}
+
+void sub_8096130(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gUnknown_02038474;
+ pal_fill_black();
+}
+
+void StorageSystemCreatePrimaryMenu(u8 whichMenu)
+{
+ MenuDrawTextWindow(0, 0, 13, 9);
+ PrintMenuItems(1, 1, 4, (const struct MenuAction *)gUnknown_083B600C);
+ InitMenu(0, 1, 1, 4, whichMenu, 12);
+}
+
+void sub_80961A8(void)
+{
+ gUnknown_02038474 = gPokemonStorageSystemPtr->unk_0005;
+ gFieldCallback = sub_8096130;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+}
+
+void ResetPokemonStorageSystem(void)
+{
+ u16 boxId;
+ u16 boxMon;
+
+ gPokemonStorage.currentBox = 0;
+ for (boxId = 0; boxId < 14; boxId++)
+ {
+ for (boxMon = 0; boxMon < 30; boxMon++)
+ {
+ ZeroBoxMonData(gPokemonStorage.boxes[boxId] + boxMon);
+ }
+ }
+ for (boxId = 0; boxId < 14; boxId++)
+ {
+ u8 *dest = StringCopy(gPokemonStorage.boxNames[boxId], gPCText_BOX);
+ ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2);
+ }
+ for (boxId = 0; boxId < 14; boxId++)
+ {
+ gPokemonStorage.wallpaper[boxId] = boxId & 0x03;
+ }
+}
+
+void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3)
+{
+ struct SpritePalette palette = {
+ gBoxSelectionPopupPalette, palTag
+ };
+ struct SpriteSheet sheets[] = {
+ {gBoxSelectionPopupCenterTiles, 0x800, tileTag},
+ {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1},
+ {}
+ };
+ LoadSpritePalette(&palette);
+ LoadSpriteSheets(sheets);
+ gUnknown_02038478 = a0;
+ a0->unk_0240 = tileTag;
+ a0->unk_0242 = palTag;
+ a0->unk_023e = a3;
+}
+
+void sub_8096310(void)
+{
+ FreeSpritePaletteByTag(gUnknown_02038478->unk_0242);
+ FreeSpriteTilesByTag(gUnknown_02038478->unk_0240);
+ FreeSpriteTilesByTag(gUnknown_02038478->unk_0240 + 1);
+}
+
+void sub_809634C(u8 curBox)
+{
+ sub_80963D0(curBox);
+}
+
+void sub_809635C(void)
+{
+ sub_809658C();
+}
+
+u8 sub_8096368(void)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return 201;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return gUnknown_02038478->curBox;
+ }
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ sub_809662C();
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80965F8();
+ }
+ return 200;
+}
+
+void sub_80963D0(u8 curBox)
+{
+ u16 i;
+ u8 spriteId;
+ struct SpriteTemplate template;
+ struct OamData oamData = {};
+ oamData.size = 3;
+ oamData.paletteNum = 1;
+ template = (struct SpriteTemplate){
+ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ };
+
+ gUnknown_02038478->curBox = curBox;
+ template.tileTag = gUnknown_02038478->unk_0240;
+ template.paletteTag = gUnknown_02038478->unk_0242;
+
+ spriteId = CreateSprite(&template, 0xA0, 0x60, 0);
+ gUnknown_02038478->unk_0000 = gSprites + spriteId;
+
+ oamData.shape = ST_OAM_V_RECTANGLE;
+ oamData.size = 1;
+ template.tileTag = gUnknown_02038478->unk_0240 + 1;
+ template.anims = gSpriteAnimTable_83B604C;
+ for (i = 0; i < 4; i++)
+ {
+ u16 r5;
+ spriteId = CreateSprite(&template, 0x7c, 0x50, gUnknown_02038478->unk_023e);
+ gUnknown_02038478->unk_0004[i] = gSprites + spriteId;
+ r5 = 0;
+ if (i & 2)
+ {
+ gUnknown_02038478->unk_0004[i]->pos1.x = 0xc4;
+ r5 = 2;
+ }
+ if (i & 1)
+ {
+ gUnknown_02038478->unk_0004[i]->pos1.y = 0x70;
+ gUnknown_02038478->unk_0004[i]->oam.size = 0;
+ r5++;
+ }
+ StartSpriteAnim(gUnknown_02038478->unk_0004[i], r5);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ gUnknown_02038478->unk_0020[i] = sub_809A9A0(72 * i + 0x7c, 0x58, i, 0, gUnknown_02038478->unk_023e);
+ if (gUnknown_02038478->unk_0020[i])
+ {
+ gUnknown_02038478->unk_0020[i]->data[0] = (i == 0 ? -1 : 1);
+ gUnknown_02038478->unk_0020[i]->callback = sub_8096784;
+ }
+ }
+ sub_809665C();
+}
+
+void sub_809658C(void)
+{
+ u16 i;
+ if (gUnknown_02038478->unk_0000)
+ {
+ DestroySprite(gUnknown_02038478->unk_0000);
+ gUnknown_02038478->unk_0000 = NULL;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02038478->unk_0004[i])
+ {
+ DestroySprite(gUnknown_02038478->unk_0004[i]);
+ gUnknown_02038478->unk_0004[i] = NULL;
+ }
+ }
+ for (i = 0; i < 2; i++)
+ {
+ if (gUnknown_02038478->unk_0020[i])
+ DestroySprite(gUnknown_02038478->unk_0020[i]);
+ }
+}
+
+void sub_80965F8(void)
+{
+ if (++gUnknown_02038478->curBox > 13)
+ gUnknown_02038478->curBox = 0;
+ sub_809665C();
+}
+
+void sub_809662C(void)
+{
+ gUnknown_02038478->curBox = (gUnknown_02038478->curBox == 0 ? 13 : gUnknown_02038478->curBox - 1);
+ sub_809665C();
+}
+
+void sub_809665C(void)
+{
+ u8 nPokemonInBox = CountPokemonInBoxN(gUnknown_02038478->curBox);
+ u8 *stringVar = gStringVar1;
+
+ stringVar[0] = EXT_CTRL_CODE_BEGIN;
+ stringVar[1] = 0x04; // EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW
+ stringVar[2] = 0x0F; // TEXT_COLOR_WHITE2
+ stringVar[3] = 0x01; // TEXT_COLOR_DARK_GREY
+ stringVar[4] = 0x0E; // TEXT_COLOR_LIGHT_BLUE
+ stringVar += 5;
+
+ stringVar = StringCopy(stringVar, gPokemonStorage.boxNames[gUnknown_02038478->curBox]);
+
+ stringVar[0] = CHAR_NEWLINE;
+ stringVar[1] = EXT_CTRL_CODE_BEGIN;
+ stringVar[2] = 0x11; // EXT_CTRL_CODE_CLEAR
+ if (nPokemonInBox < 10)
+ stringVar[3] = 0x28;
+ else
+ stringVar[3] = 0x22;
+ stringVar += 4;
+
+ stringVar = ConvertIntToDecimalString(stringVar, nPokemonInBox);
+
+ stringVar[0] = CHAR_SLASH;
+ stringVar[1] = CHAR_0 + 3;
+ stringVar[2] = CHAR_0 + 0;
+ stringVar[3] = EOS;
+ sub_80966F4(gStringVar1, 0, 1);
+}
+
+void sub_80966F4(const u8 *sourceString, u16 x, u16 y)
+{
+ u16 *vdest = (u16 *)(BG_CHAR_ADDR(4) + (GetSpriteTileStartByTag(gUnknown_02038478->unk_0240) * 32) + y * 256 + x * 32);
+ u8 *tileBuff = gUnknown_083B6DB8;
+ DmaFill16(3, 0x1111, tileBuff, 0x400);
+ sub_8004E3C(&gWindowConfig_81E6D38, tileBuff, sourceString);
+ DmaCopy16(3, tileBuff, vdest, 0x400);
+}
+
+void sub_8096784(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 3)
+ {
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[0];
+ if (++sprite->data[2] > 5)
+ {
+ sprite->data[2] = 0;
+ sprite->pos2.x = 0;
+ }
+ }
+}
+
+void task_intro_29(u8 whichMenu)
+{
+ gUnknown_0203847D = whichMenu;
+ ePokemonStorageSystem.unk_0005 = whichMenu;
+ SetMainCallback2(sub_8096884);
+}
+
+void sub_80967DC(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+}
+
+void sub_8096804(void)
+{
+ ResetPaletteFade();
+ ResetSpriteData();
+ FreeSpriteTileRanges();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ gReservedSpriteTileCount = 0x280;
+ sub_809CFDC(ePokemonStorageSystem.unk_0020, ePokemonStorageSystem.unk_0020 + 1, 8);
+ gKeyRepeatStartDelay = 20;
+}
+
+void sub_8096848(void)
+{
+ sub_809B0D4();
+ gUnknown_0203847C = (ePokemonStorageSystem.unk_0005 == 1 ? 1 : 0);
+ gUnknown_0203847E = 0;
+}
+
+void sub_8096874(void)
+{
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+}
+
+void sub_8096884(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ sub_8096804();
+ gMain.state++;
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E6D00);
+ gMain.state++;
+ break;
+ case 2:
+ InitMenuWindow(&gWindowConfig_81E6D00);
+ MenuZeroFillScreen();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80967DC();
+ sub_8096848();
+ gMain.state++;
+ break;
+ case 4:
+ sub_8098B48();
+ sub_809AA24();
+ gMain.state++;
+ break;
+ case 5:
+ sub_8097DE0();
+ gMain.state++;
+ break;
+ case 6:
+ sub_8097E70();
+ gMain.state++;
+ break;
+ case 7:
+ sub_8098400();
+ gMain.state++;
+ break;
+ case 8:
+ sub_8099BF8(gPokemonStorage.currentBox);
+ ePokemonStorageSystem.unk_12bc.baseTileTag = 0x000a;
+ ePokemonStorageSystem.unk_12bc.basePaletteTag = 0xdacb;
+ sub_80F727C(&ePokemonStorageSystem.unk_12bc);
+ sub_80F7404();
+ gMain.state++;
+ break;
+ case 9:
+ sub_8096874();
+ SetPSSCallback(sub_8096BF0);
+ SetMainCallback2(sub_8096B38);
+ SetVBlankCallback(sub_8096AFC);
+ gMain.state++;
+ break;
+ }
+}
+
+void sub_80969A0(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0x0000;
+ ePokemonStorageSystem.unk_0005 = gUnknown_0203847D;
+ sub_8096804();
+ if (gUnknown_0203847F == 1)
+ sub_809BBC0();
+ if (gUnknown_0203847F == 0)
+ sub_809BD14();
+ gMain.state++;
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E6D00);
+ gMain.state++;
+ break;
+ case 2:
+ InitMenuWindow(&gWindowConfig_81E6D00);
+ MenuZeroFillScreen();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80967DC();
+ gMain.state++;
+ break;
+ case 4:
+ sub_8098B48();
+ sub_809AA98();
+ gMain.state++;
+ break;
+ case 5:
+ sub_8097DE0();
+ gMain.state++;
+ break;
+ case 6:
+ sub_8097E70();
+ gMain.state++;
+ break;
+ case 7:
+ sub_8098400();
+ gMain.state++;
+ break;
+ case 8:
+ sub_8099BF8(gPokemonStorage.currentBox);
+ ePokemonStorageSystem.unk_12bc.baseTileTag = 0x000a;
+ ePokemonStorageSystem.unk_12bc.basePaletteTag = 0xdacb;
+ sub_80F727C(&ePokemonStorageSystem.unk_12bc);
+ sub_80F7404();
+ gMain.state++;
+ break;
+ case 9:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ SetVBlankCallback(sub_8096AFC);
+ gMain.state++;
+ break;
+ case 10:
+ sub_8096874();
+ SetPSSCallback(sub_8096C68);
+ SetMainCallback2(sub_8096B38);
+ gMain.state++;
+ break;
+ }
+}
+
+void sub_8096AFC(void)
+{
+ REG_BG2HOFS = ePokemonStorageSystem.unk_08b4;
+ REG_BG3HOFS = ePokemonStorageSystem.unk_000a;
+ REG_BG3VOFS = ePokemonStorageSystem.unk_0008;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_809CFF0();
+ TransferPlttBuffer();
+}
+
+void sub_8096B38(void)
+{
+ ePokemonStorageSystem.unk_0000();
+ sub_8097E44();
+ sub_8098734();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_8096B5C(void)
+{
+ switch (ePokemonStorageSystem.unk_0006)
+ {
+ case 0:
+ ShowPokemonSummaryScreen(ePokemonStorageSystem.unk_2690, ePokemonStorageSystem.unk_268d, ePokemonStorageSystem.unk_268c, sub_80969A0, ePokemonStorageSystem.unk_268e);
+ break;
+ case 1:
+ DoNamingScreen(1, gPokemonStorage.boxNames[gPokemonStorage.currentBox], 0, 0, 0, sub_80969A0);
+ break;
+ }
+}
+
+void SetPSSCallback(void (*func)(void))
+{
+ ePokemonStorageSystem.unk_0000 = func;
+ ePokemonStorageSystem.unk_0004 = 0;
+}
+
+void sub_8096BF0(void)
+{
+ switch (ePokemonStorageSystem.unk_0004)
+ {
+ case 0:
+ BlendPalettes(0xffffffff, 16, 0);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 1:
+ PlaySE(SE_PC_LOGON);
+ ePokemonStorageSystem.unk_000c.tileTag = 14;
+ ePokemonStorageSystem.unk_000c.paletteTag = 0xdad0;
+ ePokemonStorageSystem.unk_000c.unk04 = 0;
+ ePokemonStorageSystem.unk_000c.unk06 = 0;
+ sub_80C5CD4(&ePokemonStorageSystem.unk_000c);
+ BlendPalettes(0xffffffff, 0, 0);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 2:
+ if (sub_80C5DCC())
+ SetPSSCallback(sub_8096C84);
+ break;
+ }
+}
+
+void sub_8096C68(void)
+{
+ if (!UpdatePaletteFade())
+ SetPSSCallback(sub_8096C84);
+}
+
+void sub_8096C84(void)
+{
+ switch (ePokemonStorageSystem.unk_0004)
+ {
+ case 0:
+ switch (sub_809CA40())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ ePokemonStorageSystem.unk_0004 = 1;
+ break;
+ case 5:
+ if (ePokemonStorageSystem.unk_0005 != 2)
+ {
+ sub_8098898(16);
+ ePokemonStorageSystem.unk_0004 = 3;
+ }
+ else
+ {
+ sub_809B0D4();
+ SetPSSCallback(sub_8096FC8);
+ }
+ break;
+ case 6:
+ if (ePokemonStorageSystem.unk_0005 == 2)
+ {
+ if (sub_809BF20() && ItemIsMail(ePokemonStorageSystem.unk_11f2))
+ {
+ ePokemonStorageSystem.unk_0004 = 5;
+ }
+ else
+ {
+ SetPSSCallback(sub_8097004);
+ }
+ }
+ break;
+ case 4:
+ SetPSSCallback(sub_8097BA0);
+ break;
+ case 16:
+ SetPSSCallback(sub_8097CC0);
+ break;
+ case 7:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_809789C);
+ break;
+ case 8:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097078);
+ break;
+ case 9:
+ PlaySE(SE_SELECT);
+ ePokemonStorageSystem.unk_08b2 = gPokemonStorage.currentBox + 1;
+ if (ePokemonStorageSystem.unk_08b2 > 13)
+ ePokemonStorageSystem.unk_08b2 = 0;
+ sub_8099C70(ePokemonStorageSystem.unk_08b2);
+ ePokemonStorageSystem.unk_0004 = 2;
+ break;
+ case 10:
+ PlaySE(SE_SELECT);
+ ePokemonStorageSystem.unk_08b2 = gPokemonStorage.currentBox - 1;
+ if (ePokemonStorageSystem.unk_08b2 < 0)
+ ePokemonStorageSystem.unk_08b2 = 13;
+ sub_8099C70(ePokemonStorageSystem.unk_08b2);
+ ePokemonStorageSystem.unk_0004 = 2;
+ break;
+ case 11:
+ if (!sub_809BE80())
+ {
+ if (ItemIsMail(ePokemonStorageSystem.unk_11f2))
+ {
+ ePokemonStorageSystem.unk_0004 = 5;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_809746C);
+ }
+ }
+ else
+ {
+ ePokemonStorageSystem.unk_0004 = 4;
+ }
+ break;
+ case 13:
+ if (sub_809BE80())
+ {
+ ePokemonStorageSystem.unk_0004 = 4;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_80972A8);
+ }
+ break;
+ case 14:
+ if (!sub_809BEBC())
+ {
+ ePokemonStorageSystem.unk_0004 = 4;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(c3_0808DC50);
+ }
+ break;
+ case 12:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097390);
+ break;
+ case 15:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_80972FC);
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_809AC00())
+ {
+ if (sub_809BF48())
+ sub_80986E8();
+ else
+ sub_8098710();
+ if (ePokemonStorageSystem.unk_11f6)
+ BoxSetMosaic();
+ ePokemonStorageSystem.unk_0004 = 0;
+ }
+ break;
+ case 2:
+ if (!sub_8099D34())
+ {
+ gPokemonStorage.currentBox = ePokemonStorageSystem.unk_08b2;
+ if (!gUnknown_0203847C && !sub_809BF20())
+ {
+ sub_809B440();
+ BoxSetMosaic();
+ }
+ ePokemonStorageSystem.unk_0004 = 0;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ ePokemonStorageSystem.unk_0004 = 0;
+ }
+ break;
+ case 4:
+ PlaySE(SE_HAZURE);
+ sub_8098898(13);
+ ePokemonStorageSystem.unk_0004 = 6;
+ break;
+ case 5:
+ PlaySE(SE_HAZURE);
+ sub_8098898(22);
+ ePokemonStorageSystem.unk_0004 = 6;
+ break;
+ case 6:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+asm(".section .text.8098898");
void sub_8098898(u8 index) {
u8 *ptr;
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 1751ee99c..812c28137 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -17,6 +17,7 @@
#include "decompress.h"
#include "random.h"
#include "trig.h"
+#include "pc_screen_effect.h"
#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
@@ -89,7 +90,6 @@ static bool8 sub_81438C4(void);
// functions from different files
void sub_81439D0(void);
-void sub_80C5CD4(void*); // ?
void sub_80C5E38(void*); // ?
bool8 sub_80C5DCC(void);
bool8 sub_80C5F98(void);
@@ -811,7 +811,7 @@ void sub_81428CC(void)
fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
- sub_80C5CD4(fameMons);
+ sub_80C5CD4((struct PCScreenEffectStruct *)fameMons);
gMain.state++;
}
break;
diff --git a/sym_ewram.txt b/sym_ewram.txt
index fc4ea94ef..62758ab78 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -379,60 +379,6 @@ gUnknown_0202FFA4: @ 202FFA4
.include "src/engine/trainer_card.o"
.include "src/pokemon/pokemon_storage_system.o"
-@ still pokemon_storage_system
-
- .align 2
-gUnknown_02038470: @ 2038470
- .space 0x3
-
-gUnknown_02038473: @ 2038473
- .space 0x1
-
-gUnknown_02038474: @ 2038474
- .space 0x4
-
-gUnknown_02038478: @ 2038478
- .space 0x4
-
-gUnknown_0203847C: @ 203847C
- .space 0x1
-
-gUnknown_0203847D: @ 203847D
- .space 0x1
-
-gUnknown_0203847E: @ 203847E
- .space 0x1
-
-gUnknown_0203847F: @ 203847F
- .space 0x1
-
-gUnknown_02038480: @ 2038480
- .space 0x64
-
-gUnknown_020384E4: @ 20384E4
- .space 0x1
-
-gUnknown_020384E5: @ 20384E5
- .space 0x1
-
-gUnknown_020384E6: @ 20384E6
- .space 0x1
-
-gUnknown_020384E7: @ 20384E7
- .space 0x1
-
-gUnknown_020384E8: @ 20384E8
- .space 0x1
-
-gUnknown_020384E9: @ 20384E9
- .space 0x1
-
-gUnknown_020384EA: @ 20384EA
- .space 0x2
-
-gUnknown_020384EC: @ 20384EC
- .space 0x4
-
@ pokemon_summary_screen
gUnknown_020384F0: @ 20384F0