summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-03-09 14:28:13 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-03-09 14:28:13 -0400
commit0fdffabbc8682c347694aa06f9fb7a7a8aad4e8e (patch)
tree7680ab5407c80c689a2c2ebb8ec7ee5215521d7c
parentc40d7241ff2d2c0220550339b27a2725aac856fe (diff)
through pokemon_store
-rw-r--r--asm/naming_screen.s1066
-rw-r--r--data/naming_screen.s165
-rw-r--r--include/graphics.h5
-rw-r--r--include/naming_screen.h4
-rw-r--r--ld_script.txt2
-rw-r--r--src/naming_screen.c567
-rw-r--r--sym_ewram.txt2
7 files changed, 712 insertions, 1099 deletions
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 1e0d2ef68..2870ebe03 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -5,810 +5,8 @@
.text
- thumb_func_start DoNamingScreen
-DoNamingScreen: @ 809D954
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- ldr r4, _0809D980 @ =gUnknown_203998C
- movs r0, 0xF2
- lsls r0, 5
- bl Alloc
- str r0, [r4]
- cmp r0, 0
- bne _0809D984
- ldr r0, [sp, 0x1C]
- bl SetMainCallback2
- b _0809D9BE
- .align 2, 0
-_0809D980: .4byte gUnknown_203998C
-_0809D984:
- ldr r1, _0809D9C8 @ =0x00001e2c
- adds r0, r1
- strb r7, [r0]
- ldr r0, [r4]
- ldr r2, _0809D9CC @ =0x00001e34
- adds r1, r0, r2
- strh r5, [r1]
- adds r2, 0x2
- adds r1, r0, r2
- strh r6, [r1]
- ldr r1, _0809D9D0 @ =0x00001e38
- adds r2, r0, r1
- ldr r1, [sp, 0x18]
- str r1, [r2]
- ldr r2, _0809D9D4 @ =0x00001e30
- adds r1, r0, r2
- mov r2, r8
- str r2, [r1]
- ldr r1, _0809D9D8 @ =0x00001e3c
- adds r0, r1
- ldr r2, [sp, 0x1C]
- str r2, [r0]
- cmp r7, 0
- bne _0809D9B8
- bl StartTimer1
-_0809D9B8:
- ldr r0, _0809D9DC @ =c2_choose_name_or_words_screen
- bl SetMainCallback2
-_0809D9BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9C8: .4byte 0x00001e2c
-_0809D9CC: .4byte 0x00001e34
-_0809D9D0: .4byte 0x00001e38
-_0809D9D4: .4byte 0x00001e30
-_0809D9D8: .4byte 0x00001e3c
-_0809D9DC: .4byte c2_choose_name_or_words_screen
- thumb_func_end DoNamingScreen
-
- thumb_func_start c2_choose_name_or_words_screen
-c2_choose_name_or_words_screen: @ 809D9E0
- push {lr}
- ldr r0, _0809D9FC @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA00 @ =_0809DA04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D9FC: .4byte gMain
-_0809DA00: .4byte _0809DA04
- .align 2, 0
-_0809DA04:
- .4byte _0809DA24
- .4byte _0809DA2E
- .4byte _0809DA34
- .4byte _0809DA3A
- .4byte _0809DA44
- .4byte _0809DA4A
- .4byte _0809DA50
- .4byte _0809DA56
-_0809DA24:
- bl sub_809FB88
- bl sub_809DA84
- b _0809DA62
-_0809DA2E:
- bl choose_name_or_words_screen_init_bgs
- b _0809DA62
-_0809DA34:
- bl ResetPaletteFade
- b _0809DA62
-_0809DA3A:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _0809DA62
-_0809DA44:
- bl ResetTasks
- b _0809DA62
-_0809DA4A:
- bl choose_name_or_words_screen_apply_bg_pals
- b _0809DA62
-_0809DA50:
- bl choose_name_or_words_screen_load_bg_tile_patterns
- b _0809DA62
-_0809DA56:
- bl sub_809E898
- bl UpdatePaletteFade
- bl sub_809FC34
-_0809DA62:
- ldr r1, _0809DA74 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DA80
- .align 2, 0
-_0809DA74: .4byte gMain
-_0809DA78:
- bl sub_809F8C0
- bl sub_809DD60
-_0809DA80:
- pop {r0}
- bx r0
- thumb_func_end c2_choose_name_or_words_screen
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r6,lr}
- ldr r4, _0809DB3C @ =gUnknown_203998C
- ldr r0, [r4]
- ldr r1, _0809DB40 @ =0x00001e10
- adds r0, r1
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r4]
- ldr r3, _0809DB44 @ =0x00001e18
- adds r0, r1, r3
- movs r5, 0
- strh r2, [r0]
- ldr r6, _0809DB48 @ =0x00001e1a
- adds r0, r1, r6
- strh r2, [r0]
- ldr r0, _0809DB4C @ =0x00001e1c
- adds r2, r1, r0
- movs r3, 0x1
- movs r0, 0x1
- strh r0, [r2]
- adds r6, 0x4
- adds r2, r1, r6
- movs r0, 0x2
- strh r0, [r2]
- movs r0, 0xF1
- lsls r0, 5
- adds r1, r0
- strb r5, [r1]
- ldr r0, [r4]
- ldr r1, _0809DB50 @ =0x00001e21
- adds r0, r1
- strb r3, [r0]
- ldr r1, [r4]
- ldr r5, _0809DB54 @ =0x00001e28
- adds r3, r1, r5
- ldr r2, _0809DB58 @ =gUnknown_83E248C
- adds r6, 0xE
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- ldrb r0, [r0, 0x4]
- ldr r2, _0809DB5C @ =0x00001e22
- adds r1, r2
- strb r0, [r1]
- ldr r2, [r4]
- adds r0, r2, r5
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- lsls r1, 3
- movs r0, 0xF0
- subs r0, r1
- asrs r0, 1
- adds r0, 0x6
- ldr r3, _0809DB60 @ =0x00001e16
- adds r1, r2, r3
- strh r0, [r1]
- ldr r6, _0809DB64 @ =gKeyRepeatStartDelay
- ldrh r0, [r6]
- ldr r1, _0809DB68 @ =0x00001e25
- adds r2, r1
- strb r0, [r2]
- ldr r0, [r4]
- movs r2, 0xC0
- lsls r2, 5
- adds r0, r2
- movs r1, 0xFF
- movs r2, 0x10
- bl memset
- ldr r1, [r4]
- adds r5, r1, r5
- ldr r0, [r5]
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DB30
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, r3
- ldr r2, _0809DB6C @ =0x00001e30
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_0809DB30:
- movs r0, 0x10
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DB3C: .4byte gUnknown_203998C
-_0809DB40: .4byte 0x00001e10
-_0809DB44: .4byte 0x00001e18
-_0809DB48: .4byte 0x00001e1a
-_0809DB4C: .4byte 0x00001e1c
-_0809DB50: .4byte 0x00001e21
-_0809DB54: .4byte 0x00001e28
-_0809DB58: .4byte gUnknown_83E248C
-_0809DB5C: .4byte 0x00001e22
-_0809DB60: .4byte 0x00001e16
-_0809DB64: .4byte gKeyRepeatStartDelay
-_0809DB68: .4byte 0x00001e25
-_0809DB6C: .4byte 0x00001e30
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DB70
-sub_809DB70: @ 809DB70
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _0809DBAC @ =gSprites
- movs r5, 0x5
- negs r5, r5
-_0809DB7A:
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- lsls r0, r1, 31
- cmp r0, 0
- beq _0809DB94
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
-_0809DB94:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _0809DB7A
- movs r0, 0
- bl sub_809EA0C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DBAC: .4byte gSprites
- thumb_func_end sub_809DB70
-
- thumb_func_start choose_name_or_words_screen_init_bgs
-choose_name_or_words_screen_init_bgs: @ 809DBB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0xC
- mov r8, r0
- add r2, sp, 0x8
- movs r6, 0
- ldr r1, _0809DD44 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0809DD48 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0809DBD6:
- strh r6, [r2]
- add r0, sp, 0x8
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _0809DBD6
- strh r6, [r2]
- add r2, sp, 0x8
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0809DD44 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- add r0, sp, 0x8
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0809DD4C @ =gUnknown_83E2290
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- bl InitStandardTextBoxWindows
- bl ResetBg0
-_0809DCA4:
- lsls r0, r4, 3
- ldr r1, _0809DD50 @ =gUnknown_83E22A0
- adds r0, r1
- bl AddWindow
- ldr r5, _0809DD54 @ =gUnknown_203998C
- ldr r1, [r5]
- ldr r2, _0809DD58 @ =0x00001e11
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809DCA4
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r1, 0xC8
- lsls r1, 3
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, _0809DD5C @ =0x0000080c
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r5]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r5]
- movs r0, 0x80
- lsls r0, 4
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r5]
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- movs r0, 0x3
- bl SetBgTilemapBuffer
- movs r4, 0x20
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DD44: .4byte 0x040000d4
-_0809DD48: .4byte 0x81000800
-_0809DD4C: .4byte gUnknown_83E2290
-_0809DD50: .4byte gUnknown_83E22A0
-_0809DD54: .4byte gUnknown_203998C
-_0809DD58: .4byte 0x00001e11
-_0809DD5C: .4byte 0x0000080c
- thumb_func_end choose_name_or_words_screen_init_bgs
-
- thumb_func_start sub_809DD60
-sub_809DD60: @ 809DD60
- push {lr}
- ldr r0, _0809DD80 @ =sub_809DD88
- movs r1, 0x2
- bl CreateTask
- ldr r0, _0809DD84 @ =sub_809FB70
- bl SetMainCallback2
- bl BackupHelpContext
- movs r0, 0x3 @ HELPCONTEXT_NAMING_SCREEN
- bl SetHelpContext
- pop {r0}
- bx r0
- .align 2, 0
-_0809DD80: .4byte sub_809DD88
-_0809DD84: .4byte sub_809FB70
- thumb_func_end sub_809DD60
-
- thumb_func_start sub_809DD88
-sub_809DD88: @ 809DD88
- push {lr}
- ldr r0, _0809DDA4 @ =gUnknown_203998C
- ldr r0, [r0]
- ldr r1, _0809DDA8 @ =0x00001e10
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _0809DE1A
- lsls r0, 2
- ldr r1, _0809DDAC @ =_0809DDB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DDA4: .4byte gUnknown_203998C
-_0809DDA8: .4byte 0x00001e10
-_0809DDAC: .4byte _0809DDB0
- .align 2, 0
-_0809DDB0:
- .4byte _0809DDD8
- .4byte _0809DDE6
- .4byte _0809DDEC
- .4byte _0809DDF2
- .4byte _0809DDF8
- .4byte _0809DDFE
- .4byte _0809DE04
- .4byte _0809DE0A
- .4byte _0809DE10
- .4byte _0809DE16
-_0809DDD8:
- bl sub_809DE70
- bl sub_809DB70
- bl sub_809FB9C
- b _0809DE1A
-_0809DDE6:
- bl sub_809DF28
- b _0809DE1A
-_0809DDEC:
- bl sub_809DF64
- b _0809DE1A
-_0809DDF2:
- bl sub_809DF74
- b _0809DE1A
-_0809DDF8:
- bl sub_809E210
- b _0809DE1A
-_0809DDFE:
- bl sub_809E250
- b _0809DE1A
-_0809DE04:
- bl pokemon_store
- b _0809DE1A
-_0809DE0A:
- bl sub_809E1D4
- b _0809DE1A
-_0809DE10:
- bl sub_809E014
- b _0809DE1A
-_0809DE16:
- bl sub_809E048
-_0809DE1A:
- pop {r0}
- bx r0
- thumb_func_end sub_809DD88
-
- thumb_func_start sub_809DE20
-sub_809DE20: @ 809DE20
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809DE2C @ =gUnknown_83E234B
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809DE2C: .4byte gUnknown_83E234B
- thumb_func_end sub_809DE20
-
- thumb_func_start sub_809DE30
-sub_809DE30: @ 809DE30
- ldr r1, _0809DE44 @ =gUnknown_83E234E
- ldr r0, _0809DE48 @ =gUnknown_203998C
- ldr r0, [r0]
- ldr r2, _0809DE4C @ =0x00001e22
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809DE44: .4byte gUnknown_83E234E
-_0809DE48: .4byte gUnknown_203998C
-_0809DE4C: .4byte 0x00001e22
- thumb_func_end sub_809DE30
-
- thumb_func_start sub_809DE50
-sub_809DE50: @ 809DE50
- ldr r1, _0809DE64 @ =gUnknown_83E2351
- ldr r0, _0809DE68 @ =gUnknown_203998C
- ldr r0, [r0]
- ldr r2, _0809DE6C @ =0x00001e22
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809DE64: .4byte gUnknown_83E2351
-_0809DE68: .4byte gUnknown_203998C
-_0809DE6C: .4byte 0x00001e22
- thumb_func_end sub_809DE50
-
- thumb_func_start sub_809DE70
-sub_809DE70: @ 809DE70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0809DF08 @ =gUnknown_8E982BC
- movs r0, 0x3
- bl sub_809F900
- ldr r5, _0809DF0C @ =gUnknown_203998C
- ldr r0, [r5]
- ldr r1, _0809DF10 @ =0x00001e22
- adds r0, r1
- movs r6, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _0809DF14 @ =gUnknown_8E98458
- movs r0, 0x2
- bl sub_809F900
- ldr r1, _0809DF18 @ =gUnknown_8E98398
- movs r0, 0x1
- bl sub_809F900
- ldr r0, [r5]
- ldr r1, _0809DF1C @ =0x00001e12
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_809F9E8
- ldr r0, [r5]
- ldr r1, _0809DF20 @ =0x00001e11
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_809F9E8
- bl sub_809F914
- bl sub_809F56C
- bl sub_809FAE4
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- ldr r0, _0809DF24 @ =0x00001e10
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809DF08: .4byte gUnknown_8E982BC
-_0809DF0C: .4byte gUnknown_203998C
-_0809DF10: .4byte 0x00001e22
-_0809DF14: .4byte gUnknown_8E98458
-_0809DF18: .4byte gUnknown_8E98398
-_0809DF1C: .4byte 0x00001e12
-_0809DF20: .4byte 0x00001e11
-_0809DF24: .4byte 0x00001e10
- thumb_func_end sub_809DE70
-
- thumb_func_start sub_809DF28
-sub_809DF28: @ 809DF28
- push {lr}
- ldr r0, _0809DF58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809DF50
- movs r0, 0x1
- bl SetInputState
- movs r0, 0x1
- bl sub_809EA64
- ldr r0, _0809DF5C @ =gUnknown_203998C
- ldr r1, [r0]
- ldr r0, _0809DF60 @ =0x00001e10
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0809DF50:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809DF58: .4byte gPaletteFade
-_0809DF5C: .4byte gUnknown_203998C
-_0809DF60: .4byte 0x00001e10
- thumb_func_end sub_809DF28
-
- thumb_func_start sub_809DF64
-sub_809DF64: @ 809DF64
- push {lr}
- bl sub_809F0CC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_809DF64
-
- thumb_func_start sub_809DF74
-sub_809DF74: @ 809DF74
- push {lr}
- bl sub_809EAD4
- lsls r0, 24
- cmp r0, 0
- beq _0809DF96
- movs r0, 0x1
- bl SetInputState
- bl sub_809E9F8
- ldr r0, _0809DF9C @ =gUnknown_203998C
- ldr r0, [r0]
- ldr r1, _0809DFA0 @ =0x00001e10
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0809DF96:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809DF9C: .4byte gUnknown_203998C
-_0809DFA0: .4byte 0x00001e10
- thumb_func_end sub_809DF74
-
- thumb_func_start pokemon_store
-pokemon_store: @ 809DFA4
- push {r4,lr}
- bl sub_809F7EC
- movs r0, 0
- bl SetInputState
- movs r0, 0
- bl sub_809EA64
- movs r0, 0x3
- movs r1, 0
- movs r2, 0x1
- bl sub_809E518
- ldr r4, _0809DFEC @ =gUnknown_203998C
- ldr r0, [r4]
- ldr r1, _0809DFF0 @ =0x00001e2c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0809DFF8
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _0809DFF8
- bl pokemon_transfer_to_pc_with_message
- ldr r0, [r4]
- ldr r1, _0809DFF4 @ =0x00001e10
- adds r0, r1
- movs r1, 0x7
- strb r1, [r0]
- movs r0, 0
- b _0809E006
- .align 2, 0
-_0809DFEC: .4byte gUnknown_203998C
-_0809DFF0: .4byte 0x00001e2c
-_0809DFF4: .4byte 0x00001e10
-_0809DFF8:
- ldr r0, _0809E00C @ =gUnknown_203998C
- ldr r0, [r0]
- ldr r1, _0809E010 @ =0x00001e10
- adds r0, r1
- movs r1, 0x8
- strb r1, [r0]
- movs r0, 0x1
-_0809E006:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809E00C: .4byte gUnknown_203998C
-_0809E010: .4byte 0x00001e10
- thumb_func_end pokemon_store
-
- thumb_func_start sub_809E014
-sub_809E014: @ 809E014
+ thumb_func_start MainState_BeginFadeInOut
+MainState_BeginFadeInOut: @ 809E014
push {lr}
sub sp, 0x4
movs r0, 0x1
@@ -818,7 +16,7 @@ sub_809E014: @ 809E014
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _0809E040 @ =gUnknown_203998C
+ ldr r0, _0809E040 @ =gNamingScreenData
ldr r1, [r0]
ldr r0, _0809E044 @ =0x00001e10
adds r1, r0
@@ -830,12 +28,12 @@ sub_809E014: @ 809E014
pop {r1}
bx r1
.align 2, 0
-_0809E040: .4byte gUnknown_203998C
+_0809E040: .4byte gNamingScreenData
_0809E044: .4byte 0x00001e10
- thumb_func_end sub_809E014
+ thumb_func_end MainState_BeginFadeInOut
- thumb_func_start sub_809E048
-sub_809E048: @ 809E048
+ thumb_func_start MainState_WaitFadeOutAndExit
+MainState_WaitFadeOutAndExit: @ 809E048
push {r4,r5,lr}
ldr r0, _0809E0A0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -845,7 +43,7 @@ sub_809E048: @ 809E048
lsrs r5, r0, 24
cmp r5, 0
bne _0809E096
- ldr r4, _0809E0A4 @ =gUnknown_203998C
+ ldr r4, _0809E0A4 @ =gNamingScreenData
ldr r0, [r4]
ldr r1, _0809E0A8 @ =0x00001e2c
adds r0, r1
@@ -876,11 +74,11 @@ _0809E096:
bx r1
.align 2, 0
_0809E0A0: .4byte gPaletteFade
-_0809E0A4: .4byte gUnknown_203998C
+_0809E0A4: .4byte gNamingScreenData
_0809E0A8: .4byte 0x00001e2c
_0809E0AC: .4byte 0x00001e3c
_0809E0B0: .4byte sub_809DD88
- thumb_func_end sub_809E048
+ thumb_func_end MainState_WaitFadeOutAndExit
thumb_func_start pokemon_transfer_to_pc_with_message
pokemon_transfer_to_pc_with_message: @ 809E0B4
@@ -901,7 +99,7 @@ pokemon_transfer_to_pc_with_message: @ 809E0B4
adds r0, r4, 0
bl StringCopy
ldr r0, _0809E0F8 @ =gStringVar2
- ldr r1, _0809E0FC @ =gUnknown_203998C
+ ldr r1, _0809E0FC @ =gNamingScreenData
ldr r1, [r1]
ldr r2, _0809E100 @ =0x00001e30
adds r1, r2
@@ -912,7 +110,7 @@ pokemon_transfer_to_pc_with_message: @ 809E0B4
_0809E0F0: .4byte gStringVar1
_0809E0F4: .4byte 0x00004037
_0809E0F8: .4byte gStringVar2
-_0809E0FC: .4byte gUnknown_203998C
+_0809E0FC: .4byte gNamingScreenData
_0809E100: .4byte 0x00001e30
_0809E104:
ldr r4, _0809E1AC @ =gStringVar1
@@ -925,7 +123,7 @@ _0809E104:
adds r0, r4, 0
bl StringCopy
ldr r0, _0809E1B4 @ =gStringVar2
- ldr r1, _0809E1B8 @ =gUnknown_203998C
+ ldr r1, _0809E1B8 @ =gNamingScreenData
ldr r1, [r1]
ldr r2, _0809E1BC @ =0x00001e30
adds r1, r2
@@ -992,7 +190,7 @@ _0809E156:
_0809E1AC: .4byte gStringVar1
_0809E1B0: .4byte 0x00004037
_0809E1B4: .4byte gStringVar2
-_0809E1B8: .4byte gUnknown_203998C
+_0809E1B8: .4byte gNamingScreenData
_0809E1BC: .4byte 0x00001e30
_0809E1C0: .4byte gStringVar3
_0809E1C4: .4byte 0x00000834
@@ -1016,7 +214,7 @@ sub_809E1D4: @ 809E1D4
ands r0, r1
cmp r0, 0
beq _0809E1FE
- ldr r0, _0809E208 @ =gUnknown_203998C
+ ldr r0, _0809E208 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809E20C @ =0x00001e10
adds r0, r1
@@ -1028,12 +226,12 @@ _0809E1FE:
bx r1
.align 2, 0
_0809E204: .4byte gMain
-_0809E208: .4byte gUnknown_203998C
+_0809E208: .4byte gNamingScreenData
_0809E20C: .4byte 0x00001e10
thumb_func_end sub_809E1D4
- thumb_func_start sub_809E210
-sub_809E210: @ 809E210
+ thumb_func_start MainState_StartPageSwap
+MainState_StartPageSwap: @ 809E210
push {lr}
movs r0, 0
bl SetInputState
@@ -1047,7 +245,7 @@ sub_809E210: @ 809E210
bl sub_809E518
movs r0, 0x6
bl PlaySE
- ldr r0, _0809E248 @ =gUnknown_203998C
+ ldr r0, _0809E248 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809E24C @ =0x00001e10
adds r0, r1
@@ -1057,12 +255,12 @@ sub_809E210: @ 809E210
pop {r1}
bx r1
.align 2, 0
-_0809E248: .4byte gUnknown_203998C
+_0809E248: .4byte gNamingScreenData
_0809E24C: .4byte 0x00001e10
- thumb_func_end sub_809E210
+ thumb_func_end MainState_StartPageSwap
- thumb_func_start sub_809E250
-sub_809E250: @ 809E250
+ thumb_func_start MainState_WaitPageSwap
+MainState_WaitPageSwap: @ 809E250
push {r4-r6,lr}
sub sp, 0x4
bl sub_809E364
@@ -1086,7 +284,7 @@ sub_809E250: @ 809E250
bne _0809E282
movs r5, 0x1
_0809E282:
- ldr r2, _0809E2B8 @ =gUnknown_203998C
+ ldr r2, _0809E2B8 @ =gNamingScreenData
ldr r0, [r2]
ldr r1, _0809E2BC @ =0x00001e10
adds r0, r1
@@ -1112,7 +310,7 @@ _0809E282:
lsrs r0, 24
b _0809E2E2
.align 2, 0
-_0809E2B8: .4byte gUnknown_203998C
+_0809E2B8: .4byte gNamingScreenData
_0809E2BC: .4byte 0x00001e10
_0809E2C0: .4byte 0x00001e22
_0809E2C4:
@@ -1149,7 +347,7 @@ _0809E302:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_809E250
+ thumb_func_end MainState_WaitPageSwap
thumb_func_start sub_809E30C
sub_809E30C: @ 809E30C
@@ -1173,7 +371,7 @@ sub_809E32C: @ 809E32C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
- ldr r5, _0809E35C @ =gUnknown_83E2354
+ ldr r5, _0809E35C @ =sPageSwapAnimStateFuncs
ldr r2, _0809E360 @ =gTasks
lsls r1, r0, 2
adds r1, r0
@@ -1194,7 +392,7 @@ _0809E33E:
pop {r0}
bx r0
.align 2, 0
-_0809E35C: .4byte gUnknown_83E2354
+_0809E35C: .4byte sPageSwapAnimStateFuncs
_0809E360: .4byte gTasks
thumb_func_end sub_809E32C
@@ -1218,9 +416,9 @@ _0809E37E:
bx r1
thumb_func_end sub_809E364
- thumb_func_start sub_809E384
-sub_809E384: @ 809E384
- ldr r1, _0809E3A0 @ =gUnknown_203998C
+ thumb_func_start PageSwapAnimState_Init
+PageSwapAnimState_Init: @ 809E384
+ ldr r1, _0809E3A0 @ =gNamingScreenData
ldr r1, [r1]
ldr r3, _0809E3A4 @ =0x00001e18
adds r2, r1, r3
@@ -1235,17 +433,17 @@ sub_809E384: @ 809E384
movs r0, 0
bx lr
.align 2, 0
-_0809E3A0: .4byte gUnknown_203998C
+_0809E3A0: .4byte gNamingScreenData
_0809E3A4: .4byte 0x00001e18
_0809E3A8: .4byte 0x00001e1a
- thumb_func_end sub_809E384
+ thumb_func_end PageSwapAnimState_Init
- thumb_func_start sub_809E3AC
-sub_809E3AC: @ 809E3AC
+ thumb_func_start PageSwapAnimState_1
+PageSwapAnimState_1: @ 809E3AC
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
- ldr r5, _0809E42C @ =gUnknown_203998C
+ ldr r5, _0809E42C @ =gNamingScreenData
ldr r0, [r5]
ldr r2, _0809E430 @ =0x00001e1a
adds r1, r0, r2
@@ -1306,19 +504,19 @@ _0809E422:
pop {r1}
bx r1
.align 2, 0
-_0809E42C: .4byte gUnknown_203998C
+_0809E42C: .4byte gNamingScreenData
_0809E430: .4byte 0x00001e1a
_0809E434: .4byte 0x00001e18
_0809E438: .4byte 0x00001e21
_0809E43C: .4byte 0x00001e1c
- thumb_func_end sub_809E3AC
+ thumb_func_end PageSwapAnimState_1
- thumb_func_start sub_809E440
-sub_809E440: @ 809E440
+ thumb_func_start PageSwapAnimState_2
+PageSwapAnimState_2: @ 809E440
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
- ldr r5, _0809E4C4 @ =gUnknown_203998C
+ ldr r5, _0809E4C4 @ =gNamingScreenData
ldr r0, [r5]
ldr r2, _0809E4C8 @ =0x00001e1a
adds r1, r0, r2
@@ -1381,14 +579,14 @@ _0809E4BA:
pop {r1}
bx r1
.align 2, 0
-_0809E4C4: .4byte gUnknown_203998C
+_0809E4C4: .4byte gNamingScreenData
_0809E4C8: .4byte 0x00001e1a
_0809E4CC: .4byte 0x00001e18
_0809E4D0: .4byte 0x00001e21
- thumb_func_end sub_809E440
+ thumb_func_end PageSwapAnimState_2
- thumb_func_start sub_809E4D4
-sub_809E4D4: @ 809E4D4
+ thumb_func_start PageSwapAnimState_Done
+PageSwapAnimState_Done: @ 809E4D4
push {lr}
ldr r0, _0809E4EC @ =sub_809E32C
bl FindTaskIdByFunc
@@ -1400,7 +598,7 @@ sub_809E4D4: @ 809E4D4
bx r1
.align 2, 0
_0809E4EC: .4byte sub_809E32C
- thumb_func_end sub_809E4D4
+ thumb_func_end PageSwapAnimState_Done
thumb_func_start sub_809E4F0
sub_809E4F0: @ 809E4F0
@@ -1921,7 +1119,7 @@ sub_809E8B4: @ 809E8B4
movs r2, 0x58
movs r3, 0x1
bl CreateSprite
- ldr r5, _0809E93C @ =gUnknown_203998C
+ ldr r5, _0809E93C @ =gNamingScreenData
ldr r1, [r5]
ldr r4, _0809E940 @ =0x00001e23
adds r1, r4
@@ -1979,7 +1177,7 @@ sub_809E8B4: @ 809E8B4
bx r0
.align 2, 0
_0809E938: .4byte gUnknown_83E25EC
-_0809E93C: .4byte gUnknown_203998C
+_0809E93C: .4byte gNamingScreenData
_0809E940: .4byte 0x00001e23
_0809E944: .4byte gSprites
thumb_func_end sub_809E8B4
@@ -1992,7 +1190,7 @@ sub_809E948: @ 809E948
lsls r0, 16
lsls r1, 16
lsrs r7, r1, 16
- ldr r1, _0809E994 @ =gUnknown_203998C
+ ldr r1, _0809E994 @ =gNamingScreenData
ldr r1, [r1]
ldr r2, _0809E998 @ =0x00001e23
adds r1, r2
@@ -2023,7 +1221,7 @@ sub_809E948: @ 809E948
adds r0, 0x26
b _0809E9AA
.align 2, 0
-_0809E994: .4byte gUnknown_203998C
+_0809E994: .4byte gNamingScreenData
_0809E998: .4byte 0x00001e23
_0809E99C: .4byte gSprites
_0809E9A0: .4byte gUnknown_83E2330
@@ -2052,7 +1250,7 @@ _0809E9AA:
thumb_func_start sub_809E9CC
sub_809E9CC: @ 809E9CC
- ldr r2, _0809E9EC @ =gUnknown_203998C
+ ldr r2, _0809E9EC @ =gNamingScreenData
ldr r2, [r2]
ldr r3, _0809E9F0 @ =0x00001e23
adds r2, r3
@@ -2068,13 +1266,13 @@ sub_809E9CC: @ 809E9CC
strh r0, [r1]
bx lr
.align 2, 0
-_0809E9EC: .4byte gUnknown_203998C
+_0809E9EC: .4byte gNamingScreenData
_0809E9F0: .4byte 0x00001e23
_0809E9F4: .4byte gSprites
thumb_func_end sub_809E9CC
- thumb_func_start sub_809E9F8
-sub_809E9F8: @ 809E9F8
+ thumb_func_start MoveCursorToOKButton
+MoveCursorToOKButton: @ 809E9F8
push {lr}
bl sub_809EB40
lsls r0, 24
@@ -2083,7 +1281,7 @@ sub_809E9F8: @ 809E9F8
bl sub_809E948
pop {r0}
bx r0
- thumb_func_end sub_809E9F8
+ thumb_func_end MoveCursorToOKButton
thumb_func_start sub_809EA0C
sub_809EA0C: @ 809EA0C
@@ -2091,7 +1289,7 @@ sub_809EA0C: @ 809EA0C
lsls r0, 24
lsrs r0, 24
ldr r5, _0809EA54 @ =gSprites
- ldr r1, _0809EA58 @ =gUnknown_203998C
+ ldr r1, _0809EA58 @ =gNamingScreenData
ldr r4, [r1]
ldr r1, _0809EA5C @ =0x00001e23
adds r4, r1
@@ -2124,7 +1322,7 @@ sub_809EA0C: @ 809EA0C
bx r0
.align 2, 0
_0809EA54: .4byte gSprites
-_0809EA58: .4byte gUnknown_203998C
+_0809EA58: .4byte gNamingScreenData
_0809EA5C: .4byte 0x00001e23
_0809EA60: .4byte 0xffffff00
thumb_func_end sub_809EA0C
@@ -2134,7 +1332,7 @@ sub_809EA64: @ 809EA64
push {r4,r5,lr}
lsls r0, 24
ldr r5, _0809EA9C @ =gSprites
- ldr r1, _0809EAA0 @ =gUnknown_203998C
+ ldr r1, _0809EAA0 @ =gNamingScreenData
ldr r4, [r1]
ldr r1, _0809EAA4 @ =0x00001e23
adds r4, r1
@@ -2161,14 +1359,14 @@ sub_809EA64: @ 809EA64
bx r0
.align 2, 0
_0809EA9C: .4byte gSprites
-_0809EAA0: .4byte gUnknown_203998C
+_0809EAA0: .4byte gNamingScreenData
_0809EAA4: .4byte 0x00001e23
thumb_func_end sub_809EA64
thumb_func_start sub_809EAA8
sub_809EAA8: @ 809EAA8
push {lr}
- ldr r0, _0809EAC8 @ =gUnknown_203998C
+ ldr r0, _0809EAC8 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809EACC @ =0x00001e23
adds r0, r1
@@ -2183,15 +1381,15 @@ sub_809EAA8: @ 809EAA8
pop {r0}
bx r0
.align 2, 0
-_0809EAC8: .4byte gUnknown_203998C
+_0809EAC8: .4byte gNamingScreenData
_0809EACC: .4byte 0x00001e23
_0809EAD0: .4byte gSprites
thumb_func_end sub_809EAA8
- thumb_func_start sub_809EAD4
-sub_809EAD4: @ 809EAD4
+ thumb_func_start IsCursorAnimFinished
+IsCursorAnimFinished: @ 809EAD4
ldr r2, _0809EAF4 @ =gSprites
- ldr r0, _0809EAF8 @ =gUnknown_203998C
+ ldr r0, _0809EAF8 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809EAFC @ =0x00001e23
adds r0, r1
@@ -2207,9 +1405,9 @@ sub_809EAD4: @ 809EAD4
bx lr
.align 2, 0
_0809EAF4: .4byte gSprites
-_0809EAF8: .4byte gUnknown_203998C
+_0809EAF8: .4byte gNamingScreenData
_0809EAFC: .4byte 0x00001e23
- thumb_func_end sub_809EAD4
+ thumb_func_end IsCursorAnimFinished
thumb_func_start sub_809EB00
sub_809EB00: @ 809EB00
@@ -2273,7 +1471,7 @@ sub_809EB5C: @ 809EB5C
bl CreateSprite
lsls r0, 24
lsrs r0, 24
- ldr r1, _0809EC04 @ =gUnknown_203998C
+ ldr r1, _0809EC04 @ =gNamingScreenData
ldr r1, [r1]
ldr r2, _0809EC08 @ =0x00001e24
adds r1, r2
@@ -2341,7 +1539,7 @@ sub_809EB5C: @ 809EB5C
bx r0
.align 2, 0
_0809EC00: .4byte gUnknown_83E2574
-_0809EC04: .4byte gUnknown_203998C
+_0809EC04: .4byte gNamingScreenData
_0809EC08: .4byte 0x00001e24
_0809EC0C: .4byte gSprites
_0809EC10: .4byte gUnknown_83E2504
@@ -2352,7 +1550,7 @@ _0809EC1C: .4byte gUnknown_83E258C
thumb_func_start sub_809EC20
sub_809EC20: @ 809EC20
- ldr r0, _0809EC44 @ =gUnknown_203998C
+ ldr r0, _0809EC44 @ =gNamingScreenData
ldr r2, [r0]
ldr r1, _0809EC48 @ =0x00001e24
adds r0, r2, r1
@@ -2370,7 +1568,7 @@ sub_809EC20: @ 809EC20
strh r1, [r0, 0x30]
bx lr
.align 2, 0
-_0809EC44: .4byte gUnknown_203998C
+_0809EC44: .4byte gNamingScreenData
_0809EC48: .4byte 0x00001e24
_0809EC4C: .4byte gSprites
_0809EC50: .4byte 0x00001e22
@@ -2416,7 +1614,7 @@ sub_809EC7C: @ 809EC7C
adds r4, r0
lsls r4, 2
adds r4, r1
- ldr r0, _0809ECC8 @ =gUnknown_203998C
+ ldr r0, _0809ECC8 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809ECCC @ =0x00001e22
adds r0, r1
@@ -2436,7 +1634,7 @@ sub_809EC7C: @ 809EC7C
bx r1
.align 2, 0
_0809ECC4: .4byte gSprites
-_0809ECC8: .4byte gUnknown_203998C
+_0809ECC8: .4byte gNamingScreenData
_0809ECCC: .4byte 0x00001e22
thumb_func_end sub_809EC7C
@@ -2651,7 +1849,7 @@ _0809EE5C: .4byte gUnknown_83E25D4
thumb_func_start sub_809EE60
sub_809EE60: @ 809EE60
push {r4-r6,lr}
- ldr r5, _0809EF0C @ =gUnknown_203998C
+ ldr r5, _0809EF0C @ =gNamingScreenData
ldr r0, [r5]
ldr r4, _0809EF10 @ =0x00001e16
adds r0, r4
@@ -2723,7 +1921,7 @@ _0809EEB2:
adds r4, 0x8
lsls r4, 16
lsrs r1, r4, 16
- ldr r0, _0809EF0C @ =gUnknown_203998C
+ ldr r0, _0809EF0C @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809EF1C @ =0x00001e28
adds r0, r2
@@ -2736,7 +1934,7 @@ _0809EF04:
pop {r0}
bx r0
.align 2, 0
-_0809EF0C: .4byte gUnknown_203998C
+_0809EF0C: .4byte gNamingScreenData
_0809EF10: .4byte 0x00001e16
_0809EF14: .4byte gUnknown_83E2604
_0809EF18: .4byte gSprites
@@ -2748,7 +1946,7 @@ _0809EF20: .4byte gUnknown_83E261C
sub_809EF24: @ 809EF24
push {lr}
ldr r1, _0809EF44 @ =gUnknown_83E2394
- ldr r0, _0809EF48 @ =gUnknown_203998C
+ ldr r0, _0809EF48 @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809EF4C @ =0x00001e28
adds r0, r2
@@ -2762,7 +1960,7 @@ sub_809EF24: @ 809EF24
bx r0
.align 2, 0
_0809EF44: .4byte gUnknown_83E2394
-_0809EF48: .4byte gUnknown_203998C
+_0809EF48: .4byte gNamingScreenData
_0809EF4C: .4byte 0x00001e28
thumb_func_end sub_809EF24
@@ -2775,7 +1973,7 @@ nullsub_54: @ 809EF50
sub_809EF54: @ 809EF54
push {lr}
sub sp, 0x4
- ldr r0, _0809EFA0 @ =gUnknown_203998C
+ ldr r0, _0809EFA0 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809EFA4 @ =0x00001e34
adds r0, r1
@@ -2808,7 +2006,7 @@ sub_809EF54: @ 809EF54
pop {r0}
bx r0
.align 2, 0
-_0809EFA0: .4byte gUnknown_203998C
+_0809EFA0: .4byte gNamingScreenData
_0809EFA4: .4byte 0x00001e34
_0809EFA8: .4byte SpriteCallbackDummy
_0809EFAC: .4byte gSprites
@@ -2850,7 +2048,7 @@ sub_809EFF0: @ 809EFF0
push {lr}
sub sp, 0xC
bl LoadMonIconPalettes
- ldr r0, _0809F038 @ =gUnknown_203998C
+ ldr r0, _0809F038 @ =gNamingScreenData
ldr r3, [r0]
ldr r1, _0809F03C @ =0x00001e34
adds r0, r3, r1
@@ -2882,7 +2080,7 @@ sub_809EFF0: @ 809EFF0
pop {r0}
bx r0
.align 2, 0
-_0809F038: .4byte gUnknown_203998C
+_0809F038: .4byte gNamingScreenData
_0809F03C: .4byte 0x00001e34
_0809F040: .4byte SpriteCallbackDummy
_0809F044: .4byte 0x00001e38
@@ -2948,8 +2146,8 @@ _0809F0C4: .4byte gUnknown_83E23BC
_0809F0C8: .4byte gSprites
thumb_func_end sub_809F04C
- thumb_func_start sub_809F0CC
-sub_809F0CC: @ 809F0CC
+ thumb_func_start HandleKeyboardEvent
+HandleKeyboardEvent: @ 809F0CC
push {r4,r5,lr}
bl GetInputEvent
lsls r0, 24
@@ -2983,14 +2181,14 @@ _0809F106:
.align 2, 0
_0809F10C: .4byte gUnknown_83E23D0
_0809F110:
- bl sub_809E9F8
+ bl MoveCursorToOKButton
_0809F114:
movs r0, 0
_0809F116:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_809F0CC
+ thumb_func_end HandleKeyboardEvent
thumb_func_start sub_809F11C
sub_809F11C: @ 809F11C
@@ -3013,7 +2211,7 @@ sub_809F11C: @ 809F11C
beq _0809F156
movs r0, 0
bl SetInputState
- ldr r0, _0809F160 @ =gUnknown_203998C
+ ldr r0, _0809F160 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809F164 @ =0x00001e10
adds r0, r1
@@ -3025,7 +2223,7 @@ _0809F156:
pop {r1}
bx r1
.align 2, 0
-_0809F160: .4byte gUnknown_203998C
+_0809F160: .4byte gNamingScreenData
_0809F164: .4byte 0x00001e10
thumb_func_end sub_809F11C
@@ -3090,7 +2288,7 @@ KeyboardKeyHandler_OK: @ 809F1B4
_0809F1CE:
movs r0, 0x5
bl PlaySE
- ldr r0, _0809F1E8 @ =gUnknown_203998C
+ ldr r0, _0809F1E8 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809F1EC @ =0x00001e10
adds r0, r1
@@ -3102,13 +2300,13 @@ _0809F1E2:
pop {r1}
bx r1
.align 2, 0
-_0809F1E8: .4byte gUnknown_203998C
+_0809F1E8: .4byte gNamingScreenData
_0809F1EC: .4byte 0x00001e10
thumb_func_end KeyboardKeyHandler_OK
thumb_func_start sub_809F1F0
sub_809F1F0: @ 809F1F0
- ldr r0, _0809F200 @ =gUnknown_203998C
+ ldr r0, _0809F200 @ =gNamingScreenData
ldr r0, [r0]
ldr r1, _0809F204 @ =0x00001e10
adds r0, r1
@@ -3117,7 +2315,7 @@ sub_809F1F0: @ 809F1F0
movs r0, 0x1
bx lr
.align 2, 0
-_0809F200: .4byte gUnknown_203998C
+_0809F200: .4byte gNamingScreenData
_0809F204: .4byte 0x00001e10
thumb_func_end sub_809F1F0
@@ -3477,7 +2675,7 @@ _0809F480:
sub_809F49C: @ 809F49C
push {r4,r5,lr}
sub sp, 0xC
- ldr r5, _0809F4E4 @ =gUnknown_203998C
+ ldr r5, _0809F4E4 @ =gNamingScreenData
ldr r0, [r5]
ldr r4, _0809F4E8 @ =0x00001e14
adds r0, r4
@@ -3508,7 +2706,7 @@ sub_809F49C: @ 809F49C
pop {r0}
bx r0
.align 2, 0
-_0809F4E4: .4byte gUnknown_203998C
+_0809F4E4: .4byte gNamingScreenData
_0809F4E8: .4byte 0x00001e14
_0809F4EC: .4byte 0x00001e28
thumb_func_end sub_809F49C
@@ -3517,7 +2715,7 @@ _0809F4EC: .4byte 0x00001e28
sub_809F4F0: @ 809F4F0
push {r4,r5,lr}
sub sp, 0x2C
- ldr r5, _0809F558 @ =gUnknown_203998C
+ ldr r5, _0809F558 @ =gNamingScreenData
ldr r0, [r5]
ldr r1, _0809F55C @ =0x00001e34
adds r0, r1
@@ -3563,7 +2761,7 @@ sub_809F4F0: @ 809F4F0
pop {r0}
bx r0
.align 2, 0
-_0809F558: .4byte gUnknown_203998C
+_0809F558: .4byte gNamingScreenData
_0809F55C: .4byte 0x00001e34
_0809F560: .4byte gSpeciesNames
_0809F564: .4byte 0x00001e28
@@ -3574,7 +2772,7 @@ _0809F568: .4byte 0x00001e14
sub_809F56C: @ 809F56C
push {lr}
ldr r1, _0809F588 @ =gUnknown_83E240C
- ldr r0, _0809F58C @ =gUnknown_203998C
+ ldr r0, _0809F58C @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809F590 @ =0x00001e2c
adds r0, r2
@@ -3587,7 +2785,7 @@ sub_809F56C: @ 809F56C
bx r0
.align 2, 0
_0809F588: .4byte gUnknown_83E240C
-_0809F58C: .4byte gUnknown_203998C
+_0809F58C: .4byte gNamingScreenData
_0809F590: .4byte 0x00001e2c
thumb_func_end sub_809F56C
@@ -3595,7 +2793,7 @@ _0809F590: .4byte 0x00001e2c
sub_809F594: @ 809F594
push {lr}
ldr r1, _0809F5B4 @ =gUnknown_83E2420
- ldr r0, _0809F5B8 @ =gUnknown_203998C
+ ldr r0, _0809F5B8 @ =gNamingScreenData
ldr r0, [r0]
ldr r2, _0809F5BC @ =0x00001e28
adds r0, r2
@@ -3609,7 +2807,7 @@ sub_809F594: @ 809F594
bx r0
.align 2, 0
_0809F5B4: .4byte gUnknown_83E2420
-_0809F5B8: .4byte gUnknown_203998C
+_0809F5B8: .4byte gNamingScreenData
_0809F5BC: .4byte 0x00001e28
thumb_func_end sub_809F594
@@ -3626,7 +2824,7 @@ sub_809F5C4: @ 809F5C4
ldr r1, _0809F61C @ =gText_MaleSymbol
add r0, sp, 0xC
bl StringCopy
- ldr r5, _0809F620 @ =gUnknown_203998C
+ ldr r5, _0809F620 @ =gNamingScreenData
ldr r0, [r5]
ldr r1, _0809F624 @ =0x00001e36
adds r0, r1
@@ -3665,7 +2863,7 @@ _0809F614:
bx r0
.align 2, 0
_0809F61C: .4byte gText_MaleSymbol
-_0809F620: .4byte gUnknown_203998C
+_0809F620: .4byte gNamingScreenData
_0809F624: .4byte 0x00001e36
_0809F628: .4byte gText_FemaleSymbol
_0809F62C: .4byte 0x00001e13
@@ -3704,7 +2902,7 @@ _0809F664: .4byte gUnknown_83E22D0
sub_809F668: @ 809F668
push {r4,r5,lr}
movs r2, 0
- ldr r0, _0809F690 @ =gUnknown_203998C
+ ldr r0, _0809F690 @ =gNamingScreenData
ldr r4, [r0]
ldr r3, _0809F694 @ =0x00001e28
adds r1, r4, r3
@@ -3724,7 +2922,7 @@ _0809F684:
adds r0, r2, 0
b _0809F6B2
.align 2, 0
-_0809F690: .4byte gUnknown_203998C
+_0809F690: .4byte gNamingScreenData
_0809F694: .4byte 0x00001e28
_0809F698:
adds r0, r2, 0x1
@@ -3752,7 +2950,7 @@ _0809F6B8: .4byte 0x00001e28
thumb_func_start sub_809F6BC
sub_809F6BC: @ 809F6BC
push {lr}
- ldr r0, _0809F6E8 @ =gUnknown_203998C
+ ldr r0, _0809F6E8 @ =gNamingScreenData
ldr r2, [r0]
ldr r1, _0809F6EC @ =0x00001e28
adds r0, r2, r1
@@ -3774,7 +2972,7 @@ _0809F6D8:
lsrs r0, r1, 24
b _0809F6FA
.align 2, 0
-_0809F6E8: .4byte gUnknown_203998C
+_0809F6E8: .4byte gNamingScreenData
_0809F6EC: .4byte 0x00001e28
_0809F6F0:
subs r0, r2, 0x1
@@ -3795,7 +2993,7 @@ sub_809F700: @ 809F700
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r6, _0809F758 @ =gUnknown_203998C
+ ldr r6, _0809F758 @ =gNamingScreenData
ldr r0, [r6]
movs r5, 0xC0
lsls r5, 5
@@ -3830,7 +3028,7 @@ _0809F74A:
pop {r0}
bx r0
.align 2, 0
-_0809F758: .4byte gUnknown_203998C
+_0809F758: .4byte gNamingScreenData
thumb_func_end sub_809F700
thumb_func_start sub_809F75C
@@ -3859,7 +3057,7 @@ sub_809F75C: @ 809F75C
bl sub_809F6BC
lsls r0, 24
lsrs r0, 24
- ldr r1, _0809F7B0 @ =gUnknown_203998C
+ ldr r1, _0809F7B0 @ =gNamingScreenData
ldr r1, [r1]
ldr r2, _0809F7B4 @ =0x00001e28
adds r1, r2
@@ -3871,7 +3069,7 @@ sub_809F75C: @ 809F75C
movs r0, 0x1
b _0809F7BA
.align 2, 0
-_0809F7B0: .4byte gUnknown_203998C
+_0809F7B0: .4byte gNamingScreenData
_0809F7B4: .4byte 0x00001e28
_0809F7B8:
movs r0, 0
@@ -3891,7 +3089,7 @@ sub_809F7C4: @ 809F7C4
bl sub_809F668
lsls r0, 24
lsrs r0, 24
- ldr r1, _0809F7E8 @ =gUnknown_203998C
+ ldr r1, _0809F7E8 @ =gNamingScreenData
ldr r1, [r1]
movs r2, 0xC0
lsls r2, 5
@@ -3902,14 +3100,14 @@ sub_809F7C4: @ 809F7C4
pop {r0}
bx r0
.align 2, 0
-_0809F7E8: .4byte gUnknown_203998C
+_0809F7E8: .4byte gNamingScreenData
thumb_func_end sub_809F7C4
thumb_func_start sub_809F7EC
sub_809F7EC: @ 809F7EC
push {r4,r5,lr}
movs r2, 0
- ldr r1, _0809F800 @ =gUnknown_203998C
+ ldr r1, _0809F800 @ =gNamingScreenData
ldr r0, [r1]
ldr r4, _0809F804 @ =0x00001e28
adds r0, r4
@@ -3917,7 +3115,7 @@ sub_809F7EC: @ 809F7EC
adds r5, r1, 0
b _0809F84C
.align 2, 0
-_0809F800: .4byte gUnknown_203998C
+_0809F800: .4byte gNamingScreenData
_0809F804: .4byte 0x00001e28
_0809F808:
ldr r1, [r1]
@@ -3969,7 +3167,7 @@ _0809F858: .4byte 0x00001e28
choose_name_or_words_screen_load_bg_tile_patterns: @ 809F85C
push {r4-r6,lr}
ldr r0, _0809F8AC @ =gUnknown_8E980E4
- ldr r6, _0809F8B0 @ =gUnknown_203998C
+ ldr r6, _0809F8B0 @ =gNamingScreenData
ldr r1, [r6]
ldr r4, _0809F8B4 @ =0x00001810
adds r1, r4
@@ -4003,7 +3201,7 @@ choose_name_or_words_screen_load_bg_tile_patterns: @ 809F85C
bx r0
.align 2, 0
_0809F8AC: .4byte gUnknown_8E980E4
-_0809F8B0: .4byte gUnknown_203998C
+_0809F8B0: .4byte gNamingScreenData
_0809F8B4: .4byte 0x00001810
_0809F8B8: .4byte gUnknown_83E267C
_0809F8BC: .4byte gUnknown_83E26E4
@@ -4061,7 +3259,7 @@ sub_809F914: @ 809F914
mov r5, r8
push {r5-r7}
sub sp, 0x10
- ldr r7, _0809F9D8 @ =gUnknown_203998C
+ ldr r7, _0809F9D8 @ =gNamingScreenData
ldr r1, [r7]
ldr r2, _0809F9DC @ =0x00001e28
adds r0, r1, r2
@@ -4131,7 +3329,7 @@ _0809F97A:
bcc _0809F956
_0809F9AA:
bl sub_809F594
- ldr r5, _0809F9D8 @ =gUnknown_203998C
+ ldr r5, _0809F9D8 @ =gNamingScreenData
ldr r0, [r5]
ldr r4, _0809F9E0 @ =0x00001e13
adds r0, r4
@@ -4151,7 +3349,7 @@ _0809F9AA:
pop {r0}
bx r0
.align 2, 0
-_0809F9D8: .4byte gUnknown_203998C
+_0809F9D8: .4byte gNamingScreenData
_0809F9DC: .4byte 0x00001e28
_0809F9E0: .4byte 0x00001e13
_0809F9E4: .4byte gExpandedPlaceholder_Empty
@@ -4231,17 +3429,17 @@ sub_809FA60: @ 809FA60
bls _0809FA90
movs r2, 0x1
movs r5, 0x1
- ldr r1, _0809FA88 @ =gUnknown_203998C
+ ldr r1, _0809FA88 @ =gNamingScreenData
ldr r0, [r1]
ldr r3, _0809FA8C @ =0x00001e11
b _0809FA9A
.align 2, 0
-_0809FA88: .4byte gUnknown_203998C
+_0809FA88: .4byte gNamingScreenData
_0809FA8C: .4byte 0x00001e11
_0809FA90:
movs r2, 0x2
movs r5, 0x2
- ldr r1, _0809FAD4 @ =gUnknown_203998C
+ ldr r1, _0809FAD4 @ =gNamingScreenData
ldr r0, [r1]
ldr r3, _0809FAD8 @ =0x00001e12
_0809FA9A:
@@ -4270,7 +3468,7 @@ _0809FA9A:
pop {r0}
bx r0
.align 2, 0
-_0809FAD4: .4byte gUnknown_203998C
+_0809FAD4: .4byte gNamingScreenData
_0809FAD8: .4byte 0x00001e12
_0809FADC: .4byte gUnknown_83E244C
_0809FAE0: .4byte 0x00001e22
@@ -4293,7 +3491,7 @@ sub_809FAE4: @ 809FAE4
movs r2, 0
bl GetStringWidth
adds r6, r0, 0
- ldr r5, _0809FB68 @ =gUnknown_203998C
+ ldr r5, _0809FB68 @ =gNamingScreenData
ldr r0, [r5]
ldr r4, _0809FB6C @ =0x00001e15
adds r0, r4
@@ -4336,7 +3534,7 @@ sub_809FAE4: @ 809FAE4
.align 2, 0
_0809FB60: .4byte gUnknown_83E2458
_0809FB64: .4byte gUnknown_8418E77
-_0809FB68: .4byte gUnknown_203998C
+_0809FB68: .4byte gNamingScreenData
_0809FB6C: .4byte 0x00001e15
thumb_func_end sub_809FAE4
@@ -4351,8 +3549,8 @@ sub_809FB70: @ 809FB70
bx r0
thumb_func_end sub_809FB70
- thumb_func_start sub_809FB88
-sub_809FB88: @ 809FB88
+ thumb_func_start NamingScreen_TurnOffScreen
+NamingScreen_TurnOffScreen: @ 809FB88
push {lr}
movs r0, 0
bl SetVBlankCallback
@@ -4360,10 +3558,10 @@ sub_809FB88: @ 809FB88
bl SetHBlankCallback
pop {r0}
bx r0
- thumb_func_end sub_809FB88
+ thumb_func_end NamingScreen_TurnOffScreen
- thumb_func_start sub_809FB9C
-sub_809FB9C: @ 809FB9C
+ thumb_func_start NamingScreen_InitDisplayMode
+NamingScreen_InitDisplayMode: @ 809FB9C
push {lr}
ldr r0, _0809FBA8 @ =sub_809FBAC
bl SetVBlankCallback
@@ -4371,7 +3569,7 @@ sub_809FB9C: @ 809FB9C
bx r0
.align 2, 0
_0809FBA8: .4byte sub_809FBAC
- thumb_func_end sub_809FB9C
+ thumb_func_end NamingScreen_InitDisplayMode
thumb_func_start sub_809FBAC
sub_809FBAC: @ 809FBAC
@@ -4379,7 +3577,7 @@ sub_809FBAC: @ 809FBAC
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r5, _0809FC1C @ =gUnknown_203998C
+ ldr r5, _0809FC1C @ =gNamingScreenData
ldr r0, [r5]
ldr r1, _0809FC20 @ =0x00001e18
adds r0, r1
@@ -4421,7 +3619,7 @@ sub_809FBAC: @ 809FBAC
pop {r0}
bx r0
.align 2, 0
-_0809FC1C: .4byte gUnknown_203998C
+_0809FC1C: .4byte gNamingScreenData
_0809FC20: .4byte 0x00001e18
_0809FC24: .4byte 0x00001e1a
_0809FC28: .4byte 0x0000fffc
diff --git a/data/naming_screen.s b/data/naming_screen.s
index b7d348165..e06159b00 100644
--- a/data/naming_screen.s
+++ b/data/naming_screen.s
@@ -6,166 +6,6 @@
.section .rodata
.align 2
-gUnknown_83E1800:: @ 83E1800
- .incbin "graphics/interface/naming_screen_83E1800.4bpp"
-
-gUnknown_83E18C0:: @ 83E18C0
- .incbin "graphics/interface/naming_screen_83E18C0.4bpp"
-
-gUnknown_83E1980:: @ 83E1980
- .incbin "graphics/interface/naming_screen_83E1980.4bpp"
-
-gUnknown_83E2280:: @ 83E2280
- .4byte Text_MonSentToBoxInSomeonesPC
- .4byte Text_MonSentToBoxInBillsPC
- .4byte Text_MonSentToBoxSomeonesBoxFull
- .4byte Text_MonSentToBoxBillsBoxFull
-
-gUnknown_83E2290:: @ 83E2290
- .4byte 0x000001e0
- @ {
- @ .bg = 0,
- @ .charBaseIndex = 0,
- @ .mapBaseIndex = 30,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 0,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000011d9
- @ {
- @ .bg = 1,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 29,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 1,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000021ca
- @ {
- @ .bg = 2,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 28,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 2,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000031ff
- @ {
- @ .bg = 3,
- @ .charBaseIndex = 3,
- @ .mapBaseIndex = 31,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 3,
- @ .baseTile = 0x0000
- @ }
-
-gUnknown_83E22A0:: @ 83E22A0
- .byte 1, 3, 10, 19, 8, 10
- .2byte 0x0030
- @ {
- @ .bg = 1,
- @ .tilemapLeft = 3,
- @ .tilemapTop = 10,
- @ .width = 19,
- @ .height = 8,
- @ .paletteNum = 10,
- @ .baseBlock = 0x0030
- @ }
- .byte 2, 3, 10, 19, 8, 10
- .2byte 0x00c8
- @ {
- @ .bg = 2,
- @ .tilemapLeft = 3,
- @ .tilemapTop = 10,
- @ .width = 19,
- @ .height = 8,
- @ .paletteNum = 10,
- @ .baseBlock = 0x00c8
- @ }
- .byte 3, 8, 6, 14, 2, 10
- .2byte 0x0030
- @ {
- @ .bg = 3,
- @ .tilemapLeft = 8,
- @ .tilemapTop = 6,
- @ .width = 14,
- @ .height = 2,
- @ .paletteNum = 10,
- @ .baseBlock = 0x0030
- @ }
- .byte 3, 9, 4, 16, 2, 10
- .2byte 0x004c
- @ {
- @ .bg = 3,
- @ .tilemapLeft = 9,
- @ .tilemapTop = 4,
- @ .width = 16,
- @ .height = 2,
- @ .paletteNum = 10,
- @ .baseBlock = 0x004c
- @ }
- .byte 0, 0, 0, 30, 2, 11
- .2byte 0x006c
- @ {
- @ .bg = 0,
- @ .tilemapLeft = 0,
- @ .tilemapTop = 0,
- @ .width = 30,
- @ .height = 2,
- @ .paletteNum = 11,
- @ .baseBlock = 0x006c
- @ }
- .byte 255, 0, 0, 0, 0, 0
- .2byte 0x0000
- @ {
- @ .bg = 255,
- @ .tilemapLeft = 0,
- @ .tilemapTop = 0,
- @ .width = 0,
- @ .height = 0,
- @ .paletteNum = 0,
- @ .baseBlock = 0x0000
- @ }
-
-gUnknown_83E22D0:: @ 83E22D0
- .string "abcdef .", 8
- .string "ghijkl ,", 8
- .string "mnopqrs", 8
- .string "tuvwxyz", 8
- .string "ABCDEF .", 8
- .string "GHIJKL ,", 8
- .string "MNOPQRS", 8
- .string "TUVWXYZ", 8
- .string "01234", 8
- .string "56789", 8
- .string "!?♂♀/-", 8
- .string "…“”‘'", 8
-
-gUnknown_83E2330:: @ 83E2330
- .byte 0x08, 0x08, 0x06
-
-gUnknown_83E2333:: @ 83E2333
- .byte 0x00, 0x0c, 0x18, 0x38, 0x44, 0x50, 0x5c, 0x7b, 0x00, 0x0c, 0x18, 0x38, 0x44, 0x50, 0x5c, 0x7b, 0x00, 0x16, 0x2c, 0x42, 0x58, 0x6e, 0x00, 0x00
-
-gUnknown_83E234B:: @ 83E234B
- .byte 0x00, 0x02, 0x01
-
-gUnknown_83E234E:: @ 83E234E
- .byte 0x01, 0x00, 0x02
-
-gUnknown_83E2351:: @ 83E2351
- .byte 0x02, 0x01, 0x00
-
-gUnknown_83E2354:: @ 83E2354
- .4byte sub_809E384
- .4byte sub_809E3AC
- .4byte sub_809E440
- .4byte sub_809E4D4
-
gUnknown_83E2364:: @ 83E2364
.2byte 0x0000, 0xfffc, 0xfffe, 0xffff
@@ -173,8 +13,9 @@ gUnknown_83E236C:: @ 83E236C
.2byte 0x0002, 0x0003, 0x0002, 0x0001
gUnknown_83E2374:: @ 83E2374
- .byte 0x01, 0x02, 0x03, 0x00
+ .byte 0x01, 0x02, 0x03
+ .align 2
gUnknown_83E2378:: @ 83E2378
.4byte sub_809EC7C
.4byte sub_809ECD0
@@ -293,7 +134,7 @@ gUnknown_83E2480:: @ 83E2480
.align 2
.4byte gUnknown_8418E69
-gUnknown_83E248C:: @ 83E248C
+sNamingScreenTemplates:: @ 83E248C
.4byte gUnknown_83E245C
.4byte gUnknown_83E2468
.4byte gUnknown_83E2474
diff --git a/include/graphics.h b/include/graphics.h
index a61d5f62f..f85b95bad 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4895,4 +4895,9 @@ extern const u32 gEasyChatRedRectangularCursor_Tiles[];
extern const u32 gEasyChatSelectGroupHelp_Tiles[];
extern const u32 gEasyChatModeIcons_Tiles[];
+// naming_screen
+extern const u32 gUnknown_8E982BC[];
+extern const u32 gUnknown_8E98458[];
+extern const u32 gUnknown_8E98398[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/naming_screen.h b/include/naming_screen.h
index be2cf34f8..424d1bdba 100644
--- a/include/naming_screen.h
+++ b/include/naming_screen.h
@@ -7,8 +7,8 @@
#define NAMING_SCREEN_BOX 1
#define NAMING_SCREEN_CAUGHT_MON 2
#define NAMING_SCREEN_3 3
-#define NAMING_SCREEN_WALDA 4
+#define NAMING_SCREEN_WALDA 4 // Wrong name?
-void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void));
+void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback);
#endif // GUARD_NAMING_SCREEN_H
diff --git a/ld_script.txt b/ld_script.txt
index c2b35f7a2..28d187d26 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -141,6 +141,7 @@ SECTIONS {
src/special_field_anim.o(.text);
src/berry.o(.text);
src/script_menu.o(.text);
+ src/naming_screen.o(.text);
asm/naming_screen.o(.text);
src/money.o(.text);
src/script_pokemon_util.o(.text);
@@ -459,6 +460,7 @@ SECTIONS {
src/special_field_anim.o(.rodata);
src/berry.o(.rodata);
src/script_menu.o(.rodata);
+ src/naming_screen.o(.rodata);
data/naming_screen.o(.rodata);
src/pokemon_size_record.o(.rodata);
src/item_use.o(.rodata);
diff --git a/src/naming_screen.c b/src/naming_screen.c
new file mode 100644
index 000000000..a929f9f4e
--- /dev/null
+++ b/src/naming_screen.c
@@ -0,0 +1,567 @@
+#include "global.h"
+#include "gflib.h"
+#include "graphics.h"
+#include "event_scripts.h"
+#include "help_system.h"
+#include "naming_screen.h"
+#include "new_menu_helpers.h"
+#include "strings.h"
+#include "task.h"
+#include "constants/help_system.h"
+
+enum
+{
+ KBPAGE_LETTERS_LOWER,
+ KBPAGE_LETTERS_UPPER,
+ KBPAGE_SYMBOLS,
+ KBPAGE_COUNT,
+};
+
+enum
+{
+ MAIN_STATE_BEGIN_FADE_IN,
+ MAIN_STATE_WAIT_FADE_IN,
+ MAIN_STATE_HANDLE_INPUT,
+ MAIN_STATE_MOVE_TO_OK_BUTTON,
+ MAIN_STATE_START_PAGE_SWAP,
+ MAIN_STATE_WAIT_PAGE_SWAP,
+ MAIN_STATE_6,
+ MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE,
+ MAIN_STATE_BEGIN_FADE_OUT,
+ MAIN_STATE_WAIT_FADE_OUT_AND_EXIT,
+};
+
+enum
+{
+ INPUT_STATE_DISABLED,
+ INPUT_STATE_ENABLED,
+ INPUT_STATE_2,
+};
+
+struct NamingScreenTemplate
+{
+ u8 copyExistingString;
+ u8 maxChars;
+ u8 iconFunction;
+ u8 addGenderIcon;
+ u8 initialPage;
+ u8 unused;
+ const u8 *title;
+};
+
+struct NamingScreenData {
+ /*0x0*/ u8 tilemapBuffer1[0x800];
+ /*0x800*/ u8 tilemapBuffer2[0x800];
+ /*0x800*/ u8 tilemapBuffer3[0x800];
+ /*0x1800*/ u8 textBuffer[0x10];
+ /*0x1810*/ u8 tileBuffer[0x600];
+ /*0x1E10*/ u8 state;
+ /*0x1E11*/ u8 windows[5];
+ /*0x1E16*/ u16 inputCharBaseXPos;
+ /*0x1E18*/ u16 bg1vOffset;
+ /*0x1E1A*/ u16 bg2vOffset;
+ /*0x1E1C*/ u16 bg1Priority;
+ /*0x1E1E*/ u16 bg2Priority;
+ /*0x1E20*/ u8 bgToReveal;
+ /*0x1E21*/ u8 bgToHide;
+ /*0x1E22*/ u8 currentPage;
+ /*0x1E23*/ u8 cursorSpriteId;
+ /*0x1E24*/ u8 selectBtnFrameSpriteId;
+ /*0x1E25*/ u8 keyRepeatStartDelayCopy;
+ /*0x1E28*/ const struct NamingScreenTemplate *template;
+ /*0x1E2C*/ u8 templateNum;
+ /*0x1E30*/ u8 *destBuffer;
+ /*0x1E34*/ u16 monSpecies;
+ /*0x1E36*/ u16 monGender;
+ /*0x1E38*/ u32 monPersonality;
+ /*0x1E3C*/ MainCallback returnCallback;
+};
+
+EWRAM_DATA struct NamingScreenData * gNamingScreenData = NULL;
+
+void C2_NamingScreen(void);
+void NamingScreen_Init(void);
+void NamingScreen_InitBGs(void);
+void sub_809DD60(void);
+void sub_809DD88(u8 taskId);
+bool8 MainState_BeginFadeIn(void);
+bool8 MainState_WaitFadeIn(void);
+bool8 MainState_HandleInput(void);
+bool8 MainState_MoveToOKButton(void);
+bool8 pokemon_store(void);
+void pokemon_transfer_to_pc_with_message(void);
+bool8 NamingScreen_InitDisplayMode(void);
+bool8 MainState_StartPageSwap(void);
+bool8 MainState_WaitPageSwap(void);
+bool8 sub_809E1D4(void);
+bool8 PageSwapAnimState_Init(struct Task * task);
+bool8 PageSwapAnimState_1(struct Task * task);
+bool8 PageSwapAnimState_2(struct Task * task);
+bool8 PageSwapAnimState_Done(struct Task * task);
+void MainState_BeginFadeInOut(void);
+void MainState_WaitFadeOutAndExit(void);
+void NamingScreen_TurnOffScreen(void);
+void choose_name_or_words_screen_apply_bg_pals(void);
+void choose_name_or_words_screen_load_bg_tile_patterns(void);
+void sub_809E518(u8 a0, u8 a1, u8 a2);
+void sub_809E898(void);
+bool8 IsCursorAnimFinished();
+void MoveCursorToOKButton();
+void sub_809EA0C(u8 a0);
+void sub_809EA64(u8 a0);
+bool8 HandleKeyboardEvent(void);
+void SetInputState(u8 state);
+void sub_809F56C(void);
+void sub_809F7EC(void);
+void sub_809F8C0(void);
+void sub_809F900(u8 bgId, const u32 * tmap);
+void sub_809F914(void);
+void sub_809F9E8(u8 windowId, u8 kbPage);
+void sub_809FAE4(void);
+void sub_809FB70(void);
+void sub_809FC34(void);
+
+const u16 gUnknown_83E1800[] = INCBIN_U16("graphics/interface/naming_screen_83E1800.4bpp");
+const u16 gUnknown_83E18C0[] = INCBIN_U16("graphics/interface/naming_screen_83E18C0.4bpp");
+const u16 gUnknown_83E1980[] = INCBIN_U16("graphics/interface/naming_screen_83E1980.4bpp");
+
+const u8 *const gUnknown_83E2280[] = {
+ Text_MonSentToBoxInSomeonesPC,
+ Text_MonSentToBoxInBillsPC,
+ Text_MonSentToBoxSomeonesBoxFull,
+ Text_MonSentToBoxBillsBoxFull
+};
+
+const struct BgTemplate gUnknown_83E2290[4] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 28,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000
+ }, {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x000
+ }
+};
+
+const struct WindowTemplate gUnknown_83E22A0[6] = {
+ {
+ .bg = 1,
+ .tilemapLeft = 3,
+ .tilemapTop = 10,
+ .width = 19,
+ .height = 8,
+ .paletteNum = 10,
+ .baseBlock = 0x0030
+ }, {
+ .bg = 2,
+ .tilemapLeft = 3,
+ .tilemapTop = 10,
+ .width = 19,
+ .height = 8,
+ .paletteNum = 10,
+ .baseBlock = 0x00c8
+ }, {
+ .bg = 3,
+ .tilemapLeft = 8,
+ .tilemapTop = 6,
+ .width = 14,
+ .height = 2,
+ .paletteNum = 10,
+ .baseBlock = 0x0030
+ }, {
+ .bg = 3,
+ .tilemapLeft = 9,
+ .tilemapTop = 4,
+ .width = 16,
+ .height = 2,
+ .paletteNum = 10,
+ .baseBlock = 0x004c
+ }, {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 30,
+ .height = 2,
+ .paletteNum = 11,
+ .baseBlock = 0x006c
+ }, DUMMY_WIN_TEMPLATE
+};
+
+const u8 gUnknown_83E22D0[][4][8] = {
+ [KBPAGE_LETTERS_LOWER] = {
+ __("abcdef ."),
+ __("ghijkl ,"),
+ __("mnopqrs"),
+ __("tuvwxyz"),
+ },
+ [KBPAGE_LETTERS_UPPER] = {
+ __("ABCDEF ."),
+ __("GHIJKL ,"),
+ __("MNOPQRS"),
+ __("TUVWXYZ"),
+ },
+ [KBPAGE_SYMBOLS] = {
+ __("01234"),
+ __("56789"),
+ __("!?♂♀/-"),
+ __("…“”‘'"),
+ }
+};
+
+const u8 gUnknown_83E2330[] = {
+ [KBPAGE_LETTERS_LOWER] = 8, // lower
+ [KBPAGE_LETTERS_UPPER] = 8, // upper
+ [KBPAGE_SYMBOLS] = 6
+};
+
+const u8 gUnknown_83E2333[][8] = {
+ [KBPAGE_LETTERS_LOWER] = {
+ 0,
+ 12,
+ 24,
+ 56,
+ 68,
+ 80,
+ 92,
+ 123
+ },
+ [KBPAGE_LETTERS_UPPER] = {
+ 0,
+ 12,
+ 24,
+ 56,
+ 68,
+ 80,
+ 92,
+ 123
+ },
+ [KBPAGE_SYMBOLS] = {
+ 0,
+ 22,
+ 44,
+ 66,
+ 88,
+ 110
+ }
+};
+
+extern const struct NamingScreenTemplate *const sNamingScreenTemplates[];
+
+void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback)
+{
+ gNamingScreenData = Alloc(sizeof(struct NamingScreenData));
+ if (!gNamingScreenData)
+ {
+ SetMainCallback2(returnCallback);
+ }
+ else
+ {
+ gNamingScreenData->templateNum = templateNum;
+ gNamingScreenData->monSpecies = monSpecies;
+ gNamingScreenData->monGender = monGender;
+ gNamingScreenData->monPersonality = monPersonality;
+ gNamingScreenData->destBuffer = destBuffer;
+ gNamingScreenData->returnCallback = returnCallback;
+
+ if (templateNum == 0)
+ StartTimer1();
+
+ SetMainCallback2(C2_NamingScreen);
+ }
+}
+
+void C2_NamingScreen(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ NamingScreen_TurnOffScreen();
+ NamingScreen_Init();
+ gMain.state++;
+ break;
+ case 1:
+ NamingScreen_InitBGs();
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 3:
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 4:
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 5:
+ choose_name_or_words_screen_apply_bg_pals();
+ gMain.state++;
+ break;
+ case 6:
+ choose_name_or_words_screen_load_bg_tile_patterns();
+ gMain.state++;
+ break;
+ case 7:
+ sub_809E898();
+ UpdatePaletteFade();
+ sub_809FC34();
+ gMain.state++;
+ break;
+ default:
+ sub_809F8C0();
+ sub_809DD60();
+ break;
+ }
+}
+
+void NamingScreen_Init(void)
+{
+ gNamingScreenData->state = 0;
+ gNamingScreenData->bg1vOffset = 0;
+ gNamingScreenData->bg2vOffset = 0;
+ gNamingScreenData->bg1Priority = BGCNT_PRIORITY(1);
+ gNamingScreenData->bg2Priority = BGCNT_PRIORITY(2);
+ gNamingScreenData->bgToReveal = 0;
+ gNamingScreenData->bgToHide = 1;
+ gNamingScreenData->template = sNamingScreenTemplates[gNamingScreenData->templateNum];
+ gNamingScreenData->currentPage = gNamingScreenData->template->initialPage;
+ gNamingScreenData->inputCharBaseXPos = (240 - gNamingScreenData->template->maxChars * 8) / 2 + 6;
+ gNamingScreenData->keyRepeatStartDelayCopy = gKeyRepeatStartDelay;
+ memset(gNamingScreenData->textBuffer, 0xFF, sizeof(gNamingScreenData->textBuffer));
+ if (gNamingScreenData->template->copyExistingString != 0)
+ StringCopy(gNamingScreenData->textBuffer, gNamingScreenData->destBuffer);
+ gKeyRepeatStartDelay = 16;
+}
+
+void sub_809DB70(void)
+{
+ u8 i;
+ for (i = 0; i < MAX_SPRITES; i++)
+ {
+ if (gSprites[i].inUse)
+ gSprites[i].invisible = FALSE;
+ }
+ sub_809EA0C(0);
+}
+
+void NamingScreen_InitBGs(void)
+{
+ u8 i;
+
+ DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000);
+ DmaClear32(3, (void *)OAM, OAM_SIZE);
+ DmaClear16(3, (void *)PLTT, PLTT_SIZE);
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0);
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, gUnknown_83E2290, NELEMS(gUnknown_83E2290));
+
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+
+ InitStandardTextBoxWindows();
+ ResetBg0();
+
+ for (i = 0; i < NELEMS(gUnknown_83E22A0) - 1; i++)
+ gNamingScreenData->windows[i] = AddWindow(&gUnknown_83E22A0[i]);
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0xC, 0x8));
+
+ SetBgTilemapBuffer(1, gNamingScreenData->tilemapBuffer1);
+ SetBgTilemapBuffer(2, gNamingScreenData->tilemapBuffer2);
+ SetBgTilemapBuffer(3, gNamingScreenData->tilemapBuffer3);
+
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20);
+ FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20);
+}
+
+void sub_809DD60(void)
+{
+ CreateTask(sub_809DD88, 2);
+ SetMainCallback2(sub_809FB70);
+ BackupHelpContext();
+ SetHelpContext(HELPCONTEXT_NAMING_SCREEN);
+}
+
+void sub_809DD88(u8 taskId)
+{
+ switch (gNamingScreenData->state)
+ {
+ case MAIN_STATE_BEGIN_FADE_IN:
+ MainState_BeginFadeIn();
+ sub_809DB70();
+ NamingScreen_InitDisplayMode();
+ break;
+ case MAIN_STATE_WAIT_FADE_IN:
+ MainState_WaitFadeIn();
+ break;
+ case MAIN_STATE_HANDLE_INPUT:
+ MainState_HandleInput();
+ break;
+ case MAIN_STATE_MOVE_TO_OK_BUTTON:
+ MainState_MoveToOKButton();
+ break;
+ case MAIN_STATE_START_PAGE_SWAP:
+ MainState_StartPageSwap();
+ break;
+ case MAIN_STATE_WAIT_PAGE_SWAP:
+ MainState_WaitPageSwap();
+ break;
+ case MAIN_STATE_6:
+ pokemon_store();
+ break;
+ case MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE:
+ sub_809E1D4();
+ break;
+ case MAIN_STATE_BEGIN_FADE_OUT:
+ MainState_BeginFadeInOut();
+ break;
+ case MAIN_STATE_WAIT_FADE_OUT_AND_EXIT:
+ MainState_WaitFadeOutAndExit();
+ break;
+ }
+}
+
+const u8 sPageOrderLowerFirst[] = {
+ KBPAGE_LETTERS_LOWER,
+ KBPAGE_SYMBOLS,
+ KBPAGE_LETTERS_UPPER
+};
+
+const u8 sPageOrderUpperFirst[] = {
+ KBPAGE_LETTERS_UPPER,
+ KBPAGE_LETTERS_LOWER,
+ KBPAGE_SYMBOLS
+};
+
+const u8 sPageOrderSymbolsFirst[] = {
+ KBPAGE_SYMBOLS,
+ KBPAGE_LETTERS_UPPER,
+ KBPAGE_LETTERS_LOWER
+};
+
+u8 sub_809DE20(u8 a1)
+{
+ return sPageOrderLowerFirst[a1];
+}
+
+bool8 (*const sPageSwapAnimStateFuncs[])(struct Task * task) = {
+ PageSwapAnimState_Init,
+ PageSwapAnimState_1,
+ PageSwapAnimState_2,
+ PageSwapAnimState_Done
+};
+
+u8 sub_809DE30(void)
+{
+ return sPageOrderUpperFirst[gNamingScreenData->currentPage];
+}
+
+u8 sub_809DE50(void)
+{
+ return sPageOrderSymbolsFirst[gNamingScreenData->currentPage];
+}
+
+bool8 MainState_BeginFadeIn(void)
+{
+ sub_809F900(3, gUnknown_8E982BC);
+ gNamingScreenData->currentPage = KBPAGE_LETTERS_UPPER;
+ sub_809F900(2, gUnknown_8E98458);
+ sub_809F900(1, gUnknown_8E98398);
+ sub_809F9E8(gNamingScreenData->windows[1], KBPAGE_LETTERS_LOWER);
+ sub_809F9E8(gNamingScreenData->windows[0], KBPAGE_LETTERS_UPPER);
+ sub_809F914();
+ sub_809F56C();
+ sub_809FAE4();
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(3);
+ BlendPalettes(-1, 16, RGB_BLACK);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ gNamingScreenData->state++;
+ return FALSE;
+}
+
+bool8 MainState_WaitFadeIn(void)
+{
+ if (!gPaletteFade.active)
+ {
+ SetInputState(INPUT_STATE_ENABLED);
+ sub_809EA64(1);
+ gNamingScreenData->state++;
+ }
+ return FALSE;
+}
+
+bool8 MainState_HandleInput(void)
+{
+ return HandleKeyboardEvent();
+}
+
+bool8 MainState_MoveToOKButton(void)
+{
+ if (IsCursorAnimFinished())
+ {
+ SetInputState(INPUT_STATE_ENABLED);
+ MoveCursorToOKButton();
+ gNamingScreenData->state = MAIN_STATE_HANDLE_INPUT;
+ }
+ return FALSE;
+}
+
+bool8 pokemon_store(void)
+{
+ sub_809F7EC();
+ SetInputState(INPUT_STATE_DISABLED);
+ sub_809EA64(0);
+ sub_809E518(3, 0, 1);
+ if (gNamingScreenData->templateNum == NAMING_SCREEN_CAUGHT_MON &&
+ CalculatePlayerPartyCount() >= 6)
+ {
+ pokemon_transfer_to_pc_with_message();
+ gNamingScreenData->state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE;
+ return FALSE;
+ }
+ else
+ {
+ gNamingScreenData->state = MAIN_STATE_BEGIN_FADE_OUT;
+ return TRUE; //Exit the naming screen
+ }
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index ea2b7b749..56d8e7104 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -236,7 +236,7 @@ gUnknown_203982C: @ 203982C
.align 2
@ .include "src/naming_screen.o"
-gUnknown_203998C: @ 203998C
+gNamingScreenData: @ 203998C
.space 0x4
.align 2