diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-09 14:28:13 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-09 14:28:13 -0400 |
commit | 0fdffabbc8682c347694aa06f9fb7a7a8aad4e8e (patch) | |
tree | 7680ab5407c80c689a2c2ebb8ec7ee5215521d7c | |
parent | c40d7241ff2d2c0220550339b27a2725aac856fe (diff) |
through pokemon_store
-rw-r--r-- | asm/naming_screen.s | 1066 | ||||
-rw-r--r-- | data/naming_screen.s | 165 | ||||
-rw-r--r-- | include/graphics.h | 5 | ||||
-rw-r--r-- | include/naming_screen.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/naming_screen.c | 567 | ||||
-rw-r--r-- | sym_ewram.txt | 2 |
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 |