diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-06-12 20:29:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-12 20:29:24 -0400 |
commit | ad25741237f491c1b8b0241be2cd7fbfaa128b20 (patch) | |
tree | a2f36dd6f7b9671a2fbca48f42a41a6a8af79f02 | |
parent | 423dc1aeb1f52567865c8619e8eb827ac404c929 (diff) | |
parent | c993f5db4e0ab8052875ab80f980d4100b809764 (diff) |
Merge pull request #66 from pret/help_system_812B1E0
Decompile help_system_812b1e0
-rw-r--r-- | asm/help_system.s | 18 | ||||
-rw-r--r-- | asm/help_system_812B1E0.s | 1761 | ||||
-rw-r--r-- | asm/save_failed_screen.s | 2 | ||||
-rw-r--r-- | charmap.txt | 49 | ||||
-rw-r--r-- | common_syms/help_system_812B1E0.txt | 2 | ||||
-rw-r--r-- | data/data_83FECCC.s | 288 | ||||
-rw-r--r-- | data/map_event_scripts.inc | 26 | ||||
-rw-r--r-- | data/text/help_system.inc | 1879 | ||||
-rw-r--r-- | graphics/help_system/unk_845BCB0.bin | bin | 0 -> 2048 bytes | |||
-rw-r--r-- | include/constants/flags.h | 1 | ||||
-rw-r--r-- | include/event_scripts.h | 372 | ||||
-rw-r--r-- | include/help_system.h | 53 | ||||
-rw-r--r-- | include/list_menu.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 1 | ||||
-rw-r--r-- | include/save_location.h | 1 | ||||
-rw-r--r-- | include/strings.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/fame_checker.c | 6 | ||||
-rw-r--r-- | src/help_system_812B1E0.c | 1580 | ||||
-rw-r--r-- | sym_common.txt | 8 | ||||
-rw-r--r-- | sym_ewram.txt | 11 |
21 files changed, 4119 insertions, 1949 deletions
diff --git a/asm/help_system.s b/asm/help_system.s index 7026c65d5..2ea845550 100644 --- a/asm/help_system.s +++ b/asm/help_system.s @@ -1031,8 +1031,8 @@ _0813C06A: _0813C074: .4byte 0x000001fd thumb_func_end sub_813C004 - thumb_func_start sub_813C078 -sub_813C078: @ 813C078 + thumb_func_start HelpSystemRenderText +HelpSystemRenderText: @ 813C078 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1421,7 +1421,7 @@ _0813C39C: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_813C078 + thumb_func_end HelpSystemRenderText thumb_func_start sub_813C3AC sub_813C3AC: @ 813C3AC @@ -1527,7 +1527,7 @@ sub_813C454: @ 813C454 movs r0, 0x5 adds r2, r4, 0 movs r3, 0x6 - bl sub_813C078 + bl HelpSystemRenderText add sp, 0xC pop {r4} pop {r0} @@ -1562,7 +1562,7 @@ sub_813C488: @ 813C488 movs r0, 0 adds r2, r5, 0 adds r3, r4, 0 - bl sub_813C078 + bl HelpSystemRenderText add sp, 0xC pop {r4,r5} pop {r0} @@ -1595,7 +1595,7 @@ sub_813C4CC: @ 813C4CC movs r0, 0x2 adds r2, r6, 0 adds r3, r5, 0 - bl sub_813C078 + bl HelpSystemRenderText add sp, 0xC pop {r4-r6} pop {r0} @@ -1636,7 +1636,7 @@ sub_813C50C: @ 813C50C adds r1, r4, 0 mov r2, r8 movs r3, 0 - bl sub_813C078 + bl HelpSystemRenderText movs r0, 0x9C lsls r0, 4 adds r4, r0 @@ -1648,7 +1648,7 @@ sub_813C50C: @ 813C50C adds r1, r4, 0 mov r2, r9 movs r3, 0 - bl sub_813C078 + bl HelpSystemRenderText add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -1690,7 +1690,7 @@ sub_813C584: @ 813C584 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 - bl sub_813C078 + bl HelpSystemRenderText add sp, 0x10 pop {r4,r5} pop {r0} diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s deleted file mode 100644 index b88a86b47..000000000 --- a/asm/help_system_812B1E0.s +++ /dev/null @@ -1,1761 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812B1E0 -sub_812B1E0: @ 812B1E0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812B1EC @ =gUnknown_203B0EC - strh r0, [r1] - bx lr - .align 2, 0 -_0812B1EC: .4byte gUnknown_203B0EC - thumb_func_end sub_812B1E0 - - thumb_func_start HelpSystem_SetSomeVariable2 -HelpSystem_SetSomeVariable2: @ 812B1F0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0812B21C @ =gUnknown_203B0EC - ldrh r2, [r0] - cmp r2, 0x1A - bgt _0812B216 - cmp r2, 0x17 - blt _0812B216 - cmp r1, 0x9 - beq _0812B218 - cmp r1, 0x5 - beq _0812B218 - cmp r1, 0x6 - beq _0812B218 - cmp r1, 0x7 - beq _0812B218 - cmp r1, 0x8 - beq _0812B218 -_0812B216: - strh r1, [r0] -_0812B218: - pop {r0} - bx r0 - .align 2, 0 -_0812B21C: .4byte gUnknown_203B0EC - thumb_func_end HelpSystem_SetSomeVariable2 - - thumb_func_start sub_812B220 -sub_812B220: @ 812B220 - ldr r0, _0812B22C @ =gUnknown_203B0EC - ldr r1, _0812B230 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B22C: .4byte gUnknown_203B0EC -_0812B230: .4byte gSpecialVar_0x8004 - thumb_func_end sub_812B220 - - thumb_func_start sub_812B234 -sub_812B234: @ 812B234 - ldr r0, _0812B240 @ =gUnknown_3005EA0 - ldr r1, _0812B244 @ =gUnknown_203B0EC - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B240: .4byte gUnknown_3005EA0 -_0812B244: .4byte gUnknown_203B0EC - thumb_func_end sub_812B234 - - thumb_func_start sub_812B248 -sub_812B248: @ 812B248 - ldr r0, _0812B254 @ =gUnknown_203B0EC - ldr r1, _0812B258 @ =gUnknown_3005EA0 - ldrh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0812B254: .4byte gUnknown_203B0EC -_0812B258: .4byte gUnknown_3005EA0 - thumb_func_end sub_812B248 - - thumb_func_start sub_812B25C -sub_812B25C: @ 812B25C - push {lr} - ldr r0, _0812B268 @ =gUnknown_845C594 - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B268: .4byte gUnknown_845C594 - thumb_func_end sub_812B25C - - thumb_func_start sub_812B26C -sub_812B26C: @ 812B26C - push {lr} - ldr r0, _0812B278 @ =gUnknown_845C5BC - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B278: .4byte gUnknown_845C5BC - thumb_func_end sub_812B26C - - thumb_func_start sub_812B27C -sub_812B27C: @ 812B27C - push {r4,lr} - adds r2, r0, 0 - ldr r0, _0812B2AC @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, _0812B2B0 @ =0x0000ffff - cmp r0, r1 - beq _0812B2BC - adds r4, r1, 0 - adds r1, r2, 0 -_0812B2A2: - ldrh r0, [r1] - cmp r0, r3 - bne _0812B2B4 - movs r0, 0x1 - b _0812B2BE - .align 2, 0 -_0812B2AC: .4byte gSaveBlock1Ptr -_0812B2B0: .4byte 0x0000ffff -_0812B2B4: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0812B2A2 -_0812B2BC: - movs r0, 0 -_0812B2BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B27C - - thumb_func_start sub_812B2C4 -sub_812B2C4: @ 812B2C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - ldr r0, _0812B2E8 @ =gUnknown_845C5CE - mov r9, r0 - movs r0, 0x2 - add r0, r9 - mov r8, r0 -_0812B2D8: - movs r6, 0 - mov r4, r9 - lsls r1, r5, 1 - adds r0, r1, r5 - add r0, r8 - adds r7, r1, 0 - b _0812B33A - .align 2, 0 -_0812B2E8: .4byte gUnknown_845C5CE -_0812B2EC: - adds r3, r1, r5 - adds r0, r3, r4 - ldrb r1, [r0] - ldr r0, _0812B324 @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _0812B32C - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, r6 - movs r1, 0x5 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0812B32C - cmp r5, 0xF - bne _0812B320 - ldr r0, _0812B328 @ =0x00000849 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B32C -_0812B320: - movs r0, 0x1 - b _0812B34C - .align 2, 0 -_0812B324: .4byte gSaveBlock1Ptr -_0812B328: .4byte 0x00000849 -_0812B32C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _0812B358 @ =gUnknown_845C5CE - adds r1, r7, 0 - adds r0, r1, r5 - add r0, r8 -_0812B33A: - ldrb r0, [r0] - cmp r6, r0 - bcc _0812B2EC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812B2D8 - movs r0, 0 -_0812B34C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0812B358: .4byte gUnknown_845C5CE - thumb_func_end sub_812B2C4 - - thumb_func_start sub_812B35C -sub_812B35C: @ 812B35C - push {lr} - bl sub_812B4B8 - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0812B376 - movs r0, 0x16 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B376: - bl sub_812B2C4 - lsls r0, 24 - cmp r0, 0 - beq _0812B388 - movs r0, 0x15 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B388: - ldr r0, _0812B3B0 @ =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_8_or_9 - lsls r0, 24 - cmp r0, 0 - beq _0812B400 - ldr r0, _0812B3B4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - cmp r1, 0x4 - beq _0812B3A8 - movs r0, 0x82 - lsls r0, 1 - cmp r1, r0 - bne _0812B3B8 -_0812B3A8: - movs r0, 0xE - bl HelpSystem_SetSomeVariable2 - b _0812B406 - .align 2, 0 -_0812B3B0: .4byte gMapHeader -_0812B3B4: .4byte gSaveBlock1Ptr -_0812B3B8: - movs r0, 0xC1 - lsls r0, 2 - cmp r1, r0 - bne _0812B3C8 - movs r0, 0xF - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B3C8: - bl IsCurMapPokeCenter - cmp r0, 0x1 - bne _0812B3D8 - movs r0, 0x10 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B3D8: - bl sub_812B25C - cmp r0, 0x1 - bne _0812B3E8 - movs r0, 0x11 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B3E8: - bl sub_812B26C - cmp r0, 0x1 - bne _0812B3F8 - movs r0, 0x12 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B3F8: - movs r0, 0x13 - bl HelpSystem_SetSomeVariable2 - b _0812B406 -_0812B400: - movs r0, 0x14 - bl HelpSystem_SetSomeVariable2 -_0812B406: - pop {r0} - bx r0 - thumb_func_end sub_812B35C - - thumb_func_start sub_812B40C -sub_812B40C: @ 812B40C - push {lr} - ldr r0, _0812B434 @ =gUnknown_203B0EE - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B42E - ldr r0, _0812B438 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0812B440 - cmp r0, 0x2 - beq _0812B440 - ldr r0, _0812B43C @ =0x0000083c - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0812B440 -_0812B42E: - movs r0, 0 - b _0812B44E - .align 2, 0 -_0812B434: .4byte gUnknown_203B0EE -_0812B438: .4byte gSaveFileStatus -_0812B43C: .4byte 0x0000083c -_0812B440: - ldr r0, _0812B454 @ =0x0000083c - bl FlagSet - ldr r1, _0812B458 @ =gUnknown_203B0EE - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_0812B44E: - pop {r1} - bx r1 - .align 2, 0 -_0812B454: .4byte 0x0000083c -_0812B458: .4byte gUnknown_203B0EE - thumb_func_end sub_812B40C - - thumb_func_start sub_812B45C -sub_812B45C: @ 812B45C - push {lr} - ldr r0, _0812B46C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812B470 - movs r0, 0x1 - b _0812B472 - .align 2, 0 -_0812B46C: .4byte gReceivedRemoteLinkPlayers -_0812B470: - movs r0, 0 -_0812B472: - pop {r1} - bx r1 - thumb_func_end sub_812B45C - - thumb_func_start sub_812B478 -sub_812B478: @ 812B478 - ldr r1, _0812B480 @ =gUnknown_3005ECC - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B480: .4byte gUnknown_3005ECC - thumb_func_end sub_812B478 - - thumb_func_start sub_812B484 -sub_812B484: @ 812B484 - push {lr} - ldr r0, _0812B4A4 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0812B49E - ldr r1, _0812B4A8 @ =gUnknown_3005ECC - movs r0, 0x1 - strb r0, [r1] - bl sub_812B4B8 -_0812B49E: - pop {r0} - bx r0 - .align 2, 0 -_0812B4A4: .4byte gUnknown_203ADFA -_0812B4A8: .4byte gUnknown_3005ECC - thumb_func_end sub_812B484 - - thumb_func_start sub_812B4AC -sub_812B4AC: @ 812B4AC - ldr r1, _0812B4B4 @ =gUnknown_203F175 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4B4: .4byte gUnknown_203F175 - thumb_func_end sub_812B4AC - - thumb_func_start sub_812B4B8 -sub_812B4B8: @ 812B4B8 - ldr r1, _0812B4C0 @ =gUnknown_203F175 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0812B4C0: .4byte gUnknown_203F175 - thumb_func_end sub_812B4B8 - - thumb_func_start sub_812B4C4 -sub_812B4C4: @ 812B4C4 - str r1, [r0] - movs r2, 0x1 - movs r1, 0x1 - strh r1, [r0, 0x4] - strh r1, [r0, 0x6] - strb r2, [r0, 0x8] - movs r1, 0x4 - strb r1, [r0, 0x9] - bx lr - thumb_func_end sub_812B4C4 - - thumb_func_start sub_812B4D8 -sub_812B4D8: @ 812B4D8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B520 - ldr r0, _0812B518 @ =gUnknown_841DFAC - bl sub_812BF74 - ldr r0, _0812B51C @ =gUnknown_3005E9C - ldrb r2, [r0, 0x2] - adds r0, r4, 0 - movs r1, 0 - bl sub_813C64C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B518: .4byte gUnknown_841DFAC -_0812B51C: .4byte gUnknown_3005E9C - thumb_func_end sub_812B4D8 - - thumb_func_start sub_812B520 -sub_812B520: @ 812B520 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - movs r3, 0 - ldr r0, _0812B598 @ =gUnknown_845C4B0 - mov r9, r0 - ldr r1, _0812B59C @ =gUnknown_203B0EC - mov r8, r1 - ldr r0, _0812B5A0 @ =gUnknown_845C4B6 - mov r12, r0 - ldr r7, _0812B5A4 @ =gUnknown_845B080 -_0812B53E: - mov r1, r9 - adds r0, r3, r1 - ldrb r2, [r0] - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0812B56C - lsls r1, r4, 3 - adds r1, r5 - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - str r0, [r1] - str r2, [r1, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0812B56C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0812B53E - lsls r0, r4, 3 - adds r0, r5 - subs r0, 0x8 - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - movs r0, 0 - strh r4, [r6, 0x4] - strh r4, [r6, 0x6] - strb r0, [r6, 0x8] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B598: .4byte gUnknown_845C4B0 -_0812B59C: .4byte gUnknown_203B0EC -_0812B5A0: .4byte gUnknown_845C4B6 -_0812B5A4: .4byte gUnknown_845B080 - thumb_func_end sub_812B520 - - thumb_func_start sub_812B5A8 -sub_812B5A8: @ 812B5A8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0 - bl sub_813BDE8 - movs r0, 0 - bl sub_813BFC0 - movs r0, 0x1 - bl sub_813BE78 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B4C4 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B614 - ldr r0, _0812B608 @ =gUnknown_841DFC9 - bl sub_812BF74 - ldrb r1, [r4, 0xC] - ldrb r2, [r4, 0xD] - adds r0, r4, 0 - bl sub_813C64C - ldr r1, _0812B60C @ =gUnknown_845B080 - ldr r0, _0812B610 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B608: .4byte gUnknown_841DFC9 -_0812B60C: .4byte gUnknown_845B080 -_0812B610: .4byte gUnknown_3005E9C - thumb_func_end sub_812B5A8 - - thumb_func_start sub_812B614 -sub_812B614: @ 812B614 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - movs r6, 0 - ldr r3, _0812B664 @ =gUnknown_845B9E0 - ldr r0, _0812B668 @ =gUnknown_203B0EC - ldrh r1, [r0] - lsls r0, r1, 2 - ldr r2, _0812B66C @ =gUnknown_3005E9C - adds r0, r1 - ldrb r2, [r2, 0x1] - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - movs r7, 0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B6D0 -_0812B640: - adds r4, r3, r7 - ldrb r0, [r4] - str r3, [sp] - bl sub_812B780 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp] - cmp r0, 0x1 - bne _0812B6C2 - ldr r0, _0812B66C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0812B674 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B670 @ =gUnknown_845B0B0 - b _0812B6AA - .align 2, 0 -_0812B664: .4byte gUnknown_845B9E0 -_0812B668: .4byte gUnknown_203B0EC -_0812B66C: .4byte gUnknown_3005E9C -_0812B670: .4byte gUnknown_845B0B0 -_0812B674: - cmp r0, 0x1 - bne _0812B684 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B680 @ =gUnknown_845B218 - b _0812B6AA - .align 2, 0 -_0812B680: .4byte gUnknown_845B218 -_0812B684: - cmp r0, 0x2 - bne _0812B694 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B690 @ =gUnknown_845B3A0 - b _0812B6AA - .align 2, 0 -_0812B690: .4byte gUnknown_845B3A0 -_0812B694: - cmp r0, 0x3 - bne _0812B6A4 - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B6A0 @ =gUnknown_845B500 - b _0812B6AA - .align 2, 0 -_0812B6A0: .4byte gUnknown_845B500 -_0812B6A4: - lsls r1, r6, 3 - adds r1, r5 - ldr r2, _0812B744 @ =gUnknown_845B540 -_0812B6AA: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - lsls r0, r6, 3 - adds r0, r5 - ldrb r1, [r4] - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0812B6C2: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B640 -_0812B6D0: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B710 - movs r7, 0 - ldr r3, _0812B748 @ =gUnknown_845B9BE - ldrb r0, [r3] - cmp r0, 0xFF - beq _0812B710 - ldr r4, _0812B74C @ =gUnknown_845B3A0 -_0812B6E8: - lsls r1, r6, 3 - adds r1, r5 - adds r2, r3, r7 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r2] - str r0, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r7 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B6E8 -_0812B710: - lsls r0, r6, 3 - adds r0, r5 - ldr r1, _0812B750 @ =gUnknown_81B2E6F - str r1, [r0] - movs r1, 0x2 - negs r1, r1 - str r1, [r0, 0x4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0 - mov r0, r8 - strh r6, [r0, 0x4] - movs r0, 0x7 - mov r2, r8 - strh r0, [r2, 0x6] - strb r1, [r2, 0x8] - movs r0, 0x15 - strb r0, [r2, 0x9] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B744: .4byte gUnknown_845B540 -_0812B748: .4byte gUnknown_845B9BE -_0812B74C: .4byte gUnknown_845B3A0 -_0812B750: .4byte gUnknown_81B2E6F - thumb_func_end sub_812B614 - - thumb_func_start sub_812B754 -sub_812B754: @ 812B754 - push {lr} - movs r0, 0x96 - lsls r0, 3 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812B778 - ldr r0, _0812B774 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0812B778 - movs r0, 0x1 - b _0812B77A - .align 2, 0 -_0812B774: .4byte gUnknown_3005E9C -_0812B778: - movs r0, 0 -_0812B77A: - pop {r1} - bx r1 - thumb_func_end sub_812B754 - - thumb_func_start sub_812B780 -sub_812B780: @ 812B780 - push {r4,r5,lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - movs r4, 0 - ldr r0, _0812B7A8 @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0812B794 - b _0812B8AC -_0812B794: - subs r0, r1, 0x1 - cmp r0, 0x2B - bls _0812B79C - b _0812BB04 -_0812B79C: - lsls r0, 2 - ldr r1, _0812B7AC @ =_0812B7B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B7A8: .4byte gUnknown_3005E9C -_0812B7AC: .4byte _0812B7B0 - .align 2, 0 -_0812B7B0: - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B860 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B870 - .4byte _0812BB08 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B880 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812B888 - .4byte _0812B868 - .4byte _0812B888 - .4byte _0812B878 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B896 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B880 - .4byte _0812B890 - .4byte _0812B890 - .4byte _0812BB08 - .4byte _0812B868 - .4byte _0812B868 - .4byte _0812B880 - .4byte _0812BB08 - .4byte _0812B89C - .4byte _0812B896 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B8A4 -_0812B860: - ldr r0, _0812B864 @ =0x000002cf - b _0812BAF2 - .align 2, 0 -_0812B864: .4byte 0x000002cf -_0812B868: - ldr r0, _0812B86C @ =0x00000891 - b _0812BAF2 - .align 2, 0 -_0812B86C: .4byte 0x00000891 -_0812B870: - ldr r0, _0812B874 @ =0x00000895 - b _0812BAF2 - .align 2, 0 -_0812B874: .4byte 0x00000895 -_0812B878: - ldr r0, _0812B87C @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812B87C: .4byte 0x000008a4 -_0812B880: - ldr r0, _0812B884 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B884: .4byte 0x00000828 -_0812B888: - ldr r0, _0812B88C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B88C: .4byte 0x00000829 -_0812B890: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B896: - bl sub_812BB10 - b _0812BAF6 -_0812B89C: - ldr r0, _0812B8A0 @ =0x0000029b - b _0812BAF2 - .align 2, 0 -_0812B8A0: .4byte 0x0000029b -_0812B8A4: - ldr r0, _0812B8A8 @ =0x00000892 - b _0812BAF2 - .align 2, 0 -_0812B8A8: .4byte 0x00000892 -_0812B8AC: - cmp r0, 0x1 - beq _0812B8B2 - b _0812B9D8 -_0812B8B2: - subs r0, r1, 0x1 - cmp r0, 0x2F - bls _0812B8BA - b _0812BB04 -_0812B8BA: - lsls r0, 2 - ldr r1, _0812B8C4 @ =_0812B8C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812B8C4: .4byte _0812B8C8 - .align 2, 0 -_0812B8C8: - .4byte _0812B988 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B990 - .4byte _0812B9BA - .4byte _0812B9C0 - .4byte _0812B9C0 - .4byte _0812B9C6 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812B9A8 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812B988 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9A0 - .4byte _0812B9A0 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812B9D0 -_0812B988: - ldr r0, _0812B98C @ =0x00000829 - b _0812BAF2 - .align 2, 0 -_0812B98C: .4byte 0x00000829 -_0812B990: - ldr r0, _0812B99C @ =0x00000169 - movs r1, 0x1 - bl CheckBagHasItem - b _0812BAF6 - .align 2, 0 -_0812B99C: .4byte 0x00000169 -_0812B9A0: - ldr r0, _0812B9A4 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812B9A4: .4byte 0x00000828 -_0812B9A8: - movs r0, 0x1 - bl sub_8088EDC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _0812B9B8 - b _0812BB08 -_0812B9B8: - b _0812BB04 -_0812B9BA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812B9C0: - bl sub_812BB10 - b _0812BAF6 -_0812B9C6: - ldr r0, _0812B9CC @ =0x00000271 - b _0812BAF2 - .align 2, 0 -_0812B9CC: .4byte 0x00000271 -_0812B9D0: - ldr r0, _0812B9D4 @ =0x0000082c - b _0812BAF2 - .align 2, 0 -_0812B9D4: .4byte 0x0000082c -_0812B9D8: - cmp r0, 0x2 - beq _0812B9DE - b _0812BADC -_0812B9DE: - bl sub_812B754 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812BA0E - ldr r0, _0812BA20 @ =gUnknown_845B9BE - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0xFF - beq _0812BA0E - adds r1, r2, 0 -_0812B9F6: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r5 - bne _0812BA00 - b _0812BB04 -_0812BA00: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0812B9F6 -_0812BA0E: - subs r0, r5, 0x1 - cmp r0, 0x26 - bls _0812BA16 - b _0812BB08 -_0812BA16: - lsls r0, 2 - ldr r1, _0812BA24 @ =_0812BA28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BA20: .4byte gUnknown_845B9BE -_0812BA24: .4byte _0812BA28 - .align 2, 0 -_0812BA28: - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BAD2 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BAC4 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BB08 - .4byte _0812BACC - .4byte _0812BACC - .4byte _0812BB08 - .4byte _0812BAD2 -_0812BAC4: - ldr r0, _0812BAC8 @ =0x00000828 - b _0812BAF2 - .align 2, 0 -_0812BAC8: .4byte 0x00000828 -_0812BACC: - bl sub_812BB10 - b _0812BAF6 -_0812BAD2: - ldr r0, _0812BAD8 @ =0x000008a4 - b _0812BAF2 - .align 2, 0 -_0812BAD8: .4byte 0x000008a4 -_0812BADC: - cmp r0, 0x3 - bne _0812BB00 - cmp r5, 0x5 - beq _0812BAEA - cmp r5, 0x6 - beq _0812BAF0 - b _0812BB08 -_0812BAEA: - movs r0, 0x82 - lsls r0, 4 - b _0812BAF2 -_0812BAF0: - ldr r0, _0812BAFC @ =0x00000821 -_0812BAF2: - bl FlagGet -_0812BAF6: - lsls r0, 24 - lsrs r0, 24 - b _0812BB0A - .align 2, 0 -_0812BAFC: .4byte 0x00000821 -_0812BB00: - cmp r0, 0x4 - beq _0812BB08 -_0812BB04: - movs r0, 0 - b _0812BB0A -_0812BB08: - movs r0, 0x1 -_0812BB0A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_812B780 - - thumb_func_start sub_812BB10 -sub_812BB10: @ 812BB10 - push {lr} - ldr r0, _0812BB7C @ =0x00000237 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0x8E - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB80 @ =0x00000239 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB84 @ =0x0000023a - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB88 @ =0x0000023b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB8C @ =0x000002ef - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - ldr r0, _0812BB90 @ =0x000001f1 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812BB94 - movs r0, 0 - b _0812BB96 - .align 2, 0 -_0812BB7C: .4byte 0x00000237 -_0812BB80: .4byte 0x00000239 -_0812BB84: .4byte 0x0000023a -_0812BB88: .4byte 0x0000023b -_0812BB8C: .4byte 0x000002ef -_0812BB90: .4byte 0x000001f1 -_0812BB94: - movs r0, 0x1 -_0812BB96: - pop {r1} - bx r1 - thumb_func_end sub_812BB10 - - thumb_func_start sub_812BB9C -sub_812BB9C: @ 812BB9C - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldrb r0, [r2, 0xE] - cmp r0, 0xA - bhi _0812BC4C - lsls r0, 2 - ldr r1, _0812BBB4 @ =_0812BBB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BBB4: .4byte _0812BBB8 - .align 2, 0 -_0812BBB8: - .4byte _0812BC02 - .4byte _0812BC0C - .4byte _0812BC16 - .4byte _0812BC20 - .4byte _0812BC2A - .4byte _0812BC34 - .4byte _0812BC3E - .4byte _0812BC4C - .4byte _0812BBE4 - .4byte _0812BBEE - .4byte _0812BBF8 -_0812BBE4: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC54 - b _0812BC46 -_0812BBEE: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BC80 - b _0812BC46 -_0812BBF8: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCA8 - b _0812BC46 -_0812BC02: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BCD0 - b _0812BC46 -_0812BC0C: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD2C - b _0812BC46 -_0812BC16: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD64 - b _0812BC46 -_0812BC20: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BD98 - b _0812BC46 -_0812BC2A: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BE10 - b _0812BC46 -_0812BC34: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BEEC - b _0812BC46 -_0812BC3E: - adds r0, r2, 0 - adds r1, r3, 0 - bl sub_812BF18 -_0812BC46: - lsls r0, 24 - lsrs r0, 24 - b _0812BC4E -_0812BC4C: - movs r0, 0 -_0812BC4E: - pop {r1} - bx r1 - thumb_func_end sub_812BB9C - - thumb_func_start sub_812BC54 -sub_812BC54: @ 812BC54 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BC7C @ =gUnknown_841DFA5 - bl sub_812BF74 - bl sub_812BF5C - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x9 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BC7C: .4byte gUnknown_841DFA5 - thumb_func_end sub_812BC54 - - thumb_func_start sub_812BC80 -sub_812BC80: @ 812BC80 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BCA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BC9A - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - strb r0, [r4, 0xE] -_0812BC9A: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BCA4: .4byte gMain - thumb_func_end sub_812BC80 - - thumb_func_start sub_812BCA8 -sub_812BCA8: @ 812BCA8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - ldr r0, _0812BCCC @ =gUnknown_3005E9C - movs r5, 0 - strb r5, [r0, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r5, [r4, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BCCC: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCA8 - - thumb_func_start sub_812BCD0 -sub_812BCD0: @ 812BCD0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BD16 - lsls r0, 2 - ldr r1, _0812BCEC @ =_0812BCF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BCEC: .4byte _0812BCF0 - .align 2, 0 -_0812BCF0: - .4byte _0812BD08 - .4byte _0812BD0C - .4byte _0812BD0C - .4byte _0812BD1E - .4byte _0812BD08 - .4byte _0812BD1E -_0812BD08: - movs r0, 0 - b _0812BD20 -_0812BD0C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812BF9C - b _0812BD1E -_0812BD16: - ldr r0, _0812BD28 @ =gUnknown_3005E9C - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r4, 0xE] -_0812BD1E: - movs r0, 0x1 -_0812BD20: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD28: .4byte gUnknown_3005E9C - thumb_func_end sub_812BCD0 - - thumb_func_start sub_812BD2C -sub_812BD2C: @ 812BD2C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, _0812BD60 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4, 0xD] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_812BF94 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BD60: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD2C - - thumb_func_start sub_812BD64 -sub_812BD64: @ 812BD64 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0 - movs r1, 0 - bl sub_813C004 - movs r0, 0x1 - movs r1, 0 - bl sub_813C004 - ldr r0, _0812BD94 @ =gUnknown_3005E9C - movs r4, 0 - strb r4, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_812B4D8 - strb r4, [r5, 0xE] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0812BD94: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD64 - - thumb_func_start sub_812BD98 -sub_812BD98: @ 812BD98 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C690 - adds r1, r0, 0 - adds r0, r1, 0x6 - cmp r0, 0x5 - bhi _0812BDD8 - lsls r0, 2 - ldr r1, _0812BDB4 @ =_0812BDB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812BDB4: .4byte _0812BDB8 - .align 2, 0 -_0812BDB8: - .4byte _0812BDD0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDE0 - .4byte _0812BDD4 - .4byte _0812BDE0 -_0812BDD0: - movs r0, 0 - b _0812BDE2 -_0812BDD4: - movs r0, 0x2 - b _0812BDDE -_0812BDD8: - ldr r0, _0812BDE8 @ =gUnknown_3005E9C - strb r1, [r0, 0x3] - movs r0, 0x4 -_0812BDDE: - strb r0, [r4, 0xE] -_0812BDE0: - movs r0, 0x1 -_0812BDE2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BDE8: .4byte gUnknown_3005E9C - thumb_func_end sub_812BD98 - - thumb_func_start sub_812BDEC -sub_812BDEC: @ 812BDEC - push {lr} - ldr r1, _0812BE08 @ =gUnknown_845B080 - ldr r0, _0812BE0C @ =gUnknown_3005E9C - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BE08: .4byte gUnknown_845B080 -_0812BE0C: .4byte gUnknown_3005E9C - thumb_func_end sub_812BDEC - - thumb_func_start sub_812BE10 -sub_812BE10: @ 812BE10 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0812BE4C @ =gUnknown_3005E9C - movs r0, 0x2 - strb r0, [r4] - movs r0, 0 - bl sub_813BDA4 - bl sub_813C624 - ldr r0, _0812BE50 @ =gUnknown_841DFBE - bl sub_812BF74 - movs r0, 0x1 - bl sub_813BDE8 - movs r0, 0x1 - bl sub_813BEE4 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0812BE5C - ldr r0, _0812BE54 @ =gUnknown_845B0B0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE58 @ =gUnknown_845B164 - b _0812BEA4 - .align 2, 0 -_0812BE4C: .4byte gUnknown_3005E9C -_0812BE50: .4byte gUnknown_841DFBE -_0812BE54: .4byte gUnknown_845B0B0 -_0812BE58: .4byte gUnknown_845B164 -_0812BE5C: - cmp r0, 0x1 - bne _0812BE78 - ldr r0, _0812BE70 @ =gUnknown_845B218 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE74 @ =gUnknown_845B2DC - b _0812BEA4 - .align 2, 0 -_0812BE70: .4byte gUnknown_845B218 -_0812BE74: .4byte gUnknown_845B2DC -_0812BE78: - cmp r0, 0x2 - bne _0812BE94 - ldr r0, _0812BE8C @ =gUnknown_845B3A0 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BE90 @ =gUnknown_845B450 - b _0812BEA4 - .align 2, 0 -_0812BE8C: .4byte gUnknown_845B3A0 -_0812BE90: .4byte gUnknown_845B450 -_0812BE94: - cmp r0, 0x3 - bne _0812BEB8 - ldr r0, _0812BEB0 @ =gUnknown_845B500 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEB4 @ =gUnknown_845B520 -_0812BEA4: - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C - b _0812BECC - .align 2, 0 -_0812BEB0: .4byte gUnknown_845B500 -_0812BEB4: .4byte gUnknown_845B520 -_0812BEB8: - ldr r0, _0812BEE4 @ =gUnknown_845B540 - ldrb r1, [r4, 0x3] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0812BEE8 @ =gUnknown_845B5D0 - adds r1, r2 - ldr r1, [r1] - bl sub_813C50C -_0812BECC: - movs r0, 0x1 - bl sub_813BDA4 - movs r0, 0x1 - bl sub_813BD5C - movs r0, 0x6 - strb r0, [r5, 0xE] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812BEE4: .4byte gUnknown_845B540 -_0812BEE8: .4byte gUnknown_845B5D0 - thumb_func_end sub_812BE10 - - thumb_func_start sub_812BEEC -sub_812BEEC: @ 812BEEC - push {r4,lr} - adds r4, r0, 0 - ldr r2, _0812BF14 @ =gUnknown_3005E9C - movs r0, 0x1 - strb r0, [r2] - adds r0, r4, 0 - bl sub_812B5A8 - bl sub_813C75C - movs r0, 0x2 - bl sub_813C684 - movs r0, 0x3 - strb r0, [r4, 0xE] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812BF14: .4byte gUnknown_3005E9C - thumb_func_end sub_812BEEC - - thumb_func_start sub_812BF18 -sub_812BF18: @ 812BF18 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0812BF40 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0812BF30 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812BF44 -_0812BF30: - movs r0, 0x5 - bl PlaySE - movs r0, 0x5 - strb r0, [r4, 0xE] - movs r0, 0x1 - b _0812BF54 - .align 2, 0 -_0812BF40: .4byte gMain -_0812BF44: - movs r0, 0xC0 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0812BF52 - movs r0, 0x1 - b _0812BF54 -_0812BF52: - movs r0, 0 -_0812BF54: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812BF18 - - thumb_func_start sub_812BF5C -sub_812BF5C: @ 812BF5C - push {lr} - bl sub_813C624 - ldr r0, _0812BF70 @ =gUnknown_81B2FC9 - movs r1, 0 - movs r2, 0 - bl sub_813C4CC - pop {r0} - bx r0 - .align 2, 0 -_0812BF70: .4byte gUnknown_81B2FC9 - thumb_func_end sub_812BF5C - - thumb_func_start sub_812BF74 -sub_812BF74: @ 812BF74 - push {r4,lr} - adds r4, r0, 0 - bl sub_813C5FC - adds r0, r4, 0 - bl sub_813C488 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812BF74 - - thumb_func_start sub_812BF88 -sub_812BF88: @ 812BF88 - ldr r0, _0812BF90 @ =gUnknown_3005E9C - ldrb r0, [r0] - bx lr - .align 2, 0 -_0812BF90: .4byte gUnknown_3005E9C - thumb_func_end sub_812BF88 - - thumb_func_start sub_812BF94 -sub_812BF94: @ 812BF94 - movs r1, 0 - strb r1, [r0, 0xC] - strb r1, [r0, 0xD] - bx lr - thumb_func_end sub_812BF94 - - thumb_func_start sub_812BF9C -sub_812BF9C: @ 812BF9C - push {lr} - ldrb r2, [r0, 0xC] - ldrb r0, [r0, 0xD] - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r1, [r2, 0x4] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _0812BFC0 - ldr r0, _0812BFBC @ =gUnknown_845B098 - ldr r0, [r0, 0x14] - bl sub_813C584 - b _0812BFCC - .align 2, 0 -_0812BFBC: .4byte gUnknown_845B098 -_0812BFC0: - ldr r0, _0812BFD8 @ =gUnknown_845B098 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_813C584 -_0812BFCC: - movs r0, 0x1 - bl sub_813BE30 - pop {r0} - bx r0 - .align 2, 0 -_0812BFD8: .4byte gUnknown_845B098 - thumb_func_end sub_812BF9C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index cbb07e4c7..4c2ac1f7e 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -419,7 +419,7 @@ sub_80F5404: @ 80F5404 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 - bl sub_813C078 + bl HelpSystemRenderText bl sub_80F5334 add sp, 0x10 pop {r4,r5} diff --git a/charmap.txt b/charmap.txt index 11941ca58..fe0747616 100644 --- a/charmap.txt +++ b/charmap.txt @@ -323,14 +323,47 @@ TALL_PLUS = FC 0C FB @ TODO: Identify and declare F7 control codes UNKNOWN_F7 = F7 -UNKNOWN_F8 = F8 -UNKNOWN_F9 = F9 +KEYGFX = F8 +EXTRA = F9 -KEYGFX_A_BUTTON = F8 00 -KEYGFX_B_BUTTON = F8 01 -KEYGFX_START_BUTTON = F8 04 -KEYGFX_DPAD_UP_DOWN = F8 0A -KEYGFX_DPAD_ANY = F8 0C +KEYGFX_A_BUTTON = F8 00 +KEYGFX_B_BUTTON = F8 01 +KEYGFX_L_BUTTON = F8 02 +KEYGFX_R_BUTTON = F8 03 +KEYGFX_START_BUTTON = F8 04 +KEYGFX_SELECT_BUTTON = F8 05 +KEYGFX_DPAD_UP = F8 06 +KEYGFX_DPAD_DOWN = F8 07 +KEYGFX_DPAD_LEFT = F8 08 +KEYGFX_DPAD_RIGHT = F8 09 +KEYGFX_DPAD_UP_DOWN = F8 0A +KEYGFX_DPAD_LEFT_RIGHT = F8 0B +KEYGFX_DPAD_ANY = F8 0C + +EXTRA_UPARROW = F9 00 +EXTRA_DOWNARROW = F9 01 +EXTRA_LEFTARROW = F9 02 +EXTRA_RIGHTARROW = F9 03 +EXTRA_PLUS = F9 04 +EXTRA_LV = F9 05 +EXTRA_PP = F9 06 +EXTRA_ID = F9 07 +EXTRA_NO = F9 08 +EXTRA_UNDERSCORE = F9 09 +EXTRA_CIRCLE_1 = F9 0A +EXTRA_CIRCLE_2 = F9 0B +EXTRA_CIRCLE_3 = F9 0C +EXTRA_CIRCLE_4 = F9 0D +EXTRA_CIRCLE_5 = F9 0E +EXTRA_CIRCLE_6 = F9 0F +EXTRA_CIRCLE_7 = F9 10 +EXTRA_CIRCLE_8 = F9 11 +EXTRA_CIRCLE_9 = F9 12 +EXTRA_LEFT_PAREN = F9 13 +EXTRA_RIGHT_PAREN = F9 14 +EXTRA_TARGET = F9 15 +EXTRA_TRIANGLE = F9 16 +EXTRA_X = F9 17 STRING = FD @@ -377,7 +410,7 @@ PAUSE_UNTIL_PRESS = FC 09 UNKNOWN_A = FC 0A PLAY_BGM = FC 0B ESCAPE = FC 0C -SHIFT_TEXT = FC 0D +SHIFT_TEXT = FC 0D UNKNOWN_E = FC 0E UNKNOWN_F = FC 0F PLAY_SE = FC 10 diff --git a/common_syms/help_system_812B1E0.txt b/common_syms/help_system_812B1E0.txt new file mode 100644 index 000000000..7986bedb5 --- /dev/null +++ b/common_syms/help_system_812B1E0.txt @@ -0,0 +1,2 @@ +gUnknown_3005E9C +gUnknown_3005EA0 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 1f61683bf..eb922b028 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -818,31 +818,33 @@ gUnknown_8416221:: @ 8416221 .string "♀$" gText_Lv:: @ 8416223 - .string "{UNKNOWN_F9 0x05}$" + .string "{EXTRA_LV}$" gOtherText_UnkF9_08_Clear_01:: @ 8416226 - .string "{UNKNOWN_F9 0x08}{CLEAR 0x01}$" + .string "{EXTRA_NO}{CLEAR 0x01}$" gUnknown_841622C:: - .string "{UNKNOWN_F9 0x04}$" + .string "{EXTRA_PLUS}$" gUnknown_841622F:: .string "{ESCAPE 0x03}$" gUnknown_8416233:: - .string "{UNKNOWN_F9 0x07}{UNKNOWN_F9 0x08}$" + .string "{EXTRA_ID}{EXTRA_NO}$" gUnknown_8416238:: @ 8416238 - .string "{UNKNOWN_F9 0x06}$" + .string "{EXTRA_PP}$" gFameCheckerText_ListMenuCursor:: @ 841623B .string "▶$" gUnknown_841623D:: @ 841623D - .string "YES\nNO$" + .string "YES\n" + .string "NO$" gUnknown_8416244:: - .string "Go back to the\nprevious menu.$" + .string "Go back to the\n" + .string "previous menu.$" gUnknown_8416262:: @ 8416262 .string "What would you like to do?$" @@ -872,7 +874,8 @@ gUnknown_84162A2:: .string "RETIRE$" gUnknown_84162A9:: @ 84162A9 - .string "{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}$" + .string "{STR_VAR_1}/{STR_VAR_2}\n" + .string "BALLS {STR_VAR_3}$" gText_TimesStrVar1:: @ 84162B9 .string "×{STR_VAR_1}$" @@ -893,7 +896,8 @@ gUnknown_84162FF:: @ 84162FF .incbin "baserom.gba", 0x4162FF, 0x2 gText_IsSelected:: @ 8416301 - .string " is\nselected.$" + .string " is\n" + .string "selected.$" gUnknown_841630F:: @ 841630F .incbin "baserom.gba", 0x41630F, 0x1B @@ -1344,7 +1348,8 @@ gFameCheckerText_FameCheckerWillBeClosed:: @ 84181C3 .string "The FAME CHECKER will be closed.$" gFameCheckerText_ClearTextbox:: @ 84181E4 - .string "\n $" + .string "\n" + .string " $" gUnknown_8418204:: @ 8418204 .incbin "baserom.gba", 0x00418204, 0x48c @@ -1569,64 +1574,64 @@ gUnknown_841979D:: @ 841979D gUnknown_84197B8:: @ 84197B8 .string "{UNKNOWN_F7 0x00} nature.\n" .string "Met in a fateful encounter when\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_84197ED:: @ 84197ED .string "{UNKNOWN_F7 0x00} nature.\n" .string "Met in a fateful encounter when\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_8419822:: @ 8419822 .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in {UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "Met in {UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_8419841:: @ 8419841 .string "{UNKNOWN_F7 0x00} nature.\n" - .string "Met in {UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "Met in {UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_8419860:: @ 8419860 .string "{UNKNOWN_F7 0x00} nature.\n" .string "Apparently met in {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_841988A:: @ 841988A .string "{UNKNOWN_F7 0x00} nature.\n" .string "Apparently met in {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_84198B4:: @ 84198B4 .string "{UNKNOWN_F7 0x00} nature.\n" .string "Hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" gUnknown_84198D5:: @ 84198D5 .string "{UNKNOWN_F7 0x00} nature.\n" .string "Hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}.$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}.$" @ TODO: Replace this gibberish with the proper Hiragana gUnknown_84198F6:: @ 84198F6 - .string "{UNKNOWN_F7 0x00}ßÓÁÉË {UNKNOWN_F9 0x05}{UNKNOWN_F7 0x01}çÑÊ\n" + .string "{UNKNOWN_F7 0x00}ßÓÁÉË {EXTRA_LV}{UNKNOWN_F7 0x01}çÑÊ\n" .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" gUnknown_8419913:: @ 8419913 - .string "{UNKNOWN_F7 0x00}ÓÁÉË {UNKNOWN_F9 0x05}{UNKNOWN_F7 0x01}çÑÊ\n" + .string "{UNKNOWN_F7 0x00}ÓÁÉË {EXTRA_LV}{UNKNOWN_F7 0x01}çÑÊ\n" .string "{UNKNOWN_F7 0x02}で ÉÇっŒ ùÂだ$" gUnknown_841992F:: @ 841992F .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" gUnknown_841996D:: @ 841996D .string "{UNKNOWN_F7 0x00} nature. Met in a fateful\n" .string "encounter (hatched: {UNKNOWN_F7 0x02}\n" - .string "at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" + .string "at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" gUnknown_84199AB:: @ 84199AB .string "{UNKNOWN_F7 0x00} nature. Apparently met in\n" .string "a fateful encounter (hatched:\n" - .string "{UNKNOWN_F7 0x02} at {UNKNOWN_F9 0x05} {UNKNOWN_F7 0x01}).$" + .string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}).$" gUnknown_84199F4:: @ 84199F4 .incbin "baserom.gba", 0x4199F4, 0x217 @@ -2136,37 +2141,84 @@ gUnknown_841DFA0:: @ 841DFA0 .string "GOLD$" gUnknown_841DFA5:: @ 841DFA5 - .incbin "baserom.gba", 0x41DFA5, 0x7 + .string "{KEYGFX_A_BUTTON}NEXT$" gUnknown_841DFAC:: @ 841DFAC - .incbin "baserom.gba", 0x41DFAC, 0x12 + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}END$" gUnknown_841DFBE:: @ 841DFBE - .incbin "baserom.gba", 0x41DFBE, 0xB + .string "{KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$" gUnknown_841DFC9:: @ 841DFC9 - .incbin "baserom.gba", 0x41DFC9, 0xCA - + .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}CANCEL$" + + @ easy chat categories + .string "POKéMON$" + .string "TRAINER$" + .string "STATUS$" + .string "BATTLE$" + .string "GREETINGS$" + .string "PEOPLE$" + .string "VOICES$" + .string "SPEECH$" + .string "ENDINGS$" + .string "FEELINGS$" + .string "CONDITIONS$" + .string "ACTIONS$" + .string "LIFESTYLE$" + .string "HOBBIES$" + .string "TIME$" + .string "MISC.$" + .string "ADJECTIVES$" + .string "EVENTS$" + .string "MOVE 1$" + .string "MOVE 2$" + .string "TRENDY SAYING$" + .string "POKéMON2$" + + @ trade-related gUnknown_841E093:: @ 841E093 - .incbin "baserom.gba", 0x41E093, 0xC + .string "???$" + .string "$" + .string "Lv$" + .string "---$" gUnknown_841E09F:: @ 841E09F - .incbin "baserom.gba", 0x41E09F, 0x6 + .string "????$" + .string "$" gUnknown_841E0A5:: @ 841E0A5 - .incbin "baserom.gba", 0x41E0A5, 0x144 + .string "Is this trade okay?$" + .string "CANCEL$" + .string "Choose a POKéMON.$" + .string "SUMMARY$" + .string "TRADE$" + .string "Cancel trade?$" + .string "Press the B Button to exit.$" + .string "SUMMARY$" + .string "TRADE$" + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Communication standby…\n" + .string "Please wait.$" + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}The trade has been canceled.$" + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}That's your only POKéMON\n" + .string "for battle.$" + .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Waiting for your friend\n" + .string "to finish…$" + .string "Your friend wants\n" + .string "to trade POKéMON.$" gUnknown_841E1E9:: @ 841E1E9 - .incbin "baserom.gba", 0x41E1E9, 0x17 + .string "{STR_VAR_2} will be\n" + .string "sent to {STR_VAR_1}.$" gUnknown_841E200:: @ 841E200 - .incbin "baserom.gba", 0x41E200, 0xD + .string "Bye-bye, {STR_VAR_2}!$" gUnknown_841E20D:: @ 841E20D - .incbin "baserom.gba", 0x41E20D, 0x11 + .string "{STR_VAR_1} sent over {STR_VAR_3}.$" gUnknown_841E21E:: @ 841E21E - .incbin "baserom.gba", 0x41E21E, 0x16 + .string "Take good care of {STR_VAR_3}!$" gUnknown_841E234:: @ 841E234 .string "From $" @@ -2241,22 +2293,25 @@ gUnknown_841E2F5:: @ 841E2F5 .incbin "baserom.gba", 0x41e2f5, 0x2d gUnknown_841E322:: @ 841E322 - .string "{UNKNOWN_F9 0x07}$" + .string "{EXTRA_ID}$" gUnknown_841E325:: @ 841E325 .string "Communication standby…$" gDaycareText_GetAlongVeryWell:: @ 841E33C - .string "The two seem to get along\nvery well.$" + .string "The two seem to get along\n" + .string "very well.$" gDaycareText_GetAlong:: @ 841E361 .string "The two seem to get along.$" gDaycareText_DontLikeOther:: @ 841E37C - .string "The two don't seem to like\neach other much.$" + .string "The two don't seem to like\n" + .string "each other much.$" gDaycareText_PlayOther:: @ 841E3A8 - .string "The two prefer to play with other\nPOKéMON than each other.$" + .string "The two prefer to play with other\n" + .string "POKéMON than each other.$" gUnknown_841E3E3:: @ 841E3E3 .incbin "baserom.gba", 0x41E3E3, 0x18 @@ -2301,7 +2356,7 @@ gFameCheckerText_PickScreenUI:: @ 841E5B9 .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" gFameCheckerText_FlavorTextUI:: @ 841E5D2 - .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" + .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" gFameCheckerOakName:: @ 841E5E9 .string "OAK$" @@ -2330,19 +2385,24 @@ gText_ReturnToTitle:: @ 841E685 .string "Return to the title screen.$" gText_DontHaveCardNewOneInput:: @ 841E6A1 - .string "You don't have a WONDER CARD,\nso a new CARD will be input.$" + .string "You don't have a WONDER CARD,\n" + .string "so a new CARD will be input.$" gText_DontHaveNewsNewOneInput:: @ 841E6DC - .string "You don't have any WONDER NEWS,\nso new NEWS will be input.$" + .string "You don't have any WONDER NEWS,\n" + .string "so new NEWS will be input.$" gText_WhereShouldCardBeAccessed:: @ 841E717 - .string "Where should the WONDER CARD\nbe accessed?$" + .string "Where should the WONDER CARD\n" + .string "be accessed?$" gText_WhereShouldNewsBeAccessed:: @ 841E741 - .string "Where should the WONDER NEWS\nbe accessed?$" + .string "Where should the WONDER NEWS\n" + .string "be accessed?$" gUnknown_841E76B:: @ 841E76B - .string "Link standby...\n... ... B Button: Cancel$" + .string "Link standby...\n" + .string "... ... B Button: Cancel$" gText_Communicating:: @ 841E794 .string "Communicating…$" @@ -2357,22 +2417,28 @@ gText_CommunicationCanceled:: @ 841E7D1 .string "Communication has been canceled.$" gText_ThrowAwayWonderCard:: @ 841E7F2 - .string "Throw away the WONDER CARD\nand input a new CARD?$" + .string "Throw away the WONDER CARD\n" + .string "and input a new CARD?$" gText_HaventReceivedCardsGift:: @ 841E823 - .string "You haven't received the CARD's gift\nyet. Input a new CARD anyway?$" + .string "You haven't received the CARD's gift\n" + .string "yet. Input a new CARD anyway?$" gText_WonderCardReceivedFrom:: @ 841E866 - .string "A WONDER CARD has been received\nfrom {STR_VAR_1}.$" + .string "A WONDER CARD has been received\n" + .string "from {STR_VAR_1}.$" gText_WonderNewsReceivedFrom:: @ 841E88F - .string "A WONDER NEWS item has been\nreceived from {STR_VAR_1}.$" + .string "A WONDER NEWS item has been\n" + .string "received from {STR_VAR_1}.$" gText_WonderCardReceived:: @ 841E8BD - .string "A new WONDER CARD has been\nreceived.$" + .string "A new WONDER CARD has been\n" + .string "received.$" gText_WonderNewsReceived:: @ 841E8E2 - .string "A new WONDER NEWS item has been\nreceived.$" + .string "A new WONDER NEWS item has been\n" + .string "received.$" gText_NewStampReceived:: @ 841E90C .string "A new STAMP has been received.$" @@ -2381,34 +2447,43 @@ gText_NewTrainerReceived:: @ 841E92B .string "A new TRAINER has arrived.$" gText_AlreadyHadCard:: @ 841E946 - .string "You already had that\nWONDER CARD.$" + .string "You already had that\n" + .string "WONDER CARD.$" gText_AlreadyHadNews:: @ 841E968 - .string "You already had that\nWONDER NEWS item.$" + .string "You already had that\n" + .string "WONDER NEWS item.$" gText_AlreadyHadStamp:: @ 841E98F - .string "You already had that\nSTAMP.$" + .string "You already had that\n" + .string "STAMP.$" gText_NoMoreRoomForStamps:: @ 841E9AB - .string "There's no more room for adding\nSTAMPS.$" + .string "There's no more room for adding\n" + .string "STAMPS.$" gText_RecordUploadedViaWireless:: @ 841E9D3 - .string "Your record has been uploaded via\nWIRELESS COMMUNICATION.$" + .string "Your record has been uploaded via\n" + .string "WIRELESS COMMUNICATION.$" gText_CantAcceptCardFromTrainer:: @ 841EA0D - .string "You can't accept a WONDER CARD\nfrom this TRAINER.$" + .string "You can't accept a WONDER CARD\n" + .string "from this TRAINER.$" gText_CantAcceptNewsFromTrainer:: @ 841EA3F - .string "You can't accept WONDER NEWS\nfrom this TRAINER.$" + .string "You can't accept WONDER NEWS\n" + .string "from this TRAINER.$" gText_NothingSentOver:: @ 841EA6F .string "Nothing was sent over…$" gText_WhatToDoWithCards:: @ 841EA86 - .string "What would you like to do\nwith the WONDER CARDS?$" + .string "What would you like to do\n" + .string "with the WONDER CARDS?$" gText_WhatToDoWithNews:: @ 841EAB7 - .string "What would you like to do\nwith the WONDER NEWS?$" + .string "What would you like to do\n" + .string "with the WONDER NEWS?$" gText_SendingWonderCard:: @ 841EAE7 .string "Sending your WONDER CARD…$" @@ -2417,10 +2492,12 @@ gText_SendingWonderNews:: @ 841EB01 .string "Sending your WONDER NEWS item…$" gText_WonderCardSentTo:: @ 841EB20 - .string "Your WONDER CARD has been sent\nto {STR_VAR_1}.$" + .string "Your WONDER CARD has been sent\n" + .string "to {STR_VAR_1}.$" gText_WonderNewsSentTo:: @ 841EB46 - .string "Your WONDER NEWS item has been\nsent to {STR_VAR_1}.$" + .string "Your WONDER NEWS item has been\n" + .string "sent to {STR_VAR_1}.$" gText_StampSentTo:: @ 841EB71 .string "A STAMP has been sent to {STR_VAR_1}.$" @@ -2429,34 +2506,44 @@ gText_GiftSentTo:: @ 841EB8E .string "A GIFT has been sent to {STR_VAR_1}.$" gText_OtherTrainerHasCard:: @ 841EBAA - .string "The other TRAINER has the same\nWONDER CARD already.$" + .string "The other TRAINER has the same\n" + .string "WONDER CARD already.$" gText_OtherTrainerHasNews:: @ 841EBDE - .string "The other TRAINER has the same\nWONDER NEWS already.$" + .string "The other TRAINER has the same\n" + .string "WONDER NEWS already.$" gText_OtherTrainerHasStamp:: @ 841EC12 - .string "The other TRAINER has the same\nSTAMP already.$" + .string "The other TRAINER has the same\n" + .string "STAMP already.$" gText_OtherTrainerCanceled:: @ 841EC40 - .string "The other TRAINER canceled\ncommunication.$" + .string "The other TRAINER canceled\n" + .string "communication.$" gText_CantSendGiftToTrainer:: @ 841EC6A - .string "You can't send a MYSTERY GIFT to\nthis TRAINER.$" + .string "You can't send a MYSTERY GIFT to\n" + .string "this TRAINER.$" gText_IfThrowAwayCardEventWontHappen:: @ 841EC99 - .string "If you throw away the CARD,\nits event won't happen. Okay?$" + .string "If you throw away the CARD,\n" + .string "its event won't happen. Okay?$" gText_OkayToDiscardNews:: @ 841ECD3 - .string "Is it okay to discard this\nNEWS item?$" + .string "Is it okay to discard this\n" + .string "NEWS item?$" gText_HaventReceivedGiftOkayToDiscard:: @ 841ECF9 - .string "You haven't received the\nGIFT. Is it okay to discard?$" + .string "You haven't received the\n" + .string "GIFT. Is it okay to discard?$" gText_DataWillBeSaved:: @ 841ED2F - .string "Data will be saved.\nPlease wait.$" + .string "Data will be saved.\n" + .string "Please wait.$" gText_SaveCompletedPressA:: @ 841ED50 - .string "Save completed.\nPlease press the A Button.$" + .string "Save completed.\n" + .string "Please press the A Button.$" gText_WonderCardThrownAway:: @ 841ED7B .string "The WONDER CARD was thrown away.$" @@ -3726,60 +3813,3 @@ gUnknown_845B050:: @ 845B050 gUnknown_845B068:: @ 845B068 .incbin "baserom.gba", 0x45B068, 0x18 - -gUnknown_845B080:: @ 845B080 - .incbin "baserom.gba", 0x45B080, 0x18 - -gUnknown_845B098:: @ 845B098 - .incbin "baserom.gba", 0x45B098, 0x18 - -gUnknown_845B0B0:: @ 845B0B0 - .incbin "baserom.gba", 0x45B0B0, 0xB4 - -gUnknown_845B164:: @ 845B164 - .incbin "baserom.gba", 0x45B164, 0xB4 - -gUnknown_845B218:: @ 845B218 - .incbin "baserom.gba", 0x45B218, 0xC4 - -gUnknown_845B2DC:: @ 845B2DC - .incbin "baserom.gba", 0x45B2DC, 0xC4 - -gUnknown_845B3A0:: @ 845B3A0 - .incbin "baserom.gba", 0x45B3A0, 0xB0 - -gUnknown_845B450:: @ 845B450 - .incbin "baserom.gba", 0x45B450, 0xB0 - -gUnknown_845B500:: @ 845B500 - .incbin "baserom.gba", 0x45B500, 0x20 - -gUnknown_845B520:: @ 845B520 - .incbin "baserom.gba", 0x45B520, 0x20 - -gUnknown_845B540:: @ 845B540 - .incbin "baserom.gba", 0x45B540, 0x90 - -gUnknown_845B5D0:: @ 845B5D0 - .incbin "baserom.gba", 0x45B5D0, 0x3EE - -gUnknown_845B9BE:: @ 845B9BE - .incbin "baserom.gba", 0x45B9BE, 0x22 - -gUnknown_845B9E0:: @ 845B9E0 - .incbin "baserom.gba", 0x45B9E0, 0xAD0 - -gUnknown_845C4B0:: @ 845C4B0 - .incbin "baserom.gba", 0x45C4B0, 0x6 - -gUnknown_845C4B6:: @ 845C4B6 - .incbin "baserom.gba", 0x45C4B6, 0xDE - -gUnknown_845C594:: @ 845C594 - .incbin "baserom.gba", 0x45C594, 0x28 - -gUnknown_845C5BC:: @ 845C5BC - .incbin "baserom.gba", 0x45C5BC, 0x12 - -gUnknown_845C5CE:: @ 845C5CE - .incbin "baserom.gba", 0x45C5CE, 0x32 diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc index 9a41120b1..460477812 100644 --- a/data/map_event_scripts.inc +++ b/data/map_event_scripts.inc @@ -3257,31 +3257,9 @@ CeladonCity_GameCorner_EventScript_1B2867:: @ 81B2867 .incbin "baserom.gba", 0x1B2867, 0xD1 FourIsland_House2_EventScript_1B2938:: @ 81B2938 - .incbin "baserom.gba", 0x1B2938, 0x4E4 + .incbin "baserom.gba", 0x1B2938, 0x4C0 -gUnknown_81B2E1C:: @ 81B2E1C - .string "How do I do this?$" - -gUnknown_81B2E2E:: @ 81B2E2E - .string "What does this term mean?$" - -gUnknown_81B2E48:: @ 81B2E48 - .string "About this game$" - -gUnknown_81B2E58:: @ 81B2E58 - .string "Type Matchup List$" - -gUnknown_81B2E6A:: @ 81B2E6A - .string "EXIT$" - -gUnknown_81B2E6F:: @ 81B2E6F - .incbin "baserom.gba", 0x1B2E6F, 0x15A - -gUnknown_81B2FC9:: @ 81B2FC9 - .incbin "baserom.gba", 0x1B2FC9, 0x52 - -gUnknown_81B301B:: @ 81B301B - .incbin "baserom.gba", 0x1B301B, 0x8199 + .include "data/text/help_system.inc" CeladonCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 CeruleanCity_PokemonCenter_2F_MapScript4_1BB1B4:: @ 81BB1B4 diff --git a/data/text/help_system.inc b/data/text/help_system.inc new file mode 100644 index 000000000..a85af88a8 --- /dev/null +++ b/data/text/help_system.inc @@ -0,0 +1,1879 @@ +gUnknown_81B2DF8:: @ 81B2DF8 + .string "What should I do in this situation?$" + +gUnknown_81B2E1C:: @ 81B2E1C + .string "How do I do this?$" + +gUnknown_81B2E2E:: @ 81B2E2E + .string "What does this term mean?$" + +gUnknown_81B2E48:: @ 81B2E48 + .string "About this game$" + +gUnknown_81B2E58:: @ 81B2E58 + .string "Type Matchup List$" + +gUnknown_81B2E6A:: @ 81B2E6A + .string "EXIT$" + +gUnknown_81B2E6F:: @ 81B2E6F + .string "CANCEL$" + +gUnknown_81B2E76:: + .string "じぶんの ちからで やってみよう!$" + +gUnknown_81B2E88:: @ 81B2E88 + .string "Select to obtain hints for getting\n" + .string "over challenging situations.$" + +gUnknown_81B2EC8:: @ 81B2EC8 + .string "Detailed instructions are given for\n" + .string "various operations.$" + +gUnknown_81B2F00:: @ 81B2F00 + .string "Detailed descriptions are given for\n" + .string "terms that appear in the game.$" + +gUnknown_81B2F43:: @ 81B2F43 + .string "Detailed descriptions are given\n" + .string "about this game.$" + +gUnknown_81B2F74:: @ 81B2F74 + .string "The matchups of POKéMON types\n" + .string "and moves are listed.$" + +gUnknown_81B2FA9:: @ 81B2FA9 + .string "Select to exit the HELP System.$" + +gUnknown_81B2FC9:: @ 81B2FC9 + .string "Greetings! This is the HELP System.\n" + .string "Call me up whenever and wherever you\l" + .string "need by p" + +gUnknown_81B301B:: @ 81B301B + .string "ressing the L or R Button.\l" + .string "The help messages change to suit the\l" + .string "situation, so check them often, please.$" + +gUnknown_81B3083:: @ 81B3083 + .string "I'm playing for the first time. Help!$" + +gUnknown_81B30A9:: @ 81B30A9 + .string "What should I be doing?$" + +gUnknown_81B30C1:: @ 81B30C1 + .string "I can't get out of a room!$" + +gUnknown_81B30DC:: @ 81B30DC + .string "I can't find the person I want.$" + +gUnknown_81B30FC:: @ 81B30FC + .string "I've talked to everyone. Now what?$" + +gUnknown_81B311F:: @ 81B311F + .string "There's someone blocking my way!$" + +gUnknown_81B3140:: @ 81B3140 + .string "I can't go on!$" + +gUnknown_81B314F:: @ 81B314F + .string "I'm out of things to do.$" + +gUnknown_81B3168:: @ 81B3168 + .string "What happened to the item I got?$" + +gUnknown_81B3189:: @ 81B3189 + .string "What are the basics of my adventure?$" + +gUnknown_81B31AE:: @ 81B31AE + .string "How are roads and forests different?$" + +gUnknown_81B31D3:: @ 81B31D3 + .string "How are caves different?$" + +gUnknown_81B31EC:: @ 81B31EC + .string "How do I progress?$" + +gUnknown_81B31FF:: @ 81B31FF + .string "When can I use items?$" + +gUnknown_81B3215:: @ 81B3215 + .string "What's a battle?$" + +gUnknown_81B3226:: @ 81B3226 + .string "How do I prepare for battle?$" + +gUnknown_81B3243:: @ 81B3243 + .string "What is a POKéMON's vitality?$" + +gUnknown_81B3261:: @ 81B3261 + .string "My POKéMON are hurt!$" + +gUnknown_81B3276:: @ 81B3276 + .string "What is a status problem?$" + +gUnknown_81B3290:: @ 81B3290 + .string "What happens if all my POKéMON faint?$" + +gUnknown_81B32B6:: @ 81B32B6 + .string "I can't catch POKéMON!$" + +gUnknown_81B32CD:: @ 81B32CD + .string "I ran out of POTIONS.$" + +gUnknown_81B32E3:: @ 81B32E3 + .string "Can I buy POKé BALLS?$" + +gUnknown_81B32F9:: @ 81B32F9 + .string "What's a TRAINER?$" + +gUnknown_81B330B:: @ 81B330B + .string "How do I win against a TRAINER?$" + +gUnknown_81B332B:: @ 81B332B + .string "Where do POKéMON appear?$" + +gUnknown_81B3344:: @ 81B3344 + .string "What are POKéMON moves?$" + +gUnknown_81B335C:: @ 81B335C + .string "What are HIDDEN moves?$" + +gUnknown_81B3373:: @ 81B3373 + .string "What moves should I use?$" + +gUnknown_81B338C:: @ 81B338C + .string "I want to add more moves.$" + +gUnknown_81B33A6:: @ 81B33A6 + .string "I want to make my POKéMON stronger.$" + +gUnknown_81B33CA:: @ 81B33CA + .string "The foe POKéMON are too strong!$" + +gUnknown_81B33EA:: @ 81B33EA + .string "What do I do in a cave?$" + +gUnknown_81B3402:: @ 81B3402 + .string "There's nothing that I want to know!$" + +gUnknown_81B3427:: @ 81B3427 + .string "What's a POKéMON CENTER?$" + +gUnknown_81B3440:: @ 81B3440 + .string "What's a POKéMON MART?$" + +gUnknown_81B3457:: @ 81B3457 + .string "I want to end the game.$" + +gUnknown_81B346F:: @ 81B346F + .string "What's a POKéMON?$" + +gUnknown_81B3481:: @ 81B3481 + .string "What is that person like?$" + +gUnknown_81B349B:: @ 81B349B + .string "What does a HIDDEN move do?$" + +gUnknown_81B34B7:: @ 81B34B7 + .string "What do I do in a SAFARI GAME?$" + +gUnknown_81B34D6:: @ 81B34D6 + .string "What are the SAFARI GAME rules?$" + +gUnknown_81B34F6:: @ 81B34F6 + .string "I want to end this SAFARI GAME!$" + +gUnknown_81B3516:: @ 81B3516 + .string "What is a GYM?$" + +gUnknown_81B3525:: @ 81B3525 + .string "You become the main character,\n" + .string "exploring the world of POKéMON.\l" + .string "By talking to people and solving\l" + .string "mysteries, new paths will open to you.\l" + .string "Strive for the goal together with your\l" + .string "wonderful POKéMON.$" + +gUnknown_81B35E6:: @ 81B35E6 + .string "When you come across another person,\n" + .string "go up to them and press the A Button.\l" + .string "That will get them to talk and interact\l" + .string "with your character. You may also\l" + .string "examine various items and objects in\l" + .string "the same way. Talk to people and check\l" + .string "things often to obtain information.$" + +gUnknown_81B36EB:: @ 81B36EB + .string "On the stairs or the exits of a\n" + .string "building is a red mat. Move your\l" + .string "character to stand on top of the\l" + .string "red mat. Press the {EXTRA_PLUS} Control Pad \l" + .string "toward the stairs or the exit to\l" + .string "advance.$" + +gUnknown_81B379A:: @ 81B379A + .string "This isn't something you should worry\n" + .string "about too much.\l" + .string "Talk to other people, check signs,\l" + .string "check things, and so on.\l" + .string "Sometimes, you may need to just move\l" + .string "to a new town or place.$" + +gUnknown_81B3849:: @ 81B3849 + .string "Try moving on to a new road, town, or\n" + .string "place.$" + +gUnknown_81B3876:: @ 81B3876 + .string "There could be something in the town\n" + .string "or inside a building that is the cause.\l" + .string "Try talking to the people in the area\l" + .string "again. If there is a problem that they\l" + .string "need solved, you may have to help.\l" + .string "Afterwards, try talking to the person\l" + .string "blocking your way again.$" + +gUnknown_81B3972:: @ 81B3972 + .string "Try talking to people by going up to\n" + .string "them and pressing the A Button.\l" + .string "Also, try checking things like odd trees\l" + .string "and strange rocks with the A Button.\l" + .string "Press the {EXTRA_PLUS} Control Pad and try going\l" + .string "to places that look impassable, too.$" + +gUnknown_81B3A51:: @ 81B3A51 + .string "Try going to places where you \n" + .string "haven't visited yet.\l" + .string "Also, check everything that looks\l" + .string "suspicious by pressing the A Button.$" + +gUnknown_81B3ACC:: @ 81B3ACC + .string "Any item that you are given by another\n" + .string "character goes in your BAG.\l" + .string "The item is automatically sorted and\l" + .string "placed in one of three pockets.\l" + .string "For instructions on the BAG's use,\l" + .string "please refer to the HELP System's\l" + .string "“How do I do this?” heading.$" + +gUnknown_81B3BB6:: @ 81B3BB6 + .string "If POKéMON are hurt in battle,\n" + .string "take them to a POKéMON CENTER and\l" + .string "have them healed by the staff.\l" + .string "Get in the habit of saving your\l" + .string "game and recording your progress.\l" + .string "Stock up on healing items at\l" + .string "POKéMON MARTS before traveling far.$" + +gUnknown_81B3C99:: @ 81B3C99 + .string "Forests are basically the same as\n" + .string "roads but they can be like mazes.\l" + .string "All forests have a way out, so don't\l" + .string "give up if you get lost.$" + +gUnknown_81B3D1B:: @ 81B3D1B + .string "Caves are dark and dangerous. Wild\n" + .string "POKéMON can appear anywhere in them.\l" + .string "If there is an emergency, rush to a\l" + .string "POKéMON CENTER or use items.\l" + .string "New towns await discovery beyond some\l" + .string "caves, so don't give up.$" + +gUnknown_81B3DE3:: @ 81B3DE3 + .string "The object of the game is to train\n" + .string "your POKéMON and move forward.\l" + .string "You must collect info and solve\l" + .string "problems. For example, what do you\l" + .string "need to get around an obstacle?\l" + .string "What would get that impeding\l" + .string "person out of the way?$" + +gUnknown_81B3EBC:: @ 81B3EBC + .string "There are several kinds of items.\n" + .string "Some can be used only on the field.\l" + .string "Some are only for use during battle.\l" + .string "Some can be used anytime.\l" + .string "Try using an item - if it can't be used,\l" + .string "you will be alerted.$" + +gUnknown_81B3F7F:: @ 81B3F7F + .string "In a battle, POKéMON try to reduce\n" + .string "one another's vitality, expressed as\l" + .string "HP. If a POKéMON's HP falls to zero,\l" + .string "it faints, and the other POKéMON\l" + .string "wins. By winning a battle, POKéMON\l" + .string "earn EXP. Points, which help them\l" + .string "level up (grow stronger).$" + +gUnknown_81B406C:: @ 81B406C + .string "First, fully heal the POKéMON in your\n" + .string "party (the POKéMON with you) at any\l" + .string "POKéMON CENTER.\l" + .string "You should also buy healing items for\l" + .string "emergencies at a POKéMON MART.$" + +gUnknown_81B410B:: @ 81B410B + .string "A POKéMON's vitality is expressed in HP.\n" + .string "If a POKéMON is hurt in battle, HP is\l" + .string "subtracted. If its HP drops to zero,\l" + .string "the POKéMON faints.\l" + .string "Heal hurt or fainted POKéMON at a\l" + .string "POKéMON CENTER or by using items.$" + +gUnknown_81B41D7:: @ 81B41D7 + .string "A POKéMON CENTER is like an inn for\n" + .string "POKéMON. It will fully heal POKéMON of\l" + .string "any status problems and fully restore\l" + .string "their HP using a special machine.\l" + .string "This service is free, so get in the\l" + .string "habit of healing your POKéMON often.$" + +gUnknown_81B42B3:: @ 81B42B3 + .string "A status problem refers to an ailment\n" + .string "that is inflicted on a POKéMON by its\l" + .string "foe's attack. These include burns,\l" + .string "paralysis, poisoning, sleep, and\l" + .string "freezing. These can be healed by\l" + .string "visiting a POKéMON CENTER or using\l" + .string "the appropriate item.$" + +gUnknown_81B439D:: @ 81B439D + .string "If all the POKéMON in your party\n" + .string "(all the POKéMON with you) faint, you\l" + .string "lose some MONEY, and you are\l" + .string "returned home or to a POKéMON\l" + .string "CENTER. To reduce that chance, visit\l" + .string "POKéMON CENTERS often. Also, get\l" + .string "in the habit of saving often.$" + +gUnknown_81B4483:: @ 81B4483 + .string "If a wild POKéMON escapes from a POKé\n" + .string "BALL, it's obviously still feisty.\l" + .string "Try reducing its HP some more, and\l" + .string "try to weaken it with paralysis or sleep\l" + .string "before trying to catch it.\l" + .string "If the POKé BALL rocks for a while,\l" + .string "the quarry is close to being caught!$" + +gUnknown_81B457C:: @ 81B457C + .string "There are shops, known as POKéMON\n" + .string "MARTS, that sell items.\l" + .string "You will not find POKéMON MARTS on\l" + .string "roads, in forests, or in caves.\l" + .string "Stock up on needed items while you are\l" + .string "visiting a town with a POKéMON MART.$" + +gUnknown_81B4645:: @ 81B4645 + .string "You may buy POKé BALLS at any\n" + .string "POKéMON MART in any town.\l" + .string "You will not find POKéMON MARTS on\l" + .string "roads, in forests, or in caves.\l" + .string "Stock up on POKé BALLS while you are\l" + .string "visiting a town with a POKéMON MART.$" + +gUnknown_81B470A:: @ 81B470A + .string "A TRAINER is a person who raises\n" + .string "POKéMON through battling.\l" + .string "TRAINERS will challenge you \l" + .string "wherever they are - it could be on\l" + .string "a road, in forests, caves, anywhere.\l" + .string "If your eyes meet, you have to accept\l" + .string "their challenge. So be careful!$" + +gUnknown_81B47F0:: @ 81B47F0 + .string "To beat a TRAINER in battle, use\n" + .string "POKéMON that have type advantages\l" + .string "over the foe's POKéMON. You may also\l" + .string "use highly trained POKéMON with\l" + .string "overwhelming power. Outnumbering the\l" + .string "foe's POKéMON is another obvious\l" + .string "tactic.$" + +gUnknown_81B48C6:: @ 81B48C6 + .string "Wild POKéMON will appear in tall grass,\n" + .string "on roads, and in forests. They will\l" + .string "appear anywhere in dark caves.\l" + .string "There are no wild POKéMON or TRAINERS\l" + .string "in towns, so they are safe places.$" + +gUnknown_81B497A:: @ 81B497A + .string "POKéMON may learn up to four different\n" + .string "techniques, or moves. There is a great\l" + .string "variety of moves including attacks and\l" + .string "those with special effects. The kinds\l" + .string "of moves that can be learned vary\l" + .string "for each POKéMON. Some moves\l" + .string "can be learned from machines.$" + +gUnknown_81B4A72:: @ 81B4A72 + .string "HIDDEN moves are those that are\n" + .string "especially important for your\l" + .string "adventure. To use such a move outside\l" + .string "of battle, open the “POKéMON” MENU\l" + .string "and make the POKéMON that knows the\l" + .string "move use it. A fainted POKéMON may use\l" + .string "a HIDDEN move outside of battle.$" + +gUnknown_81B4B65:: @ 81B4B65 + .string "Select “FIGHT,” and the MENU of moves\n" + .string "will appear. Consider the type\l" + .string "matchups, and use the most effective\l" + .string "moves. You can check the effects of\l" + .string "moves by opening “POKéMON,”\l" + .string "picking a POKéMON, opening “SUMMARY,”\l" + .string "then opening “POKéMON SKILLS.”$" + +gUnknown_81B4C54:: @ 81B4C54 + .string "The most a POKéMON can learn is four\n" + .string "moves. They are learned as the\l" + .string "POKéMON levels up. It can also be\l" + .string "taught a move using a TM (Technical\l" + .string "Machine) or HM (Hidden Machine).\l" + .string "There are also people who teach moves.$" + +gUnknown_81B4D26:: @ 81B4D26 + .string "The key to making your POKéMON\n" + .string "strong is to battle and win often.\l" + .string "The EXP. (Experience) Points earned\l" + .string "by winning battles accumulate to\l" + .string "level up POKéMON that participated in\l" + .string "them. Battle wild POKéMON often to\l" + .string "level up your party.$" + +gUnknown_81B4E0B:: @ 81B4E0B + .string "If your foes are too strong, try\n" + .string "leveling up your POKéMON some more.\l" + .string "Go back the way you came and battle\l" + .string "wild POKéMON to level up your party.\l" + .string "You may also battle TRAINERS whom you\l" + .string "have not battled before.$" + +gUnknown_81B4ED8:: @ 81B4ED8 + .string "Unlike roads and forests, wild POKéMON\n" + .string "can appear anywhere in caves.\l" + .string "If your POKéMON are hurt in a cave,\l" + .string "rush to a POKéMON CENTER or use items\l" + .string "to heal them right away. It is very\l" + .string "dangerous to force your luck in caves.$" + +gUnknown_81B4FB2:: @ 81B4FB2 + .string "Trust your own knowledge and power.\n" + .string "Believe in yourself and find your way!$" + +gUnknown_81B4FFD:: @ 81B4FFD + .string "A POKéMON CENTER is identified by its\n" + .string "red roof and a “P.C” sign. Every\l" + .string "POKéMON CENTER offers such services as\l" + .string "fully healing POKéMON and free PC use,\l" + .string "making it essential for your travels.\l" + .string "On the upper floor are facilities for\l" + .string "linking with friends and others.$" + +gUnknown_81B50FF:: @ 81B50FF + .string "A POKéMON MART is identified by its\n" + .string "blue roof and a “MART” sign.\l" + .string "Items can be bought and sold at any\l" + .string "POKéMON MART. Some MARTS carry items\l" + .string "that are available only in their towns.$" + +gUnknown_81B51B1:: @ 81B51B1 + .string "You can safely end your game by\n" + .string "selecting “SAVE” on the MENU.\l" + .string "Once you have saved, the game can be\l" + .string "safely turned off. When the game is\l" + .string "turned back on, you can resume from\l" + .string "where you last saved.$" + +gUnknown_81B5272:: @ 81B5272 + .string "POKéMON are living beings about which\n" + .string "many mysteries still remain. You may\l" + .string "see them in grass, the sea, and caves.\l" + .string "They appear to obey the wishes of the\l" + .string "TRAINERS that caught them.$" + +gUnknown_81B5325:: @ 81B5325 + .string "Use the FAME CHECKER among the\n" + .string "KEY ITEMS in your BAG.\l" + .string "It may give you a hint, so try it out.$" + +gUnknown_81B5382:: @ 81B5382 + .string "A HIDDEN move is taught to a POKéMON\n" + .string "using an HM (Hidden Machine).\l" + .string "A HIDDEN move is important for helping\l" + .string "your adventure. For example, one is\l" + .string "used to light up dark caves. Another\l" + .string "cuts down small trees. There is one\l" + .string "for traveling on water, and so on.$" + +gUnknown_81B547C:: @ 81B547C + .string "Try to catch wild POKéMON by throwing\n" + .string "the special SAFARI BALLS.\l" + .string "You may keep any item you find, too.$" + +gUnknown_81B54E1:: @ 81B54E1 + .string "Your SAFARI GAME ends once you have\n" + .string "traveled a certain distance or thrown\l" + .string "all your SAFARI BALLS.\l" + .string "Open the MENU to check the remaining\l" + .string "number of steps and SAFARI BALLS.$" + +gUnknown_81B5589:: @ 81B5589 + .string "If you would like to cut your SAFARI\n" + .string "GAME short, open the MENU and select\l" + .string "“RETIRE” at the top of the list.$" + +gUnknown_81B55F4:: @ 81B55F4 + .string "POKéMON GYMS are operated by the\n" + .string "POKéMON LEAGUE and are training\l" + .string "facilities for TRAINERS. They are all\l" + .string "across the land in cities and towns.\l" + .string "Each one is headed by a LEADER, who\l" + .string "is a very skilled TRAINER. Beat the\l" + .string "LEADER to collect a BADGE.$" + +gUnknown_81B56E3:: @ 81B56E3 + .string " Using “POKéDEX”$" + +gUnknown_81B56F4:: @ 81B56F4 + .string " Using “POKéMON”$" + +gUnknown_81B5705:: @ 81B5705 + .string " Using “SUMMARY”$" + +gUnknown_81B5717:: @ 81B5717 + .string " Using “SWITCH”$" + +gUnknown_81B5728:: @ 81B5728 + .string " Using “ITEM”$" + +gUnknown_81B5737:: @ 81B5737 + .string " Using “BAG”$" + +gUnknown_81B5744:: @ 81B5744 + .string " Using an item$" + +gUnknown_81B5754:: @ 81B5754 + .string " Using a key item$" + +gUnknown_81B5767:: @ 81B5767 + .string " Using a POKé BALL$" + +gUnknown_81B577B:: @ 81B577B + .string " Using “{PLAYER}”$" + +gUnknown_81B5787:: @ 81B5787 + .string " Using “SAVE”$" + +gUnknown_81B5795:: @ 81B5795 + .string " Using “OPTION”$" + +gUnknown_81B57A5:: @ 81B57A5 + .string " Using a POTION$" + +gUnknown_81B57B8:: @ 81B57B8 + .string " Using the TOWN MAP$" + +gUnknown_81B57CF:: @ 81B57CF + .string " Using a TM$" + +gUnknown_81B57DE:: @ 81B57DE + .string " Using an HM$" + +gUnknown_81B57EE:: @ 81B57EE + .string "Using a move outside of battle$" + +gUnknown_81B580D:: @ 81B580D + .string " Riding the BICYCLE$" + +gUnknown_81B5824:: @ 81B5824 + .string "Entering a name$" + +gUnknown_81B5834:: @ 81B5834 + .string "Using a PC$" + +gUnknown_81B583F:: @ 81B583F + .string " Using “{STR_VAR_1}'S PC”$" + +gUnknown_81B5850:: @ 81B5850 + .string " Using “WITHDRAW”$" + +gUnknown_81B5863:: @ 81B5863 + .string " Using “DEPOSIT”$" + +gUnknown_81B5875:: @ 81B5875 + .string " Using “MOVE”$" + +gUnknown_81B5884:: @ 81B5884 + .string " Moving items$" + +gUnknown_81B5893:: @ 81B5893 + .string " Using “{PLAYER}'s PC”$" + +gUnknown_81B58A4:: @ 81B58A4 + .string " Using “WITHDRAW ITEM”$" + +gUnknown_81B58BC:: @ 81B58BC + .string " Using “DEPOSIT ITEM”$" + +gUnknown_81B58D3:: @ 81B58D3 + .string " Using “MAILBOX”$" + +gUnknown_81B58E5:: @ 81B58E5 + .string " Using “PROF. OAK'S PC”$" + +gUnknown_81B58FD:: @ 81B58FD + .string "Opening the MENU$" + +gUnknown_81B590E:: @ 81B590E + .string " Using “FIGHT”$" + +gUnknown_81B591D:: @ 81B591D + .string " Using “POKéMON”$" + +gUnknown_81B592E:: @ 81B592E + .string " Using “SHIFT”$" + +gUnknown_81B593E:: @ 81B593E + .string " Using “SUMMARY”$" + +gUnknown_81B5950:: @ 81B5950 + .string " Using “BAG”$" + +gUnknown_81B595D:: @ 81B595D + .string " Reading the “POKéDEX”$" + +gUnknown_81B5974:: @ 81B5974 + .string "Using the PC at home$" + +gUnknown_81B5989:: @ 81B5989 + .string "Using the Item Storage System$" + +gUnknown_81B59A7:: @ 81B59A7 + .string " Using “WITHDRAW ITEM”$" + +gUnknown_81B59BF:: @ 81B59BF + .string " Using “DEPOSIT ITEM”$" + +gUnknown_81B59D6:: @ 81B59D6 + .string "Using the MAILBOX$" + +gUnknown_81B59E8:: @ 81B59E8 + .string " Using “RUN”$" + +gUnknown_81B59F5:: @ 81B59F5 + .string " “REGISTER” a key item$" + +gUnknown_81B5A0D:: @ 81B5A0D + .string " Using “BALL”$" + +gUnknown_81B5A1B:: @ 81B5A1B + .string " Using “BAIT”$" + +gUnknown_81B5A29:: @ 81B5A29 + .string " Using “ROCK”$" + +gUnknown_81B5A37:: @ 81B5A37 + .string " Using “HALL OF FAME”$" + +gUnknown_81B5A4D:: @ 81B5A4D + .string "{EXTRA_CIRCLE_1} Select “POKéDEX” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Choose POKéMON using commands such\n" + .string " as “POKéMON LIST,”\n" + .string " “HABITATS OF POKéMON,” and\n" + .string " “SEARCH.”\n" + .string "{EXTRA_CIRCLE_3} Select a POKéMON to obtain detailed\n" + .string " information.$" + +gUnknown_81B5B0C:: @ 81B5B0C + .string "{EXTRA_CIRCLE_1} Select “POKéMON” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Choose a POKéMON in your party.\n" + .string "{EXTRA_CIRCLE_3} Select “SUMMARY,” “SWITCH,”\n" + .string " or “ITEM.”$" + +gUnknown_81B5B7D:: @ 81B5B7D + .string "{EXTRA_CIRCLE_1} Select “SUMMARY.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the information:\n" + .string " “POKéMON INFO”\n" + .string " “POKéMON SKILLS”\n" + .string " “KNOWN MOVES”$" + +gUnknown_81B5C13:: @ 81B5C13 + .string "{EXTRA_CIRCLE_1} Choose the POKéMON you want to\n" + .string " switch around.\n" + .string "{EXTRA_CIRCLE_2} Select “SWITCH.”\n" + .string "{EXTRA_CIRCLE_3} Select the POKéMON to switch with\n" + .string " the first one.\n" + .string "The POKéMON at the left of the screen\n" + .string "will be the first one out in a battle.$" + +gUnknown_81B5CDF:: @ 81B5CDF + .string "{EXTRA_CIRCLE_1} Select “ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select whether you want to “GIVE”\n" + .string " an item to the POKéMON to hold,\n" + .string " or “TAKE” an item it is holding.\n" + .string "A POKéMON can hold no more than one\n" + .string "item!$" + +gUnknown_81B5D87:: @ 81B5D87 + .string "{EXTRA_CIRCLE_1} Select “BAG” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the data headings:\n" + .string " “ITEMS”\n" + .string " “KEY ITEMS”\n" + .string " “POKé BALLS”\n" + .string " Press up or down to select an item.$" + +gUnknown_81B5E41:: @ 81B5E41 + .string "{EXTRA_CIRCLE_1} Select the “ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select an item.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to use the selected\n" + .string " item.\n" + .string "Some items may not be used depending\n" + .string "on the place and/or situation.$" + +gUnknown_81B5F10:: @ 81B5F10 + .string "{EXTRA_CIRCLE_1} Select the “KEY ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select a key item.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to use the selected\n" + .string " key item.$" + +gUnknown_81B5FA6:: @ 81B5FA6 + .string "{EXTRA_CIRCLE_1} While battling a wild POKéMON,\n" + .string " select the BAG's “POKé BALLS”\n" + .string " POCKET.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select a POKé BALL.\n" + .string "{EXTRA_CIRCLE_3} Select “USE” to throw the selected\n" + .string " POKé BALL.$" + +gUnknown_81B606C:: @ 81B606C + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Your TRAINER CARD is displayed face\n" + .string " up with basic information. Press the\n" + .string " A Button to turn the CARD over.\n" + .string "{EXTRA_CIRCLE_3} A variety of data can be found on\n" + .string " the reverse side of the CARD.$" + +gUnknown_81B6140:: @ 81B6140 + .string "{EXTRA_CIRCLE_1} Select “SAVE” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Select “YES” and your progress is\n" + .string " recorded in the save file.\n" + .string "Once the game is saved, you may turn\n" + .string "off the game. Your game can be resumed\n" + .string "from where you saved.$" + +gUnknown_81B6203:: @ 81B6203 + .string "{EXTRA_CIRCLE_1} Select “OPTION” on the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad to select an optional item, then\n" + .string " press left or right to alter the\n" + .string " settings.\n" + .string "{EXTRA_CIRCLE_3} Select “CANCEL” or press the\n" + .string " B Button after making changes.$" + +gUnknown_81B62E4:: @ 81B62E4 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad and select “BAG.”\n" + .string "{EXTRA_CIRCLE_3} Select “POTION” in the “ITEMS”\n" + .string " POCKET.\n" + .string "{EXTRA_CIRCLE_4} Select “USE.”\n" + .string "{EXTRA_CIRCLE_5} Select the POKéMON to be healed.$" + +gUnknown_81B6397:: @ 81B6397 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Press up or down on the {EXTRA_PLUS} Control\n" + .string " Pad and select “BAG.”\n" + .string "{EXTRA_CIRCLE_3} Press left or right to open the\n" + .string " “KEY ITEMS” POCKET, then press\n" + .string " up or down to select “TOWN MAP.” \n" + .string "{EXTRA_CIRCLE_4} Select “USE” to open the TOWN MAP.$" + +gUnknown_81B6478:: @ 81B6478 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Open the “KEY ITEMS” POCKET in the\n" + .string " “BAG.”\n" + .string "{EXTRA_CIRCLE_3} “OPEN” the TM CASE.\n" + .string "{EXTRA_CIRCLE_4} Select and “USE” a TM.\n" + .string "{EXTRA_CIRCLE_5} Select a POKéMON that can learn the\n" + .string " move in the TM.$" + +gUnknown_81B6525:: @ 81B6525 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Open the “KEY ITEMS” POCKET in the\n" + .string " “BAG.”\n" + .string "{EXTRA_CIRCLE_3} “OPEN” the TM CASE.\n" + .string "{EXTRA_CIRCLE_4} Select and “USE” an HM.\n" + .string "{EXTRA_CIRCLE_5} Select a POKéMON that can learn it.\n" + .string "HMs are hard to remove, so be careful!$" + +gUnknown_81B65E7:: @ 81B65E7 + .string "{EXTRA_CIRCLE_1} Open the MENU.\n" + .string "{EXTRA_CIRCLE_2} Select “POKéMON.”\n" + .string "{EXTRA_CIRCLE_3} Select a POKéMON that knows an\n" + .string " HM move. The usable HM move(s)\n" + .string " will be shown in blue. Select and\n" + .string " use the desired move to destroy an\n" + .string " obstacle, fly, surf, etc.$" + +gUnknown_81B66BA:: @ 81B66BA + .string "{EXTRA_CIRCLE_1} Open the MENU. Open the\n" + .string " “KEY ITEMS” POCKET in the “BAG”\n" + .string " and select the “BICYCLE.”\n" + .string "{EXTRA_CIRCLE_2} The BICYCLE can be ridden by\n" + .string " selecting “USE.” You may also\n" + .string " “REGISTER” it for instant use by\n" + .string " pressing SELECT.$" + +gUnknown_81B678E:: @ 81B678E + .string "{EXTRA_CIRCLE_1} Move the cursor to the letter you\n" + .string " want with the {EXTRA_PLUS} Control Pad, then\n" + .string " press the A Button to enter it.\n" + .string "{EXTRA_CIRCLE_2} Press the B Button to back up.\n" + .string "{EXTRA_CIRCLE_3} Press SELECT to switch between\n" + .string " uppercase and lowercase letters.\n" + .string "{EXTRA_CIRCLE_4} Press the A Button on “OK.”$" + +gUnknown_81B6883:: @ 81B6883 + .string "{EXTRA_CIRCLE_1} Go to any POKéMON CENTER, go up\n" + .string " to the PC, then press the A Button.$" + +gUnknown_81B68CD:: @ 81B68CD + .string "{EXTRA_CIRCLE_1} Select “{STR_VAR_1}'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select from one of the top three\n" + .string " MENU items to access the POKéMON\n" + .string " Storage System.\n" + .string "If you catch a POKéMON when you have\n" + .string "six in your party, the POKéMON is sent\n" + .string "automatically to a BOX in the System!$" + +gUnknown_81B69B9:: @ 81B69B9 + .string "{EXTRA_CIRCLE_1} Select a POKéMON in the open BOX\n" + .string " with the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_2} Select “WITHDRAW” to remove the\n" + .string " POKéMON from the BOX and add it to\n" + .string " your party.\n" + .string "You may not withdraw a POKéMON if you\n" + .string "already have six POKéMON with you!$" + +gUnknown_81B6A9A:: @ 81B6A9A + .string "{EXTRA_CIRCLE_1} Select a POKéMON in your party with\n" + .string " the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_2} Select “DEPOSIT.”\n" + .string "{EXTRA_CIRCLE_3} Select the BOX, then press the\n" + .string " A Button to store the POKéMON.\n" + .string "If you have only one POKéMON with you,\n" + .string "it may not be stored!$" + +gUnknown_81B6B6E:: @ 81B6B6E + .string "{EXTRA_CIRCLE_1} Select a POKéMON in the open BOX.\n" + .string "{EXTRA_CIRCLE_2} Pick up the POKéMON by selecting\n" + .string " “MOVE” and move it anywhere with\n" + .string " the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} Move the POKéMON to the BOX name\n" + .string " and press left or right to move it\n" + .string " to another BOX.$" + +gUnknown_81B6C4F:: @ 81B6C4F + .string "{EXTRA_CIRCLE_1} Faintly shown POKéMON can be made\n" + .string " to hold an item by selecting it and\n" + .string " pressing the A Button.\n" + .string "{EXTRA_CIRCLE_2} Clearly shown POKéMON can be made\n" + .string " to give the item they are holding to\n" + .string " another POKéMON, or return the item\n" + .string " to the BAG with the A Button.$" + +gUnknown_81B6D4A:: @ 81B6D4A + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}'s PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select either “ITEM STORAGE” or\n" + .string " “MAILBOX.”\n" + .string "You may store things in your own PC\n" + .string "if your BAG is full. You may also\n" + .string "withdraw items stored in your PC.$" + +gUnknown_81B6E02:: @ 81B6E02 + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item to be withdrawn.\n" + .string "{EXTRA_CIRCLE_3} The item can be withdrawn and\n" + .string " placed in the BAG's ITEMS POCKET.\n" + .string " It may also be directly given to a\n" + .string " POKéMON to hold.$" + +gUnknown_81B6EC1:: @ 81B6EC1 + .string "{EXTRA_CIRCLE_1} Select “DEPOSIT ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item in the BAG to be\n" + .string " deposited using the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} If there is more than one \n" + .string " item to be deposited, enter the\n" + .string " quantity with the {EXTRA_PLUS} Control Pad,\n" + .string " then press the A Button.$" + +gUnknown_81B6FA8:: @ 81B6FA8 + .string "When MAIL is taken from a POKéMON,\n" + .string "it is moved to the MAILBOX. If it has\n" + .string "no MAIL, the MAILBOX can't be used.\n" + .string "{EXTRA_CIRCLE_1} Select “{PLAYER}'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} Select “MAILBOX” to read MAIL or\n" + .string " make a POKéMON hold MAIL.$" + +gUnknown_81B7075:: @ 81B7075 + .string "{EXTRA_CIRCLE_1} Select “PROF. OAK'S PC” on the PC.\n" + .string "{EXTRA_CIRCLE_2} PROF. OAK will evaluate your\n" + .string " POKéDEX.\n" + .string "His evaluations should give you hints\n" + .string "for catching more POKéMON!$" + +gUnknown_81B7108:: @ 81B7108 + .string "{EXTRA_CIRCLE_1} Press START.\n" + .string "{EXTRA_CIRCLE_2} The MENU will open on the right.\n" + .string "{EXTRA_CIRCLE_3} Depending on the situation, the MENU\n" + .string " may feature different headings.\n" + .string "The MENU will not open in certain\n" + .string "situations such as when talking, doing\n" + .string "something, battling, etc.$" + +gUnknown_81B71EA:: @ 81B71EA + .string "{EXTRA_CIRCLE_1} Select “FIGHT.”\n" + .string "{EXTRA_CIRCLE_2} Select one of the moves shown,\n" + .string "and that move will be used!$" + +gUnknown_81B723B:: @ 81B723B + .string "{EXTRA_CIRCLE_1} Select “POKéMON.”\n" + .string "{EXTRA_CIRCLE_2} Select the POKéMON in your party\n" + .string " that you want to use.\n" + .string "{EXTRA_CIRCLE_3} If you have two or more POKéMON\n" + .string " with you, they may be switched by\n" + .string " selecting “SHIFT.” Check POKéMON\n" + .string " data by selecting “SUMMARY.”$" + +gUnknown_81B7319:: @ 81B7319 + .string "This command switches the POKéMON in\n" + .string "battle with another one in your party.\n" + .string "{EXTRA_CIRCLE_1} Select the POKéMON to be sent out.\n" + .string "{EXTRA_CIRCLE_2} Select “SHIFT.”\n" + .string "{EXTRA_CIRCLE_3} The selected POKéMON will switch\n" + .string " places with the POKéMON in battle!$" + +gUnknown_81B73E8:: @ 81B73E8 + .string "{EXTRA_CIRCLE_1} Select “SUMMARY.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the information:\n" + .string " “POKéMON INFO”\n" + .string " “POKéMON SKILLS”\n" + .string " “KNOWN MOVES”$" + +gUnknown_81B747E:: @ 81B747E + .string "{EXTRA_CIRCLE_1} Select “BAG.”\n" + .string "{EXTRA_CIRCLE_2} Press left or right on the {EXTRA_PLUS} Control\n" + .string " Pad to check the data headings:\n" + .string " “ITEMS”\n" + .string " “KEY ITEMS”\n" + .string " “POKé BALLS”\n" + .string " Press up or down to select an item.$" + +gUnknown_81B752C:: @ 81B752C + .string "{EXTRA_CIRCLE_1} POKéMON that you have caught are\n" + .string " identified by a POKé BALL mark on\n" + .string " the POKéDEX list.\n" + .string "{EXTRA_CIRCLE_2} A caught POKéMON will provide a\n" + .string " large amount of data.\n" + .string "{EXTRA_CIRCLE_3} Select “AREA” to display the TOWN\n" + .string " MAP with the POKéMON's habitat(s).$" + +gUnknown_81B7611:: @ 81B7611 + .string "{EXTRA_CIRCLE_1} Go up to the PC at home, then press\n" + .string " the A Button.\n" + .string "{EXTRA_CIRCLE_2} The PC will turn on.\n" + .string "{EXTRA_CIRCLE_3} Select either “ITEM STORAGE” or\n" + .string " “MAILBOX.”$" + +gUnknown_81B7692:: @ 81B7692 + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM” to withdraw\n" + .string " an item stored on your PC.\n" + .string "{EXTRA_CIRCLE_2} Select “DEPOSIT ITEM” to put \n" + .string " an item from your BAG into your PC.$" + +gUnknown_81B771E:: @ 81B771E + .string "{EXTRA_CIRCLE_1} Select “WITHDRAW ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item to be withdrawn.\n" + .string "{EXTRA_CIRCLE_3} The item can be withdrawn and\n" + .string " placed in the BAG's ITEMS POCKET.\n" + .string " It may also be directly given to a\n" + .string " POKéMON to hold.$" + +gUnknown_81B77DD:: @ 81B77DD + .string "{EXTRA_CIRCLE_1} Select “DEPOSIT ITEM.”\n" + .string "{EXTRA_CIRCLE_2} Select the item in the BAG to be\n" + .string " deposited using the {EXTRA_PLUS} Control Pad.\n" + .string "{EXTRA_CIRCLE_3} If there is nothing in the BAG, this\n" + .string " command can't be used!$" + +gUnknown_81B7884:: @ 81B7884 + .string "When MAIL is taken from a POKéMON,\n" + .string "it is moved to the MAILBOX. If it has\n" + .string "no MAIL, the MAILBOX can't be used.\n" + .string "{EXTRA_CIRCLE_1} Select MAIL by name to read it or\n" + .string " make a POKéMON hold it.$" + +gUnknown_81B7931:: @ 81B7931 + .string "You may not “RUN” from a TRAINER\n" + .string "battle!\n" + .string "{EXTRA_CIRCLE_1} You may “RUN” from a wild POKéMON.\n" + .string "{EXTRA_CIRCLE_2} Your chance of escape is improved\n" + .string " if your POKéMON in battle is fast.$" + +gUnknown_81B79CB:: @ 81B79CB + .string "You may “REGISTER” a key item for\n" + .string "instant use by pressing SELECT!\n" + .string "{EXTRA_CIRCLE_1} Open the “KEY ITEMS” POCKET.\n" + .string "{EXTRA_CIRCLE_2} Select the key item, then select\n" + .string " “REGISTER.”$" + +gUnknown_81B7A60:: @ 81B7A60 + .string "{EXTRA_CIRCLE_1} Select to throw the special POKé\n" + .string " BALL used only in the SAFARI ZONE.\n" + .string "When wild POKéMON appear, throw lots\n" + .string "of SAFARI BALLS to catch them!$" + +gUnknown_81B7AEE:: @ 81B7AEE + .string "{EXTRA_CIRCLE_1} Select to throw the special food\n" + .string " used only in the SAFARI ZONE.\n" + .string "It is POKéMON food rolled up into\n" + .string "a ball for easy eating. When BAIT is\n" + .string "thrown, the wild POKéMON may get\n" + .string "attracted by it, and may not flee!$" + +gUnknown_81B7BBE:: @ 81B7BBE + .string "{EXTRA_CIRCLE_1} Select to throw a rock lying on\n" + .string " the ground in the SAFARI ZONE.\n" + .string "Throwing a rock at a POKéMON may \n" + .string "make it run away, but it becomes easier\n" + .string "to catch!$" + +gUnknown_81B7C57:: @ 81B7C57 + .string "{EXTRA_CIRCLE_1} Select “HALL OF FAME” on the PC.\n" + .string "{EXTRA_CIRCLE_2} The POKéMON that have entered the\n" + .string " HALL OF FAME can be examined.$" + +gUnknown_81B7CC1:: @ 81B7CC1 + .string "HP$" + +gUnknown_81B7CC4:: @ 81B7CC4 + .string "EXP. {EXTRA_LEFT_PAREN}EXP. Points{EXTRA_RIGHT_PAREN}$" + +gUnknown_81B7CD9:: @ 81B7CD9 + .string "MOVES$" + +gUnknown_81B7CDF:: @ 81B7CDF + .string "ATTACK$" + +gUnknown_81B7CE6:: @ 81B7CE6 + .string "DEFENSE$" + +gUnknown_81B7CEE:: @ 81B7CEE + .string "SP. ATK$" + +gUnknown_81B7CF6:: @ 81B7CF6 + .string "SP. DEF$" + +gUnknown_81B7CFE:: @ 81B7CFE + .string "SPEED$" + +gUnknown_81B7D04:: @ 81B7D04 + .string "Lv. {EXTRA_LEFT_PAREN}Level{EXTRA_RIGHT_PAREN}$" + +gUnknown_81B7D12:: @ 81B7D12 + .string "TYPE$" + +gUnknown_81B7D17:: @ 81B7D17 + .string "OT$" + +gUnknown_81B7D1A:: @ 81B7D1A + .string "ITEM$" + +gUnknown_81B7D1F:: @ 81B7D1F + .string "ABILITY$" + +gUnknown_81B7D27:: @ 81B7D27 + .string "MONEY$" + +gUnknown_81B7D2D:: @ 81B7D2D + .string "MOVE TYPE$" + +gUnknown_81B7D37:: @ 81B7D37 + .string "NATURE$" + +gUnknown_81B7D3E:: @ 81B7D3E + .string "ID No.$" + +gUnknown_81B7D45:: @ 81B7D45 + .string "PP$" + +gUnknown_81B7D48:: @ 81B7D48 + .string "POWER$" + +gUnknown_81B7D4E:: @ 81B7D4E + .string "ACCURACY$" + +gUnknown_81B7D57:: @ 81B7D57 + .string "FNT$" + +gUnknown_81B7D5B:: @ 81B7D5B + .string "ITEMS$" + +gUnknown_81B7D61:: @ 81B7D61 + .string "KEY ITEMS$" + +gUnknown_81B7D6B:: @ 81B7D6B + .string "POKé BALLS$" + +gUnknown_81B7D76:: @ 81B7D76 + .string "POKéDEX$" + +gUnknown_81B7D7E:: @ 81B7D7E + .string "PLAY TIME$" + +gUnknown_81B7D88:: @ 81B7D88 + .string "BADGES$" + +gUnknown_81B7D8F:: @ 81B7D8F + .string "TEXT SPEED$" + +gUnknown_81B7D9A:: @ 81B7D9A + .string "BATTLE SCENE$" + +gUnknown_81B7DA7:: @ 81B7DA7 + .string "BATTLE STYLE$" + +gUnknown_81B7DB4:: @ 81B7DB4 + .string "SOUND$" + +gUnknown_81B7DBA:: @ 81B7DBA + .string "BUTTON MODE$" + +gUnknown_81B7DC6:: @ 81B7DC6 + .string "FRAME$" + +gUnknown_81B7DCC:: @ 81B7DCC + .string "CANCEL$" + +gUnknown_81B7DD3:: @ 81B7DD3 + .string "TM$" + +gUnknown_81B7DD6:: @ 81B7DD6 + .string "HM$" + +gUnknown_81B7DD9:: @ 81B7DD9 + .string "HM MOVE$" + +gUnknown_81B7DE1:: @ 81B7DE1 + .string "EVOLUTION$" + +gUnknown_81B7DEB:: @ 81B7DEB + .string "STATUS PROBLEM$" + +gUnknown_81B7DFA:: @ 81B7DFA + .string "POKéMON$" + +gUnknown_81B7E02:: @ 81B7E02 + .string "ID No.$" + +gUnknown_81B7E09:: @ 81B7E09 + .string "MONEY$" + +gUnknown_81B7E0F:: @ 81B7E0F + .string "BADGES$" + +gUnknown_81B7E16:: @ 81B7E16 + .string "HP indicates a POKéMON's vitality.\n" + .string "If a POKéMON's HP drops to zero, it\l" + .string "faints and is unable to battle.\l" + .string "So, the key in battle is to try to\l" + .string "reduce the foe's HP to zero.\l" + .string "If your POKéMON are hurt, restore their\l" + .string "HP at a POKéMON CENTER or use items.$" + +gUnknown_81B7F0A:: @ 81B7F0A + .string "EXP. Points stands for “Experience\n" + .string "Points.” POKéMON gain EXP. Points by\l" + .string "participating in winning battles.\l" + .string "When a POKéMON accumulates sufficient\l" + .string "EXP. Points, it levels up. The EXP. Bar\l" + .string "indicates accumulated EXP. Points.\l" + .string "It returns to zero upon leveling up.$" + +gUnknown_81B800A:: @ 81B800A + .string "POKéMON may learn up to four different\n" + .string "moves. There are many kinds of moves\l" + .string "including attacks and those with\l" + .string "special effects. The kinds of moves\l" + .string "that can be learned vary for each\l" + .string "POKéMON. Some moves can be learned\l" + .string "from items.$" + +gUnknown_81B80EC:: @ 81B80EC + .string "ATTACK indicates the power of an\n" + .string "offensive move. The higher this stat,\l" + .string "the more powerful the move.\l" + .string "It is applied for the following move\l" + .string "types: NORMAL, POISON, GROUND,\l" + .string "FLYING, BUG, FIGHTING, ROCK, GHOST,\l" + .string "and STEEL.$" + +gUnknown_81B81C2:: @ 81B81C2 + .string "DEFENSE indicates the resistance a\n" + .string "POKéMON has against physical attacks.\l" + .string "The higher this stat, the less damage\l" + .string "sustained from a foe's physical hit.$" + +gUnknown_81B8256:: @ 81B8256 + .string "SP. ATK (Special Attack) indicates the\n" + .string "power of a special attack move.\l" + .string "The higher this stat, the more powerful\l" + .string "the special attack move.\l" + .string "It is applied for the following move\l" + .string "types: FIRE, WATER, ELECTRIC, GRASS,\l" + .string "ICE, PSYCHIC, DRAGON, and DARK.$" + +gUnknown_81B8348:: @ 81B8348 + .string "SP. DEF (Special Defense) indicates\n" + .string "the resistance a POKéMON has against\l" + .string "special attacks.\l" + .string "The higher this stat, the less damage\l" + .string "sustained from a foe's special attack.$" + +gUnknown_81B83EF:: @ 81B83EF + .string "SPEED indicates the agility of a\n" + .string "POKéMON. If this stat exceeds the foe's\l" + .string "in battle, the POKéMON can make a move\l" + .string "before its slower opponent.$" + +gUnknown_81B847B:: @ 81B847B + .string "Lv. (Level) indicates the growth and\n" + .string "strength of a POKéMON.\l" + .string "In general, when a POKéMON levels up,\l" + .string "its stats such as HP, ATTACK, and\l" + .string "DEFENSE rise, making it stronger.\l" + .string "POKéMON may learn a new move upon\l" + .string "leveling up.$" + +gUnknown_81B8550:: @ 81B8550 + .string "POKéMON and moves are classified by\n" + .string "type. Every type has advantageous and\l" + .string "disadvantageous matchups against\l" + .string "other types. For example, like a rock-\l" + .string "paper-scissors game, the WATER type is\l" + .string "strong against the FIRE type and weak\l" + .string "against the GRASS type.$" + +gUnknown_81B8647:: @ 81B8647 + .string "OT stands for “Original TRAINER,”\n" + .string "the first TRAINER to have caught the\l" + .string "selected POKéMON.\l" + .string "Even if the POKéMON is traded, the OT\l" + .string "name will remain unchanged.$" + +gUnknown_81B86E2:: @ 81B86E2 + .string "All POKéMON can be made to hold one\n" + .string "item each. Some items will be used by\l" + .string "the POKéMON automatically in certain\l" + .string "situations. To make a POKéMON hold an\l" + .string "item, select the item from the BAG and\l" + .string "“GIVE” it to the POKéMON.$" + +gUnknown_81B87B8:: @ 81B87B8 + .string "All POKéMON have a special ABILITY.\n" + .string "There are many different kinds of these\l" + .string "abilities, some used in battle, some\l" + .string "elsewhere. The abilities differ from\l" + .string "species to species. Some species may\l" + .string "have more than one kind of ability.$" + +gUnknown_81B8897:: @ 81B8897 + .string "Whenever you win a battle against a\n" + .string "TRAINER, you are given prize money.\l" + .string "Save up your prize money so you can\l" + .string "enjoy shopping at POKéMON MARTS!$" + +gUnknown_81B8924:: @ 81B8924 + .string "Moves are also classified by types.\n" + .string "If a POKéMON of a certain type uses\l" + .string "a move of the same type, the move's\l" + .string "power is boosted. If the move's type\l" + .string "has a matchup advantage against the\l" + .string "target, its effectiveness is also\l" + .string "boosted.$" + +gUnknown_81B8A04:: @ 81B8A04 + .string "All POKéMON have a personality,\n" + .string "or “NATURE.” The POKéMON's\l" + .string "nature appears to affect how the\l" + .string "POKéMON will grow upon leveling up.$" + +gUnknown_81B8A84:: @ 81B8A84 + .string "The ID No. is a special number assigned\n" + .string "specifically to you as a TRAINER.\l" + .string "Together with the OT name, the ID No.\l" + .string "is used to precisely identify the\l" + .string "Original TRAINER.\l" + .string "The ID No. does not change even if the\l" + .string "POKéMON is traded.$" + +gUnknown_81B8B62:: @ 81B8B62 + .string "PP stands for “Power Points.”\n" + .string "It indicates the number of times a\l" + .string "certain move can be used in battle.\l" + .string "Like HP, PP can be restored by visiting\l" + .string "a POKéMON CENTER or using certain\l" + .string "items.$" + +gUnknown_81B8C18:: @ 81B8C18 + .string "POWER indicates the strength of an\n" + .string "attack. The higher this number, the\l" + .string "greater the damage that can be\l" + .string "inflicted on the foe!$" + +gUnknown_81B8C94:: @ 81B8C94 + .string "ACCURACY indicates the probability of\n" + .string "the move hitting the foe.\l" + .string "The higher this number, the more likely\l" + .string "the move will strike the target.$" + +gUnknown_81B8D1D:: @ 81B8D1D + .string "FNT stands for “fainted.”\n" + .string "A POKéMON faints if its HP is reduced\l" + .string "to zero. It becomes incapable of taking\l" + .string "part in battle.\l" + .string "Restore a fainted POKéMON at a POKéMON\l" + .string "CENTER, or use an item.$" + +gUnknown_81B8DD4:: @ 81B8DD4 + .string "Ordinary items bought at any POKéMON\n" + .string "MART are placed in the ITEMS POCKET.\l" + .string "Items may be used, given to a POKéMON\l" + .string "to hold, or tossed out as garbage.$" + +gUnknown_81B8E67:: @ 81B8E67 + .string "Important items that you find or \n" + .string "receive from people are placed in the\l" + .string "KEY ITEMS POCKET.\l" + .string "Key items may be used, or registered\l" + .string "for use instantly with SELECT. Once\l" + .string "registered, the item can be used\l" + .string "without opening the MENU and BAG.$" + +gUnknown_81B8F4D:: @ 81B8F4D + .string "POKé BALLS, which are used for\n" + .string "catching wild POKéMON, are placed in\l" + .string "the POKé BALLS POCKET.\l" + .string "POKé BALLS may be bought at POKéMON\l" + .string "MARTS. They may be used, given to a\l" + .string "POKéMON to hold, or tossed out as\l" + .string "garbage.$" + +gUnknown_81B901B:: @ 81B901B + .string "This indicates the number of species of\n" + .string "POKéMON you have caught and/or\l" + .string "evolved to fill the POKéDEX.\l" + .string "Try hard to catch all sorts of\l" + .string "POKéMON!$" + +gUnknown_81B90A7:: @ 81B90A7 + .string "This is the total amount of time that\n" + .string "you have played this game.$" + +gUnknown_81B90E8:: @ 81B90E8 + .string "The POKéMON LEAGUE BADGES that you\n" + .string "have won are registered and shown.\l" + .string "Earn BADGES by defeating GYM LEADERS\l" + .string "in various cities and towns.$" + +gUnknown_81B9170:: @ 81B9170 + .string "You can adjust how quickly the text is\n" + .string "displayed. Choose one: SLOW, MID,\l" + .string "or FAST.$" + +gUnknown_81B91C2:: @ 81B91C2 + .string "You can choose to turn the battle\n" + .string "animation ON or OFF.$" + +gUnknown_81B91F9:: @ 81B91F9 + .string "You can choose whether or not a\n" + .string "TRAINER can switch a POKéMON after\l" + .string "it has made its foe faint.\l" + .string "Set to “SHIFT” if you would like the\l" + .string "chance to switch a POKéMON after it\l" + .string "has made its foe faint.$" + +gUnknown_81B92B8:: @ 81B92B8 + .string "You can choose between MONO and\n" + .string "STEREO sound output.$" + +gUnknown_81B92ED:: @ 81B92ED + .string "Set to “HELP” to display help messages\n" + .string "by pressing the L or R Button.\l" + .string "Set to “LR” to enable the switching\l" + .string "of the POKéDEX pages and BAG POCKETS\l" + .string "using the L and R Buttons.\l" + .string "Set to “L=A” to make the L Button\l" + .string "work the same as the A Button.$" + +gUnknown_81B93D8:: @ 81B93D8 + .string "You may choose the design of the frame\n" + .string "around certain menus. Try them out and\l" + .string "see what you like.$" + +gUnknown_81B9439:: @ 81B9439 + .string "The settings will be changed to the\n" + .string "selections shown in red, and you will\l" + .string "return to the MENU.$" + +gUnknown_81B9497:: @ 81B9497 + .string "A TM (Technical Machine) is a device\n" + .string "used to teach a move to a POKéMON.\l" + .string "There are many different kinds.\l" + .string "Moves can be taught only to those\l" + .string "POKéMON capable of using them.\l" + .string "A TM breaks after a single use.$" + +gUnknown_81B9560:: @ 81B9560 + .string "An HM (Hidden Machine) is a device used\n" + .string "to teach a HIDDEN move to a POKéMON.\l" + .string "A HIDDEN move can be taught only to\l" + .string "those POKéMON capable of using it.\l" + .string "Unlike a TM, an HM can be used over\l" + .string "and over. A HIDDEN move can be tough\l" + .string "for a POKéMON to forget.$" + +gUnknown_81B9656:: @ 81B9656 + .string "HIDDEN moves are those that are\n" + .string "especially important for your\l" + .string "adventure. To use such a move outside\l" + .string "of battle, open the “POKéMON” MENU\l" + .string "and make the POKéMON that knows the\l" + .string "move use it. A fainted POKéMON may use\l" + .string "a HIDDEN move outside of battle.$" + +gUnknown_81B9749:: @ 81B9749 + .string "Among POKéMON, there are some that\n" + .string "undergo major changes (evolution) upon\l" + .string "growing to certain levels. Evolution\l" + .string "causes a POKéMON to alter form, change\l" + .string "its name, and perhaps change the moves\l" + .string "it may learn. Some POKéMON evolve\l" + .string "due to reasons other than leveling up.$" + +gUnknown_81B984F:: @ 81B984F + .string "Status problems include:\n" + .string "Sleep: Can't use moves.\l" + .string "Poison: Causes steady HP loss.\l" + .string "Paralysis: May prevent moves.\l" + .string "Burn: HP loss and lowers ATTACK.\l" + .string "Freeze: Can't use moves.\l" + .string "These can be healed with items, etc.$" + +gUnknown_81B991C:: @ 81B991C + .string "POKéMON is a name given to describe\n" + .string "wondrous creatures that inhabit all\l" + .string "corners of this world.\l" + .string "People raise POKéMON to be their pets,\l" + .string "use them for battling, and so on.$" + +gUnknown_81B99C4:: @ 81B99C4 + .string "The ID No. is a special number assigned\n" + .string "specifically to you as a TRAINER.\l" + .string "Together with the OT name, the ID No.\l" + .string "is used to precisely identify the\l" + .string "Original TRAINER.\l" + .string "The ID No. does not change even if the\l" + .string "POKéMON is traded.$" + +gUnknown_81B9AA2:: @ 81B9AA2 + .string "Whenever you win a battle against a\n" + .string "TRAINER, you are given prize money.\l" + .string "Save up your prize money so you can\l" + .string "enjoy shopping at POKéMON MARTS!$" + +gUnknown_81B9B2F:: @ 81B9B2F + .string "This indicates the number of POKéMON\n" + .string "LEAGUE BADGES that you have won.\l" + .string "Earn BADGES by defeating GYM LEADERS\l" + .string "in various cities and towns.$" + +gUnknown_81B9BB7:: @ 81B9BB7 + .string "The HELP System$" + +gUnknown_81B9BC7:: @ 81B9BC7 + .string "The game$" + +gUnknown_81B9BD0:: @ 81B9BD0 + .string "Wireless Adapter$" + +gUnknown_81B9BE1:: @ 81B9BE1 + .string "Game fundamentals 1$" + +gUnknown_81B9BF5:: @ 81B9BF5 + .string "Game fundamentals 2$" + +gUnknown_81B9C09:: @ 81B9C09 + .string "Game fundamentals 3$" + +gUnknown_81B9C1D:: @ 81B9C1D + .string "What are POKéMON?$" + +gUnknown_81B9C2F:: @ 81B9C2F + .string "The help messages change depending on\n" + .string "how much you have progressed in the\l" + .string "game. They are designed to support you\l" + .string "when you need them. If there is\l" + .string "anything that you don't understand,\l" + .string "please look up the HELP System!$" + +gUnknown_81B9D04:: @ 81B9D04 + .string "You become the main character to\n" + .string "explore the world of POKéMON!\l" + .string "By talking to people and solving\l" + .string "mysteries, new paths will open to you.\l" + .string "Strive for the goal together with your\l" + .string "wonderful POKéMON!$" + +gUnknown_81B9DC5:: @ 81B9DC5 + .string "This game communicates over a wireless\n" + .string "link using the Wireless Adapter.\p" + .string "Go wireless anywhere, anytime, and\n" + .string "with anybody!\p" + .string "Try playing with the Wireless Adapter\n" + .string "always attached!$" + +gUnknown_81B9E75:: @ 81B9E75 + .string "Visit every city and town, travel every\n" + .string "road, explore every cave, and face\l" + .string "every challenge as you strive to\l" + .string "become the greatest TRAINER of\l" + .string "POKéMON!$" + +gUnknown_81B9F09:: @ 81B9F09 + .string "On your adventure, you will be faced\n" + .string "with many obstacles. Every obstacle\l" + .string "can be overcome by doing something\l" + .string "or by solving mysteries. Some obstacles\l" + .string "are affected by something that happens\l" + .string "far away.$" + +gUnknown_81B9FCE:: @ 81B9FCE + .string "Some of the obstacles in your way can\n" + .string "be removed once your POKéMON learn\l" + .string "specific moves.$" + +gUnknown_81BA027:: @ 81BA027 + .string "POKéMON are wondrous creatures that\n" + .string "are shrouded in mystery. You may meet\l" + .string "them all over the world…in tall\l" + .string "grass, caves, the sea, and more.\l" + .string "They appear to grow obedient to the\l" + .string "TRAINERS that caught them.$" + +gUnknown_81BA0F1:: @ 81BA0F1 + .string "Using the Type Matchup List$" + +gUnknown_81BA10D:: @ 81BA10D + .string "Own move type: DARK$" + +gUnknown_81BA121:: @ 81BA121 + .string "Own POKéMON type: DARK$" + +gUnknown_81BA138:: @ 81BA138 + .string "Own move type: ROCK$" + +gUnknown_81BA14C:: @ 81BA14C + .string "Own POKéMON type: ROCK$" + +gUnknown_81BA163:: @ 81BA163 + .string "Own move type: PSYCHIC$" + +gUnknown_81BA17A:: @ 81BA17A + .string "Own POKéMON type: PSYCHIC$" + +gUnknown_81BA194:: @ 81BA194 + .string "Own move type: FIGHTING$" + +gUnknown_81BA1AC:: @ 81BA1AC + .string "Own POKéMON type: FIGHTING$" + +gUnknown_81BA1C7:: @ 81BA1C7 + .string "Own move type: GRASS$" + +gUnknown_81BA1DC:: @ 81BA1DC + .string "Own POKéMON type: GRASS$" + +gUnknown_81BA1F4:: @ 81BA1F4 + .string "Own move type: GHOST$" + +gUnknown_81BA209:: @ 81BA209 + .string "Own POKéMON type: GHOST$" + +gUnknown_81BA221:: @ 81BA221 + .string "Own move type: ICE$" + +gUnknown_81BA234:: @ 81BA234 + .string "Own POKéMON type: ICE$" + +gUnknown_81BA24A:: @ 81BA24A + .string "Own move type: GROUND$" + +gUnknown_81BA260:: @ 81BA260 + .string "Own POKéMON type: GROUND$" + +gUnknown_81BA279:: @ 81BA279 + .string "Own move type: ELECTRIC$" + +gUnknown_81BA291:: @ 81BA291 + .string "Own POKéMON type: ELECTRIC$" + +gUnknown_81BA2AC:: @ 81BA2AC + .string "Own move type: POISON$" + +gUnknown_81BA2C2:: @ 81BA2C2 + .string "Own POKéMON type: POISON$" + +gUnknown_81BA2DB:: @ 81BA2DB + .string "Own move type: DRAGON$" + +gUnknown_81BA2F1:: @ 81BA2F1 + .string "Own POKéMON type: DRAGON$" + +gUnknown_81BA30A:: @ 81BA30A + .string "Own move type: NORMAL$" + +gUnknown_81BA320:: @ 81BA320 + .string "Own POKéMON type: NORMAL$" + +gUnknown_81BA339:: @ 81BA339 + .string "Own move type: STEEL$" + +gUnknown_81BA34E:: @ 81BA34E + .string "Own POKéMON type: STEEL$" + +gUnknown_81BA366:: @ 81BA366 + .string "Own move type: FLYING$" + +gUnknown_81BA37C:: @ 81BA37C + .string "Own POKéMON type: FLYING$" + +gUnknown_81BA395:: @ 81BA395 + .string "Own move type: FIRE$" + +gUnknown_81BA3A9:: @ 81BA3A9 + .string "Own POKéMON type: FIRE$" + +gUnknown_81BA3C0:: @ 81BA3C0 + .string "Own move type: WATER$" + +gUnknown_81BA3D5:: @ 81BA3D5 + .string "Own POKéMON type: WATER$" + +gUnknown_81BA3ED:: @ 81BA3ED + .string "Own move type: BUG$" + +gUnknown_81BA400:: @ 81BA400 + .string "Own POKéMON type: BUG$" + +gUnknown_81BA416:: @ 81BA416 + .string "Depending on the matchup of the\n" + .string "move type and the target POKéMON's\l" + .string "type, the move's effectiveness varies:\l" + .string "{EXTRA_TARGET}: Super effective!\l" + .string "{EXTRA_TRIANGLE}: Not very effective\l" + .string "{EXTRA_X}: Not effective at all\l" + .string "(No changes for other matchups.)$" + +gUnknown_81BA4E6:: @ 81BA4E6 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: PSYCHIC, GHOST\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, DARK, STEEL$" + +gUnknown_81BA539:: @ 81BA539 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING, BUG\p" + .string " {EXTRA_TRIANGLE}: GHOST, DARK\p" + .string " {EXTRA_X}: PSYCHIC$" + +gUnknown_81BA595:: @ 81BA595 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ICE, FLYING, BUG\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, GROUND, STEEL$" + +gUnknown_81BA5F2:: @ 81BA5F2 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GRASS, FIGHTING,\n" + .string " GROUND, STEEL\p" + .string " {EXTRA_TRIANGLE}: NORMAL, FIRE, POISON, FLYING$" + +gUnknown_81BA66F:: @ 81BA66F + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING, POISON\p" + .string " {EXTRA_TRIANGLE}: PSYCHIC, STEEL\p" + .string " {EXTRA_X}: DARK$" + +gUnknown_81BA6C9:: @ 81BA6C9 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: BUG, GHOST, DARK\p" + .string " {EXTRA_TRIANGLE}: FIGHTING, PSYCHIC$" + +gUnknown_81BA71F:: @ 81BA71F + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: NORMAL, ICE, ROCK, DARK, STEEL\p" + .string " {EXTRA_TRIANGLE}: POISON, FLYING, PSYCHIC, BUG\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BA796:: @ 81BA796 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FLYING, PSYCHIC\p" + .string " {EXTRA_TRIANGLE}: BUG, ROCK, DARK$" + +gUnknown_81BA7E9:: @ 81BA7E9 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, GRASS, POISON, FLYING,\n" + .string " BUG, DRAGON, STEEL$" + +gUnknown_81BA862:: @ 81BA862 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ICE, POISON, FLYING, BUG\p" + .string " {EXTRA_TRIANGLE}: WATER, ELECTRIC, GRASS, GROUND$" + +gUnknown_81BA8D3:: @ 81BA8D3 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: PSYCHIC, GHOST\p" + .string " {EXTRA_TRIANGLE}: DARK, STEEL\p" + .string " {EXTRA_X}: NORMAL$" + +gUnknown_81BA92A:: @ 81BA92A + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GHOST, DARK\p" + .string " {EXTRA_TRIANGLE}: POISON, BUG\p" + .string " {EXTRA_X}: NORMAL, FIGHTING$" + +gUnknown_81BA98D:: @ 81BA98D + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, GROUND, FLYING, DRAGON\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ICE, STEEL$" + +gUnknown_81BA9F1:: @ 81BA9F1 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FIGHTING, ROCK, STEEL\p" + .string " {EXTRA_TRIANGLE}: ICE$" + +gUnknown_81BAA44:: @ 81BAA44 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, ELECTRIC, POISON, ROCK,\n" + .string " STEEL\p" + .string " {EXTRA_TRIANGLE}: GRASS, BUG\n" + .string " {EXTRA_X}: FLYING$" + +gUnknown_81BAAB6:: @ 81BAAB6 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GRASS, ICE\p" + .string " {EXTRA_TRIANGLE}: POISON, ROCK\p" + .string " {EXTRA_X}: ELECTRIC$" + +gUnknown_81BAB18:: @ 81BAB18 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, FLYING\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, GRASS, DRAGON\p" + .string " {EXTRA_X}: GROUND$" + +gUnknown_81BAB7A:: @ 81BAB7A + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GROUND\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, FLYING, STEEL$" + +gUnknown_81BABCC:: @ 81BABCC + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS\p" + .string " {EXTRA_TRIANGLE}: POISON, GROUND, ROCK, GHOST\p" + .string " {EXTRA_X}: STEEL$" + +gUnknown_81BAC29:: @ 81BAC29 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: GROUND, PSYCHIC\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, POISON, BUG$" + +gUnknown_81BAC89:: @ 81BAC89 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: DRAGON\p" + .string " {EXTRA_TRIANGLE}: STEEL$" + +gUnknown_81BACC4:: @ 81BACC4 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ICE, DRAGON\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ELECTRIC, GRASS$" + +gUnknown_81BAD20:: @ 81BAD20 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TRIANGLE}: ROCK, STEEL\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BAD60:: @ 81BAD60 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIGHTING\p" + .string " {EXTRA_X}: GHOST$" + +gUnknown_81BADA2:: @ 81BADA2 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: ICE, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ELECTRIC, STEEL$" + +gUnknown_81BADF7:: @ 81BADF7 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FIGHTING, GROUND\n" + .string " {EXTRA_TRIANGLE}: NORMAL, GRASS, ICE, FLYING,\l" + .string " PSYCHIC, BUG, ROCK, GHOST,\l" + .string " DRAGON, DARK, STEEL\l" + .string " {EXTRA_X}: POISON$" + +gUnknown_81BAEA8:: @ 81BAEA8 + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, FIGHTING, BUG\p" + .string " {EXTRA_TRIANGLE}: ELECTRIC, ROCK, STEEL$" + +gUnknown_81BAF01:: @ 81BAF01 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ELECTRIC, ICE, ROCK\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, BUG\p" + .string " {EXTRA_X}: GROUND$" + +gUnknown_81BAF6B:: @ 81BAF6B + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, ICE, BUG, STEEL\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ROCK, DRAGON$" + +gUnknown_81BAFCA:: @ 81BAFCA + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: WATER, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: FIRE, GRASS, ICE, BUG, STEEL$" + +gUnknown_81BB02E:: @ 81BB02E + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, GROUND, ROCK\p" + .string " {EXTRA_TRIANGLE}: WATER, GRASS, DRAGON$" + +gUnknown_81BB084:: @ 81BB084 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: ELECTRIC, GRASS\p" + .string " {EXTRA_TRIANGLE}: FIRE, WATER, ICE, STEEL$" + +gUnknown_81BB0DF:: @ 81BB0DF + .string "Effect on the opposing POKéMON:\p" + .string " {EXTRA_TARGET}: GRASS, PSYCHIC, DARK\p" + .string " {EXTRA_TRIANGLE}: FIRE, FIGHTING, POISON,\n" + .string " FLYING, GHOST, STEEL$" + +gUnknown_81BB156:: @ 81BB156 + .string "Effect of foe's move on own POKéMON:\p" + .string " {EXTRA_TARGET}: FIRE, FLYING, ROCK\p" + .string " {EXTRA_TRIANGLE}: GRASS, FIGHTING, GROUND$" + diff --git a/graphics/help_system/unk_845BCB0.bin b/graphics/help_system/unk_845BCB0.bin Binary files differnew file mode 100644 index 000000000..b7ceb5080 --- /dev/null +++ b/graphics/help_system/unk_845BCB0.bin diff --git a/include/constants/flags.h b/include/constants/flags.h index 8ecac9769..eed83d7c6 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -68,6 +68,7 @@ #define FLAG_0x82F 0x82F #define FLAG_0x830 0x830 #define FLAG_0x834 0x834 +#define FLAG_0x83C 0x83C #define FLAG_0x83E 0x83E #define FLAG_0x841 0x841 #define FLAG_0x844 0x844 diff --git a/include/event_scripts.h b/include/event_scripts.h index 1762faf8e..d5ee57d56 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -772,4 +772,376 @@ extern const u8 gOakText_ConfirmRivalName[]; extern const u8 gOakText_RememberRivalName[]; extern const u8 gOakText_LegendAboutToUnfold[]; +// Help System +extern const u8 gUnknown_81B2DF8[]; +extern const u8 gUnknown_81B2E1C[]; +extern const u8 gUnknown_81B2E2E[]; +extern const u8 gUnknown_81B2E48[]; +extern const u8 gUnknown_81B2E58[]; +extern const u8 gUnknown_81B2E6A[]; +extern const u8 gUnknown_81B2E6F[]; +extern const u8 gUnknown_81B2E76[]; +extern const u8 gUnknown_81B2E88[]; +extern const u8 gUnknown_81B2EC8[]; +extern const u8 gUnknown_81B2F00[]; +extern const u8 gUnknown_81B2F43[]; +extern const u8 gUnknown_81B2F74[]; +extern const u8 gUnknown_81B2FA9[]; +extern const u8 gUnknown_81B2FC9[]; +extern const u8 gUnknown_81B301B[]; +extern const u8 gUnknown_81B3083[]; +extern const u8 gUnknown_81B30A9[]; +extern const u8 gUnknown_81B30C1[]; +extern const u8 gUnknown_81B30DC[]; +extern const u8 gUnknown_81B30FC[]; +extern const u8 gUnknown_81B311F[]; +extern const u8 gUnknown_81B3140[]; +extern const u8 gUnknown_81B314F[]; +extern const u8 gUnknown_81B3168[]; +extern const u8 gUnknown_81B3189[]; +extern const u8 gUnknown_81B31AE[]; +extern const u8 gUnknown_81B31D3[]; +extern const u8 gUnknown_81B31EC[]; +extern const u8 gUnknown_81B31FF[]; +extern const u8 gUnknown_81B3215[]; +extern const u8 gUnknown_81B3226[]; +extern const u8 gUnknown_81B3243[]; +extern const u8 gUnknown_81B3261[]; +extern const u8 gUnknown_81B3276[]; +extern const u8 gUnknown_81B3290[]; +extern const u8 gUnknown_81B32B6[]; +extern const u8 gUnknown_81B32CD[]; +extern const u8 gUnknown_81B32E3[]; +extern const u8 gUnknown_81B32F9[]; +extern const u8 gUnknown_81B330B[]; +extern const u8 gUnknown_81B332B[]; +extern const u8 gUnknown_81B3344[]; +extern const u8 gUnknown_81B335C[]; +extern const u8 gUnknown_81B3373[]; +extern const u8 gUnknown_81B338C[]; +extern const u8 gUnknown_81B33A6[]; +extern const u8 gUnknown_81B33CA[]; +extern const u8 gUnknown_81B33EA[]; +extern const u8 gUnknown_81B3402[]; +extern const u8 gUnknown_81B3427[]; +extern const u8 gUnknown_81B3440[]; +extern const u8 gUnknown_81B3457[]; +extern const u8 gUnknown_81B346F[]; +extern const u8 gUnknown_81B3481[]; +extern const u8 gUnknown_81B349B[]; +extern const u8 gUnknown_81B34B7[]; +extern const u8 gUnknown_81B34D6[]; +extern const u8 gUnknown_81B34F6[]; +extern const u8 gUnknown_81B3516[]; +extern const u8 gUnknown_81B3525[]; +extern const u8 gUnknown_81B35E6[]; +extern const u8 gUnknown_81B36EB[]; +extern const u8 gUnknown_81B379A[]; +extern const u8 gUnknown_81B3849[]; +extern const u8 gUnknown_81B3876[]; +extern const u8 gUnknown_81B3972[]; +extern const u8 gUnknown_81B3A51[]; +extern const u8 gUnknown_81B3ACC[]; +extern const u8 gUnknown_81B3BB6[]; +extern const u8 gUnknown_81B3C99[]; +extern const u8 gUnknown_81B3D1B[]; +extern const u8 gUnknown_81B3DE3[]; +extern const u8 gUnknown_81B3EBC[]; +extern const u8 gUnknown_81B3F7F[]; +extern const u8 gUnknown_81B406C[]; +extern const u8 gUnknown_81B410B[]; +extern const u8 gUnknown_81B41D7[]; +extern const u8 gUnknown_81B42B3[]; +extern const u8 gUnknown_81B439D[]; +extern const u8 gUnknown_81B4483[]; +extern const u8 gUnknown_81B457C[]; +extern const u8 gUnknown_81B4645[]; +extern const u8 gUnknown_81B470A[]; +extern const u8 gUnknown_81B47F0[]; +extern const u8 gUnknown_81B48C6[]; +extern const u8 gUnknown_81B497A[]; +extern const u8 gUnknown_81B4A72[]; +extern const u8 gUnknown_81B4B65[]; +extern const u8 gUnknown_81B4C54[]; +extern const u8 gUnknown_81B4D26[]; +extern const u8 gUnknown_81B4E0B[]; +extern const u8 gUnknown_81B4ED8[]; +extern const u8 gUnknown_81B4FB2[]; +extern const u8 gUnknown_81B4FFD[]; +extern const u8 gUnknown_81B50FF[]; +extern const u8 gUnknown_81B51B1[]; +extern const u8 gUnknown_81B5272[]; +extern const u8 gUnknown_81B5325[]; +extern const u8 gUnknown_81B5382[]; +extern const u8 gUnknown_81B547C[]; +extern const u8 gUnknown_81B54E1[]; +extern const u8 gUnknown_81B5589[]; +extern const u8 gUnknown_81B55F4[]; +extern const u8 gUnknown_81B56E3[]; +extern const u8 gUnknown_81B56F4[]; +extern const u8 gUnknown_81B5705[]; +extern const u8 gUnknown_81B5717[]; +extern const u8 gUnknown_81B5728[]; +extern const u8 gUnknown_81B5737[]; +extern const u8 gUnknown_81B5744[]; +extern const u8 gUnknown_81B5754[]; +extern const u8 gUnknown_81B5767[]; +extern const u8 gUnknown_81B577B[]; +extern const u8 gUnknown_81B5787[]; +extern const u8 gUnknown_81B5795[]; +extern const u8 gUnknown_81B57A5[]; +extern const u8 gUnknown_81B57B8[]; +extern const u8 gUnknown_81B57CF[]; +extern const u8 gUnknown_81B57DE[]; +extern const u8 gUnknown_81B57EE[]; +extern const u8 gUnknown_81B580D[]; +extern const u8 gUnknown_81B5824[]; +extern const u8 gUnknown_81B5834[]; +extern const u8 gUnknown_81B583F[]; +extern const u8 gUnknown_81B5850[]; +extern const u8 gUnknown_81B5863[]; +extern const u8 gUnknown_81B5875[]; +extern const u8 gUnknown_81B5884[]; +extern const u8 gUnknown_81B5893[]; +extern const u8 gUnknown_81B58A4[]; +extern const u8 gUnknown_81B58BC[]; +extern const u8 gUnknown_81B58D3[]; +extern const u8 gUnknown_81B58E5[]; +extern const u8 gUnknown_81B58FD[]; +extern const u8 gUnknown_81B590E[]; +extern const u8 gUnknown_81B591D[]; +extern const u8 gUnknown_81B592E[]; +extern const u8 gUnknown_81B593E[]; +extern const u8 gUnknown_81B5950[]; +extern const u8 gUnknown_81B595D[]; +extern const u8 gUnknown_81B5974[]; +extern const u8 gUnknown_81B5989[]; +extern const u8 gUnknown_81B59A7[]; +extern const u8 gUnknown_81B59BF[]; +extern const u8 gUnknown_81B59D6[]; +extern const u8 gUnknown_81B59E8[]; +extern const u8 gUnknown_81B59F5[]; +extern const u8 gUnknown_81B5A0D[]; +extern const u8 gUnknown_81B5A1B[]; +extern const u8 gUnknown_81B5A29[]; +extern const u8 gUnknown_81B5A37[]; +extern const u8 gUnknown_81B5A4D[]; +extern const u8 gUnknown_81B5B0C[]; +extern const u8 gUnknown_81B5B7D[]; +extern const u8 gUnknown_81B5C13[]; +extern const u8 gUnknown_81B5CDF[]; +extern const u8 gUnknown_81B5D87[]; +extern const u8 gUnknown_81B5E41[]; +extern const u8 gUnknown_81B5F10[]; +extern const u8 gUnknown_81B5FA6[]; +extern const u8 gUnknown_81B606C[]; +extern const u8 gUnknown_81B6140[]; +extern const u8 gUnknown_81B6203[]; +extern const u8 gUnknown_81B62E4[]; +extern const u8 gUnknown_81B6397[]; +extern const u8 gUnknown_81B6478[]; +extern const u8 gUnknown_81B6525[]; +extern const u8 gUnknown_81B65E7[]; +extern const u8 gUnknown_81B66BA[]; +extern const u8 gUnknown_81B678E[]; +extern const u8 gUnknown_81B6883[]; +extern const u8 gUnknown_81B68CD[]; +extern const u8 gUnknown_81B69B9[]; +extern const u8 gUnknown_81B6A9A[]; +extern const u8 gUnknown_81B6B6E[]; +extern const u8 gUnknown_81B6C4F[]; +extern const u8 gUnknown_81B6D4A[]; +extern const u8 gUnknown_81B6E02[]; +extern const u8 gUnknown_81B6EC1[]; +extern const u8 gUnknown_81B6FA8[]; +extern const u8 gUnknown_81B7075[]; +extern const u8 gUnknown_81B7108[]; +extern const u8 gUnknown_81B71EA[]; +extern const u8 gUnknown_81B723B[]; +extern const u8 gUnknown_81B7319[]; +extern const u8 gUnknown_81B73E8[]; +extern const u8 gUnknown_81B747E[]; +extern const u8 gUnknown_81B752C[]; +extern const u8 gUnknown_81B7611[]; +extern const u8 gUnknown_81B7692[]; +extern const u8 gUnknown_81B771E[]; +extern const u8 gUnknown_81B77DD[]; +extern const u8 gUnknown_81B7884[]; +extern const u8 gUnknown_81B7931[]; +extern const u8 gUnknown_81B79CB[]; +extern const u8 gUnknown_81B7A60[]; +extern const u8 gUnknown_81B7AEE[]; +extern const u8 gUnknown_81B7BBE[]; +extern const u8 gUnknown_81B7C57[]; +extern const u8 gUnknown_81B7CC1[]; +extern const u8 gUnknown_81B7CC4[]; +extern const u8 gUnknown_81B7CD9[]; +extern const u8 gUnknown_81B7CDF[]; +extern const u8 gUnknown_81B7CE6[]; +extern const u8 gUnknown_81B7CEE[]; +extern const u8 gUnknown_81B7CF6[]; +extern const u8 gUnknown_81B7CFE[]; +extern const u8 gUnknown_81B7D04[]; +extern const u8 gUnknown_81B7D12[]; +extern const u8 gUnknown_81B7D17[]; +extern const u8 gUnknown_81B7D1A[]; +extern const u8 gUnknown_81B7D1F[]; +extern const u8 gUnknown_81B7D27[]; +extern const u8 gUnknown_81B7D2D[]; +extern const u8 gUnknown_81B7D37[]; +extern const u8 gUnknown_81B7D3E[]; +extern const u8 gUnknown_81B7D45[]; +extern const u8 gUnknown_81B7D48[]; +extern const u8 gUnknown_81B7D4E[]; +extern const u8 gUnknown_81B7D57[]; +extern const u8 gUnknown_81B7D5B[]; +extern const u8 gUnknown_81B7D61[]; +extern const u8 gUnknown_81B7D6B[]; +extern const u8 gUnknown_81B7D76[]; +extern const u8 gUnknown_81B7D7E[]; +extern const u8 gUnknown_81B7D88[]; +extern const u8 gUnknown_81B7D8F[]; +extern const u8 gUnknown_81B7D9A[]; +extern const u8 gUnknown_81B7DA7[]; +extern const u8 gUnknown_81B7DB4[]; +extern const u8 gUnknown_81B7DBA[]; +extern const u8 gUnknown_81B7DC6[]; +extern const u8 gUnknown_81B7DCC[]; +extern const u8 gUnknown_81B7DD3[]; +extern const u8 gUnknown_81B7DD6[]; +extern const u8 gUnknown_81B7DD9[]; +extern const u8 gUnknown_81B7DE1[]; +extern const u8 gUnknown_81B7DEB[]; +extern const u8 gUnknown_81B7DFA[]; +extern const u8 gUnknown_81B7E02[]; +extern const u8 gUnknown_81B7E09[]; +extern const u8 gUnknown_81B7E0F[]; +extern const u8 gUnknown_81B7E16[]; +extern const u8 gUnknown_81B7F0A[]; +extern const u8 gUnknown_81B800A[]; +extern const u8 gUnknown_81B80EC[]; +extern const u8 gUnknown_81B81C2[]; +extern const u8 gUnknown_81B8256[]; +extern const u8 gUnknown_81B8348[]; +extern const u8 gUnknown_81B83EF[]; +extern const u8 gUnknown_81B847B[]; +extern const u8 gUnknown_81B8550[]; +extern const u8 gUnknown_81B8647[]; +extern const u8 gUnknown_81B86E2[]; +extern const u8 gUnknown_81B87B8[]; +extern const u8 gUnknown_81B8897[]; +extern const u8 gUnknown_81B8924[]; +extern const u8 gUnknown_81B8A04[]; +extern const u8 gUnknown_81B8A84[]; +extern const u8 gUnknown_81B8B62[]; +extern const u8 gUnknown_81B8C18[]; +extern const u8 gUnknown_81B8C94[]; +extern const u8 gUnknown_81B8D1D[]; +extern const u8 gUnknown_81B8DD4[]; +extern const u8 gUnknown_81B8E67[]; +extern const u8 gUnknown_81B8F4D[]; +extern const u8 gUnknown_81B901B[]; +extern const u8 gUnknown_81B90A7[]; +extern const u8 gUnknown_81B90E8[]; +extern const u8 gUnknown_81B9170[]; +extern const u8 gUnknown_81B91C2[]; +extern const u8 gUnknown_81B91F9[]; +extern const u8 gUnknown_81B92B8[]; +extern const u8 gUnknown_81B92ED[]; +extern const u8 gUnknown_81B93D8[]; +extern const u8 gUnknown_81B9439[]; +extern const u8 gUnknown_81B9497[]; +extern const u8 gUnknown_81B9560[]; +extern const u8 gUnknown_81B9656[]; +extern const u8 gUnknown_81B9749[]; +extern const u8 gUnknown_81B984F[]; +extern const u8 gUnknown_81B991C[]; +extern const u8 gUnknown_81B99C4[]; +extern const u8 gUnknown_81B9AA2[]; +extern const u8 gUnknown_81B9B2F[]; +extern const u8 gUnknown_81B9BB7[]; +extern const u8 gUnknown_81B9BC7[]; +extern const u8 gUnknown_81B9BD0[]; +extern const u8 gUnknown_81B9BE1[]; +extern const u8 gUnknown_81B9BF5[]; +extern const u8 gUnknown_81B9C09[]; +extern const u8 gUnknown_81B9C1D[]; +extern const u8 gUnknown_81B9C2F[]; +extern const u8 gUnknown_81B9D04[]; +extern const u8 gUnknown_81B9DC5[]; +extern const u8 gUnknown_81B9E75[]; +extern const u8 gUnknown_81B9F09[]; +extern const u8 gUnknown_81B9FCE[]; +extern const u8 gUnknown_81BA027[]; +extern const u8 gUnknown_81BA0F1[]; +extern const u8 gUnknown_81BA10D[]; +extern const u8 gUnknown_81BA121[]; +extern const u8 gUnknown_81BA138[]; +extern const u8 gUnknown_81BA14C[]; +extern const u8 gUnknown_81BA163[]; +extern const u8 gUnknown_81BA17A[]; +extern const u8 gUnknown_81BA194[]; +extern const u8 gUnknown_81BA1AC[]; +extern const u8 gUnknown_81BA1C7[]; +extern const u8 gUnknown_81BA1DC[]; +extern const u8 gUnknown_81BA1F4[]; +extern const u8 gUnknown_81BA209[]; +extern const u8 gUnknown_81BA221[]; +extern const u8 gUnknown_81BA234[]; +extern const u8 gUnknown_81BA24A[]; +extern const u8 gUnknown_81BA260[]; +extern const u8 gUnknown_81BA279[]; +extern const u8 gUnknown_81BA291[]; +extern const u8 gUnknown_81BA2AC[]; +extern const u8 gUnknown_81BA2C2[]; +extern const u8 gUnknown_81BA2DB[]; +extern const u8 gUnknown_81BA2F1[]; +extern const u8 gUnknown_81BA30A[]; +extern const u8 gUnknown_81BA320[]; +extern const u8 gUnknown_81BA339[]; +extern const u8 gUnknown_81BA34E[]; +extern const u8 gUnknown_81BA366[]; +extern const u8 gUnknown_81BA37C[]; +extern const u8 gUnknown_81BA395[]; +extern const u8 gUnknown_81BA3A9[]; +extern const u8 gUnknown_81BA3C0[]; +extern const u8 gUnknown_81BA3D5[]; +extern const u8 gUnknown_81BA3ED[]; +extern const u8 gUnknown_81BA400[]; +extern const u8 gUnknown_81BA416[]; +extern const u8 gUnknown_81BA4E6[]; +extern const u8 gUnknown_81BA539[]; +extern const u8 gUnknown_81BA595[]; +extern const u8 gUnknown_81BA5F2[]; +extern const u8 gUnknown_81BA66F[]; +extern const u8 gUnknown_81BA6C9[]; +extern const u8 gUnknown_81BA71F[]; +extern const u8 gUnknown_81BA796[]; +extern const u8 gUnknown_81BA7E9[]; +extern const u8 gUnknown_81BA862[]; +extern const u8 gUnknown_81BA8D3[]; +extern const u8 gUnknown_81BA92A[]; +extern const u8 gUnknown_81BA98D[]; +extern const u8 gUnknown_81BA9F1[]; +extern const u8 gUnknown_81BAA44[]; +extern const u8 gUnknown_81BAAB6[]; +extern const u8 gUnknown_81BAB18[]; +extern const u8 gUnknown_81BAB7A[]; +extern const u8 gUnknown_81BABCC[]; +extern const u8 gUnknown_81BAC29[]; +extern const u8 gUnknown_81BAC89[]; +extern const u8 gUnknown_81BACC4[]; +extern const u8 gUnknown_81BAD20[]; +extern const u8 gUnknown_81BAD60[]; +extern const u8 gUnknown_81BADA2[]; +extern const u8 gUnknown_81BADF7[]; +extern const u8 gUnknown_81BAEA8[]; +extern const u8 gUnknown_81BAF01[]; +extern const u8 gUnknown_81BAF6B[]; +extern const u8 gUnknown_81BAFCA[]; +extern const u8 gUnknown_81BB02E[]; +extern const u8 gUnknown_81BB084[]; +extern const u8 gUnknown_81BB0DF[]; +extern const u8 gUnknown_81BB156[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/help_system.h b/include/help_system.h index 97acec45e..1f8b7bbbb 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -2,12 +2,63 @@ #define GUARD_HELP_SYSTEM_H #include "global.h" +#include "list_menu.h" +struct HelpSystemStruct_203F190_sub +{ + struct ListMenuItem * field_00; + u16 field_04; + u16 field_06; + u8 field_08; + u8 field_09; +}; + +struct HelpSystemStruct_203F190 +{ + struct HelpSystemStruct_203F190_sub sub; + u8 field_0C; + u8 field_0D; + u8 field_0E; + u8 filler_10[0xC]; +}; + +extern struct HelpSystemStruct_203F190 gUnknown_203F190; +extern struct ListMenuItem gUnknown_203F1AC[]; extern bool8 gUnknown_3005ECC; +extern u8 gUnknown_203F175; -void sub_812B1E0(u16); +void sub_812B1E0(u8); void sub_812B484(void); +void sub_812B4B8(void); void HelpSystem_SetSomeVariable2(u8); void sub_812B478(void); +bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +void sub_813C64C(struct HelpSystemStruct_203F190 *, u8, u8); +void sub_813C4CC(const u8 *, u8, u8); +void sub_813BDA4(u8); +void sub_813BD5C(u8); +void sub_813BDE8(u8); +void sub_813BFC0(u8); +void sub_813BE78(u8); +s32 sub_813C690(void); +void sub_813C75C(void); +void sub_813C684(u8); +void sub_813C004(u8, u8); +void sub_813C50C(const u8 *a0, const u8 *a1); +void sub_813BEE4(u8); +void sub_813C624(void); +void sub_813C5FC(void); +void sub_813C488(const u8 *str); +void sub_813C584(const u8 *str); +void sub_813BE30(u8); #endif //GUARD_HELP_SYSTEM_H diff --git a/include/list_menu.h b/include/list_menu.h index 79dc3ec3f..6116ee39a 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -2,6 +2,7 @@ #define GUARD_LIST_MENU_H #include "global.h" +#include "window.h" // Exported type declarations diff --git a/include/overworld.h b/include/overworld.h index a3fe1161f..b8cf58b4d 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -111,5 +111,6 @@ void Overworld_FadeOutMapMusic(void); void sub_805671C(void); void sub_8055DC4(void); bool8 sub_8055FC4(void); +bool8 is_light_level_8_or_9(u8 mapType); #endif //GUARD_ROM4_H diff --git a/include/save_location.h b/include/save_location.h index 69b39ea53..cd499643e 100644 --- a/include/save_location.h +++ b/include/save_location.h @@ -7,5 +7,6 @@ bool32 sub_81AFCEC(void); void TrySetMapSaveWarpStatus(void); void sub_81AFDA0(void); void sub_81AFDD0(void); +bool32 IsCurMapPokeCenter(void); #endif // GUARD_SAVE_LOCATION_H diff --git a/include/strings.h b/include/strings.h index edc5136f8..6cc6b93c1 100644 --- a/include/strings.h +++ b/include/strings.h @@ -136,4 +136,10 @@ extern const u8 gTeachyTvText_CatchingScript2[]; extern const u8 gTeachyTvText_TMsScript2[]; extern const u8 gTeachyTvText_RegisterScript2[]; +// help_system_812B1E0 +extern const u8 gUnknown_841DFA5[]; +extern const u8 gUnknown_841DFAC[]; +extern const u8 gUnknown_841DFBE[]; +extern const u8 gUnknown_841DFC9[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index d264549b7..5abc25e98 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -239,7 +239,7 @@ SECTIONS { asm/pokemon_special_anim.o(.text); asm/party_menu.o(.text); asm/union_room_chat.o(.text); - asm/help_system_812B1E0.o(.text); + src/help_system_812B1E0.o(.text); src/quest_log_battle.o(.text); src/fame_checker.o(.text); src/menu2.o(.text); @@ -419,6 +419,7 @@ SECTIONS { data/data_83FECCC.o(.rodata.8453F6C); src/quest_log.o(.rodata); data/data_83FECCC.o(.rodata.8456C74); + src/help_system_812B1E0.o(.rodata); src/fame_checker.o(.rodata); src/menu2.o(.rodata); src/oak_speech.o(.rodata); diff --git a/src/fame_checker.c b/src/fame_checker.c index b2ee17c93..b3988d156 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -127,9 +127,9 @@ extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_ListMenuCursor[]; extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; extern const u8 gFameCheckerText_ClearTextbox[]; -extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" -extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" +extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" extern const u8 gFameCheckerOakName[]; // "OAK$" extern const u8 gFameCheckerDaisyName[]; // "DAISY$" extern const u8 gFameCheckerBillName[]; // "BILL$" diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c new file mode 100644 index 000000000..1356db7d0 --- /dev/null +++ b/src/help_system_812B1E0.c @@ -0,0 +1,1580 @@ +#include "global.h" +#include "event_data.h" +#include "event_scripts.h" +#include "field_player_avatar.h" +#include "help_system.h" +#include "item.h" +#include "link.h" +#include "overworld.h" +#include "pokedex.h" +#include "quest_log.h" +#include "save.h" +#include "save_location.h" +#include "sound.h" +#include "strings.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/songs.h" + +static EWRAM_DATA u16 gUnknown_203B0EC = 0; +static EWRAM_DATA u8 gUnknown_203B0EE = 0; + +u8 gUnknown_3005E9C[4]; +u16 gUnknown_3005EA0; + +static bool32 sub_812B27C(const u16 * mapIdxs); +static void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +static void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); +static bool8 sub_812B754(void); +static bool8 sub_812B780(u8); +static bool8 sub_812BB10(void); + +static void sub_812BF5C(void); +static void sub_812BF74(const u8 *); +static void sub_812BF94(struct HelpSystemStruct_203F190 * a0); +static void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1); + +static const u8 *const gUnknown_845B080[] = { + gUnknown_81B2DF8, + gUnknown_81B2E1C, + gUnknown_81B2E2E, + gUnknown_81B2E48, + gUnknown_81B2E58, + gUnknown_81B2E6A +}; + +static const u8 *const gUnknown_845B098[] = { + gUnknown_81B2E88, + gUnknown_81B2EC8, + gUnknown_81B2F00, + gUnknown_81B2F43, + gUnknown_81B2F74, + gUnknown_81B2FA9 +}; + +static const u8 *const gUnknown_845B0B0[] = { + NULL, + gUnknown_81B3083, + gUnknown_81B30A9, + gUnknown_81B30C1, + gUnknown_81B30DC, + gUnknown_81B30FC, + gUnknown_81B311F, + gUnknown_81B3140, + gUnknown_81B314F, + gUnknown_81B3168, + gUnknown_81B3189, + gUnknown_81B31AE, + gUnknown_81B31D3, + gUnknown_81B31EC, + gUnknown_81B31FF, + gUnknown_81B3215, + gUnknown_81B3226, + gUnknown_81B3243, + gUnknown_81B3261, + gUnknown_81B3276, + gUnknown_81B3290, + gUnknown_81B32B6, + gUnknown_81B32CD, + gUnknown_81B32E3, + gUnknown_81B32F9, + gUnknown_81B330B, + gUnknown_81B332B, + gUnknown_81B3344, + gUnknown_81B335C, + gUnknown_81B3373, + gUnknown_81B338C, + gUnknown_81B33A6, + gUnknown_81B33CA, + gUnknown_81B33EA, + gUnknown_81B3402, + gUnknown_81B3427, + gUnknown_81B3440, + gUnknown_81B3457, + gUnknown_81B346F, + gUnknown_81B3481, + gUnknown_81B349B, + gUnknown_81B34B7, + gUnknown_81B34D6, + gUnknown_81B34F6, + gUnknown_81B3516 +}; + +static const u8 *const gUnknown_845B164[] = { + NULL, + gUnknown_81B3525, + gUnknown_81B35E6, + gUnknown_81B36EB, + gUnknown_81B379A, + gUnknown_81B3849, + gUnknown_81B3876, + gUnknown_81B3972, + gUnknown_81B3A51, + gUnknown_81B3ACC, + gUnknown_81B3BB6, + gUnknown_81B3C99, + gUnknown_81B3D1B, + gUnknown_81B3DE3, + gUnknown_81B3EBC, + gUnknown_81B3F7F, + gUnknown_81B406C, + gUnknown_81B410B, + gUnknown_81B41D7, + gUnknown_81B42B3, + gUnknown_81B439D, + gUnknown_81B4483, + gUnknown_81B457C, + gUnknown_81B4645, + gUnknown_81B470A, + gUnknown_81B47F0, + gUnknown_81B48C6, + gUnknown_81B497A, + gUnknown_81B4A72, + gUnknown_81B4B65, + gUnknown_81B4C54, + gUnknown_81B4D26, + gUnknown_81B4E0B, + gUnknown_81B4ED8, + gUnknown_81B4FB2, + gUnknown_81B4FFD, + gUnknown_81B50FF, + gUnknown_81B51B1, + gUnknown_81B5272, + gUnknown_81B5325, + gUnknown_81B5382, + gUnknown_81B547C, + gUnknown_81B54E1, + gUnknown_81B5589, + gUnknown_81B55F4 +}; + +static const u8 *const gUnknown_845B218[] = { + NULL, + gUnknown_81B56E3, + gUnknown_81B56F4, + gUnknown_81B5705, + gUnknown_81B5717, + gUnknown_81B5728, + gUnknown_81B5737, + gUnknown_81B5744, + gUnknown_81B5754, + gUnknown_81B5767, + gUnknown_81B577B, + gUnknown_81B5787, + gUnknown_81B5795, + gUnknown_81B57A5, + gUnknown_81B57B8, + gUnknown_81B57CF, + gUnknown_81B57DE, + gUnknown_81B57EE, + gUnknown_81B580D, + gUnknown_81B5824, + gUnknown_81B5834, + gUnknown_81B583F, + gUnknown_81B5850, + gUnknown_81B5863, + gUnknown_81B5875, + gUnknown_81B5884, + gUnknown_81B5893, + gUnknown_81B58A4, + gUnknown_81B58BC, + gUnknown_81B58D3, + gUnknown_81B58E5, + gUnknown_81B58FD, + gUnknown_81B590E, + gUnknown_81B591D, + gUnknown_81B592E, + gUnknown_81B593E, + gUnknown_81B5950, + gUnknown_81B595D, + gUnknown_81B5974, + gUnknown_81B5989, + gUnknown_81B59A7, + gUnknown_81B59BF, + gUnknown_81B59D6, + gUnknown_81B59E8, + gUnknown_81B59F5, + gUnknown_81B5A0D, + gUnknown_81B5A1B, + gUnknown_81B5A29, + gUnknown_81B5A37 +}; + +static const u8 *const gUnknown_845B2DC[] = { + NULL, + gUnknown_81B5A4D, + gUnknown_81B5B0C, + gUnknown_81B5B7D, + gUnknown_81B5C13, + gUnknown_81B5CDF, + gUnknown_81B5D87, + gUnknown_81B5E41, + gUnknown_81B5F10, + gUnknown_81B5FA6, + gUnknown_81B606C, + gUnknown_81B6140, + gUnknown_81B6203, + gUnknown_81B62E4, + gUnknown_81B6397, + gUnknown_81B6478, + gUnknown_81B6525, + gUnknown_81B65E7, + gUnknown_81B66BA, + gUnknown_81B678E, + gUnknown_81B6883, + gUnknown_81B68CD, + gUnknown_81B69B9, + gUnknown_81B6A9A, + gUnknown_81B6B6E, + gUnknown_81B6C4F, + gUnknown_81B6D4A, + gUnknown_81B6E02, + gUnknown_81B6EC1, + gUnknown_81B6FA8, + gUnknown_81B7075, + gUnknown_81B7108, + gUnknown_81B71EA, + gUnknown_81B723B, + gUnknown_81B7319, + gUnknown_81B73E8, + gUnknown_81B747E, + gUnknown_81B752C, + gUnknown_81B7611, + gUnknown_81B7692, + gUnknown_81B771E, + gUnknown_81B77DD, + gUnknown_81B7884, + gUnknown_81B7931, + gUnknown_81B79CB, + gUnknown_81B7A60, + gUnknown_81B7AEE, + gUnknown_81B7BBE, + gUnknown_81B7C57 +}; + +static const u8 *const gUnknown_845B3A0[] = { + NULL, + gUnknown_81B7CC1, + gUnknown_81B7CC4, + gUnknown_81B7CD9, + gUnknown_81B7CDF, + gUnknown_81B7CE6, + gUnknown_81B7CEE, + gUnknown_81B7CF6, + gUnknown_81B7CFE, + gUnknown_81B7D04, + gUnknown_81B7D12, + gUnknown_81B7D17, + gUnknown_81B7D1A, + gUnknown_81B7D1F, + gUnknown_81B7D27, + gUnknown_81B7D2D, + gUnknown_81B7D37, + gUnknown_81B7D3E, + gUnknown_81B7D45, + gUnknown_81B7D48, + gUnknown_81B7D4E, + gUnknown_81B7D57, + gUnknown_81B7D5B, + gUnknown_81B7D61, + gUnknown_81B7D6B, + gUnknown_81B7D76, + gUnknown_81B7D7E, + gUnknown_81B7D88, + gUnknown_81B7D8F, + gUnknown_81B7D9A, + gUnknown_81B7DA7, + gUnknown_81B7DB4, + gUnknown_81B7DBA, + gUnknown_81B7DC6, + gUnknown_81B7DCC, + gUnknown_81B7DD3, + gUnknown_81B7DD6, + gUnknown_81B7DD9, + gUnknown_81B7DE1, + gUnknown_81B7DEB, + gUnknown_81B7DFA, + gUnknown_81B7E02, + gUnknown_81B7E09, + gUnknown_81B7E0F +}; + +static const u8 *const gUnknown_845B450[] = { + NULL, + gUnknown_81B7E16, + gUnknown_81B7F0A, + gUnknown_81B800A, + gUnknown_81B80EC, + gUnknown_81B81C2, + gUnknown_81B8256, + gUnknown_81B8348, + gUnknown_81B83EF, + gUnknown_81B847B, + gUnknown_81B8550, + gUnknown_81B8647, + gUnknown_81B86E2, + gUnknown_81B87B8, + gUnknown_81B8897, + gUnknown_81B8924, + gUnknown_81B8A04, + gUnknown_81B8A84, + gUnknown_81B8B62, + gUnknown_81B8C18, + gUnknown_81B8C94, + gUnknown_81B8D1D, + gUnknown_81B8DD4, + gUnknown_81B8E67, + gUnknown_81B8F4D, + gUnknown_81B901B, + gUnknown_81B90A7, + gUnknown_81B90E8, + gUnknown_81B9170, + gUnknown_81B91C2, + gUnknown_81B91F9, + gUnknown_81B92B8, + gUnknown_81B92ED, + gUnknown_81B93D8, + gUnknown_81B9439, + gUnknown_81B9497, + gUnknown_81B9560, + gUnknown_81B9656, + gUnknown_81B9749, + gUnknown_81B984F, + gUnknown_81B991C, + gUnknown_81B99C4, + gUnknown_81B9AA2, + gUnknown_81B9B2F +}; + +static const u8 *const gUnknown_845B500[] = { + NULL, + gUnknown_81B9BB7, + gUnknown_81B9BC7, + gUnknown_81B9BD0, + gUnknown_81B9BE1, + gUnknown_81B9BF5, + gUnknown_81B9C09, + gUnknown_81B9C1D +}; + +static const u8 *const gUnknown_845B520[] = { + NULL, + gUnknown_81B9C2F, + gUnknown_81B9D04, + gUnknown_81B9DC5, + gUnknown_81B9E75, + gUnknown_81B9F09, + gUnknown_81B9FCE, + gUnknown_81BA027 +}; + +static const u8 *const gUnknown_845B540[] = { + NULL, + gUnknown_81BA0F1, + gUnknown_81BA10D, + gUnknown_81BA121, + gUnknown_81BA138, + gUnknown_81BA14C, + gUnknown_81BA163, + gUnknown_81BA17A, + gUnknown_81BA194, + gUnknown_81BA1AC, + gUnknown_81BA1C7, + gUnknown_81BA1DC, + gUnknown_81BA1F4, + gUnknown_81BA209, + gUnknown_81BA221, + gUnknown_81BA234, + gUnknown_81BA24A, + gUnknown_81BA260, + gUnknown_81BA279, + gUnknown_81BA291, + gUnknown_81BA2AC, + gUnknown_81BA2C2, + gUnknown_81BA2DB, + gUnknown_81BA2F1, + gUnknown_81BA30A, + gUnknown_81BA320, + gUnknown_81BA339, + gUnknown_81BA34E, + gUnknown_81BA366, + gUnknown_81BA37C, + gUnknown_81BA395, + gUnknown_81BA3A9, + gUnknown_81BA3C0, + gUnknown_81BA3D5, + gUnknown_81BA3ED, + gUnknown_81BA400 +}; + +static const u8 *const gUnknown_845B5D0[] = { + NULL, + gUnknown_81BA416, + gUnknown_81BA4E6, + gUnknown_81BA539, + gUnknown_81BA595, + gUnknown_81BA5F2, + gUnknown_81BA66F, + gUnknown_81BA6C9, + gUnknown_81BA71F, + gUnknown_81BA796, + gUnknown_81BA7E9, + gUnknown_81BA862, + gUnknown_81BA8D3, + gUnknown_81BA92A, + gUnknown_81BA98D, + gUnknown_81BA9F1, + gUnknown_81BAA44, + gUnknown_81BAAB6, + gUnknown_81BAB18, + gUnknown_81BAB7A, + gUnknown_81BABCC, + gUnknown_81BAC29, + gUnknown_81BAC89, + gUnknown_81BACC4, + gUnknown_81BAD20, + gUnknown_81BAD60, + gUnknown_81BADA2, + gUnknown_81BADF7, + gUnknown_81BAEA8, + gUnknown_81BAF01, + gUnknown_81BAF6B, + gUnknown_81BAFCA, + gUnknown_81BB02E, + gUnknown_81BB084, + gUnknown_81BB0DF, + gUnknown_81BB156 +}; + + +static const u8 gUnknown_845B660[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B664[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B668[] = { + 0x13, 0xff +}; + +static const u8 gUnknown_845B66A[] = { + 0x01, 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B66E[] = { + 0x01, 0x25, 0xff +}; + +static const u8 gUnknown_845B671[] = { + 0x02, 0x03, 0x04, 0x05, 0x11, 0xff +}; + +static const u8 gUnknown_845B677[] = { + 0x09, 0x01, 0xff +}; + +static const u8 gUnknown_845B67A[] = { + 0x02, 0x03, 0xff +}; + +static const u8 gUnknown_845B67D[] = { + 0x09, 0x0a, 0x0b, 0x11, 0x0c, 0x10, 0xff +}; + +static const u8 gUnknown_845B684[] = { + 0x09, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x02, 0x0d, 0xff +}; + +static const u8 gUnknown_845B68E[] = { + 0x09, 0x03, 0x0a, 0x0f, 0x12, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B696[] = { + 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x12, 0xff +}; + +static const u8 gUnknown_845B6A1[] = { + 0x16, 0x17, 0x18, 0xff +}; + +static const u8 gUnknown_845B6A5[] = { + 0x0a, 0xff +}; + +static const u8 gUnknown_845B6A7[] = { + 0x11, 0x0e, 0x19, 0x1a, 0x1b, 0xff +}; + +static const u8 gUnknown_845B6AD[] = { + 0x0a, 0xff +}; + +static const u8 gUnknown_845B6AF[] = { + 0x0b, 0xff +}; + +static const u8 gUnknown_845B6B1[] = { + 0x2b, 0x19, 0x1a, 0xff +}; + +static const u8 gUnknown_845B6B5[] = { + 0x0c, 0xff +}; + +static const u8 gUnknown_845B6B7[] = { + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0xff +}; + +static const u8 gUnknown_845B6BF[] = { + 0x02, 0x03, 0x04, 0xff +}; + +static const u8 gUnknown_845B6C3[] = { + 0x01, 0x02, 0x03, 0x07, 0xff +}; + +static const u8 gUnknown_845B6C8[] = { + 0x02, 0x04, 0x05, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B6CE[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B6E2[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff +}; + +static const u8 gUnknown_845B6E9[] = { + 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B6F2[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0x14, 0xff +}; + +static const u8 gUnknown_845B707[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x28, 0xff +}; + +static const u8 gUnknown_845B70E[] = { + 0x03, 0x07, 0x04, 0x05, 0x06, 0xff +}; + +static const u8 gUnknown_845B714[] = { + 0x02, 0x05, 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B71D[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B731[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x0c, 0x0e, 0x16, 0x17, 0x18, 0x15, 0xff +}; + +static const u8 gUnknown_845B73D[] = { + 0x06, 0x0a, 0x23, 0x24, 0x09, 0x25, 0xff +}; + +static const u8 gUnknown_845B744[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B758[] = { + 0x09, 0x01, 0x02, 0x03, 0x0a, 0x15, 0xff +}; + +static const u8 gUnknown_845B75F[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B783[] = { + 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B7A7[] = { + 0x1f, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x2c, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B7BB[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B7C4[] = { + 0x02, 0x0a, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x17, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B7E8[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B7F1[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0x28, 0xff +}; + +static const u8 gUnknown_845B7FB[] = { + 0x0a, 0x07, 0x0d, 0x27, 0x08, 0x0b, 0x21, 0x23, 0x24, 0x2c, 0x09, 0x0e, 0x16, 0x0f, 0x10, 0x11, 0x1a, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B81A[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B823[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B82C[] = { + 0x07, 0x27, 0x08, 0x2c, 0x15, 0x1f, 0x20, 0x12, 0x13, 0x14, 0x18, 0x19, 0x1b, 0x1e, 0x1c, 0x28, 0x25, 0xff +}; + +static const u8 gUnknown_845B83E[] = { + 0x1f, 0x01, 0x02, 0x06, 0x0a, 0x0b, 0x0c, 0x11, 0xff +}; + +static const u8 gUnknown_845B847[] = { + 0x09, 0x01, 0x02, 0x0a, 0x0b, 0x0c, 0x0d, 0x15, 0xff +}; + +static const u8 gUnknown_845B850[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x15, 0x17, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B85D[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x09, 0x2b, 0xff +}; + +static const u8 gUnknown_845B866[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B878[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B89C[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B8A7[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff +}; + +static const u8 gUnknown_845B8AF[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B8C1[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B8E5[] = { + 0x0f, 0x1b, 0x1d, 0x11, 0x12, 0x16, 0x1f, 0x20, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B8F0[] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x07, 0x2b, 0xff +}; + +static const u8 gUnknown_845B8F8[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0x27, 0x15, 0xff +}; + +static const u8 gUnknown_845B90A[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B92E[] = { + 0x29, 0x2a, 0x2b, 0xff +}; + +static const u8 gUnknown_845B932[] = { + 0x2d, 0x2e, 0x2f, 0x2b, 0xff +}; + +static const u8 gUnknown_845B937[] = { + 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0d, 0x0f, 0x12, 0x13, 0x14, 0xff +}; + +static const u8 gUnknown_845B947[] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff +}; + +static const u8 gUnknown_845B96B[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B978[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B985[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B992[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B99F[] = { + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x30, 0xff +}; + +static const u8 gUnknown_845B9AC[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9B2[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9B8[] = { + 0x26, 0x27, 0x28, 0x29, 0x2a, 0xff +}; + +static const u8 gUnknown_845B9BE[] = { + 0x09, 0x01, 0x02, 0x03, 0x23, 0x25, 0x24, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x27, 0x15, 0x26, 0x16, 0x17, 0x18, 0x1a, 0x0e, 0x1b, 0xff +}; + +static const u8 *const gUnknown_845B9E0[] = { + NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, gUnknown_845B660, NULL, + NULL, NULL, NULL, gUnknown_845B664, NULL, + NULL, gUnknown_845B668, NULL, gUnknown_845B66A, NULL, + NULL, gUnknown_845B66E, NULL, NULL, NULL, + NULL, gUnknown_845B671, gUnknown_845B677, NULL, NULL, + NULL, gUnknown_845B67A, gUnknown_845B67D, NULL, NULL, + NULL, NULL, gUnknown_845B684, NULL, NULL, + NULL, NULL, gUnknown_845B68E, NULL, NULL, + NULL, gUnknown_845B696, gUnknown_845B6A1, NULL, NULL, + NULL, gUnknown_845B6A5, gUnknown_845B6A7, NULL, NULL, + NULL, gUnknown_845B6AD, NULL, NULL, NULL, + NULL, gUnknown_845B6AF, gUnknown_845B6B1, NULL, NULL, + NULL, gUnknown_845B6B5, gUnknown_845B6B7, NULL, NULL, + gUnknown_845B6BF, NULL, NULL, gUnknown_845B6C3, NULL, + gUnknown_845B6C8, gUnknown_845B6CE, gUnknown_845B6E2, NULL, NULL, + gUnknown_845B6E9, gUnknown_845B6F2, gUnknown_845B707, gUnknown_845B70E, NULL, + gUnknown_845B714, gUnknown_845B71D, gUnknown_845B731, NULL, NULL, + gUnknown_845B73D, gUnknown_845B744, gUnknown_845B758, NULL, gUnknown_845B75F, + gUnknown_845B783, gUnknown_845B7A7, gUnknown_845B7BB, NULL, NULL, + gUnknown_845B7C4, gUnknown_845B7E8, gUnknown_845B7F1, NULL, NULL, + gUnknown_845B7FB, gUnknown_845B81A, gUnknown_845B823, NULL, NULL, + gUnknown_845B82C, gUnknown_845B83E, gUnknown_845B847, NULL, NULL, + gUnknown_845B850, gUnknown_845B85D, gUnknown_845B866, NULL, gUnknown_845B878, + gUnknown_845B89C, gUnknown_845B8A7, gUnknown_845B8AF, NULL, gUnknown_845B8C1, + gUnknown_845B8E5, gUnknown_845B8F0, gUnknown_845B8F8, NULL, gUnknown_845B90A, + gUnknown_845B92E, gUnknown_845B932, gUnknown_845B937, NULL, gUnknown_845B947, + NULL, gUnknown_845B96B, NULL, NULL, NULL, + NULL, gUnknown_845B978, NULL, NULL, NULL, + NULL, gUnknown_845B985, NULL, NULL, NULL, + NULL, gUnknown_845B992, NULL, NULL, NULL, + NULL, gUnknown_845B99F, NULL, NULL, NULL, + NULL, gUnknown_845B9AC, NULL, NULL, NULL, + NULL, gUnknown_845B9B2, NULL, NULL, NULL, + NULL, gUnknown_845B9B8, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL +}; + +static const u16 unref_845BCB0[] = INCBIN_U16("graphics/help_system/unk_845BCB0.bin"); + +static const u8 gUnknown_845C4B0[] = { + 3, 0, 1, 2, 4, 5 +}; + +static const u8 gUnknown_845C4B6[][6] = { + {0, 0, 0, 0, 0, 1}, + {0, 0, 0, 1, 0, 1}, + {0, 0, 0, 1, 0, 1}, + {0, 1, 0, 1, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 1}, + {0, 0, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1}, + {1, 0, 0, 1, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 1, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 0, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {1, 1, 1, 0, 1, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 1, 0, 0, 0, 1}, + {0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0} +}; + +static const u16 gUnknown_845C594[] = { + MAP_VIRIDIAN_CITY_MART, + MAP_PEWTER_CITY_MART, + MAP_CERULEAN_CITY_MART, + MAP_LAVENDER_TOWN_MART, + MAP_VERMILION_CITY_MART, + MAP_CELADON_CITY_DEPARTMENT_STORE_1F, + MAP_CELADON_CITY_DEPARTMENT_STORE_2F, + MAP_CELADON_CITY_DEPARTMENT_STORE_3F, + MAP_CELADON_CITY_DEPARTMENT_STORE_4F, + MAP_CELADON_CITY_DEPARTMENT_STORE_5F, + MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF, + MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR, + MAP_FUCHSIA_CITY_MART, + MAP_CINNABAR_ISLAND_MART, + MAP_SAFFRON_CITY_MART, + MAP_THREE_ISLAND_MART, + MAP_FOUR_ISLAND_MART, + MAP_SEVEN_ISLAND_MART, + MAP_SIX_ISLAND_MART, + MAP_UNDEFINED +}; + +static const u16 gUnknown_845C5BC[] = { + MAP_PEWTER_CITY_GYM, + MAP_CERULEAN_CITY_GYM, + MAP_VERMILION_CITY_GYM, + MAP_CELADON_CITY_GYM, + MAP_FUCHSIA_CITY_GYM, + MAP_SAFFRON_CITY_GYM, + MAP_CINNABAR_ISLAND_GYM, + MAP_VIRIDIAN_CITY_GYM, + MAP_UNDEFINED +}; + +static const u8 gUnknown_845C5CE[][3] = { + { MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 1 }, + { MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 3 }, + { MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 2 }, + { MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), 3 }, + { MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 5 }, + { MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), 3 }, + { MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), 3 }, + { MAP_GROUP(MT_EMBER_RUBY_PATH_B4F), MAP_NUM(MT_EMBER_RUBY_PATH_B4F), 1 }, + { MAP_GROUP(MT_EMBER_SUMMIT_PATH_1F), MAP_NUM(MT_EMBER_SUMMIT_PATH_1F), 3 }, + { MAP_GROUP(MT_EMBER_RUBY_PATH_B5F), MAP_NUM(MT_EMBER_RUBY_PATH_B5F), 7 }, + { MAP_GROUP(THREE_ISLAND_BERRY_FOREST), MAP_NUM(THREE_ISLAND_BERRY_FOREST), 1 }, + { MAP_GROUP(SIX_ISLAND_PATTERN_BUSH), MAP_NUM(SIX_ISLAND_PATTERN_BUSH), 1 }, + { MAP_GROUP(FIVE_ISLAND_LOST_CAVE_ENTRANCE), MAP_NUM(FIVE_ISLAND_LOST_CAVE_ENTRANCE), 15 }, + { MAP_GROUP(FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE), MAP_NUM(FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE), 4 }, + { MAP_GROUP(SIX_ISLAND_ALTERING_CAVE), MAP_NUM(SIX_ISLAND_ALTERING_CAVE), 1 }, + { MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 } +}; + +void sub_812B1E0(u8 a0) +{ + gUnknown_203B0EC = a0; +} + +void HelpSystem_SetSomeVariable2(u8 a0) +{ + switch (gUnknown_203B0EC) + { + case 23: + case 24: + case 25: + case 26: + if (a0 == 9 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8) + break; + // fallthrough + default: + gUnknown_203B0EC = a0; + break; + } +} + +void sub_812B220(void) +{ + gUnknown_203B0EC = gSpecialVar_0x8004; +} + +void sub_812B234(void) +{ + gUnknown_3005EA0 = gUnknown_203B0EC; +} + +void sub_812B248(void) +{ + gUnknown_203B0EC = gUnknown_3005EA0; +} + +static bool32 sub_812B25C(void) +{ + return sub_812B27C(gUnknown_845C594); +} + +static bool32 sub_812B26C(void) +{ + return sub_812B27C(gUnknown_845C5BC); +} + +static bool32 sub_812B27C(const u16 * mapIdxs) +{ + u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; + s32 i; + + for (i = 0; mapIdxs[i] != MAP_UNDEFINED; i++) + { + if (mapIdxs[i] == mapIdx) + return TRUE; + } + + return FALSE; +} + +static bool8 sub_812B2C4(void) +{ + u8 i, j; + + for (i = 0; i < 16; i++) + { + for (j = 0; j < gUnknown_845C5CE[i][2]; j++) + { + if ( + gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup + && gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum + && (i != 15 || FlagGet(FLAG_0x849) == TRUE) + ) + return TRUE; + } + } + + return FALSE; +} + +void sub_812B35C(void) +{ + sub_812B4B8(); + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) + HelpSystem_SetSomeVariable2(0x16); + else if (sub_812B2C4()) + HelpSystem_SetSomeVariable2(0x15); + else if (is_light_level_8_or_9(gMapHeader.mapType)) + { + if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_2F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_2F))) + HelpSystem_SetSomeVariable2(0x0E); + else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB)) + HelpSystem_SetSomeVariable2(0x0F); + else if (IsCurMapPokeCenter() == TRUE) + HelpSystem_SetSomeVariable2(0x10); + else if (sub_812B25C() == TRUE) + HelpSystem_SetSomeVariable2(0x11); + else if (sub_812B26C() == TRUE) + HelpSystem_SetSomeVariable2(0x12); + else + HelpSystem_SetSomeVariable2(0x13); + } + else + HelpSystem_SetSomeVariable2(0x14); +} + +bool8 sub_812B40C(void) +{ + if (gUnknown_203B0EE == 1) + return FALSE; + + if (gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID && FlagGet(FLAG_0x83C)) + return FALSE; + + FlagSet(FLAG_0x83C); + gUnknown_203B0EE = 1; + return TRUE; +} + +bool8 sub_812B45C(void) +{ + if (gReceivedRemoteLinkPlayers == 1) + return FALSE; + return TRUE; +} + +void sub_812B478(void) +{ + gUnknown_3005ECC = 0; +} + +void sub_812B484(void) +{ + if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3) + { + gUnknown_3005ECC = 1; + sub_812B4B8(); + } +} + +void sub_812B4AC(void) +{ + gUnknown_203F175 = 1; +} + +void sub_812B4B8(void) +{ + gUnknown_203F175 = 0; +} + +static void sub_812B4C4(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + a0->sub.field_00 = a1; + a0->sub.field_04 = 1; + a0->sub.field_06 = 1; + a0->sub.field_08 = 1; + a0->sub.field_09 = 4; +} + +static void sub_812B4D8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + sub_812B4C4(a0, a1); + sub_812B520(a0, a1); + sub_812BF74(gUnknown_841DFAC); + sub_813C64C(a0, 0, gUnknown_3005E9C[2]); + sub_812BF9C(a0, a1); + sub_813BDA4(1); + sub_813BD5C(1); +} + +static void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + u8 i; + u8 r4 = 0; + for (i = 0; i < 6; i++) + { + if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1) + { + a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]]; + a1[r4].index = gUnknown_845C4B0[i]; + r4++; + } + } + a1[r4 - 1].index = -2; + a0->sub.field_04 = r4; + a0->sub.field_06 = r4; + a0->sub.field_08 = 0; +} + +static void sub_812B5A8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + sub_813BDE8(0); + sub_813BFC0(0); + sub_813BE78(1); + sub_812B4C4(a0, a1); + sub_812B614(a0, a1); + sub_812BF74(gUnknown_841DFC9); + sub_813C64C(a0, a0->field_0C, a0->field_0D); + sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0); + sub_813BDA4(1); + sub_813BD5C(1); +} + +static void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + u8 r6 = 0; + const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]]; + u8 i; + for (i = 0; r3[i] != 0xFF; i++) + { + if (sub_812B780(r3[i]) == TRUE) + { + if (gUnknown_3005E9C[1] == 0) + a1[r6].label = gUnknown_845B0B0[r3[i]]; + else if (gUnknown_3005E9C[1] == 1) + a1[r6].label = gUnknown_845B218[r3[i]]; + else if (gUnknown_3005E9C[1] == 2) + a1[r6].label = gUnknown_845B3A0[r3[i]]; + else if (gUnknown_3005E9C[1] == 3) + a1[r6].label = gUnknown_845B500[r3[i]]; + else + a1[r6].label = gUnknown_845B540[r3[i]]; + a1[r6].index = r3[i]; + r6++; + } + } + if (sub_812B754() == TRUE) + { + for (i = 0, r3 = gUnknown_845B9BE; r3[i] != 0xFF; i++) + { + a1[r6].label = gUnknown_845B3A0[r3[i]]; + a1[r6].index = r3[i]; + r6++; + } + } + a1[r6].label = gUnknown_81B2E6F; + a1[r6].index = -2; + r6++; + a0->sub.field_04 = r6; + a0->sub.field_06 = 7; + a0->sub.field_08 = 0; + a0->sub.field_09 = 21; +} + +static bool8 sub_812B754(void) +{ + if (FlagGet(FLAG_0x4B0) == TRUE && gUnknown_3005E9C[1] == 2) + return TRUE; + return FALSE; +} + +static bool8 sub_812B780(u8 id) +{ + u8 i = 0; + + if (gUnknown_3005E9C[1] == 0) + { + switch (id) + { + case 1: + case 2: + case 3: + case 5: + case 8: + case 34: + case 38: + case 41: + case 42: + case 43: + return TRUE; + case 4: + return FlagGet(FLAG_0x2CF); + case 6: + case 10: + case 16: + case 19: + case 22: + case 35: + case 36: + return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_CITY); + case 7: + return FlagGet(FLAG_WORLD_MAP_VERMILION_CITY); + case 11: + case 24: + return FlagGet(FLAG_0x8A4); + case 9: + case 13: + case 14: + case 15: + case 17: + case 18: + case 20: + case 26: + case 29: + case 31: + case 37: + return FlagGet(FLAG_0x828); + case 21: + case 23: + return FlagGet(FLAG_0x829); + case 12: + case 25: + case 27: + case 30: + case 32: + case 33: + return FlagGet(FLAG_UNK820); + case 28: + case 40: + return sub_812BB10(); + case 39: + return FlagGet(FLAG_0x29B); + case 44: + return FlagGet(FLAG_WORLD_MAP_PEWTER_CITY); + } + return FALSE; + } + if (gUnknown_3005E9C[1] == 1) + { + switch (id) + { + case 06: + case 10: + case 11: + case 12: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 31: + case 36: + case 38: + case 39: + case 40: + case 41: + case 42: + case 45: + case 46: + case 47: + return TRUE; + case 1: + case 30: + case 37: + return FlagGet(FLAG_0x829); + case 14: + return CheckBagHasItem(ITEM_TOWN_MAP, 1); + case 2: + case 3: + case 5: + case 7: + case 8: + case 9: + case 13: + case 32: + case 33: + case 35: + case 43: + case 44: + return FlagGet(FLAG_0x828); + case 4: + case 34: + if (sub_8088EDC(1) > 1) + return TRUE; + return FALSE; + case 15: + return FlagGet(FLAG_UNK820); + case 16: + case 17: + return sub_812BB10(); + case 18: + return FlagGet(FLAG_0x271); + case 48: + return FlagGet(FLAG_0x82C); + } + return FALSE; + } + if (gUnknown_3005E9C[1] == 2) + { + if (sub_812B754() == TRUE) + { + for (i = 0; gUnknown_845B9BE[i] != 0xFF; i++) + { + if (gUnknown_845B9BE[i] == id) + return FALSE; + } + } + switch (id) + { + case 14: + case 17: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 38: + return TRUE; + case 1: + case 2: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 16: + case 19: + case 20: + case 21: + return FlagGet(FLAG_0x828); + case 36: + case 37: + return sub_812BB10(); + case 3: + case 15: + case 18: + case 39: + return FlagGet(FLAG_0x8A4); + } + return TRUE; + } + if (gUnknown_3005E9C[1] == 3) + { + switch (id) + { + case 5: + return FlagGet(FLAG_UNK820); + case 6: + return FlagGet(FLAG_0x821); + } + return TRUE; + } + if (gUnknown_3005E9C[1] == 4) + { + return TRUE; + } + + return FALSE; +} + +static bool8 sub_812BB10(void) +{ + if (FlagGet(FLAG_0x237) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x238) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x239) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x23A) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x23B) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x2EF) == TRUE) + return TRUE; + if (FlagGet(FLAG_0x1F1) == TRUE) + return TRUE; + return FALSE; +} + +bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + switch (a0->field_0E) + { + case 8: + return sub_812BC54(a0, a1); + case 9: + return sub_812BC80(a0, a1); + case 10: + return sub_812BCA8(a0, a1); + case 0: + return sub_812BCD0(a0, a1); + case 1: + return sub_812BD2C(a0, a1); + case 2: + return sub_812BD64(a0, a1); + case 3: + return sub_812BD98(a0, a1); + case 4: + return sub_812BE10(a0, a1); + case 5: + return sub_812BEEC(a0, a1); + case 6: + return sub_812BF18(a0, a1); + } + return FALSE; +} + +bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + sub_812BF74(gUnknown_841DFA5); + sub_812BF5C(); + sub_813BDA4(1); + sub_813BD5C(1); + a0->field_0E = 9; + return TRUE; +} + +bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + a0->field_0E = 10; + } + return TRUE; +} + +bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[2] = 0; + sub_812BF94(a0); + sub_812B4D8(a0, a1); + a0->field_0E = 0; + return TRUE; +} + +bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + s32 v0 = sub_813C690(); + switch (v0) + { + case -6: + case -2: + return FALSE; + case -5: + case -4: + sub_812BF9C(a0, a1); + break; + case -3: + case -1: + break; + default: + gUnknown_3005E9C[1] = v0; + a0->field_0E = 1; + break; + } + return TRUE; +} + +bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 1; + gUnknown_3005E9C[2] = a0->field_0D; + sub_812BF94(a0); + sub_812B5A8(a0, a1); + sub_813C75C(); + sub_813C684(2); + a0->field_0E = 3; + return TRUE; +} + +bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + sub_813C004(0, 0); + sub_813C004(1, 0); + gUnknown_3005E9C[0] = 0; + sub_812B4D8(a0, a1); + a0->field_0E = 0; + return TRUE; +} + +bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + s32 v0 = sub_813C690(); + switch (v0) + { + case -6: + return FALSE; + case -2: + a0->field_0E = 2; + break; + case -5: + case -4: + case -3: + case -1: + break; + default: + gUnknown_3005E9C[3] = v0; + a0->field_0E = 4; + break; + } + return TRUE; +} + +void sub_812BDEC(void) +{ + sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0); +} + +bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 2; + sub_813BDA4(0); + sub_813C624(); + sub_812BF74(gUnknown_841DFBE); + sub_813BDE8(1); + sub_813BEE4(1); + + if (gUnknown_3005E9C[1] == 0) + { + sub_813C50C(gUnknown_845B0B0[gUnknown_3005E9C[3]], gUnknown_845B164[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 1) + { + sub_813C50C(gUnknown_845B218[gUnknown_3005E9C[3]], gUnknown_845B2DC[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 2) + { + sub_813C50C(gUnknown_845B3A0[gUnknown_3005E9C[3]], gUnknown_845B450[gUnknown_3005E9C[3]]); + } + else if (gUnknown_3005E9C[1] == 3) + { + sub_813C50C(gUnknown_845B500[gUnknown_3005E9C[3]], gUnknown_845B520[gUnknown_3005E9C[3]]); + } + else + { + sub_813C50C(gUnknown_845B540[gUnknown_3005E9C[3]], gUnknown_845B5D0[gUnknown_3005E9C[3]]); + } + sub_813BDA4(1); + sub_813BD5C(1); + a0->field_0E = 6; + return TRUE; +} + +bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + gUnknown_3005E9C[0] = 1; + sub_812B5A8(a0, a1); + sub_813C75C(); + sub_813C684(2); + a0->field_0E = 3; + return TRUE; +} + +bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + a0->field_0E = 5; + return TRUE; + } + if (JOY_NEW(L_BUTTON | R_BUTTON)) + return FALSE; + return TRUE; +} + +static void sub_812BF5C(void) +{ + sub_813C624(); + sub_813C4CC(gUnknown_81B2FC9, 0, 0); +} + +static void sub_812BF74(const u8 * str) +{ + sub_813C5FC(); + sub_813C488(str); +} + +u8 sub_812BF88(void) +{ + return gUnknown_3005E9C[0]; +} + +static void sub_812BF94(struct HelpSystemStruct_203F190 * a0) +{ + a0->field_0C = 0; + a0->field_0D = 0; +} + +static void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1) +{ + s32 index = a1[a0->field_0C + a0->field_0D].index; + if (index == -2) + sub_813C584(gUnknown_845B098[5]); + else + sub_813C584(gUnknown_845B098[index]); + sub_813BE30(1); +} diff --git a/sym_common.txt b/sym_common.txt index 56536bda2..429623cb7 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -318,12 +318,8 @@ gUnknown_3005E94: @ 3005E94 gUnknown_3005E98: @ 3005E98 .space 0x4 -gUnknown_3005E9C: @ 3005E9C - .space 0x4 - -gUnknown_3005EA0: @ 3005EA0 - .space 0x10 - + .include "help_system_812B1E0.o" + .align 4 .include "fame_checker.o" gUnknown_3005ECC: @ 3005ECC diff --git a/sym_ewram.txt b/sym_ewram.txt index 4bd540684..5219ec5ef 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1483,14 +1483,13 @@ gUnknown_203B0E4: @ 203B0E4 gUnknown_203B0E8: @ 203B0E8 .space 0x4 -gUnknown_203B0EC: @ 203B0EC - .space 0x2 - -gUnknown_203B0EE: @ 203B0EE - .space 0x2 - + .align 2 + .include "src/help_system_812B1E0.o" + .align 2 .include "src/fame_checker.o" + .align 2 .include "src/oak_speech.o" + .align 2 .include "src/tm_case.o" gUnknown_203B130: @ 203B130 |