summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-12-09 16:26:22 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2019-12-09 16:26:22 -0500
commitefb171875caf57aa48edf14254c1dd8d61c17a5a (patch)
treef5e6178498679f4b1e4b1c1053f222f546c9a814
parent9d70b8a4d9fc69064b5a0bde6670b4aaca25cf5e (diff)
Nonmatching sub_810287C; annotate rodata
-rw-r--r--asm/pokedex_screen.s577
-rw-r--r--data/pokedex_screen.s538
-rw-r--r--include/sound.h1
-rw-r--r--src/pokedex_screen.c663
4 files changed, 1140 insertions, 639 deletions
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index ad2b96cdf..753cf8008 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -5,583 +5,6 @@
.text
- thumb_func_start CB2_OpenPokedexFromStartMenu
-CB2_OpenPokedexFromStartMenu: @ 810275C
- push {lr}
- bl sub_810250C
- movs r1, 0xC0
- lsls r1, 7
- movs r0, 0
- bl ClearGpuRegBits
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, _08102794 @ =sub_81024D4
- bl SetMainCallback2
- movs r0, 0x4
- bl HelpSystem_SetSomeVariable2
- pop {r0}
- bx r0
- .align 2, 0
-_08102794: .4byte sub_81024D4
- thumb_func_end CB2_OpenPokedexFromStartMenu
-
- thumb_func_start sub_8102798
-sub_8102798: @ 8102798
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081027B4 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _081027D8
- cmp r1, 0x1
- bgt _081027B8
- cmp r1, 0
- beq _081027BE
- b _0810284A
- .align 2, 0
-_081027B4: .4byte gMain
-_081027B8:
- cmp r1, 0x2
- beq _081027F2
- b _0810284A
-_081027BE:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
-_081027D2:
- strb r0, [r4]
-_081027D4:
- movs r0, 0
- b _0810284C
-_081027D8:
- ldr r0, _081027E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081027EC
- movs r0, 0x2
- b _081027D2
- .align 2, 0
-_081027E8: .4byte gPaletteFade
-_081027EC:
- bl UpdatePaletteFade
- b _081027D4
-_081027F2:
- ldr r4, _08102854 @ =gUnknown_203ACF0
- ldr r0, [r4]
- ldr r0, [r0, 0x44]
- cmp r0, 0
- beq _08102800
- bl Free
-_08102800:
- ldr r0, [r4]
- cmp r0, 0
- beq _0810280A
- bl Free
-_0810280A:
- bl FreeAllWindowBuffers
- movs r0, 0
- bl GetBgTilemapBuffer
- cmp r0, 0
- beq _0810281C
- bl Free
-_0810281C:
- movs r0, 0x1
- bl GetBgTilemapBuffer
- cmp r0, 0
- beq _0810282A
- bl Free
-_0810282A:
- movs r0, 0x2
- bl GetBgTilemapBuffer
- cmp r0, 0
- beq _08102838
- bl Free
-_08102838:
- movs r0, 0x3
- bl GetBgTilemapBuffer
- cmp r0, 0
- beq _08102846
- bl Free
-_08102846:
- bl sub_807249C
-_0810284A:
- movs r0, 0x1
-_0810284C:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102854: .4byte gUnknown_203ACF0
- thumb_func_end sub_8102798
-
- thumb_func_start sub_8102858
-sub_8102858: @ 8102858
- push {lr}
- bl sub_8102798
- lsls r0, 24
- cmp r0, 0
- beq _08102874
- movs r1, 0xC0
- lsls r1, 7
- movs r0, 0
- bl SetGpuRegBits
- ldr r0, _08102878 @ =CB2_ReturnToFieldWithOpenMenu
- bl SetMainCallback2
-_08102874:
- pop {r0}
- bx r0
- .align 2, 0
-_08102878: .4byte CB2_ReturnToFieldWithOpenMenu
- thumb_func_end sub_8102858
-
- thumb_func_start sub_810287C
-sub_810287C: @ 810287C
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0810289C @ =gUnknown_203ACF0
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x9
- bls _08102892
- b _08102C18
-_08102892:
- lsls r0, 2
- ldr r1, _081028A0 @ =_081028A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810289C: .4byte gUnknown_203ACF0
-_081028A0: .4byte _081028A4
- .align 2, 0
-_081028A4:
- .4byte _081028CC
- .4byte _081028FC
- .4byte _08102930
- .4byte _08102940
- .4byte _08102964
- .4byte _081029D0
- .4byte _08102A14
- .4byte _08102B24
- .4byte _08102B94
- .4byte _08102BD8
-_081028CC:
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x8]
- movs r4, 0
-_081028D4:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_81068A0
- ldr r1, _081028F8 @ =gUnknown_203ACF0
- ldr r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- lsls r0, r4
- ldr r1, [r2, 0x8]
- orrs r1, r0
- str r1, [r2, 0x8]
- adds r4, 0x1
- cmp r4, 0x8
- ble _081028D4
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08102C18
- .align 2, 0
-_081028F8: .4byte gUnknown_203ACF0
-_081028FC:
- ldr r0, [r4]
- adds r0, 0x60
- ldrb r0, [r0]
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x15
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x16
- bl sub_81047B0
- ldr r0, _0810292C @ =sub_8102858
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
- b _08102C18
- .align 2, 0
-_0810292C: .4byte sub_8102858
-_08102930:
- bl sub_8102C28
- ldr r0, _0810293C @ =gUnknown_203ACF0
- ldr r1, [r0]
- movs r0, 0x3
- b _08102C16
- .align 2, 0
-_0810293C: .4byte gUnknown_203ACF0
-_08102940:
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r0, _08102960 @ =gUnknown_203ACF0
- ldr r1, [r0]
- movs r0, 0x4
- b _08102C16
- .align 2, 0
-_08102960: .4byte gUnknown_203ACF0
-_08102964:
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0
- bl ShowBg
- ldr r2, _081029A4 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081029AC
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- negs r0, r0
- ldr r1, _081029A8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081029BC
- .align 2, 0
-_081029A4: .4byte gPaletteFade
-_081029A8: .4byte 0x0000ffff
-_081029AC:
- ldr r0, _081029C4 @ =0xffff7fff
- ldr r1, _081029C8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081029BC:
- ldr r0, _081029CC @ =gUnknown_203ACF0
- ldr r1, [r0]
- movs r0, 0x5
- b _08102C16
- .align 2, 0
-_081029C4: .4byte 0xffff7fff
-_081029C8: .4byte 0x0000ffff
-_081029CC: .4byte gUnknown_203ACF0
-_081029D0:
- ldr r4, _081029EC @ =gUnknown_203ACF0
- ldr r1, [r4]
- ldrb r0, [r1, 0x17]
- adds r1, 0x62
- movs r2, 0
- bl ListMenuGetScrollAndRow
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _081029F4
- ldr r0, _081029F0 @ =gUnknown_84520E4
- b _081029F6
- .align 2, 0
-_081029EC: .4byte gUnknown_203ACF0
-_081029F0: .4byte gUnknown_84520E4
-_081029F4:
- ldr r0, _08102A0C @ =gUnknown_84520D4
-_081029F6:
- ldr r1, [r4]
- adds r1, 0x62
- bl AddScrollIndicatorArrowPair
- ldr r1, [r4]
- adds r1, 0x60
- strb r0, [r1]
- ldr r0, _08102A10 @ =gUnknown_203ACF0
- ldr r1, [r0]
- movs r0, 0x6
- b _08102C16
- .align 2, 0
-_08102A0C: .4byte gUnknown_84520D4
-_08102A10: .4byte gUnknown_203ACF0
-_08102A14:
- ldr r0, [r4]
- ldrb r0, [r0, 0x17]
- bl ListMenu_ProcessInput
- ldr r1, [r4]
- str r0, [r1, 0xC]
- ldrb r0, [r1, 0x17]
- adds r1, 0x62
- movs r2, 0
- bl ListMenuGetScrollAndRow
- ldr r0, _08102A4C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r3, 0x1
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08102B14
- ldr r2, [r4]
- ldr r1, [r2, 0xC]
- cmp r1, 0xD
- bhi _08102A50
- cmp r1, 0xA
- bcs _08102ADC
- cmp r1, 0x8
- bls _08102A62
- b _08102AA4
- .align 2, 0
-_08102A4C: .4byte gMain
-_08102A50:
- cmp r1, 0xE
- beq _08102AA4
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08102A5E
- b _08102C18
-_08102A5E:
- strb r3, [r2, 0x1]
- b _08102C18
-_08102A62:
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_81068A0
- lsls r0, 24
- cmp r0, 0
- bne _08102A72
- b _08102C18
-_08102A72:
- ldr r0, [r4]
- adds r0, 0x60
- ldrb r0, [r0]
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, [r0, 0xC]
- adds r0, 0x28
- strb r1, [r0]
- ldr r0, _08102A9C @ =0xffff7fff
- ldr r1, _08102AA0 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- movs r0, 0x7
- b _08102C16
- .align 2, 0
-_08102A9C: .4byte 0xffff7fff
-_08102AA0: .4byte 0x0000ffff
-_08102AA4:
- ldr r4, _08102AD0 @ =gUnknown_203ACF0
- ldr r0, [r4]
- adds r0, 0x60
- ldrb r0, [r0]
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- subs r0, 0x9
- adds r1, 0x42
- strb r0, [r1]
- ldr r0, _08102AD4 @ =0xffff7fff
- ldr r1, _08102AD8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- movs r0, 0x9
- b _08102C16
- .align 2, 0
-_08102AD0: .4byte gUnknown_203ACF0
-_08102AD4: .4byte 0xffff7fff
-_08102AD8: .4byte 0x0000ffff
-_08102ADC:
- adds r0, r2, 0
- adds r0, 0x60
- ldrb r0, [r0]
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, [r0, 0xC]
- subs r1, 0x9
- adds r0, 0x42
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- strh r2, [r0, 0x3A]
- strh r2, [r0, 0x38]
- ldr r0, _08102B0C @ =0xffff7fff
- ldr r1, _08102B10 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- movs r0, 0x8
- b _08102C16
- .align 2, 0
-_08102B0C: .4byte 0xffff7fff
-_08102B10: .4byte 0x0000ffff
-_08102B14:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08102B1E
- b _08102C18
-_08102B1E:
- ldr r0, [r4]
- strb r3, [r0, 0x1]
- b _08102C18
-_08102B24:
- ldr r2, [r4]
- ldrb r0, [r2, 0x17]
- adds r1, r2, 0
- adds r1, 0x12
- adds r2, 0x10
- bl DestroyListMenuTask
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x15
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x16
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x2B
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0x2D
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0x2F
- strb r2, [r0]
- ldr r1, _08102B8C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08102B90 @ =sub_8103AC8
- str r1, [r0]
- ldr r0, [r4]
- strb r2, [r0, 0x1]
- b _08102C18
- .align 2, 0
-_08102B8C: .4byte gTasks
-_08102B90: .4byte sub_8103AC8
-_08102B94:
- ldr r2, [r4]
- ldrb r0, [r2, 0x17]
- adds r1, r2, 0
- adds r1, 0x12
- adds r2, 0x10
- bl DestroyListMenuTask
- movs r0, 0x1
- bl HideBg
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x15
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x16
- bl sub_81047B0
- ldr r1, _08102BD0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08102BD4 @ =sub_8103238
- b _08102C10
- .align 2, 0
-_08102BD0: .4byte gTasks
-_08102BD4: .4byte sub_8103238
-_08102BD8:
- ldr r2, [r4]
- ldrb r0, [r2, 0x17]
- adds r1, r2, 0
- adds r1, 0x12
- adds r2, 0x10
- bl DestroyListMenuTask
- movs r0, 0x1
- bl HideBg
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x15
- bl sub_81047B0
- ldr r0, [r4]
- adds r0, 0x16
- bl sub_81047B0
- ldr r1, _08102C20 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08102C24 @ =sub_8102F80
-_08102C10:
- str r1, [r0]
- ldr r1, [r4]
- movs r0, 0
-_08102C16:
- strb r0, [r1, 0x1]
-_08102C18:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102C20: .4byte gTasks
-_08102C24: .4byte sub_8102F80
- thumb_func_end sub_810287C
-
thumb_func_start sub_8102C28
sub_8102C28: @ 8102C28
push {r4-r7,lr}
diff --git a/data/pokedex_screen.s b/data/pokedex_screen.s
index 473c88e40..6a834342d 100644
--- a/data/pokedex_screen.s
+++ b/data/pokedex_screen.s
@@ -7,162 +7,580 @@
.align 2
gUnknown_843FAB0:: @ 843FAB0
- .incbin "baserom.gba", 0x43FAB0, 0x674
-
-gUnknown_8440124:: @ 8440124
+ .4byte gMonFootprint_Bulbasaur
+ .4byte gMonFootprint_Bulbasaur
+ .4byte gMonFootprint_Ivysaur
+ .4byte gMonFootprint_Venusaur
+ .4byte gMonFootprint_Charmander
+ .4byte gMonFootprint_Charmeleon
+ .4byte gMonFootprint_Charizard
+ .4byte gMonFootprint_Squirtle
+ .4byte gMonFootprint_Wartortle
+ .4byte gMonFootprint_Blastoise
+ .4byte gMonFootprint_Caterpie
+ .4byte gMonFootprint_Metapod
+ .4byte gMonFootprint_Butterfree
+ .4byte gMonFootprint_Weedle
+ .4byte gMonFootprint_Kakuna
+ .4byte gMonFootprint_Beedrill
+ .4byte gMonFootprint_Pidgey
+ .4byte gMonFootprint_Pidgeotto
+ .4byte gMonFootprint_Pidgeot
+ .4byte gMonFootprint_Rattata
+ .4byte gMonFootprint_Raticate
+ .4byte gMonFootprint_Spearow
+ .4byte gMonFootprint_Fearow
+ .4byte gMonFootprint_Ekans
+ .4byte gMonFootprint_Arbok
+ .4byte gMonFootprint_Pikachu
+ .4byte gMonFootprint_Raichu
+ .4byte gMonFootprint_Sandshrew
+ .4byte gMonFootprint_Sandslash
+ .4byte gMonFootprint_NidoranF
+ .4byte gMonFootprint_Nidorina
+ .4byte gMonFootprint_Nidoqueen
+ .4byte gMonFootprint_NidoranM
+ .4byte gMonFootprint_Nidorino
+ .4byte gMonFootprint_Nidoking
+ .4byte gMonFootprint_Clefairy
+ .4byte gMonFootprint_Clefable
+ .4byte gMonFootprint_Vulpix
+ .4byte gMonFootprint_Ninetales
+ .4byte gMonFootprint_Jigglypuff
+ .4byte gMonFootprint_Wigglytuff
+ .4byte gMonFootprint_Zubat
+ .4byte gMonFootprint_Golbat
+ .4byte gMonFootprint_Oddish
+ .4byte gMonFootprint_Gloom
+ .4byte gMonFootprint_Vileplume
+ .4byte gMonFootprint_Paras
+ .4byte gMonFootprint_Parasect
+ .4byte gMonFootprint_Venonat
+ .4byte gMonFootprint_Venomoth
+ .4byte gMonFootprint_Diglett
+ .4byte gMonFootprint_Dugtrio
+ .4byte gMonFootprint_Meowth
+ .4byte gMonFootprint_Persian
+ .4byte gMonFootprint_Psyduck
+ .4byte gMonFootprint_Golduck
+ .4byte gMonFootprint_Mankey
+ .4byte gMonFootprint_Primeape
+ .4byte gMonFootprint_Growlithe
+ .4byte gMonFootprint_Arcanine
+ .4byte gMonFootprint_Poliwag
+ .4byte gMonFootprint_Poliwhirl
+ .4byte gMonFootprint_Poliwrath
+ .4byte gMonFootprint_Abra
+ .4byte gMonFootprint_Kadabra
+ .4byte gMonFootprint_Alakazam
+ .4byte gMonFootprint_Machop
+ .4byte gMonFootprint_Machoke
+ .4byte gMonFootprint_Machamp
+ .4byte gMonFootprint_Bellsprout
+ .4byte gMonFootprint_Weepinbell
+ .4byte gMonFootprint_Victreebel
+ .4byte gMonFootprint_Tentacool
+ .4byte gMonFootprint_Tentacruel
+ .4byte gMonFootprint_Geodude
+ .4byte gMonFootprint_Graveler
+ .4byte gMonFootprint_Golem
+ .4byte gMonFootprint_Ponyta
+ .4byte gMonFootprint_Rapidash
+ .4byte gMonFootprint_Slowpoke
+ .4byte gMonFootprint_Slowbro
+ .4byte gMonFootprint_Magnemite
+ .4byte gMonFootprint_Magneton
+ .4byte gMonFootprint_Farfetchd
+ .4byte gMonFootprint_Doduo
+ .4byte gMonFootprint_Dodrio
+ .4byte gMonFootprint_Seel
+ .4byte gMonFootprint_Dewgong
+ .4byte gMonFootprint_Grimer
+ .4byte gMonFootprint_Muk
+ .4byte gMonFootprint_Shellder
+ .4byte gMonFootprint_Cloyster
+ .4byte gMonFootprint_Gastly
+ .4byte gMonFootprint_Haunter
+ .4byte gMonFootprint_Gengar
+ .4byte gMonFootprint_Onix
+ .4byte gMonFootprint_Drowzee
+ .4byte gMonFootprint_Hypno
+ .4byte gMonFootprint_Krabby
+ .4byte gMonFootprint_Kingler
+ .4byte gMonFootprint_Voltorb
+ .4byte gMonFootprint_Electrode
+ .4byte gMonFootprint_Exeggcute
+ .4byte gMonFootprint_Exeggutor
+ .4byte gMonFootprint_Cubone
+ .4byte gMonFootprint_Marowak
+ .4byte gMonFootprint_Hitmonlee
+ .4byte gMonFootprint_Hitmonchan
+ .4byte gMonFootprint_Lickitung
+ .4byte gMonFootprint_Koffing
+ .4byte gMonFootprint_Weezing
+ .4byte gMonFootprint_Rhyhorn
+ .4byte gMonFootprint_Rhydon
+ .4byte gMonFootprint_Chansey
+ .4byte gMonFootprint_Tangela
+ .4byte gMonFootprint_Kangaskhan
+ .4byte gMonFootprint_Horsea
+ .4byte gMonFootprint_Seadra
+ .4byte gMonFootprint_Goldeen
+ .4byte gMonFootprint_Seaking
+ .4byte gMonFootprint_Staryu
+ .4byte gMonFootprint_Starmie
+ .4byte gMonFootprint_Mrmime
+ .4byte gMonFootprint_Scyther
+ .4byte gMonFootprint_Jynx
+ .4byte gMonFootprint_Electabuzz
+ .4byte gMonFootprint_Magmar
+ .4byte gMonFootprint_Pinsir
+ .4byte gMonFootprint_Tauros
+ .4byte gMonFootprint_Magikarp
+ .4byte gMonFootprint_Gyarados
+ .4byte gMonFootprint_Lapras
+ .4byte gMonFootprint_Ditto
+ .4byte gMonFootprint_Eevee
+ .4byte gMonFootprint_Vaporeon
+ .4byte gMonFootprint_Jolteon
+ .4byte gMonFootprint_Flareon
+ .4byte gMonFootprint_Porygon
+ .4byte gMonFootprint_Omanyte
+ .4byte gMonFootprint_Omastar
+ .4byte gMonFootprint_Kabuto
+ .4byte gMonFootprint_Kabutops
+ .4byte gMonFootprint_Aerodactyl
+ .4byte gMonFootprint_Snorlax
+ .4byte gMonFootprint_Articuno
+ .4byte gMonFootprint_Zapdos
+ .4byte gMonFootprint_Moltres
+ .4byte gMonFootprint_Dratini
+ .4byte gMonFootprint_Dragonair
+ .4byte gMonFootprint_Dragonite
+ .4byte gMonFootprint_Mewtwo
+ .4byte gMonFootprint_Mew
+ .4byte gMonFootprint_Chikorita
+ .4byte gMonFootprint_Bayleef
+ .4byte gMonFootprint_Meganium
+ .4byte gMonFootprint_Cyndaquil
+ .4byte gMonFootprint_Quilava
+ .4byte gMonFootprint_Typhlosion
+ .4byte gMonFootprint_Totodile
+ .4byte gMonFootprint_Croconaw
+ .4byte gMonFootprint_Feraligatr
+ .4byte gMonFootprint_Sentret
+ .4byte gMonFootprint_Furret
+ .4byte gMonFootprint_Hoothoot
+ .4byte gMonFootprint_Noctowl
+ .4byte gMonFootprint_Ledyba
+ .4byte gMonFootprint_Ledian
+ .4byte gMonFootprint_Spinarak
+ .4byte gMonFootprint_Ariados
+ .4byte gMonFootprint_Crobat
+ .4byte gMonFootprint_Chinchou
+ .4byte gMonFootprint_Lanturn
+ .4byte gMonFootprint_Pichu
+ .4byte gMonFootprint_Cleffa
+ .4byte gMonFootprint_Igglybuff
+ .4byte gMonFootprint_Togepi
+ .4byte gMonFootprint_Togetic
+ .4byte gMonFootprint_Natu
+ .4byte gMonFootprint_Xatu
+ .4byte gMonFootprint_Mareep
+ .4byte gMonFootprint_Flaaffy
+ .4byte gMonFootprint_Ampharos
+ .4byte gMonFootprint_Bellossom
+ .4byte gMonFootprint_Marill
+ .4byte gMonFootprint_Azumarill
+ .4byte gMonFootprint_Sudowoodo
+ .4byte gMonFootprint_Politoed
+ .4byte gMonFootprint_Hoppip
+ .4byte gMonFootprint_Skiploom
+ .4byte gMonFootprint_Jumpluff
+ .4byte gMonFootprint_Aipom
+ .4byte gMonFootprint_Sunkern
+ .4byte gMonFootprint_Sunflora
+ .4byte gMonFootprint_Yanma
+ .4byte gMonFootprint_Wooper
+ .4byte gMonFootprint_Quagsire
+ .4byte gMonFootprint_Espeon
+ .4byte gMonFootprint_Umbreon
+ .4byte gMonFootprint_Murkrow
+ .4byte gMonFootprint_Slowking
+ .4byte gMonFootprint_Misdreavus
+ .4byte gMonFootprint_Unown
+ .4byte gMonFootprint_Wobbuffet
+ .4byte gMonFootprint_Girafarig
+ .4byte gMonFootprint_Pineco
+ .4byte gMonFootprint_Forretress
+ .4byte gMonFootprint_Dunsparce
+ .4byte gMonFootprint_Gligar
+ .4byte gMonFootprint_Steelix
+ .4byte gMonFootprint_Snubbull
+ .4byte gMonFootprint_Granbull
+ .4byte gMonFootprint_Qwilfish
+ .4byte gMonFootprint_Scizor
+ .4byte gMonFootprint_Shuckle
+ .4byte gMonFootprint_Heracross
+ .4byte gMonFootprint_Sneasel
+ .4byte gMonFootprint_Teddiursa
+ .4byte gMonFootprint_Ursaring
+ .4byte gMonFootprint_Slugma
+ .4byte gMonFootprint_Magcargo
+ .4byte gMonFootprint_Swinub
+ .4byte gMonFootprint_Piloswine
+ .4byte gMonFootprint_Corsola
+ .4byte gMonFootprint_Remoraid
+ .4byte gMonFootprint_Octillery
+ .4byte gMonFootprint_Delibird
+ .4byte gMonFootprint_Mantine
+ .4byte gMonFootprint_Skarmory
+ .4byte gMonFootprint_Houndour
+ .4byte gMonFootprint_Houndoom
+ .4byte gMonFootprint_Kingdra
+ .4byte gMonFootprint_Phanpy
+ .4byte gMonFootprint_Donphan
+ .4byte gMonFootprint_Porygon2
+ .4byte gMonFootprint_Stantler
+ .4byte gMonFootprint_Smeargle
+ .4byte gMonFootprint_Tyrogue
+ .4byte gMonFootprint_Hitmontop
+ .4byte gMonFootprint_Smoochum
+ .4byte gMonFootprint_Elekid
+ .4byte gMonFootprint_Magby
+ .4byte gMonFootprint_Miltank
+ .4byte gMonFootprint_Blissey
+ .4byte gMonFootprint_Raikou
+ .4byte gMonFootprint_Entei
+ .4byte gMonFootprint_Suicune
+ .4byte gMonFootprint_Larvitar
+ .4byte gMonFootprint_Pupitar
+ .4byte gMonFootprint_Tyranitar
+ .4byte gMonFootprint_Lugia
+ .4byte gMonFootprint_HoOh
+ .4byte gMonFootprint_Celebi
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_QuestionMark
+ .4byte gMonFootprint_Treecko
+ .4byte gMonFootprint_Grovyle
+ .4byte gMonFootprint_Sceptile
+ .4byte gMonFootprint_Torchic
+ .4byte gMonFootprint_Combusken
+ .4byte gMonFootprint_Blaziken
+ .4byte gMonFootprint_Mudkip
+ .4byte gMonFootprint_Marshtomp
+ .4byte gMonFootprint_Swampert
+ .4byte gMonFootprint_Poochyena
+ .4byte gMonFootprint_Mightyena
+ .4byte gMonFootprint_Zigzagoon
+ .4byte gMonFootprint_Linoone
+ .4byte gMonFootprint_Wurmple
+ .4byte gMonFootprint_Silcoon
+ .4byte gMonFootprint_Beautifly
+ .4byte gMonFootprint_Cascoon
+ .4byte gMonFootprint_Dustox
+ .4byte gMonFootprint_Lotad
+ .4byte gMonFootprint_Lombre
+ .4byte gMonFootprint_Ludicolo
+ .4byte gMonFootprint_Seedot
+ .4byte gMonFootprint_Nuzleaf
+ .4byte gMonFootprint_Shiftry
+ .4byte gMonFootprint_Nincada
+ .4byte gMonFootprint_Ninjask
+ .4byte gMonFootprint_Shedinja
+ .4byte gMonFootprint_Taillow
+ .4byte gMonFootprint_Swellow
+ .4byte gMonFootprint_Shroomish
+ .4byte gMonFootprint_Breloom
+ .4byte gMonFootprint_Spinda
+ .4byte gMonFootprint_Wingull
+ .4byte gMonFootprint_Pelipper
+ .4byte gMonFootprint_Surskit
+ .4byte gMonFootprint_Masquerain
+ .4byte gMonFootprint_Wailmer
+ .4byte gMonFootprint_Wailord
+ .4byte gMonFootprint_Skitty
+ .4byte gMonFootprint_Delcatty
+ .4byte gMonFootprint_Kecleon
+ .4byte gMonFootprint_Baltoy
+ .4byte gMonFootprint_Claydol
+ .4byte gMonFootprint_Nosepass
+ .4byte gMonFootprint_Torkoal
+ .4byte gMonFootprint_Sableye
+ .4byte gMonFootprint_Barboach
+ .4byte gMonFootprint_Whiscash
+ .4byte gMonFootprint_Luvdisc
+ .4byte gMonFootprint_Corphish
+ .4byte gMonFootprint_Crawdaunt
+ .4byte gMonFootprint_Feebas
+ .4byte gMonFootprint_Milotic
+ .4byte gMonFootprint_Carvanha
+ .4byte gMonFootprint_Sharpedo
+ .4byte gMonFootprint_Trapinch
+ .4byte gMonFootprint_Vibrava
+ .4byte gMonFootprint_Flygon
+ .4byte gMonFootprint_Makuhita
+ .4byte gMonFootprint_Hariyama
+ .4byte gMonFootprint_Electrike
+ .4byte gMonFootprint_Manectric
+ .4byte gMonFootprint_Numel
+ .4byte gMonFootprint_Camerupt
+ .4byte gMonFootprint_Spheal
+ .4byte gMonFootprint_Sealeo
+ .4byte gMonFootprint_Walrein
+ .4byte gMonFootprint_Cacnea
+ .4byte gMonFootprint_Cacturne
+ .4byte gMonFootprint_Snorunt
+ .4byte gMonFootprint_Glalie
+ .4byte gMonFootprint_Lunatone
+ .4byte gMonFootprint_Solrock
+ .4byte gMonFootprint_Azurill
+ .4byte gMonFootprint_Spoink
+ .4byte gMonFootprint_Grumpig
+ .4byte gMonFootprint_Plusle
+ .4byte gMonFootprint_Minun
+ .4byte gMonFootprint_Mawile
+ .4byte gMonFootprint_Meditite
+ .4byte gMonFootprint_Medicham
+ .4byte gMonFootprint_Swablu
+ .4byte gMonFootprint_Altaria
+ .4byte gMonFootprint_Wynaut
+ .4byte gMonFootprint_Duskull
+ .4byte gMonFootprint_Dusclops
+ .4byte gMonFootprint_Roselia
+ .4byte gMonFootprint_Slakoth
+ .4byte gMonFootprint_Vigoroth
+ .4byte gMonFootprint_Slaking
+ .4byte gMonFootprint_Gulpin
+ .4byte gMonFootprint_Swalot
+ .4byte gMonFootprint_Tropius
+ .4byte gMonFootprint_Whismur
+ .4byte gMonFootprint_Loudred
+ .4byte gMonFootprint_Exploud
+ .4byte gMonFootprint_Clamperl
+ .4byte gMonFootprint_Huntail
+ .4byte gMonFootprint_Gorebyss
+ .4byte gMonFootprint_Absol
+ .4byte gMonFootprint_Shuppet
+ .4byte gMonFootprint_Banette
+ .4byte gMonFootprint_Seviper
+ .4byte gMonFootprint_Zangoose
+ .4byte gMonFootprint_Relicanth
+ .4byte gMonFootprint_Aron
+ .4byte gMonFootprint_Lairon
+ .4byte gMonFootprint_Aggron
+ .4byte gMonFootprint_Castform
+ .4byte gMonFootprint_Volbeat
+ .4byte gMonFootprint_Illumise
+ .4byte gMonFootprint_Lileep
+ .4byte gMonFootprint_Cradily
+ .4byte gMonFootprint_Anorith
+ .4byte gMonFootprint_Armaldo
+ .4byte gMonFootprint_Ralts
+ .4byte gMonFootprint_Kirlia
+ .4byte gMonFootprint_Gardevoir
+ .4byte gMonFootprint_Bagon
+ .4byte gMonFootprint_Shelgon
+ .4byte gMonFootprint_Salamence
+ .4byte gMonFootprint_Beldum
+ .4byte gMonFootprint_Metang
+ .4byte gMonFootprint_Metagross
+ .4byte gMonFootprint_Regirock
+ .4byte gMonFootprint_Regice
+ .4byte gMonFootprint_Registeel
+ .4byte gMonFootprint_Kyogre
+ .4byte gMonFootprint_Groudon
+ .4byte gMonFootprint_Rayquaza
+ .4byte gMonFootprint_Latias
+ .4byte gMonFootprint_Latios
+ .4byte gMonFootprint_Jirachi
+ .4byte gMonFootprint_Deoxys
+ .4byte gMonFootprint_Chimecho
+ .4byte gMonFootprint_Bulbasaur
+
+gUnknown_8440124:: @ 8440124 bin.lz
.incbin "baserom.gba", 0x440124, 0x150
-gUnknown_8440274:: @ 8440274
+gUnknown_8440274:: @ 8440274 4bpp.lz
.incbin "baserom.gba", 0x440274, 0x138
-gUnknown_84403AC:: @ 84403AC
+gUnknown_84403AC:: @ 84403AC 4bpp.lz
.incbin "baserom.gba", 0x4403AC, 0x11C
-gUnknown_84404C8:: @ 84404C8
+gUnknown_84404C8:: @ 84404C8 gbapal
.incbin "baserom.gba", 0x4404C8, 0x200
-gUnknown_84406C8:: @ 84406C8
+gUnknown_84406C8:: @ 84406C8 data16
.incbin "baserom.gba", 0x4406C8, 0x4
-gUnknown_84406CC:: @ 84406CC
+gUnknown_84406CC:: @ 84406CC data16
.incbin "baserom.gba", 0x4406CC, 0x2
-gUnknown_84406CE:: @ 84406CE
+gUnknown_84406CE:: @ 84406CE data16
.incbin "baserom.gba", 0x4406CE, 0x12
-gUnknown_84406E0:: @ 84406E0
- .incbin "baserom.gba", 0x4406E0, 0x810
+gUnknown_84406E0:: @ 84406E0 gbapal
+ .incbin "baserom.gba", 0x4406E0, 0x200
+ .incbin "baserom.gba", 0x4408E0, 0x610
-gUnknown_8440EF0:: @ 8440EF0
+gUnknown_8440EF0:: @ 8440EF0 bin.lz
.incbin "baserom.gba", 0x440EF0, 0x2570
-gUnknown_8443460:: @ 8443460
- .incbin "baserom.gba", 0x443460, 0x1A0
+gUnknown_8443460:: @ 8443460 gbapal
+ .incbin "baserom.gba", 0x443460, 0x20
+ .incbin "baserom.gba", 0x443480, 0x180
-gUnknown_8443600:: @ 8443600
+gUnknown_8443600:: @ 8443600 4bpp
.incbin "baserom.gba", 0x443600, 0x20
-gUnknown_8443620:: @ 8443620
+gUnknown_8443620:: @ 8443620 bin.lz
.incbin "baserom.gba", 0x443620, 0x6E0
-gUnknown_8443D00:: @ 8443D00
+gUnknown_8443D00:: @ 8443D00 4bpp
.incbin "baserom.gba", 0x443D00, 0x2C0
-gUnknown_8443FC0:: @ 8443FC0
+gUnknown_8443FC0:: @ 8443FC0 data16
.incbin "baserom.gba", 0x443FC0, 0x336
-gUnknown_84442F6:: @ 84442F6
+gUnknown_84442F6:: @ 84442F6 data16
.incbin "baserom.gba", 0x4442F6, 0x304
-gUnknown_84445FA:: @ 84445FA
+gUnknown_84445FA:: @ 84445FA data16
.incbin "baserom.gba", 0x4445FA, 0x304
-gUnknown_84448FE:: @ 84448FE
+gUnknown_84448FE:: @ 84448FE data16
.incbin "baserom.gba", 0x4448FE, 0x336
.section .rodata.after @ pokedex.c erroneously carved out?
-gUnknown_8451EBC:: @ 8451EBC
+gUnknown_8451EBC:: @ 8451EBC BgTemplate
.incbin "baserom.gba", 0x451EBC, 0x10
-gUnknown_8451ECC:: @ 8451ECC
+gUnknown_8451ECC:: @ 8451ECC WindowTemplate
.incbin "baserom.gba", 0x451ECC, 0x18
-gUnknown_8451EE4:: @ 8451EE4
+gUnknown_8451EE4:: @ 8451EE4 PokedexScreenData
.incbin "baserom.gba", 0x451EE4, 0x70
-gUnknown_8451F54:: @ 8451F54
+gUnknown_8451F54:: @ 8451F54 WindowTemplate
.incbin "baserom.gba", 0x451F54, 0x8
-gUnknown_8451F5C:: @ 8451F5C
+gUnknown_8451F5C:: @ 8451F5C WindowTemplate
.incbin "baserom.gba", 0x451F5C, 0x8
-gUnknown_8451F64:: @ 8451F64
- .incbin "baserom.gba", 0x451F64, 0xA0
+gUnknown_8451F64:: @ 8451F64 WindowTemplate
+ .incbin "baserom.gba", 0x451F64, 0x8
+ .incbin "baserom.gba", 0x451F6C, 0x98
-gUnknown_8452004:: @ 8452004
- .incbin "baserom.gba", 0x452004, 0xB8
+gUnknown_8452004:: @ 8452004 ListMenuTemplate
+ .incbin "baserom.gba", 0x452004, 0x18
+ .incbin "baserom.gba", 0x45201C, 0xA0
-gUnknown_84520BC:: @ 84520BC
+gUnknown_84520BC:: @ 84520BC ListMenuTemplate
.incbin "baserom.gba", 0x4520BC, 0x18
-gUnknown_84520D4:: @ 84520D4
+gUnknown_84520D4:: @ 84520D4 ScrollArrowsTemplate
.incbin "baserom.gba", 0x4520D4, 0x10
-gUnknown_84520E4:: @ 84520E4
+gUnknown_84520E4:: @ 84520E4 ScrollArrowsTemplate
.incbin "baserom.gba", 0x4520E4, 0x10
-gUnknown_84520F4:: @ 84520F4
+gUnknown_84520F4:: @ 84520F4 struct { dataptr; dataptr; }
.incbin "baserom.gba", 0x4520F4, 0x78
-gUnknown_845216C:: @ 845216C
+gUnknown_845216C:: @ 845216C WindowTemplate
.incbin "baserom.gba", 0x45216C, 0x8
-gUnknown_8452174:: @ 8452174
+gUnknown_8452174:: @ 8452174 ListMenuTemplate
.incbin "baserom.gba", 0x452174, 0x18
-gUnknown_845218C:: @ 845218C
- .incbin "baserom.gba", 0x45218C, 0x28
+gUnknown_845218C:: @ 845218C ListMenuWindowRect
+ .incbin "baserom.gba", 0x45218C, 0x8
+ .incbin "baserom.gba", 0x452194, 0x20
-gUnknown_84521B4:: @ 84521B4
+gUnknown_84521B4:: @ 84521B4 ScrollArrowsTemplate
.incbin "baserom.gba", 0x4521B4, 0x10
-gUnknown_84521C4:: @ 84521C4
+gUnknown_84521C4:: @ 84521C4 WindowTemplate
.incbin "baserom.gba", 0x4521C4, 0x8
-gUnknown_84521CC:: @ 84521CC
+gUnknown_84521CC:: @ 84521CC WindowTemplate
.incbin "baserom.gba", 0x4521CC, 0x8
-gUnknown_84521D4:: @ 84521D4
+gUnknown_84521D4:: @ 84521D4 WindowTemplate
.incbin "baserom.gba", 0x4521D4, 0x8
-gUnknown_84521DC:: @ 84521DC
+gUnknown_84521DC:: @ 84521DC WindowTemplate
.incbin "baserom.gba", 0x4521DC, 0x8
-gUnknown_84521E4:: @ 84521E4
+gUnknown_84521E4:: @ 84521E4 WindowTemplate
.incbin "baserom.gba", 0x4521E4, 0x8
-gUnknown_84521EC:: @ 84521EC
+gUnknown_84521EC:: @ 84521EC WindowTemplate
.incbin "baserom.gba", 0x4521EC, 0x8
-gUnknown_84521F4:: @ 84521F4
+gUnknown_84521F4:: @ 84521F4 WindowTemplate
.incbin "baserom.gba", 0x4521F4, 0x8
-gUnknown_84521FC:: @ 84521FC
+gUnknown_84521FC:: @ 84521FC WindowTemplate
.incbin "baserom.gba", 0x4521FC, 0x8
-gUnknown_8452204:: @ 8452204
+gUnknown_8452204:: @ 8452204 WindowTemplate
.incbin "baserom.gba", 0x452204, 0x8
-gUnknown_845220C:: @ 845220C
+gUnknown_845220C:: @ 845220C WindowTemplate
.incbin "baserom.gba", 0x45220C, 0x8
-gUnknown_8452214:: @ 8452214
- .incbin "baserom.gba", 0x452214, 0x40
+gUnknown_8452214:: @ 8452214 WindowTemplate
+ .incbin "baserom.gba", 0x452214, 0x8
+ .incbin "baserom.gba", 0x45221C, 0x38
-gUnknown_8452254:: @ 8452254
+gUnknown_8452254:: @ 8452254 struct { dataptr; dataptr; }
.incbin "baserom.gba", 0x452254, 0x38
-gUnknown_845228C:: @ 845228C
+gUnknown_845228C:: @ 845228C bin
.incbin "baserom.gba", 0x45228C, 0xA8
-gUnknown_8452334:: @ 8452334
+gUnknown_8452334:: @ 8452334 dataptr
.incbin "baserom.gba", 0x452334, 0x10
-gUnknown_8452344:: @ 8452344
+gUnknown_8452344:: @ 8452344 dataptr
.incbin "baserom.gba", 0x452344, 0x24
-gUnknown_8452368:: @ 8452368
+gUnknown_8452368:: @ 8452368 gbapal
.incbin "baserom.gba", 0x452368, 0x20
-gUnknown_8452388:: @ 8452388
+gUnknown_8452388:: @ 8452388 data16
.incbin "baserom.gba", 0x452388, 0x12C
-gUnknown_84524B4:: @ 84524B4
+gUnknown_84524B4:: @ 84524B4 ScrollArrowsTemplate
.incbin "baserom.gba", 0x4524B4, 0x10
-gUnknown_84524C4:: @ 84524C4
+gUnknown_84524C4:: @ 84524C4 CursorStruct
.incbin "baserom.gba", 0x4524C4, 0x788
-gUnknown_8452C4C:: @ 8452C4C
+gUnknown_8452C4C:: @ 8452C4C struct { dataptr; data8; }
.incbin "baserom.gba", 0x452C4C, 0x48
diff --git a/include/sound.h b/include/sound.h
index 73ca1c654..8ce8a62ad 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -47,5 +47,6 @@ bool8 IsSEPlaying(void);
bool8 IsBGMPlaying(void);
bool8 IsSpecialSEPlaying(void);
void sub_8072474(u16 volume);
+void sub_807249C(void);
#endif // GUARD_SOUND_H
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index 1731f1cec..d04a83279 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -13,13 +13,41 @@
#include "new_menu_helpers.h"
#include "sound.h"
#include "event_data.h"
+#include "help_system.h"
+#include "menu_indicators.h"
+#include "overworld.h"
struct PokedexScreenData
{
u8 field_00;
- u8 filler_01[0x43];
+ u8 field_01;
+ u8 filler_02[0x6];
+ u32 field_08;
+ s32 field_0C;
+ u16 field_10;
+ u16 field_12;
+ u8 field_14;
+ u8 field_15;
+ u8 field_16;
+ u8 field_17;
+ u8 filler_18[0x10];
+ u8 field_28;
+ u8 filler_29[0x2];
+ u8 field_2B;
+ u8 field_2C;
+ u8 field_2D;
+ u8 field_2E;
+ u8 field_2F;
+ u8 filler_30[0x8];
+ u16 field_38;
+ u16 field_3A;
+ u8 filler_3C[0x6];
+ u8 field_42;
void * field_44;
- u8 filler_48[0x1E];
+ u8 filler_48[0x18];
+ u8 field_60;
+ u16 field_62;
+ u8 filler_64[0x2];
u16 field_66;
u16 field_68;
u16 field_6A;
@@ -29,7 +57,13 @@ struct PokedexScreenData
EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL;
void sub_810287C(u8 taskId);
+void sub_8103238(u8 taskId);
+void sub_8103AC8(u8 taskId);
+void sub_8102C28(void);
+void sub_8102F80(u8 taskId);
+void sub_81047B0(u8 *a0);
u16 sub_8104BBC(u8 a0, u8 a1);
+u8 sub_81068A0(u8 a0);
extern const u32 gUnknown_8440274[];
extern const u32 gUnknown_84403AC[];
@@ -38,6 +72,8 @@ extern const u16 gUnknown_84406E0[];
extern const struct BgTemplate gUnknown_8451EBC[4];
extern const struct WindowTemplate gUnknown_8451ECC[];
extern const struct PokedexScreenData gUnknown_8451EE4;
+extern const struct ScrollArrowsTemplate gUnknown_84520D4;
+extern const struct ScrollArrowsTemplate gUnknown_84520E4;
void sub_81024C0(void)
{
@@ -118,3 +154,626 @@ void sub_810250C(void)
FillBgTilemapBufferRect(0, 0x0000, 0, 2, 32, 16, 0x11);
FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 0xF);
}
+
+void CB2_OpenPokedexFromStartMenu(void)
+{
+ sub_810250C();
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetMainCallback2(sub_81024D4);
+ HelpSystem_SetSomeVariable2(4);
+}
+
+#define FREE_IF_NOT_NULL(ptr0) ({ void * ptr = (ptr0); if (ptr) Free(ptr); })
+
+bool8 sub_8102798(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ gMain.state++;
+ return FALSE;
+ case 1:
+ if (!gPaletteFade.active)
+ gMain.state = 2;
+ else
+ UpdatePaletteFade();
+ return FALSE;
+ case 2:
+ FREE_IF_NOT_NULL(gUnknown_203ACF0->field_44);
+ FREE_IF_NOT_NULL(gUnknown_203ACF0);
+ FreeAllWindowBuffers();
+ FREE_IF_NOT_NULL(GetBgTilemapBuffer(0));
+ FREE_IF_NOT_NULL(GetBgTilemapBuffer(1));
+ FREE_IF_NOT_NULL(GetBgTilemapBuffer(2));
+ FREE_IF_NOT_NULL(GetBgTilemapBuffer(3));
+ sub_807249C();
+ break;
+ }
+ return TRUE;
+}
+
+void sub_8102858(void)
+{
+ if (sub_8102798())
+ {
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
+ SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
+ }
+}
+
+#ifdef NONMATCHING
+void sub_810287C(u8 taskId)
+{
+ int i;
+ switch (gUnknown_203ACF0->field_01)
+ {
+ case 0:
+ gUnknown_203ACF0->field_08 = 0;
+ for (i = 0; i < 9; i++)
+ gUnknown_203ACF0->field_08 |= sub_81068A0(i);
+ gUnknown_203ACF0->field_01 = 2;
+ break;
+ case 1:
+ RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
+ sub_81047B0(&gUnknown_203ACF0->field_14);
+ sub_81047B0(&gUnknown_203ACF0->field_15);
+ sub_81047B0(&gUnknown_203ACF0->field_16);
+ SetMainCallback2(sub_8102858);
+ DestroyTask(taskId);
+ break;
+ case 2:
+ sub_8102C28();
+ gUnknown_203ACF0->field_01 = 3;
+ break;
+ case 3:
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_01 = 4;
+ break;
+ case 4:
+ ShowBg(3);
+ ShowBg(2);
+ ShowBg(1);
+ ShowBg(0);
+ if (gPaletteFade.bufferTransferDisabled)
+ {
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_WHITEALPHA);
+ }
+ else
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 5;
+ break;
+ case 5:
+ ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ if (IsNationalPokedexEnabled())
+ gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&gUnknown_84520E4, &gUnknown_203ACF0->field_62);
+ else
+ gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&gUnknown_84520D4, &gUnknown_203ACF0->field_62);
+ gUnknown_203ACF0->field_01 = 6;
+ break;
+ case 6:
+ gUnknown_203ACF0->field_0C = ListMenu_ProcessInput(gUnknown_203ACF0->field_17);
+ ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ if (JOY_NEW(A_BUTTON))
+ {
+ // FIXME: Get this switch to behave
+ switch (gUnknown_203ACF0->field_0C)
+ {
+ case -2:
+ gUnknown_203ACF0->field_01 = 1;
+ break;
+ case -1:
+ return;
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ if (sub_81068A0(gUnknown_203ACF0->field_0C))
+ {
+ RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
+ gUnknown_203ACF0->field_28 = gUnknown_203ACF0->field_0C;
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 7;
+ }
+ break;
+ case 9:
+ case 14:
+ RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
+ gUnknown_203ACF0->field_42 = gUnknown_203ACF0->field_0C - 9;
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 9;
+ break;
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
+ gUnknown_203ACF0->field_42 = gUnknown_203ACF0->field_0C - 9;
+ gUnknown_203ACF0->field_38 = gUnknown_203ACF0->field_3A = 0;
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 8;
+ break;
+ }
+ break;
+ }
+ if (JOY_NEW(B_BUTTON))
+ {
+ gUnknown_203ACF0->field_01 = 1;
+ }
+ break;
+ case 7:
+ DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
+ CopyBgTilemapBufferToVram(1);
+ sub_81047B0(&gUnknown_203ACF0->field_14);
+ sub_81047B0(&gUnknown_203ACF0->field_15);
+ sub_81047B0(&gUnknown_203ACF0->field_16);
+ gUnknown_203ACF0->field_2B = 0;
+ gUnknown_203ACF0->field_2D = 0;
+ gUnknown_203ACF0->field_2F = 0;
+ gTasks[taskId].func = sub_8103AC8;
+ gUnknown_203ACF0->field_01 = 0;
+ break;
+ case 8:
+ DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ HideBg(1);
+ sub_81047B0(&gUnknown_203ACF0->field_14);
+ sub_81047B0(&gUnknown_203ACF0->field_15);
+ sub_81047B0(&gUnknown_203ACF0->field_16);
+ gTasks[taskId].func = sub_8103238;
+ gUnknown_203ACF0->field_01 = 0;
+ break;
+ case 9:
+ DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ HideBg(1);
+ sub_81047B0(&gUnknown_203ACF0->field_14);
+ sub_81047B0(&gUnknown_203ACF0->field_15);
+ sub_81047B0(&gUnknown_203ACF0->field_16);
+ gTasks[taskId].func = sub_8102F80;
+ gUnknown_203ACF0->field_01 = 0;
+ break;
+ }
+}
+#else
+NAKED
+void sub_810287C(u8 taskId)
+{
+ asm_unified("\tpush {r4,r5,lr}\n"
+ "\tsub sp, 0x8\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tldr r1, _0810289C @ =gUnknown_203ACF0\n"
+ "\tldr r0, [r1]\n"
+ "\tldrb r0, [r0, 0x1]\n"
+ "\tadds r4, r1, 0\n"
+ "\tcmp r0, 0x9\n"
+ "\tbls _08102892\n"
+ "\tb _08102C18\n"
+ "_08102892:\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _081028A0 @ =_081028A4\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+ "_0810289C: .4byte gUnknown_203ACF0\n"
+ "_081028A0: .4byte _081028A4\n"
+ "\t.align 2, 0\n"
+ "_081028A4:\n"
+ "\t.4byte _081028CC\n"
+ "\t.4byte _081028FC\n"
+ "\t.4byte _08102930\n"
+ "\t.4byte _08102940\n"
+ "\t.4byte _08102964\n"
+ "\t.4byte _081029D0\n"
+ "\t.4byte _08102A14\n"
+ "\t.4byte _08102B24\n"
+ "\t.4byte _08102B94\n"
+ "\t.4byte _08102BD8\n"
+ "_081028CC:\n"
+ "\tldr r1, [r4]\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [r1, 0x8]\n"
+ "\tmovs r4, 0\n"
+ "_081028D4:\n"
+ "\tlsls r0, r4, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tbl sub_81068A0\n"
+ "\tldr r1, _081028F8 @ =gUnknown_203ACF0\n"
+ "\tldr r2, [r1]\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tlsls r0, r4\n"
+ "\tldr r1, [r2, 0x8]\n"
+ "\torrs r1, r0\n"
+ "\tstr r1, [r2, 0x8]\n"
+ "\tadds r4, 0x1\n"
+ "\tcmp r4, 0x8\n"
+ "\tble _081028D4\n"
+ "\tmovs r0, 0x2\n"
+ "\tstrb r0, [r2, 0x1]\n"
+ "\tb _08102C18\n"
+ "\t.align 2, 0\n"
+ "_081028F8: .4byte gUnknown_203ACF0\n"
+ "_081028FC:\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x60\n"
+ "\tldrb r0, [r0]\n"
+ "\tbl RemoveScrollIndicatorArrowPair\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x14\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x15\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x16\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, _0810292C @ =sub_8102858\n"
+ "\tbl SetMainCallback2\n"
+ "\tadds r0, r5, 0\n"
+ "\tbl DestroyTask\n"
+ "\tb _08102C18\n"
+ "\t.align 2, 0\n"
+ "_0810292C: .4byte sub_8102858\n"
+ "_08102930:\n"
+ "\tbl sub_8102C28\n"
+ "\tldr r0, _0810293C @ =gUnknown_203ACF0\n"
+ "\tldr r1, [r0]\n"
+ "\tmovs r0, 0x3\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_0810293C: .4byte gUnknown_203ACF0\n"
+ "_08102940:\n"
+ "\tmovs r0, 0x3\n"
+ "\tbl CopyBgTilemapBufferToVram\n"
+ "\tmovs r0, 0x2\n"
+ "\tbl CopyBgTilemapBufferToVram\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl CopyBgTilemapBufferToVram\n"
+ "\tmovs r0, 0\n"
+ "\tbl CopyBgTilemapBufferToVram\n"
+ "\tldr r0, _08102960 @ =gUnknown_203ACF0\n"
+ "\tldr r1, [r0]\n"
+ "\tmovs r0, 0x4\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_08102960: .4byte gUnknown_203ACF0\n"
+ "_08102964:\n"
+ "\tmovs r0, 0x3\n"
+ "\tbl ShowBg\n"
+ "\tmovs r0, 0x2\n"
+ "\tbl ShowBg\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl ShowBg\n"
+ "\tmovs r0, 0\n"
+ "\tbl ShowBg\n"
+ "\tldr r2, _081029A4 @ =gPaletteFade\n"
+ "\tldrb r1, [r2, 0x8]\n"
+ "\tmovs r0, 0x80\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081029AC\n"
+ "\tmovs r0, 0x7F\n"
+ "\tands r0, r1\n"
+ "\tstrb r0, [r2, 0x8]\n"
+ "\tmovs r0, 0x1\n"
+ "\tnegs r0, r0\n"
+ "\tldr r1, _081029A8 @ =0x0000ffff\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0\n"
+ "\tbl BeginNormalPaletteFade\n"
+ "\tb _081029BC\n"
+ "\t.align 2, 0\n"
+ "_081029A4: .4byte gPaletteFade\n"
+ "_081029A8: .4byte 0x0000ffff\n"
+ "_081029AC:\n"
+ "\tldr r0, _081029C4 @ =0xffff7fff\n"
+ "\tldr r1, _081029C8 @ =0x0000ffff\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0x10\n"
+ "\tmovs r3, 0\n"
+ "\tbl BeginNormalPaletteFade\n"
+ "_081029BC:\n"
+ "\tldr r0, _081029CC @ =gUnknown_203ACF0\n"
+ "\tldr r1, [r0]\n"
+ "\tmovs r0, 0x5\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_081029C4: .4byte 0xffff7fff\n"
+ "_081029C8: .4byte 0x0000ffff\n"
+ "_081029CC: .4byte gUnknown_203ACF0\n"
+ "_081029D0:\n"
+ "\tldr r4, _081029EC @ =gUnknown_203ACF0\n"
+ "\tldr r1, [r4]\n"
+ "\tldrb r0, [r1, 0x17]\n"
+ "\tadds r1, 0x62\n"
+ "\tmovs r2, 0\n"
+ "\tbl ListMenuGetScrollAndRow\n"
+ "\tbl IsNationalPokedexEnabled\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081029F4\n"
+ "\tldr r0, _081029F0 @ =gUnknown_84520E4\n"
+ "\tb _081029F6\n"
+ "\t.align 2, 0\n"
+ "_081029EC: .4byte gUnknown_203ACF0\n"
+ "_081029F0: .4byte gUnknown_84520E4\n"
+ "_081029F4:\n"
+ "\tldr r0, _08102A0C @ =gUnknown_84520D4\n"
+ "_081029F6:\n"
+ "\tldr r1, [r4]\n"
+ "\tadds r1, 0x62\n"
+ "\tbl AddScrollIndicatorArrowPair\n"
+ "\tldr r1, [r4]\n"
+ "\tadds r1, 0x60\n"
+ "\tstrb r0, [r1]\n"
+ "\tldr r0, _08102A10 @ =gUnknown_203ACF0\n"
+ "\tldr r1, [r0]\n"
+ "\tmovs r0, 0x6\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_08102A0C: .4byte gUnknown_84520D4\n"
+ "_08102A10: .4byte gUnknown_203ACF0\n"
+ "_08102A14:\n"
+ "\tldr r0, [r4]\n"
+ "\tldrb r0, [r0, 0x17]\n"
+ "\tbl ListMenu_ProcessInput\n"
+ "\tldr r1, [r4]\n"
+ "\tstr r0, [r1, 0xC]\n"
+ "\tldrb r0, [r1, 0x17]\n"
+ "\tadds r1, 0x62\n"
+ "\tmovs r2, 0\n"
+ "\tbl ListMenuGetScrollAndRow\n"
+ "\tldr r0, _08102A4C @ =gMain\n"
+ "\tldrh r1, [r0, 0x2E]\n"
+ "\tmovs r3, 0x1\n"
+ "\tmovs r0, 0x1\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08102B14\n"
+ "\tldr r2, [r4]\n"
+ "\tldr r1, [r2, 0xC]\n"
+ "\tcmp r1, 0xD\n"
+ "\tbhi _08102A50\n"
+ "\tcmp r1, 0xA\n"
+ "\tbcs _08102ADC\n"
+ "\tcmp r1, 0x8\n"
+ "\tbls _08102A62\n"
+ "\tb _08102AA4\n"
+ "\t.align 2, 0\n"
+ "_08102A4C: .4byte gMain\n"
+ "_08102A50:\n"
+ "\tcmp r1, 0xE\n"
+ "\tbeq _08102AA4\n"
+ "\tmovs r0, 0x2\n"
+ "\tnegs r0, r0\n"
+ "\tcmp r1, r0\n"
+ "\tbeq _08102A5E\n"
+ "\tb _08102C18\n"
+ "_08102A5E:\n"
+ "\tstrb r3, [r2, 0x1]\n"
+ "\tb _08102C18\n"
+ "_08102A62:\n"
+ "\tlsls r0, r1, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tbl sub_81068A0\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08102A72\n"
+ "\tb _08102C18\n"
+ "_08102A72:\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x60\n"
+ "\tldrb r0, [r0]\n"
+ "\tbl RemoveScrollIndicatorArrowPair\n"
+ "\tldr r0, [r4]\n"
+ "\tldr r1, [r0, 0xC]\n"
+ "\tadds r0, 0x28\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, _08102A9C @ =0xffff7fff\n"
+ "\tldr r1, _08102AA0 @ =0x0000ffff\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0x10\n"
+ "\tbl BeginNormalPaletteFade\n"
+ "\tldr r1, [r4]\n"
+ "\tmovs r0, 0x7\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_08102A9C: .4byte 0xffff7fff\n"
+ "_08102AA0: .4byte 0x0000ffff\n"
+ "_08102AA4:\n"
+ "\tldr r4, _08102AD0 @ =gUnknown_203ACF0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x60\n"
+ "\tldrb r0, [r0]\n"
+ "\tbl RemoveScrollIndicatorArrowPair\n"
+ "\tldr r1, [r4]\n"
+ "\tldr r0, [r1, 0xC]\n"
+ "\tsubs r0, 0x9\n"
+ "\tadds r1, 0x42\n"
+ "\tstrb r0, [r1]\n"
+ "\tldr r0, _08102AD4 @ =0xffff7fff\n"
+ "\tldr r1, _08102AD8 @ =0x0000ffff\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0x10\n"
+ "\tbl BeginNormalPaletteFade\n"
+ "\tldr r1, [r4]\n"
+ "\tmovs r0, 0x9\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_08102AD0: .4byte gUnknown_203ACF0\n"
+ "_08102AD4: .4byte 0xffff7fff\n"
+ "_08102AD8: .4byte 0x0000ffff\n"
+ "_08102ADC:\n"
+ "\tadds r0, r2, 0\n"
+ "\tadds r0, 0x60\n"
+ "\tldrb r0, [r0]\n"
+ "\tbl RemoveScrollIndicatorArrowPair\n"
+ "\tldr r0, [r4]\n"
+ "\tldr r1, [r0, 0xC]\n"
+ "\tsubs r1, 0x9\n"
+ "\tadds r0, 0x42\n"
+ "\tmovs r2, 0\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tstrh r2, [r0, 0x3A]\n"
+ "\tstrh r2, [r0, 0x38]\n"
+ "\tldr r0, _08102B0C @ =0xffff7fff\n"
+ "\tldr r1, _08102B10 @ =0x0000ffff\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r3, 0x10\n"
+ "\tbl BeginNormalPaletteFade\n"
+ "\tldr r1, [r4]\n"
+ "\tmovs r0, 0x8\n"
+ "\tb _08102C16\n"
+ "\t.align 2, 0\n"
+ "_08102B0C: .4byte 0xffff7fff\n"
+ "_08102B10: .4byte 0x0000ffff\n"
+ "_08102B14:\n"
+ "\tmovs r0, 0x2\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08102B1E\n"
+ "\tb _08102C18\n"
+ "_08102B1E:\n"
+ "\tldr r0, [r4]\n"
+ "\tstrb r3, [r0, 0x1]\n"
+ "\tb _08102C18\n"
+ "_08102B24:\n"
+ "\tldr r2, [r4]\n"
+ "\tldrb r0, [r2, 0x17]\n"
+ "\tadds r1, r2, 0\n"
+ "\tadds r1, 0x12\n"
+ "\tadds r2, 0x10\n"
+ "\tbl DestroyListMenuTask\n"
+ "\tmovs r0, 0x20\n"
+ "\tstr r0, [sp]\n"
+ "\tmovs r0, 0x14\n"
+ "\tstr r0, [sp, 0x4]\n"
+ "\tmovs r0, 0x1\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0\n"
+ "\tbl FillBgTilemapBufferRect_Palette0\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl CopyBgTilemapBufferToVram\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x14\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x15\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x16\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x2B\n"
+ "\tmovs r2, 0\n"
+ "\tstrb r2, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x2D\n"
+ "\tstrb r2, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x2F\n"
+ "\tstrb r2, [r0]\n"
+ "\tldr r1, _08102B8C @ =gTasks\n"
+ "\tlsls r0, r5, 2\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r1\n"
+ "\tldr r1, _08102B90 @ =sub_8103AC8\n"
+ "\tstr r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tstrb r2, [r0, 0x1]\n"
+ "\tb _08102C18\n"
+ "\t.align 2, 0\n"
+ "_08102B8C: .4byte gTasks\n"
+ "_08102B90: .4byte sub_8103AC8\n"
+ "_08102B94:\n"
+ "\tldr r2, [r4]\n"
+ "\tldrb r0, [r2, 0x17]\n"
+ "\tadds r1, r2, 0\n"
+ "\tadds r1, 0x12\n"
+ "\tadds r2, 0x10\n"
+ "\tbl DestroyListMenuTask\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl HideBg\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x14\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x15\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x16\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r1, _08102BD0 @ =gTasks\n"
+ "\tlsls r0, r5, 2\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r1\n"
+ "\tldr r1, _08102BD4 @ =sub_8103238\n"
+ "\tb _08102C10\n"
+ "\t.align 2, 0\n"
+ "_08102BD0: .4byte gTasks\n"
+ "_08102BD4: .4byte sub_8103238\n"
+ "_08102BD8:\n"
+ "\tldr r2, [r4]\n"
+ "\tldrb r0, [r2, 0x17]\n"
+ "\tadds r1, r2, 0\n"
+ "\tadds r1, 0x12\n"
+ "\tadds r2, 0x10\n"
+ "\tbl DestroyListMenuTask\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl HideBg\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x14\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x15\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x16\n"
+ "\tbl sub_81047B0\n"
+ "\tldr r1, _08102C20 @ =gTasks\n"
+ "\tlsls r0, r5, 2\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r1\n"
+ "\tldr r1, _08102C24 @ =sub_8102F80\n"
+ "_08102C10:\n"
+ "\tstr r1, [r0]\n"
+ "\tldr r1, [r4]\n"
+ "\tmovs r0, 0\n"
+ "_08102C16:\n"
+ "\tstrb r0, [r1, 0x1]\n"
+ "_08102C18:\n"
+ "\tadd sp, 0x8\n"
+ "\tpop {r4,r5}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08102C20: .4byte gTasks\n"
+ "_08102C24: .4byte sub_8102F80");
+}
+#endif //NONMATCHING