diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-11-11 15:35:22 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-11 15:35:22 -0800 |
commit | 67ad331441f29545b84d152cbbb4f188098a9c5a (patch) | |
tree | 24a7840f1c49602a6ad033ea6cc1cb27b7e12be4 | |
parent | 999c4d59793e761ca71ab7b27272de46d78de138 (diff) | |
parent | 92fda2cc0d5afa76e94927cb72ceac9700f54c1b (diff) |
Merge pull request #457 from huderlem/pokenav
pokenav decompilation
-rw-r--r-- | asm/pokenav.s | 9263 | ||||
-rwxr-xr-x | include/ewram.h | 2 | ||||
-rw-r--r-- | include/pokenav.h | 60 | ||||
-rw-r--r-- | include/region_map.h | 8 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/field/region_map.c | 168 | ||||
-rw-r--r-- | src/field/use_pokeblock.c | 2 | ||||
-rw-r--r-- | src/pokenav_after.c (renamed from src/field/pokenav.c) | 2 | ||||
-rw-r--r-- | src/pokenav_before.c | 5004 | ||||
-rw-r--r-- | sym_bss.txt | 2 |
10 files changed, 5150 insertions, 9364 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s index b7ff9a032..cbae6d0cc 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -6,9269 +6,6 @@ .text - thumb_func_start sub_80EBA5C -sub_80EBA5C: @ 80EBA5C - push {lr} - ldr r0, _080EBA74 @ =gMain - ldr r2, _080EBA78 @ =0x0000043c - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xE - bhi _080EBABC - lsls r0, 2 - ldr r1, _080EBA7C @ =_080EBA80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBA74: .4byte gMain -_080EBA78: .4byte 0x0000043c -_080EBA7C: .4byte _080EBA80 - .align 2, 0 -_080EBA80: - .4byte _080EBAC0 - .4byte _080EBB08 - .4byte _080EBB10 - .4byte _080EBB16 - .4byte _080EBB1C - .4byte _080EBB22 - .4byte _080EBB28 - .4byte _080EBB2E - .4byte _080EBB3E - .4byte _080EBB4C - .4byte _080EBB5C - .4byte _080EBB6C - .4byte _080EBB7C - .4byte _080EBB90 - .4byte _080EBBA0 -_080EBABC: - movs r0, 0 - strb r0, [r1] -_080EBAC0: - bl is_c1_link_related_active - ldr r3, _080EBAF0 @ =gSharedMem - ldr r2, _080EBAF4 @ =0x00006dac - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080EBBC0 - ldr r1, _080EBAF8 @ =0x00006dab - adds r0, r3, r1 - strb r2, [r0] - ldr r1, _080EBAFC @ =gMain - ldr r2, _080EBB00 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080EBB04 @ =sub_80EBBE8 - bl SetMainCallback2 - b _080EBBC0 - .align 2, 0 -_080EBAF0: .4byte gSharedMem -_080EBAF4: .4byte 0x00006dac -_080EBAF8: .4byte 0x00006dab -_080EBAFC: .4byte gMain -_080EBB00: .4byte 0x0000043c -_080EBB04: .4byte sub_80EBBE8 -_080EBB08: - movs r0, 0 - bl SetVBlankCallback - b _080EBBC0 -_080EBB10: - bl ResetPaletteFade - b _080EBBC0 -_080EBB16: - bl ResetSpriteData - b _080EBBC0 -_080EBB1C: - bl FreeAllSpritePalettes - b _080EBBC0 -_080EBB22: - bl ResetTasks - b _080EBBC0 -_080EBB28: - bl remove_some_task - b _080EBBC0 -_080EBB2E: - bl sub_80F1A90 - ldr r1, _080EBB44 @ =gMain - ldr r0, _080EBB48 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB3E: - bl sub_80F1AC4 - b _080EBB80 - .align 2, 0 -_080EBB44: .4byte gMain -_080EBB48: .4byte 0x0000043c -_080EBB4C: - bl sub_80F2688 - ldr r1, _080EBB64 @ =gMain - ldr r2, _080EBB68 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB5C: - bl sub_80F26BC - b _080EBB80 - .align 2, 0 -_080EBB64: .4byte gMain -_080EBB68: .4byte 0x0000043c -_080EBB6C: - bl sub_80F36F0 - ldr r1, _080EBB88 @ =gMain - ldr r0, _080EBB8C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB7C: - bl sub_80F3724 -_080EBB80: - lsls r0, 24 - cmp r0, 0 - bne _080EBBCC - b _080EBBC0 - .align 2, 0 -_080EBB88: .4byte gMain -_080EBB8C: .4byte 0x0000043c -_080EBB90: - bl sub_80EBC10 - ldr r0, _080EBB9C @ =sub_80EBDD8 - bl sub_80EBDBC - b _080EBBC0 - .align 2, 0 -_080EBB9C: .4byte sub_80EBDD8 -_080EBBA0: - ldr r0, _080EBBD0 @ =gSharedMem - ldr r1, _080EBBD4 @ =0x00006dab - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x6E - bl PlaySE - ldr r0, _080EBBD8 @ =sub_80EBD90 - bl SetMainCallback2 - ldr r0, _080EBBDC @ =sub_80EBD18 - bl SetVBlankCallback - bl sub_80F1A74 -_080EBBC0: - ldr r1, _080EBBE0 @ =gMain - ldr r2, _080EBBE4 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBBCC: - pop {r0} - bx r0 - .align 2, 0 -_080EBBD0: .4byte gSharedMem -_080EBBD4: .4byte 0x00006dab -_080EBBD8: .4byte sub_80EBD90 -_080EBBDC: .4byte sub_80EBD18 -_080EBBE0: .4byte gMain -_080EBBE4: .4byte 0x0000043c - thumb_func_end sub_80EBA5C - - thumb_func_start sub_80EBBE8 -sub_80EBBE8: @ 80EBBE8 - push {r4,lr} - ldr r0, _080EBC08 @ =gSharedMem - ldr r2, _080EBC0C @ =0x00006dab - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080EBC02 - adds r4, r1, 0 -_080EBBF8: - bl sub_80EBA5C - ldrb r0, [r4] - cmp r0, 0 - beq _080EBBF8 -_080EBC02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBC08: .4byte gSharedMem -_080EBC0C: .4byte 0x00006dab - thumb_func_end sub_80EBBE8 - - thumb_func_start sub_80EBC10 -sub_80EBC10: @ 80EBC10 - push {r4-r7,lr} - ldr r1, _080EBC7C @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - bl CalculatePlayerPartyCount - ldr r2, _080EBC80 @ =gSharedMem - ldr r1, _080EBC84 @ =0x00008828 - adds r3, r2, r1 - movs r1, 0 - strb r0, [r3] - ldr r3, _080EBC88 @ =0x00006ddc - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC8C @ =0x00009344 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC90 @ =0x00008768 - adds r0, r2, r3 - str r1, [r0] - ldr r3, _080EBC94 @ =0x0000ced0 - adds r0, r2, r3 - str r1, [r0] - movs r3, 0 - ldr r0, _080EBC98 @ =0x00008fff - adds r7, r2, r0 - mov r12, r2 - movs r6, 0 - ldr r5, _080EBC9C @ =0x00009040 - movs r4, 0x9B -_080EBC4C: - adds r0, r3, r7 - strb r6, [r0] - lsls r1, r3, 2 - adds r1, r2 - adds r0, r1, r5 - strh r4, [r0] - ldr r0, _080EBCA0 @ =0x00009042 - adds r1, r0 - movs r0, 0x5B - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _080EBC4C - ldr r1, _080EBCA4 @ =0x00006e95 - add r1, r12 - movs r0, 0 - strb r0, [r1] - bl sub_80EBCA8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EBC7C: .4byte gKeyRepeatStartDelay -_080EBC80: .4byte gSharedMem -_080EBC84: .4byte 0x00008828 -_080EBC88: .4byte 0x00006ddc -_080EBC8C: .4byte 0x00009344 -_080EBC90: .4byte 0x00008768 -_080EBC94: .4byte 0x0000ced0 -_080EBC98: .4byte 0x00008fff -_080EBC9C: .4byte 0x00009040 -_080EBCA0: .4byte 0x00009042 -_080EBCA4: .4byte 0x00006e95 - thumb_func_end sub_80EBC10 - - thumb_func_start sub_80EBCA8 -sub_80EBCA8: @ 80EBCA8 - push {r4,lr} - ldr r4, _080EBCDC @ =gSharedMem - ldr r0, _080EBCE0 @ =0x00006db2 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EBCE4 @ =0x00006db3 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _080EBCE8 @ =0x00006db4 - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - ldr r0, _080EBCEC @ =0x0000083b - bl FlagGet - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EBCF4 - ldr r0, _080EBCF0 @ =0x00006db5 - adds r1, r4, r0 - movs r0, 0x4 - strb r0, [r1] - b _080EBCFA - .align 2, 0 -_080EBCDC: .4byte gSharedMem -_080EBCE0: .4byte 0x00006db2 -_080EBCE4: .4byte 0x00006db3 -_080EBCE8: .4byte 0x00006db4 -_080EBCEC: .4byte 0x0000083b -_080EBCF0: .4byte 0x00006db5 -_080EBCF4: - ldr r1, _080EBD0C @ =0x00006db5 - adds r0, r4, r1 - strb r2, [r0] -_080EBCFA: - ldr r0, _080EBD10 @ =gSharedMem - ldr r1, _080EBD14 @ =0x00006db6 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBD0C: .4byte 0x00006db5 -_080EBD10: .4byte gSharedMem -_080EBD14: .4byte 0x00006db6 - thumb_func_end sub_80EBCA8 - - thumb_func_start sub_80EBD18 -sub_80EBD18: @ 80EBD18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F1FF0 - pop {r0} - bx r0 - thumb_func_end sub_80EBD18 - - thumb_func_start sub_80EBD30 -sub_80EBD30: @ 80EBD30 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl UpdateRegionMapVideoRegs - bl sub_80EFE7C - pop {r0} - bx r0 - thumb_func_end sub_80EBD30 - - thumb_func_start sub_80EBD4C -sub_80EBD4C: @ 80EBD4C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F5BF0 - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80EBD4C - - thumb_func_start sub_80EBD68 -sub_80EBD68: @ 80EBD68 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F6F64 - pop {r0} - bx r0 - thumb_func_end sub_80EBD68 - - thumb_func_start sub_80EBD80 -sub_80EBD80: @ 80EBD80 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_80EBD80 - - thumb_func_start sub_80EBD90 -sub_80EBD90: @ 80EBD90 - push {lr} - ldr r0, _080EBDB8 @ =gSharedMem - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - bl sub_80F19FC - pop {r0} - bx r0 - .align 2, 0 -_080EBDB8: .4byte gSharedMem - thumb_func_end sub_80EBD90 - - thumb_func_start sub_80EBDBC -sub_80EBDBC: @ 80EBDBC - ldr r2, _080EBDD4 @ =gSharedMem - movs r3, 0xC0 - lsls r3, 2 - adds r1, r2, r3 - str r0, [r1] - movs r0, 0xC1 - lsls r0, 2 - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080EBDD4: .4byte gSharedMem - thumb_func_end sub_80EBDBC - - thumb_func_start sub_80EBDD8 -sub_80EBDD8: @ 80EBDD8 - push {lr} - sub sp, 0x4 - ldr r1, _080EBDF8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x11 - bls _080EBDEE - b _080EC000 -_080EBDEE: - lsls r0, 2 - ldr r1, _080EBDFC @ =_080EBE00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBDF8: .4byte gSharedMem -_080EBDFC: .4byte _080EBE00 - .align 2, 0 -_080EBE00: - .4byte _080EBE48 - .4byte _080EBE80 - .4byte _080EBE92 - .4byte _080EBEAC - .4byte _080EBEC0 - .4byte _080EBED2 - .4byte _080EBEF0 - .4byte _080EBF04 - .4byte _080EBF18 - .4byte _080EBF2C - .4byte _080EBF48 - .4byte _080EBF54 - .4byte _080EBF74 - .4byte _080EBF88 - .4byte _080EBFA0 - .4byte _080EBFB4 - .4byte _080EBFD0 - .4byte _080EBFE8 -_080EBE48: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _080EBE74 @ =gSharedMem - ldr r3, _080EBE78 @ =0x00006ddc - adds r0, r1, r3 - ldrb r2, [r0] - subs r3, 0x2F - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EBE7C @ =0x00006dae - adds r2, r1, r0 - movs r0, 0x5 - strb r0, [r2] - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBE74: .4byte gSharedMem -_080EBE78: .4byte 0x00006ddc -_080EBE7C: .4byte 0x00006dae -_080EBE80: - bl sub_80F3FF0 - ldr r1, _080EBEA8 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBE92: - bl sub_80F4024 - lsls r0, 24 - cmp r0, 0 - beq _080EBE9E - b _080EC000 -_080EBE9E: - ldr r1, _080EBEA8 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEA8: .4byte gSharedMem -_080EBEAC: - bl sub_80F2598 - ldr r1, _080EBEBC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBEBC: .4byte gSharedMem -_080EBEC0: - bl sub_80EEE20 - ldr r1, _080EBEEC @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBED2: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - beq _080EBEDE - b _080EC000 -_080EBEDE: - bl sub_80EEE08 - ldr r1, _080EBEEC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEEC: .4byte gSharedMem -_080EBEF0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EBF14 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF04: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EBF12 - b _080EC000 -_080EBF12: - b _080EBFD4 - .align 2, 0 -_080EBF14: .4byte gSharedMem -_080EBF18: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EBF44 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF2C: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBF44 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF44: .4byte gSharedMem -_080EBF48: - ldr r0, _080EBF50 @ =sub_80EBD18 - bl SetVBlankCallback - b _080EBFD4 - .align 2, 0 -_080EBF50: .4byte sub_80EBD18 -_080EBF54: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _080EBF70 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBF70: .4byte gSharedMem -_080EBF74: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EBF84 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF84: .4byte gSharedMem -_080EBF88: - ldr r0, _080EBF9C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r2, r3 - b _080EBFDC - .align 2, 0 -_080EBF9C: .4byte gPaletteFade -_080EBFA0: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EBFCC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBFB4: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBFCC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBFCC: .4byte gSharedMem -_080EBFD0: - bl sub_80F1DF0 -_080EBFD4: - ldr r1, _080EBFE4 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080EBFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC000 - .align 2, 0 -_080EBFE4: .4byte gSharedMem -_080EBFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - movs r0, 0 - movs r1, 0 - bl sub_80EF428 - ldr r0, _080EC008 @ =sub_80EC268 - bl sub_80EBDBC -_080EC000: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EC008: .4byte sub_80EC268 - thumb_func_end sub_80EBDD8 - - thumb_func_start sub_80EC00C -sub_80EC00C: @ 80EC00C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC02C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080EC022 - b _080EC1FA -_080EC022: - lsls r0, 2 - ldr r1, _080EC030 @ =_080EC034 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC02C: .4byte gSharedMem -_080EC030: .4byte _080EC034 - .align 2, 0 -_080EC034: - .4byte _080EC06C - .4byte _080EC0C0 - .4byte _080EC0D4 - .4byte _080EC0F0 - .4byte _080EC104 - .4byte _080EC120 - .4byte _080EC12A - .4byte _080EC154 - .4byte _080EC168 - .4byte _080EC180 - .4byte _080EC194 - .4byte _080EC1A8 - .4byte _080EC1C4 - .4byte _080EC1DC -_080EC06C: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080EC078 - b _080EC1FA -_080EC078: - ldr r0, _080EC0AC @ =sub_80EBD80 - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080EC0B0 @ =gSharedMem - ldr r1, _080EC0B4 @ =0x00006ddc - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080EC0B8 @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080EC0BC @ =0x00006dae - adds r1, r4, r0 - movs r0, 0x5 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC1FA - .align 2, 0 -_080EC0AC: .4byte sub_80EBD80 -_080EC0B0: .4byte gSharedMem -_080EC0B4: .4byte 0x00006ddc -_080EC0B8: .4byte 0x00006dad -_080EC0BC: .4byte 0x00006dae -_080EC0C0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EC0EC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC0D4: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EC0E2 - b _080EC1FA -_080EC0E2: - ldr r1, _080EC0EC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC0EC: .4byte gSharedMem -_080EC0F0: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EC11C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC104: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080EC112 - b _080EC1FA -_080EC112: - ldr r1, _080EC11C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC11C: .4byte gSharedMem -_080EC120: - bl sub_8055870 - cmp r0, 0 - bne _080EC1FA - b _080EC1C8 -_080EC12A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EC150 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC150: .4byte sub_80EBD18 -_080EC154: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EC164 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC164: .4byte gSharedMem -_080EC168: - ldr r0, _080EC17C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC1FA - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC17C: .4byte gPaletteFade -_080EC180: - bl sub_80F2598 - ldr r1, _080EC190 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC190: .4byte gSharedMem -_080EC194: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EC1C0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC1A8: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r1, _080EC1C0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC1C0: .4byte gSharedMem -_080EC1C4: - bl sub_80F1DF0 -_080EC1C8: - ldr r1, _080EC1D8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080EC1D0: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC1FA - .align 2, 0 -_080EC1D8: .4byte gSharedMem -_080EC1DC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r0, _080EC204 @ =gSharedMem - ldr r1, _080EC208 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - ldr r0, _080EC20C @ =sub_80EC268 - bl sub_80EBDBC -_080EC1FA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC204: .4byte gSharedMem -_080EC208: .4byte 0x00006dad -_080EC20C: .4byte sub_80EC268 - thumb_func_end sub_80EC00C - - thumb_func_start sub_80EC210 -sub_80EC210: @ 80EC210 - push {r4,r5,lr} - ldr r5, _080EC228 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC22C - cmp r0, 0x1 - beq _080EC24C - b _080EC25C - .align 2, 0 -_080EC228: .4byte gSharedMem -_080EC22C: - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080EC248 @ =0x00006ddc - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC25C - .align 2, 0 -_080EC248: .4byte 0x00006ddc -_080EC24C: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC25C - ldr r0, _080EC264 @ =sub_80EC268 - bl sub_80EBDBC -_080EC25C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC264: .4byte sub_80EC268 - thumb_func_end sub_80EC210 - - thumb_func_start sub_80EC268 -sub_80EC268: @ 80EC268 - push {r4-r6,lr} - ldr r4, _080EC290 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r6, r4, r0 - ldrh r0, [r6] - cmp r0, 0x3 - bne _080EC27A - b _080EC3BE -_080EC27A: - cmp r0, 0x3 - bgt _080EC294 - cmp r0, 0x1 - bne _080EC284 - b _080EC3A2 -_080EC284: - cmp r0, 0x1 - ble _080EC28A - b _080EC3B4 -_080EC28A: - cmp r0, 0 - beq _080EC2AE - b _080EC492 - .align 2, 0 -_080EC290: .4byte gSharedMem -_080EC294: - cmp r0, 0x6 - bne _080EC29A - b _080EC414 -_080EC29A: - cmp r0, 0x6 - bgt _080EC2A6 - cmp r0, 0x4 - bne _080EC2A4 - b _080EC3DC -_080EC2A4: - b _080EC492 -_080EC2A6: - cmp r0, 0xFF - bne _080EC2AC - b _080EC44C -_080EC2AC: - b _080EC492 -_080EC2AE: - bl sub_80EEC10 - lsls r0, 24 - cmp r0, 0 - beq _080EC2D4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC2D0 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC2D0: .4byte 0x00006dad -_080EC2D4: - ldr r0, _080EC310 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080EC394 - ldr r2, _080EC314 @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x2F - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r2, 0x2A - adds r1, r4, r2 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x4 - bls _080EC304 - b _080EC492 -_080EC304: - lsls r0, 2 - ldr r1, _080EC318 @ =_080EC31C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC310: .4byte gMain -_080EC314: .4byte 0x00006dad -_080EC318: .4byte _080EC31C - .align 2, 0 -_080EC31C: - .4byte _080EC330 - .4byte _080EC344 - .4byte _080EC380 - .4byte _080EC36C - .4byte _080EC358 -_080EC330: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC340 @ =sub_80EC4A0 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC340: .4byte sub_80EC4A0 -_080EC344: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC354 @ =sub_80EC81C - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC354: .4byte sub_80EC81C -_080EC358: - ldr r0, _080EC368 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC368: .4byte gSharedMem -_080EC36C: - ldr r0, _080EC37C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC37C: .4byte gSharedMem -_080EC380: - ldr r0, _080EC390 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC390: .4byte gSharedMem -_080EC394: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080EC39E - b _080EC492 -_080EC39E: - strh r2, [r6] - b _080EC492 -_080EC3A2: - bl sub_80F208C - ldr r0, _080EC3B0 @ =sub_80EE96C - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC3B0: .4byte sub_80EE96C -_080EC3B4: - bl sub_80F6208 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] -_080EC3BE: - bl sub_80F6250 - lsls r0, 24 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC3D8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC492 - .align 2, 0 -_080EC3D8: .4byte gSharedMem -_080EC3DC: - bl sub_8055870 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC400 @ =0x00008fe8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080EC408 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC404 @ =sub_80EDB88 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC400: .4byte 0x00008fe8 -_080EC404: .4byte sub_80EDB88 -_080EC408: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x5 - b _080EC442 -_080EC414: - bl sub_80F6C20 - ldr r2, _080EC430 @ =0x0000d158 - adds r0, r4, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _080EC438 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC434 @ =sub_80EE3D8 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC430: .4byte 0x0000d158 -_080EC434: .4byte sub_80EE3D8 -_080EC438: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x6 -_080EC442: - bl sub_80EF428 - movs r0, 0xFF - strh r0, [r6] - b _080EC492 -_080EC44C: - bl sub_80EEC10 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080EC478 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC474 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - movs r0, 0 - strh r0, [r6] - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC474: .4byte 0x00006dad -_080EC478: - ldr r0, _080EC498 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080EC492 - ldr r2, _080EC49C @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - strh r5, [r6] -_080EC492: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC498: .4byte gMain -_080EC49C: .4byte 0x00006dad - thumb_func_end sub_80EC268 - - thumb_func_start sub_80EC4A0 -sub_80EC4A0: @ 80EC4A0 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC4C0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xE - bls _080EC4B6 - b _080EC66A -_080EC4B6: - lsls r0, 2 - ldr r1, _080EC4C4 @ =_080EC4C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC4C0: .4byte gSharedMem -_080EC4C4: .4byte _080EC4C8 - .align 2, 0 -_080EC4C8: - .4byte _080EC504 - .4byte _080EC510 - .4byte _080EC544 - .4byte _080EC578 - .4byte _080EC594 - .4byte _080EC5A8 - .4byte _080EC5AE - .4byte _080EC5C0 - .4byte _080EC5D0 - .4byte _080EC5E4 - .4byte _080EC5F8 - .4byte _080EC614 - .4byte _080EC61E - .4byte _080EC63E - .4byte _080EC658 -_080EC504: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EC644 -_080EC510: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EC51C - b _080EC66A -_080EC51C: - ldr r0, _080EC53C @ =gSaveBlock2 - ldrb r1, [r0, 0x15] - movs r0, 0x8 - ands r0, r1 - movs r1, 0x8 - cmp r0, 0 - beq _080EC52C - movs r1, 0x7 -_080EC52C: - adds r0, r1, 0 - bl sub_80EEFBC - ldr r1, _080EC540 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC53C: .4byte gSaveBlock2 -_080EC540: .4byte gSharedMem -_080EC544: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EC552 - b _080EC66A -_080EC552: - ldr r4, _080EC574 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C - .align 2, 0 -_080EC574: .4byte gSharedMem -_080EC578: - ldr r0, _080EC590 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - b _080EC644 - .align 2, 0 -_080EC590: .4byte gPaletteFade -_080EC594: - bl sub_80F2620 - ldr r1, _080EC5A4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC5A4: .4byte gSharedMem -_080EC5A8: - bl sub_80EF814 - b _080EC644 -_080EC5AE: - bl sub_80EF840 - ldr r1, _080EC5CC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5C0: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5CC: .4byte gSharedMem -_080EC5D0: - movs r0, 0x4 - bl sub_80F2C80 - ldr r1, _080EC5F4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5E4: - movs r0, 0x4 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5F4: .4byte gSharedMem -_080EC5F8: - bl sub_80F2DD8 - ldr r0, _080EC60C @ =sub_80EBD30 - bl SetVBlankCallback - ldr r1, _080EC610 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC60C: .4byte sub_80EBD30 -_080EC610: .4byte gSharedMem -_080EC614: - bl sub_8055870 - cmp r0, 0 - bne _080EC66A - b _080EC644 -_080EC61E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C -_080EC63E: - movs r0, 0x1 - bl sub_80EED2C -_080EC644: - ldr r1, _080EC654 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EC64C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC66A - .align 2, 0 -_080EC654: .4byte gSharedMem -_080EC658: - ldr r0, _080EC674 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - ldr r0, _080EC678 @ =sub_80EC67C - bl sub_80EBDBC -_080EC66A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC674: .4byte gPaletteFade -_080EC678: .4byte sub_80EC67C - thumb_func_end sub_80EC4A0 - - thumb_func_start sub_80EC67C -sub_80EC67C: @ 80EC67C - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080EC69C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080EC692 - b _080EC800 -_080EC692: - lsls r0, 2 - ldr r1, _080EC6A0 @ =_080EC6A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC69C: .4byte gSharedMem -_080EC6A0: .4byte _080EC6A4 - .align 2, 0 -_080EC6A4: - .4byte _080EC6BC - .4byte _080EC718 - .4byte _080EC746 - .4byte _080EC77C - .4byte _080EC7A0 - .4byte _080EC7C4 -_080EC6BC: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080EC6E2 - cmp r0, 0x3 - bgt _080EC6D2 - cmp r0, 0x1 - beq _080EC6DC - b _080EC800 -_080EC6D2: - cmp r0, 0x4 - beq _080EC6E8 - cmp r0, 0x5 - beq _080EC700 - b _080EC800 -_080EC6DC: - bl sub_80EED9C - b _080EC800 -_080EC6E2: - bl sub_80EF9F8 - b _080EC800 -_080EC6E8: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC6FC @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC6FC: .4byte gSharedMem -_080EC700: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC714 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC714: .4byte gSharedMem -_080EC718: - ldr r1, _080EC730 @ =0x00006e90 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EC734 - bl sub_80FAEC4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC7BC - .align 2, 0 -_080EC730: .4byte 0x00006e90 -_080EC734: - movs r0, 0x1 - bl sub_80EFBDC - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - bl sub_80FAEC4 - b _080EC7B6 -_080EC746: - bl sub_80FAFC0 - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - ldr r5, _080EC76C @ =gSharedMem - ldr r1, _080EC770 @ =0x00006e90 - adds r0, r5, r1 - ldrb r4, [r0] - cmp r4, 0 - bne _080EC774 - bl sub_80EFBB0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r5, r2 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC76C: .4byte gSharedMem -_080EC770: .4byte 0x00006e90 -_080EC774: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 - b _080EC7BC -_080EC77C: - movs r0, 0 - bl sub_80EFBDC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EC800 - bl sub_80EFBB0 - ldr r0, _080EC79C @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC79C: .4byte gSharedMem -_080EC7A0: - movs r2, 0xC2 - lsls r2, 2 - adds r0, r4, r2 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade -_080EC7B6: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EC7BC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC800 -_080EC7C4: - ldr r0, _080EC808 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC800 - bl sub_80F2DF4 - movs r0, 0x4 - bl sub_80F2D04 - ldr r3, _080EC80C @ =gSaveBlock2 - movs r2, 0 - ldr r0, _080EC810 @ =gSharedMem - ldr r1, _080EC814 @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EC7EC - movs r2, 0x1 -_080EC7EC: - lsls r2, 3 - ldrb r1, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - ldr r0, _080EC818 @ =sub_80EC00C - bl sub_80EBDBC -_080EC800: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC808: .4byte gPaletteFade -_080EC80C: .4byte gSaveBlock2 -_080EC810: .4byte gSharedMem -_080EC814: .4byte 0x00006e90 -_080EC818: .4byte sub_80EC00C - thumb_func_end sub_80EC67C - - thumb_func_start sub_80EC81C -sub_80EC81C: @ 80EC81C - push {r4,lr} - ldr r0, _080EC834 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC838 - cmp r0, 0x1 - beq _080EC850 - b _080EC860 - .align 2, 0 -_080EC834: .4byte gSharedMem -_080EC838: - movs r0, 0 - bl sub_80F2D04 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC860 -_080EC850: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC860 - ldr r0, _080EC868 @ =sub_80EC86C - bl sub_80EBDBC -_080EC860: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC868: .4byte sub_80EC86C - thumb_func_end sub_80EC81C - - thumb_func_start sub_80EC86C -sub_80EC86C: @ 80EC86C - push {r4-r6,lr} - ldr r4, _080EC884 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080EC888 - cmp r0, 0x1 - beq _080EC944 - b _080EC954 - .align 2, 0 -_080EC884: .4byte gSharedMem -_080EC888: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080EC8B0 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC8AC @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - bl sub_80EED9C - b _080EC954 - .align 2, 0 -_080EC8AC: .4byte 0x00006dad -_080EC8B0: - ldr r0, _080EC8E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EC918 - movs r0, 0x5 - bl PlaySE - ldr r2, _080EC8E8 @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x43 - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080EC900 - cmp r0, 0x1 - bgt _080EC8EC - cmp r0, 0 - beq _080EC8F2 - b _080EC954 - .align 2, 0 -_080EC8E4: .4byte gMain -_080EC8E8: .4byte 0x00006dad -_080EC8EC: - cmp r0, 0x2 - beq _080EC90C - b _080EC954 -_080EC8F2: - ldr r0, _080EC8FC @ =sub_80ED620 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC8FC: .4byte sub_80ED620 -_080EC900: - ldr r0, _080EC908 @ =sub_80EC960 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC908: .4byte sub_80EC960 -_080EC90C: - ldr r0, _080EC914 @ =sub_80EC210 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC914: .4byte sub_80EC210 -_080EC918: - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC954 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC93C @ =0x00006df0 - adds r0, r4, r1 - strb r6, [r0] - ldr r2, _080EC940 @ =0x00006dad - adds r0, r4, r2 - strb r6, [r0] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EC954 - .align 2, 0 -_080EC93C: .4byte 0x00006df0 -_080EC940: .4byte 0x00006dad -_080EC944: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080EC954 - ldr r0, _080EC95C @ =sub_80EC210 - bl sub_80EBDBC -_080EC954: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC95C: .4byte sub_80EC210 - thumb_func_end sub_80EC86C - - thumb_func_start sub_80EC960 -sub_80EC960: @ 80EC960 - push {r4,lr} - ldr r0, _080EC978 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC97C - cmp r0, 0x1 - beq _080EC98E - b _080EC99E - .align 2, 0 -_080EC978: .4byte gSharedMem -_080EC97C: - movs r0, 0x2 - movs r1, 0 - movs r2, 0x5 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC99E -_080EC98E: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC99E - ldr r0, _080EC9A4 @ =sub_80ECC08 - bl sub_80EBDBC -_080EC99E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC9A4: .4byte sub_80ECC08 - thumb_func_end sub_80EC960 - - thumb_func_start sub_80EC9A8 -sub_80EC9A8: @ 80EC9A8 - push {r4,r5,lr} - ldr r5, _080EC9C0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC9C4 - cmp r0, 0x1 - beq _080EC9E4 - b _080ECA00 - .align 2, 0 -_080EC9C0: .4byte gSharedMem -_080EC9C4: - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080EC9E0 @ =0x00006df0 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xC - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECA00 - .align 2, 0 -_080EC9E0: .4byte 0x00006df0 -_080EC9E4: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080ECA00 - ldr r0, _080ECA08 @ =sub_80EC86C - bl sub_80EBDBC - ldr r1, _080ECA0C @ =0x00006dad - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 -_080ECA00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECA08: .4byte sub_80EC86C -_080ECA0C: .4byte 0x00006dad - thumb_func_end sub_80EC9A8 - - thumb_func_start sub_80ECA10 -sub_80ECA10: @ 80ECA10 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECA30 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080ECA26 - b _080ECBF2 -_080ECA26: - lsls r0, 2 - ldr r1, _080ECA34 @ =_080ECA38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECA30: .4byte gSharedMem -_080ECA34: .4byte _080ECA38 - .align 2, 0 -_080ECA38: - .4byte _080ECA70 - .4byte _080ECAC4 - .4byte _080ECAD8 - .4byte _080ECAF4 - .4byte _080ECB08 - .4byte _080ECB24 - .4byte _080ECB2E - .4byte _080ECB58 - .4byte _080ECB6C - .4byte _080ECB72 - .4byte _080ECB8C - .4byte _080ECBA0 - .4byte _080ECBBC - .4byte _080ECBD4 -_080ECA70: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECA7C - b _080ECBF2 -_080ECA7C: - ldr r0, _080ECAB0 @ =sub_80EBD80 - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080ECAB4 @ =gSharedMem - ldr r1, _080ECAB8 @ =0x00006df0 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECABC @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080ECAC0 @ =0x00006dae - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECBF2 - .align 2, 0 -_080ECAB0: .4byte sub_80EBD80 -_080ECAB4: .4byte gSharedMem -_080ECAB8: .4byte 0x00006df0 -_080ECABC: .4byte 0x00006dad -_080ECAC0: .4byte 0x00006dae -_080ECAC4: - movs r0, 0x1 - bl sub_80EF248 - ldr r1, _080ECAF0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECAD8: - movs r0, 0x1 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECAE6 - b _080ECBF2 -_080ECAE6: - ldr r1, _080ECAF0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECAF0: .4byte gSharedMem -_080ECAF4: - movs r0, 0x1 - bl sub_80F1B8C - ldr r1, _080ECB20 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECB08: - movs r0, 0x1 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECB20 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB20: .4byte gSharedMem -_080ECB24: - bl sub_8055870 - cmp r0, 0 - bne _080ECBF2 - b _080ECBC0 -_080ECB2E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECB54 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECBC8 - .align 2, 0 -_080ECB54: .4byte sub_80EBD18 -_080ECB58: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080ECB68 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB68: .4byte gSharedMem -_080ECB6C: - bl sub_80F2598 - b _080ECBC0 -_080ECB72: - ldr r0, _080ECB88 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ECBF2 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECBC8 - .align 2, 0 -_080ECB88: .4byte gPaletteFade -_080ECB8C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECBB8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECBA0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECBB8 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECBB8: .4byte gSharedMem -_080ECBBC: - bl sub_80F1DF0 -_080ECBC0: - ldr r1, _080ECBD0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ECBC8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ECBF2 - .align 2, 0 -_080ECBD0: .4byte gSharedMem -_080ECBD4: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r0, _080ECBFC @ =gSharedMem - ldr r1, _080ECC00 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - ldr r0, _080ECC04 @ =sub_80EC86C - bl sub_80EBDBC -_080ECBF2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECBFC: .4byte gSharedMem -_080ECC00: .4byte 0x00006dad -_080ECC04: .4byte sub_80EC86C - thumb_func_end sub_80ECA10 - - thumb_func_start sub_80ECC08 -sub_80ECC08: @ 80ECC08 - push {r4,r5,lr} - ldr r4, _080ECC20 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080ECC24 - cmp r0, 0x1 - bne _080ECC1E - b _080ECD64 -_080ECC1E: - b _080ECD74 - .align 2, 0 -_080ECC20: .4byte gSharedMem -_080ECC24: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080ECC4C - movs r0, 0x5 - bl PlaySE - ldr r1, _080ECC48 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - bl sub_80EED9C - b _080ECD74 - .align 2, 0 -_080ECC48: .4byte 0x00006dad -_080ECC4C: - ldr r0, _080ECC78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080ECC5A - b _080ECD40 -_080ECC5A: - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECC7C @ =0x00006dad - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _080ECD0C - lsls r0, 2 - ldr r1, _080ECC80 @ =_080ECC84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECC78: .4byte gMain -_080ECC7C: .4byte 0x00006dad -_080ECC80: .4byte _080ECC84 - .align 2, 0 -_080ECC84: - .4byte _080ECC9C - .4byte _080ECCB0 - .4byte _080ECCC4 - .4byte _080ECCD8 - .4byte _080ECCEC - .4byte _080ECD00 -_080ECC9C: - ldr r0, _080ECCA8 @ =gSharedMem - ldr r3, _080ECCAC @ =0x000087d8 - adds r0, r3 - movs r1, 0x16 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCA8: .4byte gSharedMem -_080ECCAC: .4byte 0x000087d8 -_080ECCB0: - ldr r0, _080ECCBC @ =gSharedMem - ldr r1, _080ECCC0 @ =0x000087d8 - adds r0, r1 - movs r1, 0x17 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCBC: .4byte gSharedMem -_080ECCC0: .4byte 0x000087d8 -_080ECCC4: - ldr r0, _080ECCD0 @ =gSharedMem - ldr r2, _080ECCD4 @ =0x000087d8 - adds r0, r2 - movs r1, 0x18 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCD0: .4byte gSharedMem -_080ECCD4: .4byte 0x000087d8 -_080ECCD8: - ldr r0, _080ECCE4 @ =gSharedMem - ldr r3, _080ECCE8 @ =0x000087d8 - adds r0, r3 - movs r1, 0x21 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCE4: .4byte gSharedMem -_080ECCE8: .4byte 0x000087d8 -_080ECCEC: - ldr r0, _080ECCF8 @ =gSharedMem - ldr r1, _080ECCFC @ =0x000087d8 - adds r0, r1 - movs r1, 0x2F - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCF8: .4byte gSharedMem -_080ECCFC: .4byte 0x000087d8 -_080ECD00: - ldr r0, _080ECD08 @ =sub_80EC9A8 - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD08: .4byte sub_80EC9A8 -_080ECD0C: - ldr r1, _080ECD2C @ =gSharedMem - ldr r2, _080ECD30 @ =0x00006dad - adds r0, r1, r2 - ldrb r2, [r0] - ldr r3, _080ECD34 @ =0x00006dfc - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080ECD38 @ =0x000076aa - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080ECD3C @ =sub_80ED01C - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD2C: .4byte gSharedMem -_080ECD30: .4byte 0x00006dad -_080ECD34: .4byte 0x00006dfc -_080ECD38: .4byte 0x000076aa -_080ECD3C: .4byte sub_80ED01C -_080ECD40: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ECD74 - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECD60 @ =0x00006dad - adds r1, r4, r2 - movs r0, 0x5 - strb r0, [r1] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080ECD74 - .align 2, 0 -_080ECD60: .4byte 0x00006dad -_080ECD64: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080ECD74 - ldr r0, _080ECD7C @ =sub_80EC9A8 - bl sub_80EBDBC -_080ECD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECD7C: .4byte sub_80EC9A8 - thumb_func_end sub_80ECC08 - - thumb_func_start sub_80ECD80 -sub_80ECD80: @ 80ECD80 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECDA0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x14 - bls _080ECD96 - b _080ED006 -_080ECD96: - lsls r0, 2 - ldr r1, _080ECDA4 @ =_080ECDA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECDA0: .4byte gSharedMem -_080ECDA4: .4byte _080ECDA8 - .align 2, 0 -_080ECDA8: - .4byte _080ECDFC - .4byte _080ECE1A - .4byte _080ECE34 - .4byte _080ECE4C - .4byte _080ECE64 - .4byte _080ECE78 - .4byte _080ECE80 - .4byte _080ECEAC - .4byte _080ECEC0 - .4byte _080ECED4 - .4byte _080ECEE8 - .4byte _080ECF04 - .4byte _080ECF10 - .4byte _080ECF3C - .4byte _080ECF44 - .4byte _080ECF58 - .4byte _080ECF70 - .4byte _080ECF84 - .4byte _080ECFB0 - .4byte _080ECFC4 - .4byte _080ECFE8 -_080ECDFC: - movs r3, 0xC2 - lsls r3, 2 - adds r0, r4, r3 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC -_080ECE1A: - ldr r0, _080ECE30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ECE28 - b _080ED006 -_080ECE28: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECE30: .4byte gPaletteFade -_080ECE34: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECE40 - b _080ED006 -_080ECE40: - ldr r0, _080ECE48 @ =sub_80EBD80 - bl SetVBlankCallback - b _080ECFD4 - .align 2, 0 -_080ECE48: .4byte sub_80EBD80 -_080ECE4C: - bl sub_80EED1C - bl sub_80F3130 - ldr r1, _080ECE60 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECE60: .4byte gSharedMem -_080ECE64: - movs r0, 0x1 - bl sub_80F2D6C - ldr r1, _080ECE74 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECE74: .4byte gSharedMem -_080ECE78: - movs r0, 0x5 - bl sub_80F2D6C - b _080ECFD4 -_080ECE80: - ldr r1, _080ECEA0 @ =0x00006dfc - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECEA4 @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r3, _080ECEA8 @ =0x00006dae - adds r1, r4, r3 - movs r0, 0x6 - strb r0, [r1] - bl sub_80EEE08 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC - .align 2, 0 -_080ECEA0: .4byte 0x00006dfc -_080ECEA4: .4byte 0x00006dad -_080ECEA8: .4byte 0x00006dae -_080ECEAC: - movs r0, 0x2 - bl sub_80EF248 - ldr r1, _080ECED0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEC0: - movs r0, 0x2 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECECE - b _080ED006 -_080ECECE: - b _080ECFD4 - .align 2, 0 -_080ECED0: .4byte gSharedMem -_080ECED4: - movs r0, 0x2 - bl sub_80F1B8C - ldr r1, _080ECF00 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEE8: - movs r0, 0x2 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080ECEF6 - b _080ED006 -_080ECEF6: - ldr r1, _080ECF00 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECF00: .4byte gSharedMem -_080ECF04: - bl sub_8055870 - cmp r0, 0 - beq _080ECF0E - b _080ED006 -_080ECF0E: - b _080ECFD4 -_080ECF10: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECF38 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF38: .4byte sub_80EBD18 -_080ECF3C: - movs r0, 0 - bl sub_80EED2C - b _080ECFD4 -_080ECF44: - bl sub_80F2598 - ldr r1, _080ECF54 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECF54: .4byte gSharedMem -_080ECF58: - ldr r0, _080ECF6C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED006 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF6C: .4byte gPaletteFade -_080ECF70: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECFA8 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECF84: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED006 - ldr r0, _080ECFA8 @ =gSharedMem - ldr r3, _080ECFAC @ =0x00000306 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED006 - .align 2, 0 -_080ECFA8: .4byte gSharedMem -_080ECFAC: .4byte 0x00000306 -_080ECFB0: - movs r0, 0x5 - bl sub_80F2C80 - ldr r1, _080ECFE4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECFC4: - movs r0, 0x5 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - bl sub_80F1DF0 -_080ECFD4: - ldr r1, _080ECFE4 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080ECFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED006 - .align 2, 0 -_080ECFE4: .4byte gSharedMem -_080ECFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - ldr r0, _080ED010 @ =gSharedMem - ldr r1, _080ED014 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - ldr r0, _080ED018 @ =sub_80ECC08 - bl sub_80EBDBC -_080ED006: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED010: .4byte gSharedMem -_080ED014: .4byte 0x00006dad -_080ED018: .4byte sub_80ECC08 - thumb_func_end sub_80ECD80 - - thumb_func_start sub_80ED01C -sub_80ED01C: @ 80ED01C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED03C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x13 - bls _080ED032 - b _080ED308 -_080ED032: - lsls r0, 2 - ldr r1, _080ED040 @ =_080ED044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED03C: .4byte gSharedMem -_080ED040: .4byte _080ED044 - .align 2, 0 -_080ED044: - .4byte _080ED094 - .4byte _080ED0B4 - .4byte _080ED0D4 - .4byte _080ED108 - .4byte _080ED138 - .4byte _080ED14C - .4byte _080ED15E - .4byte _080ED18C - .4byte _080ED1AC - .4byte _080ED1C4 - .4byte _080ED1D8 - .4byte _080ED1F4 - .4byte _080ED208 - .4byte _080ED220 - .4byte _080ED24C - .4byte _080ED260 - .4byte _080ED28C - .4byte _080ED2A0 - .4byte _080ED2CC - .4byte _080ED2EA -_080ED094: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080ED0B0 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED0B0: .4byte gSharedMem -_080ED0B4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED0C0 - b _080ED308 -_080ED0C0: - movs r0, 0 - bl sub_80EEFBC - ldr r1, _080ED0D0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED0D0: .4byte gSharedMem -_080ED0D4: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED0E2 - b _080ED308 -_080ED0E2: - ldr r4, _080ED104 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED104: .4byte gSharedMem -_080ED108: - ldr r0, _080ED130 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED116 - b _080ED308 -_080ED116: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r1, _080ED134 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED130: .4byte gPaletteFade -_080ED134: .4byte gSharedMem -_080ED138: - bl sub_80F2620 - ldr r1, _080ED148 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED148: .4byte gSharedMem -_080ED14C: - bl sub_80F4D44 - ldr r1, _080ED178 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED15E: - bl sub_80F4D88 - lsls r0, 24 - cmp r0, 0 - bne _080ED17C - ldr r1, _080ED178 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED178: .4byte gSharedMem -_080ED17C: - ldr r1, _080ED188 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED188: .4byte gSharedMem -_080ED18C: - bl sub_8055870 - cmp r0, 0 - beq _080ED196 - b _080ED308 -_080ED196: - ldr r1, _080ED1A8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED1A8: .4byte gSharedMem -_080ED1AC: - bl sub_8055870 - cmp r0, 0 - beq _080ED1B6 - b _080ED308 -_080ED1B6: - ldr r1, _080ED1C0 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED1C0: .4byte gSharedMem -_080ED1C4: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED1F0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED1D8: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - beq _080ED1E4 - b _080ED308 -_080ED1E4: - ldr r1, _080ED1F0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED27C - .align 2, 0 -_080ED1F0: .4byte gSharedMem -_080ED1F4: - movs r0, 0 - bl sub_80F3008 - ldr r1, _080ED204 @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED204: .4byte gSharedMem -_080ED208: - bl sub_8055870 - cmp r0, 0 - beq _080ED212 - b _080ED308 -_080ED212: - ldr r1, _080ED21C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED21C: .4byte gSharedMem -_080ED220: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED248 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED248: .4byte sub_80EBD18 -_080ED24C: - movs r0, 0x4 - bl sub_80EED2C - ldr r1, _080ED25C @ =gSharedMem - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED25C: .4byte gSharedMem -_080ED260: - ldr r0, _080ED284 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080ED308 - ldr r2, _080ED288 @ =0x00000306 - adds r0, r4, r2 - strh r1, [r0] - movs r3, 0xC1 - lsls r3, 2 - adds r1, r4, r3 -_080ED27C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED284: .4byte gPaletteFade -_080ED288: .4byte 0x00000306 -_080ED28C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED2C4 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED2A0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED308 - ldr r0, _080ED2C4 @ =gSharedMem - ldr r3, _080ED2C8 @ =0x00000306 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED308 - .align 2, 0 -_080ED2C4: .4byte gSharedMem -_080ED2C8: .4byte 0x00000306 -_080ED2CC: - ldr r4, _080ED310 @ =gSharedMem - ldr r2, _080ED314 @ =0x00006dfc - adds r0, r4, r2 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2C80 - movs r3, 0xC1 - lsls r3, 2 - adds r4, r3 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080ED2EA: - ldr r0, _080ED310 @ =gSharedMem - ldr r1, _080ED314 @ =0x00006dfc - adds r0, r1 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED308 - ldr r0, _080ED318 @ =sub_80ED31C - bl sub_80EBDBC -_080ED308: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED310: .4byte gSharedMem -_080ED314: .4byte 0x00006dfc -_080ED318: .4byte sub_80ED31C - thumb_func_end sub_80ED01C - - thumb_func_start sub_80ED31C -sub_80ED31C: @ 80ED31C - push {r4,lr} - ldr r0, _080ED338 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080ED3A8 - cmp r0, 0x1 - bgt _080ED33C - cmp r0, 0 - beq _080ED342 - b _080ED3CA - .align 2, 0 -_080ED338: .4byte gSharedMem -_080ED33C: - cmp r0, 0x2 - beq _080ED3C0 - b _080ED3CA -_080ED342: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080ED374 - cmp r0, 0x2 - beq _080ED380 - ldr r0, _080ED36C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ED38C - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED370 @ =sub_80ED4D8 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED36C: .4byte gMain -_080ED370: .4byte sub_80ED4D8 -_080ED374: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080ED3CA -_080ED380: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED38C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ED3CA - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED3A4 @ =sub_80ECD80 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED3A4: .4byte sub_80ECD80 -_080ED3A8: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080ED3CA - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED3C0: - bl sub_8055870 - cmp r0, 0 - bne _080ED3CA -_080ED3C8: - strh r0, [r4] -_080ED3CA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ED31C - - thumb_func_start sub_80ED3D0 -sub_80ED3D0: @ 80ED3D0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080ED3EC @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080ED4C6 - lsls r0, 2 - ldr r1, _080ED3F0 @ =_080ED3F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED3EC: .4byte gSharedMem -_080ED3F0: .4byte _080ED3F4 - .align 2, 0 -_080ED3F4: - .4byte _080ED418 - .4byte _080ED420 - .4byte _080ED42A - .4byte _080ED432 - .4byte _080ED446 - .4byte _080ED458 - .4byte _080ED462 - .4byte _080ED498 - .4byte _080ED4B4 -_080ED418: - movs r0, 0 - bl SetVBlankCallback - b _080ED49E -_080ED420: - bl sub_80EED0C - bl sub_80F6134 - b _080ED49E -_080ED42A: - movs r0, 0 - bl sub_80EEFBC - b _080ED49E -_080ED432: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED454 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED446: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E - .align 2, 0 -_080ED454: .4byte gSharedMem -_080ED458: - bl sub_8055870 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E -_080ED462: - movs r0, 0 - bl sub_80F3008 - ldr r4, _080ED490 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED494 @ =sub_80EBD18 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ED4A6 - .align 2, 0 -_080ED490: .4byte gSharedMem -_080ED494: .4byte sub_80EBD18 -_080ED498: - movs r0, 0x4 - bl sub_80EED2C -_080ED49E: - ldr r1, _080ED4B0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED4A6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED4C6 - .align 2, 0 -_080ED4B0: .4byte gSharedMem -_080ED4B4: - ldr r0, _080ED4D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED4C6 - ldr r0, _080ED4D4 @ =sub_80ED31C - bl sub_80EBDBC -_080ED4C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED4D0: .4byte gPaletteFade -_080ED4D4: .4byte sub_80ED31C - thumb_func_end sub_80ED3D0 - - thumb_func_start sub_80ED4D8 -sub_80ED4D8: @ 80ED4D8 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED4F8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080ED4EE - b _080ED60E -_080ED4EE: - lsls r0, 2 - ldr r1, _080ED4FC @ =_080ED500 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED4F8: .4byte gSharedMem -_080ED4FC: .4byte _080ED500 - .align 2, 0 -_080ED500: - .4byte _080ED524 - .4byte _080ED542 - .4byte _080ED564 - .4byte _080ED57C - .4byte _080ED582 - .4byte _080ED594 - .4byte _080ED5A4 - .4byte _080ED5E0 - .4byte _080ED5FC -_080ED524: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE -_080ED542: - ldr r0, _080ED560 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - b _080ED5E6 - .align 2, 0 -_080ED560: .4byte gPaletteFade -_080ED564: - bl sub_8055870 - cmp r0, 0 - bne _080ED60E - ldr r1, _080ED578 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED5EE - .align 2, 0 -_080ED578: .4byte gSharedMem -_080ED57C: - bl sub_80F4CF0 - b _080ED5E6 -_080ED582: - bl sub_80EFF34 - ldr r1, _080ED5A0 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED594: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080ED60E - b _080ED5E6 - .align 2, 0 -_080ED5A0: .4byte gSharedMem -_080ED5A4: - bl sub_80F35B4 - movs r0, 0x2 - bl sub_80EEFBC - ldr r4, _080ED5D8 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED5DC @ =sub_80EBD4C - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE - .align 2, 0 -_080ED5D8: .4byte gSharedMem -_080ED5DC: .4byte sub_80EBD4C -_080ED5E0: - movs r0, 0x2 - bl sub_80EED2C -_080ED5E6: - ldr r1, _080ED5F8 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED5EE: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED60E - .align 2, 0 -_080ED5F8: .4byte gSharedMem -_080ED5FC: - ldr r0, _080ED618 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - ldr r0, _080ED61C @ =sub_80ED858 - bl sub_80EBDBC -_080ED60E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED618: .4byte gPaletteFade -_080ED61C: .4byte sub_80ED858 - thumb_func_end sub_80ED4D8 - - thumb_func_start sub_80ED620 -sub_80ED620: @ 80ED620 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED640 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _080ED636 - b _080ED846 -_080ED636: - lsls r0, 2 - ldr r1, _080ED644 @ =_080ED648 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED640: .4byte gSharedMem -_080ED644: .4byte _080ED648 - .align 2, 0 -_080ED648: - .4byte _080ED68C - .4byte _080ED6A4 - .4byte _080ED6B8 - .4byte _080ED6EC - .4byte _080ED730 - .4byte _080ED736 - .4byte _080ED750 - .4byte _080ED762 - .4byte _080ED76C - .4byte _080ED784 - .4byte _080ED78A - .4byte _080ED7C0 - .4byte _080ED7D4 - .4byte _080ED7EC - .4byte _080ED800 - .4byte _080ED820 - .4byte _080ED834 -_080ED68C: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080ED6A0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED6A0: .4byte gSharedMem -_080ED6A4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED6B0 - b _080ED846 -_080ED6B0: - movs r0, 0x1 - bl sub_80EEFBC - b _080ED80C -_080ED6B8: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED6C6 - b _080ED846 -_080ED6C6: - ldr r4, _080ED6E8 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED6E8: .4byte gSharedMem -_080ED6EC: - ldr r0, _080ED724 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080ED6FE - b _080ED846 -_080ED6FE: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r0, _080ED728 @ =gSharedMem - ldr r2, _080ED72C @ =0x000076aa - adds r1, r0, r2 - strb r4, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED846 - .align 2, 0 -_080ED724: .4byte gPaletteFade -_080ED728: .4byte gSharedMem -_080ED72C: .4byte 0x000076aa -_080ED730: - bl sub_80F2620 - b _080ED80C -_080ED736: - ldr r0, _080ED74C @ =0x0000d162 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80F4BD0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED74C: .4byte 0x0000d162 -_080ED750: - bl sub_80EFF34 - ldr r1, _080ED768 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED762: - bl sub_80EFF68 - b _080ED806 - .align 2, 0 -_080ED768: .4byte gSharedMem -_080ED76C: - bl sub_8055870 - cmp r0, 0 - bne _080ED846 - ldr r1, _080ED780 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED780: .4byte gSharedMem -_080ED784: - bl sub_8055870 - b _080ED808 -_080ED78A: - bl sub_80F33A8 - ldr r4, _080ED7B8 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED7BC @ =sub_80EBD4C - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7B8: .4byte gSharedMem -_080ED7BC: .4byte sub_80EBD4C -_080ED7C0: - movs r0, 0x2 - bl sub_80EED2C - ldr r1, _080ED7D0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED7D0: .4byte gSharedMem -_080ED7D4: - ldr r0, _080ED7E8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED846 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7E8: .4byte gPaletteFade -_080ED7EC: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED81C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED800: - movs r0, 0x1 - bl sub_80F2CBC -_080ED806: - lsls r0, 24 -_080ED808: - cmp r0, 0 - bne _080ED846 -_080ED80C: - ldr r1, _080ED81C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ED814: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED846 - .align 2, 0 -_080ED81C: .4byte gSharedMem -_080ED820: - movs r0, 0x6 - bl sub_80F2C80 - ldr r1, _080ED850 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED834: - movs r0, 0x6 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED846 - ldr r0, _080ED854 @ =sub_80ED858 - bl sub_80EBDBC -_080ED846: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED850: .4byte gSharedMem -_080ED854: .4byte sub_80ED858 - thumb_func_end sub_80ED620 - - thumb_func_start sub_80ED858 -sub_80ED858: @ 80ED858 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080ED878 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0xB - bls _080ED86E - b _080EDB7A -_080ED86E: - lsls r0, 2 - ldr r1, _080ED87C @ =_080ED880 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED878: .4byte gSharedMem -_080ED87C: .4byte _080ED880 - .align 2, 0 -_080ED880: - .4byte _080ED8B0 - .4byte _080ED8CC - .4byte _080ED8EC - .4byte _080ED904 - .4byte _080ED91A - .4byte _080EDA68 - .4byte _080EDA8C - .4byte _080EDAA4 - .4byte _080EDAC0 - .4byte _080EDAE8 - .4byte _080EDB7A - .4byte _080EDB28 -_080ED8B0: - bl sub_80F4F78 - bl sub_80F5B38 - ldr r0, _080ED8C8 @ =gSharedMem - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8C8: .4byte gSharedMem -_080ED8CC: - bl sub_80F5B50 - lsls r0, 24 - cmp r0, 0 - beq _080ED8D8 - b _080EDB7A -_080ED8D8: - ldr r0, _080ED8E8 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8E8: .4byte gSharedMem -_080ED8EC: - movs r0, 0x1 - bl sub_80F0174 - ldr r0, _080ED900 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED900: .4byte gSharedMem -_080ED904: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - beq _080ED910 - b _080EDB7A -_080ED910: - bl sub_80F3C94 - bl sub_80F3D00 - b _080EDAD4 -_080ED91A: - ldr r2, _080ED960 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080ED970 - ldr r1, _080ED964 @ =0x000087cb - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED970 - ldr r2, _080ED968 @ =0x000076aa - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED948 - ldr r4, _080ED96C @ =0x000087dc - adds r0, r5, r4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080ED970 -_080ED948: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F5060 - bl move_anim_execute - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - b _080ED9B8 - .align 2, 0 -_080ED960: .4byte gMain -_080ED964: .4byte 0x000087cb -_080ED968: .4byte 0x000076aa -_080ED96C: .4byte 0x000087dc -_080ED970: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED9CC - ldr r4, _080ED9C0 @ =0x000087cb - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9CC - ldr r1, _080ED9C4 @ =0x000076aa - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9A2 - ldr r2, _080ED9C8 @ =0x000087dc - adds r0, r5, r2 - subs r4, 0x57 - adds r1, r5, r4 - movs r4, 0 - ldrsh r2, [r0, r4] - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r2, r0 - bge _080ED9CC -_080ED9A2: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80F5060 - bl move_anim_execute - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 -_080ED9B8: - movs r0, 0x5 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080ED9C0: .4byte 0x000087cb -_080ED9C4: .4byte 0x000076aa -_080ED9C8: .4byte 0x000087dc -_080ED9CC: - ldrh r2, [r3, 0x2E] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080ED9F8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4FDC - bl move_anim_execute - ldr r0, _080ED9F4 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x9 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED9F4: .4byte gSharedMem -_080ED9F8: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080EDA02 - b _080EDB7A -_080EDA02: - adds r4, r5, 0 - ldr r2, _080EDA38 @ =0x000076aa - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDA44 - ldr r1, _080EDA3C @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r2, _080EDA40 @ =0x000087da - adds r0, r4, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r0, 0x1 - cmp r1, r0 - beq _080EDA26 - b _080EDB7A -_080EDA26: - movs r0, 0x5 - bl PlaySE - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - movs r0, 0x9 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA38: .4byte 0x000076aa -_080EDA3C: .4byte 0x000087dc -_080EDA40: .4byte 0x000087da -_080EDA44: - ldr r1, _080EDA64 @ =0x00006dac - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080EDA50 - b _080EDB7A -_080EDA50: - movs r0, 0x5 - bl PlaySE - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0x7 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA64: .4byte 0x00006dac -_080EDA68: - bl gpu_sync_bg_show - lsls r0, 24 - cmp r0, 0 - beq _080EDA74 - b _080EDB7A -_080EDA74: - bl sub_80F3D00 - ldr r0, _080EDA88 @ =gSharedMem - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x6 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDA88: .4byte gSharedMem -_080EDA8C: - bl sub_8055870 - cmp r0, 0 - bne _080EDB7A - ldr r0, _080EDAA0 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EDADC - .align 2, 0 -_080EDAA0: .4byte gSharedMem -_080EDAA4: - movs r0, 0x3 - bl sub_80EEFBC - bl sub_80F3668 - ldr r0, _080EDABC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x8 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDABC: .4byte gSharedMem -_080EDAC0: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _080EDB7A - movs r0, 0x2 - bl sub_80EEFBC - bl sub_80F3698 -_080EDAD4: - ldr r0, _080EDAE4 @ =gSharedMem - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 -_080EDADC: - movs r1, 0x4 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDAE4: .4byte gSharedMem -_080EDAE8: - bl sub_80F5038 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EDB7A - movs r0, 0 - bl sub_80F0174 - bl sub_80F2F48 - ldr r5, _080EDB24 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r4, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0xB - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDB24: .4byte gSharedMem -_080EDB28: - ldr r0, _080EDB60 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDB7A - bl sub_80F3CE8 - bl sub_80F5BDC - ldr r0, _080EDB64 @ =gSharedMem - ldr r4, _080EDB68 @ =0x000076aa - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDB70 - bl sub_80F357C - movs r0, 0x1 - bl sub_80F2D6C - movs r0, 0x6 - bl sub_80F2D6C - ldr r0, _080EDB6C @ =sub_80ECA10 - bl sub_80EBDBC - b _080EDB7A - .align 2, 0 -_080EDB60: .4byte gPaletteFade -_080EDB64: .4byte gSharedMem -_080EDB68: .4byte 0x000076aa -_080EDB6C: .4byte sub_80ECA10 -_080EDB70: - bl sub_80F3614 - ldr r0, _080EDB84 @ =sub_80ED3D0 - bl sub_80EBDBC -_080EDB7A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDB84: .4byte sub_80ED3D0 - thumb_func_end sub_80ED858 - - thumb_func_start sub_80EDB88 -sub_80EDB88: @ 80EDB88 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDBA8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EDB9E - b _080EDDAA -_080EDB9E: - lsls r0, 2 - ldr r1, _080EDBAC @ =_080EDBB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDBA8: .4byte gSharedMem -_080EDBAC: .4byte _080EDBB0 - .align 2, 0 -_080EDBB0: - .4byte _080EDBF8 - .4byte _080EDC04 - .4byte _080EDC24 - .4byte _080EDC58 - .4byte _080EDC7C - .4byte _080EDC90 - .4byte _080EDCA2 - .4byte _080EDCC0 - .4byte _080EDCDC - .4byte _080EDCE6 - .4byte _080EDCFA - .4byte _080EDD0C - .4byte _080EDD20 - .4byte _080EDD34 - .4byte _080EDD48 - .4byte _080EDD52 - .4byte _080EDD7C - .4byte _080EDD98 -_080EDBF8: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EDD82 -_080EDC04: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EDC10 - b _080EDDAA -_080EDC10: - movs r0, 0x4 - bl sub_80EEFBC - ldr r1, _080EDC20 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC20: .4byte gSharedMem -_080EDC24: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EDC32 - b _080EDDAA -_080EDC32: - ldr r4, _080EDC54 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDC54: .4byte gSharedMem -_080EDC58: - ldr r0, _080EDC78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDC66 - b _080EDDAA -_080EDC66: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - b _080EDD82 - .align 2, 0 -_080EDC78: .4byte gPaletteFade -_080EDC7C: - bl sub_80F2620 - ldr r1, _080EDC8C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC8C: .4byte gSharedMem -_080EDC90: - bl sub_80F638C - ldr r1, _080EDCBC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCA2: - bl sub_80F63D0 - lsls r0, 24 - cmp r0, 0 - bne _080EDD82 - ldr r1, _080EDCBC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCBC: .4byte gSharedMem -_080EDCC0: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - ldr r1, _080EDCD8 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCD8: .4byte gSharedMem -_080EDCDC: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDCE6: - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EDD08 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCFA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD08: .4byte gSharedMem -_080EDD0C: - movs r0, 0x2 - bl sub_80F2C80 - ldr r1, _080EDD30 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDD20: - movs r0, 0x2 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD30: .4byte gSharedMem -_080EDD34: - movs r0, 0x1 - bl sub_80F3008 - ldr r1, _080EDD44 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDD44: .4byte gSharedMem -_080EDD48: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDD52: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EDD78 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDD78: .4byte sub_80EBD18 -_080EDD7C: - movs r0, 0x4 - bl sub_80EED2C -_080EDD82: - ldr r1, _080EDD94 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EDD8A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDD94: .4byte gSharedMem -_080EDD98: - ldr r0, _080EDDB4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDDAA - ldr r0, _080EDDB8 @ =sub_80EDDBC - bl sub_80EBDBC -_080EDDAA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDDB4: .4byte gPaletteFade -_080EDDB8: .4byte sub_80EDDBC - thumb_func_end sub_80EDB88 - - thumb_func_start sub_80EDDBC -sub_80EDDBC: @ 80EDDBC - push {r4,lr} - ldr r0, _080EDDD8 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EDE48 - cmp r0, 0x1 - bgt _080EDDDC - cmp r0, 0 - beq _080EDDE2 - b _080EDE6A - .align 2, 0 -_080EDDD8: .4byte gSharedMem -_080EDDDC: - cmp r0, 0x2 - beq _080EDE60 - b _080EDE6A -_080EDDE2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDE14 - cmp r0, 0x2 - beq _080EDE20 - ldr r0, _080EDE0C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EDE2C - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE10 @ =sub_80EDEE4 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE0C: .4byte gMain -_080EDE10: .4byte sub_80EDEE4 -_080EDE14: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080EDE6A -_080EDE20: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE2C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EDE6A - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE44 @ =sub_80EDE70 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE44: .4byte sub_80EDE70 -_080EDE48: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EDE6A - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE60: - bl sub_8055870 - cmp r0, 0 - bne _080EDE6A -_080EDE68: - strh r0, [r4] -_080EDE6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EDDBC - - thumb_func_start sub_80EDE70 -sub_80EDE70: @ 80EDE70 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EDE8C @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EDEAE - cmp r2, 0x1 - bgt _080EDE90 - cmp r2, 0 - beq _080EDE96 - b _080EDED6 - .align 2, 0 -_080EDE8C: .4byte gSharedMem -_080EDE90: - cmp r2, 0x2 - beq _080EDED0 - b _080EDED6 -_080EDE96: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EDEC4 -_080EDEAE: - ldr r0, _080EDECC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDED6 - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C -_080EDEC4: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EDED6 - .align 2, 0 -_080EDECC: .4byte gPaletteFade -_080EDED0: - ldr r0, _080EDEE0 @ =sub_80EC00C - bl sub_80EBDBC -_080EDED6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDEE0: .4byte sub_80EC00C - thumb_func_end sub_80EDE70 - - thumb_func_start sub_80EDEE4 -sub_80EDEE4: @ 80EDEE4 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDF04 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xA - bls _080EDEFA - b _080EE060 -_080EDEFA: - lsls r0, 2 - ldr r1, _080EDF08 @ =_080EDF0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDF04: .4byte gSharedMem -_080EDF08: .4byte _080EDF0C - .align 2, 0 -_080EDF0C: - .4byte _080EDF38 - .4byte _080EDF50 - .4byte _080EDF80 - .4byte _080EDF98 - .4byte _080EDFB0 - .4byte _080EDFC8 - .4byte _080EDFE0 - .4byte _080EDFF8 - .4byte _080EE01C - .4byte _080EE030 - .4byte _080EE050 -_080EDF38: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE03C -_080EDF50: - ldr r0, _080EDF78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDF5E - b _080EE060 -_080EDF5E: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - ldr r1, _080EDF7C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDF78: .4byte gPaletteFade -_080EDF7C: .4byte gSharedMem -_080EDF80: - bl sub_80F66E0 - bl sub_80EEE08 - ldr r1, _080EDF94 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDF94: .4byte gSharedMem -_080EDF98: - bl sub_80F1080 - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFAC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFAC: .4byte gSharedMem -_080EDFB0: - movs r0, 0x5 - bl sub_80EEFBC - bl sub_80F38B8 - ldr r1, _080EDFDC @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDFC8: - bl sub_80F38EC - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFDC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFDC: .4byte gSharedMem -_080EDFE0: - bl sub_8055870 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFF4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDFF4: .4byte gSharedMem -_080EDFF8: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE018 @ =sub_80EBD18 - bl SetVBlankCallback - b _080EE03C - .align 2, 0 -_080EE018: .4byte sub_80EBD18 -_080EE01C: - movs r0, 0x3 - bl sub_80EED2C - ldr r1, _080EE02C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EE02C: .4byte gSharedMem -_080EE030: - ldr r0, _080EE04C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE060 -_080EE03C: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 -_080EE042: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE060 - .align 2, 0 -_080EE04C: .4byte gPaletteFade -_080EE050: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r0, _080EE068 @ =sub_80EE06C - bl sub_80EBDBC -_080EE060: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE068: .4byte sub_80EE06C - thumb_func_end sub_80EDEE4 - - thumb_func_start sub_80EE06C -sub_80EE06C: @ 80EE06C - push {r4,r5,lr} - ldr r1, _080EE08C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE080 - b _080EE288 -_080EE080: - lsls r0, 2 - ldr r1, _080EE090 @ =_080EE094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE08C: .4byte gSharedMem -_080EE090: .4byte _080EE094 - .align 2, 0 -_080EE094: - .4byte _080EE0B8 - .4byte _080EE0CC - .4byte _080EE180 - .4byte _080EE19C - .4byte _080EE1B8 - .4byte _080EE1D0 - .4byte _080EE1F8 - .4byte _080EE250 - .4byte _080EE26C -_080EE0B8: - bl sub_80F15A8 - ldr r1, _080EE0C8 @ =gSharedMem - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 - b _080EE1C4 - .align 2, 0 -_080EE0C8: .4byte gSharedMem -_080EE0CC: - ldr r2, _080EE0FC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE104 - ldr r1, _080EE100 @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE104 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F6A4C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE1C4 - .align 2, 0 -_080EE0FC: .4byte gMain -_080EE100: .4byte 0x000087dc -_080EE104: - ldrh r1, [r3, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE140 - ldr r1, _080EE138 @ =0x000087dc - adds r0, r4, r1 - ldr r2, _080EE13C @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE140 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F6A4C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE1C4 - .align 2, 0 -_080EE138: .4byte 0x000087dc -_080EE13C: .4byte 0x00008774 -_080EE140: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080EE164 - movs r0, 0x5 - bl PlaySE - movs r0, 0xB - bl sub_80EEFBC - ldr r0, _080EE160 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EE262 - .align 2, 0 -_080EE160: .4byte gSharedMem -_080EE164: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _080EE16E - b _080EE288 -_080EE16E: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE17C @ =sub_80EE294 - bl sub_80EBDBC - b _080EE288 - .align 2, 0 -_080EE17C: .4byte sub_80EE294 -_080EE180: - bl sub_80F6AF0 - lsls r0, 24 - cmp r0, 0 - beq _080EE18C - b _080EE288 -_080EE18C: - ldr r1, _080EE198 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE1C4 - .align 2, 0 -_080EE198: .4byte gSharedMem -_080EE19C: - bl sub_8055870 - adds r1, r0, 0 - cmp r1, 0 - bne _080EE288 - ldr r0, _080EE1B4 @ =gSharedMem - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE1B4: .4byte gSharedMem -_080EE1B8: - bl sub_80F3B00 - ldr r1, _080EE1CC @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE1C4: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE288 - .align 2, 0 -_080EE1CC: .4byte gSharedMem -_080EE1D0: - bl sub_80F3B58 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - bl sub_80F1494 - ldr r1, _080EE1F4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl sub_80EED9C - b _080EE288 - .align 2, 0 -_080EE1F4: .4byte gSharedMem -_080EE1F8: - bl sub_80F68E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080EE224 - cmp r0, 0x1 - bne _080EE224 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE220 @ =gSharedMem - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - movs r1, 0x7 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE220: .4byte gSharedMem -_080EE224: - ldr r0, _080EE248 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE288 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE24C @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE248: .4byte gMain -_080EE24C: .4byte gSharedMem -_080EE250: - bl sub_80F3BD4 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - ldr r0, _080EE268 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 -_080EE262: - movs r1, 0x4 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE268: .4byte gSharedMem -_080EE26C: - bl sub_80F3BD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EE288 - movs r0, 0x5 - bl sub_80EEFBC - ldr r0, _080EE290 @ =gSharedMem - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r4, [r0] -_080EE288: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE290: .4byte gSharedMem - thumb_func_end sub_80EE06C - - thumb_func_start sub_80EE294 -sub_80EE294: @ 80EE294 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EE2B4 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE2AA - b _080EE3C6 -_080EE2AA: - lsls r0, 2 - ldr r1, _080EE2B8 @ =_080EE2BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE2B4: .4byte gSharedMem -_080EE2B8: .4byte _080EE2BC - .align 2, 0 -_080EE2BC: - .4byte _080EE2E0 - .4byte _080EE2FE - .4byte _080EE324 - .4byte _080EE33C - .4byte _080EE34C - .4byte _080EE370 - .4byte _080EE37A - .4byte _080EE39A - .4byte _080EE3B4 -_080EE2E0: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE2FE: - ldr r0, _080EE320 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3C2C - bl sub_80EEE08 - b _080EE3A0 - .align 2, 0 -_080EE320: .4byte gPaletteFade -_080EE324: - bl sub_80F6134 - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EE348 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE33C: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 - .align 2, 0 -_080EE348: .4byte gSharedMem -_080EE34C: - movs r0, 0x4 - bl sub_80EEFBC - movs r0, 0x1 - bl sub_80F3008 - ldr r0, _080EE368 @ =sub_80EBD18 - bl SetVBlankCallback - ldr r1, _080EE36C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE3A8 - .align 2, 0 -_080EE368: .4byte sub_80EBD18 -_080EE36C: .4byte gSharedMem -_080EE370: - bl sub_8055870 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 -_080EE37A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE39A: - movs r0, 0x4 - bl sub_80EED2C -_080EE3A0: - ldr r1, _080EE3B0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE3A8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE3C6 - .align 2, 0 -_080EE3B0: .4byte gSharedMem -_080EE3B4: - ldr r0, _080EE3D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - ldr r0, _080EE3D4 @ =sub_80EDDBC - bl sub_80EBDBC -_080EE3C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE3D0: .4byte gPaletteFade -_080EE3D4: .4byte sub_80EDDBC - thumb_func_end sub_80EE294 - - thumb_func_start sub_80EE3D8 -sub_80EE3D8: @ 80EE3D8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE3F8 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EE3EC - b _080EE57A -_080EE3EC: - lsls r0, 2 - ldr r1, _080EE3FC @ =_080EE400 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE3F8: .4byte gSharedMem -_080EE3FC: .4byte _080EE400 - .align 2, 0 -_080EE400: - .4byte _080EE438 - .4byte _080EE444 - .4byte _080EE458 - .4byte _080EE48C - .4byte _080EE4B0 - .4byte _080EE4B6 - .4byte _080EE4CA - .4byte _080EE4DC - .4byte _080EE4F0 - .4byte _080EE504 - .4byte _080EE50C - .4byte _080EE516 - .4byte _080EE54C - .4byte _080EE568 -_080EE438: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EE552 -_080EE444: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EE450 - b _080EE57A -_080EE450: - movs r0, 0x9 - bl sub_80EEFBC - b _080EE552 -_080EE458: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EE466 - b _080EE57A -_080EE466: - ldr r4, _080EE488 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE488: .4byte gSharedMem -_080EE48C: - ldr r0, _080EE4AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - bl sub_80EEE08 - b _080EE552 - .align 2, 0 -_080EE4AC: .4byte gPaletteFade -_080EE4B0: - bl sub_80F2620 - b _080EE552 -_080EE4B6: - movs r0, 0x2 - bl sub_80F0264 - ldr r1, _080EE4D8 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4CA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE4D8: .4byte gSharedMem -_080EE4DC: - movs r0, 0x3 - bl sub_80F2C80 - ldr r1, _080EE500 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4F0: - movs r0, 0x3 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE500: .4byte gSharedMem -_080EE504: - movs r0, 0x2 - bl sub_80F3008 - b _080EE552 -_080EE50C: - bl sub_8055870 - cmp r0, 0 - bne _080EE57A - b _080EE552 -_080EE516: - bl sub_80F6F10 - ldr r4, _080EE544 @ =gSharedMem - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE548 @ =sub_80EBD68 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE544: .4byte gSharedMem -_080EE548: .4byte sub_80EBD68 -_080EE54C: - movs r0, 0x5 - bl sub_80EED2C -_080EE552: - ldr r1, _080EE564 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE55A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE57A - .align 2, 0 -_080EE564: .4byte gSharedMem -_080EE568: - ldr r0, _080EE584 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - ldr r0, _080EE588 @ =sub_80EE58C - bl sub_80EBDBC -_080EE57A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE584: .4byte gPaletteFade -_080EE588: .4byte sub_80EE58C - thumb_func_end sub_80EE3D8 - - thumb_func_start sub_80EE58C -sub_80EE58C: @ 80EE58C - push {r4,r5,lr} - ldr r5, _080EE5A8 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EE624 - cmp r0, 0x1 - bgt _080EE5AC - cmp r0, 0 - beq _080EE5B2 - b _080EE652 - .align 2, 0 -_080EE5A8: .4byte gSharedMem -_080EE5AC: - cmp r0, 0x2 - beq _080EE648 - b _080EE652 -_080EE5B2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE5E4 - cmp r0, 0x2 - beq _080EE5FC - ldr r0, _080EE5DC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EE608 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE5E0 @ =sub_80EE658 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE5DC: .4byte gMain -_080EE5E0: .4byte sub_80EE658 -_080EE5E4: - movs r0, 0x5 - bl PlaySE - ldr r1, _080EE5F8 @ =0x0000876e - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - b _080EE652 - .align 2, 0 -_080EE5F8: .4byte 0x0000876e -_080EE5FC: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 -_080EE608: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE652 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE620 @ =sub_80EE8F4 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE620: .4byte sub_80EE8F4 -_080EE624: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EE652 - ldr r1, _080EE644 @ =0x0000876e - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 - .align 2, 0 -_080EE644: .4byte 0x0000876e -_080EE648: - bl sub_8055870 - cmp r0, 0 - bne _080EE652 -_080EE650: - strh r0, [r4] -_080EE652: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EE58C - - thumb_func_start sub_80EE658 -sub_80EE658: @ 80EE658 - push {r4,r5,lr} - ldr r1, _080EE678 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EE66C - b _080EE8E8 -_080EE66C: - lsls r0, 2 - ldr r1, _080EE67C @ =_080EE680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE678: .4byte gSharedMem -_080EE67C: .4byte _080EE680 - .align 2, 0 -_080EE680: - .4byte _080EE6C8 - .4byte _080EE6DA - .4byte _080EE6F4 - .4byte _080EE708 - .4byte _080EE71C - .4byte _080EE730 - .4byte _080EE758 - .4byte _080EE76A - .4byte _080EE780 - .4byte _080EE820 - .4byte _080EE840 - .4byte _080EE854 - .4byte _080EE868 - .4byte _080EE86E - .4byte _080EE880 - .4byte _080EE898 - .4byte _080EE8B4 - .4byte _080EE8D4 -_080EE6C8: - movs r0, 0x1 - bl sub_80F3294 - movs r0, 0xA - bl sub_80EEFBC - bl sub_80F0B24 - b _080EE8BE -_080EE6DA: - bl sub_80F0B44 - lsls r0, 24 - cmp r0, 0 - beq _080EE6E6 - b _080EE8E8 -_080EE6E6: - ldr r1, _080EE6F0 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE6F0: .4byte gSharedMem -_080EE6F4: - bl sub_80F0F64 - ldr r1, _080EE704 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE704: .4byte gSharedMem -_080EE708: - bl sub_80F0FEC - lsls r0, 24 - cmp r0, 0 - beq _080EE714 - b _080EE8E8 -_080EE714: - movs r0, 0x1 - bl sub_80F6FB8 - b _080EE8BE -_080EE71C: - bl sub_80F6DB8 - ldr r1, _080EE72C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE72C: .4byte gSharedMem -_080EE730: - ldr r4, _080EE750 @ =gSharedMem + 0x8788 - adds r0, r4, 0 - subs r0, 0x1A - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_80F700C - adds r0, r4, 0 - bl sub_80F42C4 - ldr r1, _080EE754 @ =0xffff7b7c - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE8E8 - .align 2, 0 -_080EE750: .4byte gSharedMem + 0x8788 -_080EE754: .4byte 0xffff7b7c -_080EE758: - bl sub_80F0CD8 - ldr r1, _080EE77C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE76A: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - beq _080EE776 - b _080EE8E8 -_080EE776: - bl sub_80F0D5C - b _080EE8B8 - .align 2, 0 -_080EE77C: .4byte gSharedMem -_080EE780: - ldr r2, _080EE7B0 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE7B8 - ldr r1, _080EE7B4 @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE7B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F708C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE7E8 - .align 2, 0 -_080EE7B0: .4byte gMain -_080EE7B4: .4byte 0x000087dc -_080EE7B8: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE7F8 - ldr r1, _080EE7F0 @ =0x000087dc - adds r0, r4, r1 - ldr r2, _080EE7F4 @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE7F8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F708C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EE7E8: - movs r0, 0x10 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE7F0: .4byte 0x000087dc -_080EE7F4: .4byte 0x00008774 -_080EE7F8: - ldrh r1, [r3, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE8E8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4394 - bl sub_80F0EC0 - ldr r1, _080EE81C @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE81C: .4byte gSharedMem -_080EE820: - bl sub_80F6ED4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - bl sub_80F0EF4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - movs r0, 0 - bl sub_80F6FB8 - bl sub_80F2FB0 - b _080EE8BE -_080EE840: - bl sub_80F6134 - ldr r1, _080EE850 @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE850: .4byte gSharedMem -_080EE854: - bl sub_80F0FA0 - ldr r1, _080EE864 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE864: .4byte gSharedMem -_080EE868: - bl sub_80F0FEC - b _080EE8B8 -_080EE86E: - bl sub_80F0C28 - ldr r1, _080EE87C @ =gSharedMem - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE87C: .4byte gSharedMem -_080EE880: - bl sub_80F0C48 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - ldr r1, _080EE894 @ =gSharedMem - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE894: .4byte gSharedMem -_080EE898: - movs r0, 0x9 - bl sub_80EEFBC - movs r0, 0 - bl sub_80F3294 - ldr r0, _080EE8B0 @ =sub_80EE58C - bl sub_80EBDBC - bl sub_80EED9C - b _080EE8E8 - .align 2, 0 -_080EE8B0: .4byte sub_80EE58C -_080EE8B4: - bl sub_80F70FC -_080EE8B8: - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 -_080EE8BE: - ldr r1, _080EE8D0 @ =gSharedMem - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 -_080EE8C6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE8D0: .4byte gSharedMem -_080EE8D4: - bl sub_8055870 - cmp r0, 0 - bne _080EE8E8 - ldr r0, _080EE8F0 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] -_080EE8E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE8F0: .4byte gSharedMem - thumb_func_end sub_80EE658 - - thumb_func_start sub_80EE8F4 -sub_80EE8F4: @ 80EE8F4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE910 @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EE932 - cmp r2, 0x1 - bgt _080EE914 - cmp r2, 0 - beq _080EE91A - b _080EE95E - .align 2, 0 -_080EE910: .4byte gSharedMem -_080EE914: - cmp r2, 0x2 - beq _080EE958 - b _080EE95E -_080EE91A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE94C -_080EE932: - ldr r0, _080EE954 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE95E - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C - bl sub_80F6FFC -_080EE94C: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE95E - .align 2, 0 -_080EE954: .4byte gPaletteFade -_080EE958: - ldr r0, _080EE968 @ =sub_80EC00C - bl sub_80EBDBC -_080EE95E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE968: .4byte sub_80EC00C - thumb_func_end sub_80EE8F4 - - thumb_func_start sub_80EE96C -sub_80EE96C: @ 80EE96C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080EE99C @ =gSharedMem - movs r1, 0xC1 - lsls r1, 2 - adds r5, r0, r1 - ldrh r4, [r5] - cmp r4, 0 - bne _080EE9A0 - movs r0, 0x6F - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EE9B4 - .align 2, 0 -_080EE99C: .4byte gSharedMem -_080EE9A0: - ldr r0, _080EE9BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE9B4 - bl sub_80F5BDC - bl sub_805469C -_080EE9B4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE9BC: .4byte gPaletteFade - thumb_func_end sub_80EE96C - - thumb_func_start sub_80EE9C0 -sub_80EE9C0: @ 80EE9C0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - bl sub_80F1E84 - ldr r1, _080EE9FC @ =gSharedMem - ldr r2, _080EEA00 @ =0x00006e14 - adds r0, r1, r2 - movs r2, 0 - strb r4, [r0] - ldr r3, _080EEA04 @ =0x00006e15 - adds r0, r1, r3 - strb r5, [r0] - adds r3, 0x1 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EEA08 @ =0x00006e17 - adds r1, r0 - strb r6, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE9FC: .4byte gSharedMem -_080EEA00: .4byte 0x00006e14 -_080EEA04: .4byte 0x00006e15 -_080EEA08: .4byte 0x00006e17 - thumb_func_end sub_80EE9C0 - - thumb_func_start sub_80EEA0C -sub_80EEA0C: @ 80EEA0C - push {r4,lr} - ldr r1, _080EEA28 @ =gSharedMem - ldr r2, _080EEA2C @ =0x00006e16 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x8 - bls _080EEA1E - b _080EEBFA -_080EEA1E: - lsls r0, 2 - ldr r1, _080EEA30 @ =_080EEA34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEA28: .4byte gSharedMem -_080EEA2C: .4byte 0x00006e16 -_080EEA30: .4byte _080EEA34 - .align 2, 0 -_080EEA34: - .4byte _080EEA58 - .4byte _080EEA98 - .4byte _080EEAAE - .4byte _080EEAD4 - .4byte _080EEB3E - .4byte _080EEB68 - .4byte _080EEB88 - .4byte _080EEBAC - .4byte _080EEBE4 -_080EEA58: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EEA64 - b _080EEC08 -_080EEA64: - ldr r1, _080EEA7C @ =gSharedMem - ldr r4, _080EEA80 @ =0x00006e17 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0xC - beq _080EEA88 - ldr r0, _080EEA84 @ =0x00006e16 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA7C: .4byte gSharedMem -_080EEA80: .4byte 0x00006e17 -_080EEA84: .4byte 0x00006e16 -_080EEA88: - ldr r2, _080EEA94 @ =0x00006e16 - adds r1, r2 - movs r0, 0x3 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA94: .4byte 0x00006e16 -_080EEA98: - ldr r4, _080EEAC8 @ =gSharedMem - ldr r1, _080EEACC @ =0x00006e17 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2C80 - ldr r2, _080EEAD0 @ =0x00006e16 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEAAE: - ldr r4, _080EEAC8 @ =gSharedMem - ldr r1, _080EEACC @ =0x00006e17 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - beq _080EEAC2 - b _080EEC08 -_080EEAC2: - ldr r2, _080EEAD0 @ =0x00006e16 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEAC8: .4byte gSharedMem -_080EEACC: .4byte 0x00006e17 -_080EEAD0: .4byte 0x00006e16 -_080EEAD4: - adds r2, r3, 0 - ldr r4, _080EEAF8 @ =0x00006e15 - adds r0, r2, r4 - ldrb r1, [r0] - subs r4, 0x68 - adds r0, r2, r4 - strb r1, [r0] - ldr r1, _080EEAFC @ =0x00006e14 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080EEB14 - cmp r0, 0x1 - bgt _080EEB00 - cmp r0, 0 - beq _080EEB06 - b _080EEB28 - .align 2, 0 -_080EEAF8: .4byte 0x00006e15 -_080EEAFC: .4byte 0x00006e14 -_080EEB00: - cmp r0, 0x2 - beq _080EEB20 - b _080EEB28 -_080EEB06: - ldr r4, _080EEB10 @ =0x00006dae - adds r1, r2, r4 - movs r0, 0x5 - b _080EEB26 - .align 2, 0 -_080EEB10: .4byte 0x00006dae -_080EEB14: - ldr r0, _080EEB1C @ =0x00006dae - adds r1, r2, r0 - movs r0, 0x3 - b _080EEB26 - .align 2, 0 -_080EEB1C: .4byte 0x00006dae -_080EEB20: - ldr r2, _080EEB58 @ =0x00006dae - adds r1, r3, r2 - movs r0, 0x6 -_080EEB26: - strb r0, [r1] -_080EEB28: - ldr r4, _080EEB5C @ =gSharedMem - ldr r1, _080EEB60 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1B8C - ldr r2, _080EEB64 @ =0x00006e16 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEB3E: - ldr r4, _080EEB5C @ =gSharedMem - ldr r1, _080EEB60 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r2, _080EEB64 @ =0x00006e16 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEB58: .4byte 0x00006dae -_080EEB5C: .4byte gSharedMem -_080EEB60: .4byte 0x00006e14 -_080EEB64: .4byte 0x00006e16 -_080EEB68: - bl sub_8055870 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEB80 @ =gSharedMem - ldr r4, _080EEB84 @ =0x00006e16 - adds r1, r4 -_080EEB76: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEB80: .4byte gSharedMem -_080EEB84: .4byte 0x00006e16 -_080EEB88: - bl sub_80F1DF0 - ldr r4, _080EEBA0 @ =gSharedMem - ldr r1, _080EEBA4 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80EF490 - ldr r2, _080EEBA8 @ =0x00006e16 - adds r4, r2 - b _080EEBCC - .align 2, 0 -_080EEBA0: .4byte gSharedMem -_080EEBA4: .4byte 0x00006e14 -_080EEBA8: .4byte 0x00006e16 -_080EEBAC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r4, _080EEBD4 @ =gSharedMem - ldr r1, _080EEBD8 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080EEBDC @ =0x00006dad - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80EF428 - ldr r0, _080EEBE0 @ =0x00006e16 - adds r4, r0 -_080EEBCC: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080EEC08 - .align 2, 0 -_080EEBD4: .4byte gSharedMem -_080EEBD8: .4byte 0x00006e14 -_080EEBDC: .4byte 0x00006dad -_080EEBE0: .4byte 0x00006e16 -_080EEBE4: - bl sub_80EF4F8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEC00 @ =gSharedMem - ldr r2, _080EEC04 @ =0x00006e16 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EEBFA: - movs r0, 0 - b _080EEC0A - .align 2, 0 -_080EEC00: .4byte gSharedMem -_080EEC04: .4byte 0x00006e16 -_080EEC08: - movs r0, 0x1 -_080EEC0A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEA0C - - thumb_func_start sub_80EEC10 -sub_80EEC10: @ 80EEC10 - push {r4,lr} - ldr r0, _080EEC48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080EEC50 - ldr r1, _080EEC4C @ =gSharedMem + 0x6DAD - adds r3, r1, 0x1 - adds r2, r1, 0x5 -_080EEC24: - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EEC36 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r1] -_080EEC36: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC24 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC48: .4byte gMain -_080EEC4C: .4byte gSharedMem + 0x6DAD -_080EEC50: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EEC88 - ldr r1, _080EEC84 @ =gSharedMem + 0x6DAD - movs r4, 0 - movs r2, 0x1 - ldrsb r2, [r1, r2] - adds r3, r1, 0x5 -_080EEC62: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, r2 - blt _080EEC72 - strb r4, [r1] -_080EEC72: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC62 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC84: .4byte gSharedMem + 0x6DAD -_080EEC88: - movs r0, 0 -_080EEC8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC10 - - thumb_func_start sub_80EEC90 -sub_80EEC90: @ 80EEC90 - push {r4,lr} - ldr r0, _080EECC0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080EECD0 - ldr r2, _080EECC4 @ =gSharedMem - ldr r0, _080EECC8 @ =0x00006dad - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EECF8 - ldr r3, _080EECCC @ =0x00006dae - adds r0, r2, r3 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r1] - b _080EECF8 - .align 2, 0 -_080EECC0: .4byte gMain -_080EECC4: .4byte gSharedMem -_080EECC8: .4byte 0x00006dad -_080EECCC: .4byte 0x00006dae -_080EECD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EED04 - ldr r0, _080EECFC @ =gSharedMem - ldr r4, _080EED00 @ =0x00006dad - adds r2, r0, r4 - ldrb r1, [r2] - adds r1, 0x1 - strb r1, [r2] - adds r4, 0x1 - adds r0, r4 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080EECF8 - strb r3, [r2] -_080EECF8: - movs r0, 0x1 - b _080EED06 - .align 2, 0 -_080EECFC: .4byte gSharedMem -_080EED00: .4byte 0x00006dad -_080EED04: - movs r0, 0 -_080EED06: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC90 - - thumb_func_start sub_80EED0C -sub_80EED0C: @ 80EED0C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED0C - - thumb_func_start sub_80EED1C -sub_80EED1C: @ 80EED1C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x92 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED1C - - thumb_func_start sub_80EED2C -sub_80EED2C: @ 80EED2C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080EED98 - lsls r0, 2 - ldr r1, _080EED40 @ =_080EED44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EED40: .4byte _080EED44 - .align 2, 0 -_080EED44: - .4byte _080EED5C - .4byte _080EED66 - .4byte _080EED7E - .4byte _080EED74 - .4byte _080EED74 - .4byte _080EED8C -_080EED5C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED66: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED70 @ =0x00001741 - b _080EED94 - .align 2, 0 -_080EED70: .4byte 0x00001741 -_080EED74: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED7E: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED88 @ =0x00007b40 - b _080EED94 - .align 2, 0 -_080EED88: .4byte 0x00007b40 -_080EED8C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 -_080EED94: - adds r0, r2, 0 - strh r0, [r1] -_080EED98: - pop {r0} - bx r0 - thumb_func_end sub_80EED2C - - thumb_func_start sub_80EED9C -sub_80EED9C: @ 80EED9C - push {lr} - ldr r2, _080EEDB8 @ =gUnknown_03000744 - ldr r0, _080EEDBC @ =gSharedMem - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - ldr r1, _080EEDC0 @ =sub_80EEDC4 - str r1, [r0] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080EEDB8: .4byte gUnknown_03000744 -_080EEDBC: .4byte gSharedMem -_080EEDC0: .4byte sub_80EEDC4 - thumb_func_end sub_80EED9C - - thumb_func_start sub_80EEDC4 -sub_80EEDC4: @ 80EEDC4 - push {lr} - bl sub_8055870 - cmp r0, 0x1 - beq _080EEDDC - ldr r0, _080EEDE0 @ =gSharedMem - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, _080EEDE4 @ =gUnknown_03000744 - ldr r1, [r1] - str r1, [r0] -_080EEDDC: - pop {r0} - bx r0 - .align 2, 0 -_080EEDE0: .4byte gSharedMem -_080EEDE4: .4byte gUnknown_03000744 - thumb_func_end sub_80EEDC4 - - thumb_func_start sub_80EEDE8 -sub_80EEDE8: @ 80EEDE8 - ldr r0, _080EEE04 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE04: .4byte REG_BG0HOFS - thumb_func_end sub_80EEDE8 - - thumb_func_start sub_80EEE08 -sub_80EEE08: @ 80EEE08 - ldr r0, _080EEE18 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EEE1C @ =0x0000d160 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE18: .4byte gUnknown_083DFEC4 -_080EEE1C: .4byte 0x0000d160 - thumb_func_end sub_80EEE08 - - thumb_func_start sub_80EEE20 -sub_80EEE20: @ 80EEE20 - push {lr} - ldr r0, _080EEE48 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EEE4C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EEE50 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EEE42 -_080EEE38: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - bne _080EEE38 -_080EEE42: - pop {r0} - bx r0 - .align 2, 0 -_080EEE48: .4byte gUnknown_083DFEC4 -_080EEE4C: .4byte 0x0000d160 -_080EEE50: .4byte 0x00006dac - thumb_func_end sub_80EEE20 - - thumb_func_start sub_80EEE54 -sub_80EEE54: @ 80EEE54 - push {lr} - ldr r1, _080EEE70 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080EEE74 @ =0x0000d160 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _080EEF02 - lsls r0, 2 - ldr r1, _080EEE78 @ =_080EEE7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEE70: .4byte gUnknown_083DFEC4 -_080EEE74: .4byte 0x0000d160 -_080EEE78: .4byte _080EEE7C - .align 2, 0 -_080EEE7C: - .4byte _080EEE90 - .4byte _080EEEA4 - .4byte _080EEEB8 - .4byte _080EEEC8 - .4byte _080EEEDC -_080EEE90: - ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx - ldr r1, _080EEEA0 @ =0x0600c000 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx -_080EEEA0: .4byte 0x0600c000 -_080EEEA4: - ldr r0, _080EEEB0 @ =gUnknown_08E99FB0 - ldr r1, _080EEEB4 @ =0x0600d800 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEEB0: .4byte gUnknown_08E99FB0 -_080EEEB4: .4byte 0x0600d800 -_080EEEB8: - ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - b _080EEF18 - .align 2, 0 -_080EEEC4: .4byte gPokenavHoennMap1_Pal -_080EEEC8: - movs r0, 0 - bl sub_80EF58C - movs r0, 0x1 - bl sub_80EF58C - movs r0, 0x2 - bl sub_80EF58C - b _080EEF18 -_080EEEDC: - ldr r2, [r2] - movs r3, 0xC3 - lsls r3, 2 - adds r0, r2, r3 - movs r1, 0 - strh r1, [r0] - ldr r0, _080EEF08 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080EEF0C @ =REG_BG1CNT - ldr r3, _080EEF10 @ =0x00001b0c - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080EEF14 @ =0x0000d160 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EEF02: - movs r0, 0 - b _080EEF28 - .align 2, 0 -_080EEF08: .4byte REG_BG1HOFS -_080EEF0C: .4byte REG_BG1CNT -_080EEF10: .4byte 0x00001b0c -_080EEF14: .4byte 0x0000d160 -_080EEF18: - ldr r0, _080EEF2C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EEF30 @ =0x0000d160 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080EEF28: - pop {r1} - bx r1 - .align 2, 0 -_080EEF2C: .4byte gUnknown_083DFEC4 -_080EEF30: .4byte 0x0000d160 - thumb_func_end sub_80EEE54 - - thumb_func_start sub_80EEF34 -sub_80EEF34: @ 80EEF34 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF50 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0x20 - bne _080EEF54 - movs r0, 0 - b _080EEF6E - .align 2, 0 -_080EEF50: .4byte gUnknown_083DFEC4 -_080EEF54: - adds r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - ble _080EEF66 - movs r0, 0x20 - strh r0, [r2] - movs r3, 0 -_080EEF66: - ldr r1, _080EEF74 @ =REG_BG1VOFS - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEF6E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEF74: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF34 - - thumb_func_start sub_80EEF78 -sub_80EEF78: @ 80EEF78 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF94 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - bne _080EEF98 - movs r0, 0 - b _080EEFB0 - .align 2, 0 -_080EEF94: .4byte gUnknown_083DFEC4 -_080EEF98: - subs r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bgt _080EEFA8 - movs r0, 0 - strh r0, [r2] - movs r3, 0 -_080EEFA8: - ldr r1, _080EEFB8 @ =REG_BG1VOFS - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEFB0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEFB8: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF78 - - thumb_func_start sub_80EEFBC -sub_80EEFBC: @ 80EEFBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EEFF4 @ =0x0600d800 - ldr r3, _080EEFF8 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x11 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0x16 - bl sub_809D104 - cmp r4, 0xB - bls _080EEFE8 - b _080EF234 -_080EEFE8: - lsls r0, r4, 2 - ldr r1, _080EEFFC @ =_080EF000 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEFF4: .4byte 0x0600d800 -_080EEFF8: .4byte gUnknown_08E9A100 -_080EEFFC: .4byte _080EF000 - .align 2, 0 -_080EF000: - .4byte _080EF030 - .4byte _080EF234 - .4byte _080EF08C - .4byte _080EF100 - .4byte _080EF13C - .4byte _080EF1D4 - .4byte _080EF234 - .4byte _080EF178 - .4byte _080EF190 - .4byte _080EF1D4 - .4byte _080EF218 - .4byte _080EF06C -_080EF030: - ldr r6, _080EF064 @ =0x0600d800 - ldr r0, _080EF068 @ =gUnknown_08E9A100 - mov r8, r0 - movs r0, 0x11 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r5, 0x2 - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r4, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF064: .4byte 0x0600d800 -_080EF068: .4byte gUnknown_08E9A100 -_080EF06C: - ldr r0, _080EF084 @ =0x0600d800 - ldr r3, _080EF088 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - b _080EF0EE - .align 2, 0 -_080EF084: .4byte 0x0600d800 -_080EF088: .4byte gUnknown_08E9A100 -_080EF08C: - ldr r0, _080EF0C8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF0CC @ =0x00006dac - adds r0, r1 - ldrb r7, [r0] - cmp r7, 0 - bne _080EF0D8 - ldr r5, _080EF0D0 @ =0x0600d800 - ldr r6, _080EF0D4 @ =gUnknown_08E9A100 - movs r0, 0xA - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - str r7, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF0C8: .4byte gUnknown_083DFEC4 -_080EF0CC: .4byte 0x00006dac -_080EF0D0: .4byte 0x0600d800 -_080EF0D4: .4byte gUnknown_08E9A100 -_080EF0D8: - ldr r0, _080EF0F8 @ =0x0600d800 - ldr r3, _080EF0FC @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0xA -_080EF0EE: - movs r2, 0x16 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF0F8: .4byte 0x0600d800 -_080EF0FC: .4byte gUnknown_08E9A100 -_080EF100: - ldr r6, _080EF134 @ =0x0600d800 - ldr r0, _080EF138 @ =gUnknown_08E9A100 - mov r8, r0 - movs r5, 0 - str r5, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF134: .4byte 0x0600d800 -_080EF138: .4byte gUnknown_08E9A100 -_080EF13C: - ldr r5, _080EF170 @ =0x0600d800 - ldr r6, _080EF174 @ =gUnknown_08E9A100 - movs r0, 0x14 - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF170: .4byte 0x0600d800 -_080EF174: .4byte gUnknown_08E9A100 -_080EF178: - ldr r5, _080EF188 @ =0x0600d800 - ldr r6, _080EF18C @ =gUnknown_08E9A100 - movs r1, 0xA - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - b _080EF1A0 - .align 2, 0 -_080EF188: .4byte 0x0600d800 -_080EF18C: .4byte gUnknown_08E9A100 -_080EF190: - ldr r5, _080EF1CC @ =0x0600d800 - ldr r6, _080EF1D0 @ =gUnknown_08E9A100 - movs r0, 0x14 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] -_080EF1A0: - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x7 -_080EF1C2: - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF1CC: .4byte 0x0600d800 -_080EF1D0: .4byte gUnknown_08E9A100 -_080EF1D4: - ldr r6, _080EF210 @ =0x0600d800 - ldr r1, _080EF214 @ =gUnknown_08E9A100 - mov r8, r1 - movs r5, 0 - str r5, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x8 -_080EF204: - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF210: .4byte 0x0600d800 -_080EF214: .4byte gUnknown_08E9A100 -_080EF218: - ldr r0, _080EF240 @ =0x0600d800 - ldr r3, _080EF244 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - movs r2, 0x16 - bl sub_809D104 -_080EF234: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF240: .4byte 0x0600d800 -_080EF244: .4byte gUnknown_08E9A100 - thumb_func_end sub_80EEFBC - - thumb_func_start sub_80EF248 -sub_80EF248: @ 80EF248 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EF278 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF27C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF280 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF270 -_080EF264: - adds r0, r4, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - bne _080EF264 -_080EF270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF278: .4byte gUnknown_083DFEC4 -_080EF27C: .4byte 0x0000d160 -_080EF280: .4byte 0x00006dac - thumb_func_end sub_80EF248 - - thumb_func_start sub_80EF284 -sub_80EF284: @ 80EF284 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080EF2A8 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r3, _080EF2AC @ =0x0000d160 - adds r0, r3 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0xB - bls _080EF29C - b _080EF3F6 -_080EF29C: - lsls r0, 2 - ldr r1, _080EF2B0 @ =_080EF2B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF2A8: .4byte gUnknown_083DFEC4 -_080EF2AC: .4byte 0x0000d160 -_080EF2B0: .4byte _080EF2B4 - .align 2, 0 -_080EF2B4: - .4byte _080EF2E4 - .4byte _080EF2EA - .4byte _080EF2F8 - .4byte _080EF304 - .4byte _080EF310 - .4byte _080EF330 - .4byte _080EF344 - .4byte _080EF368 - .4byte _080EF37C - .4byte _080EF390 - .4byte _080EF3A4 - .4byte _080EF3CC -_080EF2E4: - bl sub_80EEDE8 - b _080EF40C -_080EF2EA: - ldr r0, _080EF2F4 @ =gWindowConfig_81E7224 - bl SetUpWindowConfig - b _080EF40C - .align 2, 0 -_080EF2F4: .4byte gWindowConfig_81E7224 -_080EF2F8: - ldr r0, _080EF300 @ =gWindowConfig_81E7224 - bl MultistepInitMenuWindowBegin - b _080EF40C - .align 2, 0 -_080EF300: .4byte gWindowConfig_81E7224 -_080EF304: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080EF30E - b _080EF40C -_080EF30E: - b _080EF41A -_080EF310: - ldr r1, _080EF320 @ =gUnknown_083DFEEC - ldr r2, _080EF324 @ =0x06005000 - ldr r0, _080EF328 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF32C @ =0x80000050 - b _080EF350 - .align 2, 0 -_080EF320: .4byte gUnknown_083DFEEC -_080EF324: .4byte 0x06005000 -_080EF328: .4byte 0x040000d4 -_080EF32C: .4byte 0x80000050 -_080EF330: - ldr r0, _080EF33C @ =gUnknown_083DFF8C - ldr r1, _080EF340 @ =0x0600f800 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF33C: .4byte gUnknown_083DFF8C -_080EF340: .4byte 0x0600f800 -_080EF344: - ldr r1, _080EF358 @ =gUnknown_083E005C - ldr r2, _080EF35C @ =0x06008000 - ldr r0, _080EF360 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF364 @ =0x80000010 -_080EF350: - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080EF40C - .align 2, 0 -_080EF358: .4byte gUnknown_083E005C -_080EF35C: .4byte 0x06008000 -_080EF360: .4byte 0x040000d4 -_080EF364: .4byte 0x80000010 -_080EF368: - ldr r0, _080EF374 @ =gUnknown_083E007C - ldr r1, _080EF378 @ =0x0600e000 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF374: .4byte gUnknown_083E007C -_080EF378: .4byte 0x0600e000 -_080EF37C: - ldr r0, _080EF388 @ =gPokenavOutlineTilemap - ldr r1, _080EF38C @ =0x0600e800 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF388: .4byte gPokenavOutlineTilemap -_080EF38C: .4byte 0x0600e800 -_080EF390: - ldr r0, _080EF39C @ =gPokenavOutlineTiles - ldr r1, _080EF3A0 @ =0x06008020 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF39C: .4byte gPokenavOutlineTiles -_080EF3A0: .4byte 0x06008020 -_080EF3A4: - adds r0, r2, 0 - bl sub_80EF54C - ldr r0, _080EF3C4 @ =gUnknown_083DFECC - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080EF3C8 @ =gPokenavOutlinePalette - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - bl sub_80EF7D4 - b _080EF40C - .align 2, 0 -_080EF3C4: .4byte gUnknown_083DFECC -_080EF3C8: .4byte gPokenavOutlinePalette -_080EF3CC: - ldr r1, _080EF3FC @ =REG_BG0CNT - ldr r2, _080EF400 @ =0x00001f01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080EF404 @ =0x00001d0a - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x42 - movs r0, 0 - strh r0, [r1] - ldr r1, [r3] - ldr r3, _080EF408 @ =0x0000d160 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF3F6: - movs r0, 0 - b _080EF41C - .align 2, 0 -_080EF3FC: .4byte REG_BG0CNT -_080EF400: .4byte 0x00001f01 -_080EF404: .4byte 0x00001d0a -_080EF408: .4byte 0x0000d160 -_080EF40C: - ldr r0, _080EF420 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EF424 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF41A: - movs r0, 0x1 -_080EF41C: - pop {r1} - bx r1 - .align 2, 0 -_080EF420: .4byte gUnknown_083DFEC4 -_080EF424: .4byte 0x0000d160 - thumb_func_end sub_80EF284 - - thumb_func_start sub_80EF428 -sub_80EF428: @ 80EF428 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r1, 0 - cmp r0, 0x1 - beq _080EF454 - cmp r0, 0x1 - bgt _080EF444 - cmp r0, 0 - beq _080EF44A - b _080EF464 -_080EF444: - cmp r3, 0x2 - beq _080EF45C - b _080EF464 -_080EF44A: - ldr r1, _080EF450 @ =gUnknown_083E31B0 - b _080EF45E - .align 2, 0 -_080EF450: .4byte gUnknown_083E31B0 -_080EF454: - ldr r1, _080EF458 @ =gUnknown_083E31CC - b _080EF45E - .align 2, 0 -_080EF458: .4byte gUnknown_083E31CC -_080EF45C: - ldr r1, _080EF488 @ =gUnknown_083E31D8 -_080EF45E: - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] -_080EF464: - ldr r0, _080EF48C @ =gUnknown_083DFEC8 - ldr r4, [r0] - movs r0, 0x80 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r2, 0xC0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x11 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF488: .4byte gUnknown_083E31D8 -_080EF48C: .4byte gUnknown_083DFEC8 - thumb_func_end sub_80EF428 - - thumb_func_start sub_80EF490 -sub_80EF490: @ 80EF490 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF49C - movs r2, 0x1 -_080EF49C: - ldr r0, _080EF4C4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r2, r1, 1 - ldr r4, _080EF4C8 @ =0x0000ce4e - adds r0, r3, r4 - strh r2, [r0] - ldr r2, _080EF4CC @ =0x0000ce4c - adds r0, r3, r2 - ldrh r2, [r0] - lsls r1, 17 - lsrs r0, r1, 16 - cmp r2, r0 - bcs _080EF4D0 - adds r4, 0x2 - adds r1, r3, r4 - movs r0, 0x2 - b _080EF4EA - .align 2, 0 -_080EF4C4: .4byte gUnknown_083DFEC4 -_080EF4C8: .4byte 0x0000ce4e -_080EF4CC: .4byte 0x0000ce4c -_080EF4D0: - cmp r2, r0 - bls _080EF4E4 - ldr r0, _080EF4DC @ =0x0000ce50 - adds r1, r3, r0 - ldr r0, _080EF4E0 @ =0x0000fffe - b _080EF4EA - .align 2, 0 -_080EF4DC: .4byte 0x0000ce50 -_080EF4E0: .4byte 0x0000fffe -_080EF4E4: - ldr r2, _080EF4F4 @ =0x0000ce50 - adds r1, r3, r2 - movs r0, 0 -_080EF4EA: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF4F4: .4byte 0x0000ce50 - thumb_func_end sub_80EF490 - - thumb_func_start sub_80EF4F8 -sub_80EF4F8: @ 80EF4F8 - push {r4,lr} - ldr r0, _080EF530 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EF534 @ =0x0000ce4c - adds r2, r1, r0 - ldr r3, _080EF538 @ =0x0000ce4e - adds r0, r1, r3 - ldrh r3, [r2] - ldrh r0, [r0] - cmp r3, r0 - beq _080EF544 - ldr r4, _080EF53C @ =0x0000ce50 - adds r0, r1, r4 - ldrh r0, [r0] - adds r0, r3, r0 - strh r0, [r2] - ldr r3, _080EF540 @ =0x0000ce52 - adds r0, r1, r3 - ldrh r1, [r2] - lsls r1, 1 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x1 - b _080EF546 - .align 2, 0 -_080EF530: .4byte gUnknown_083DFEC4 -_080EF534: .4byte 0x0000ce4c -_080EF538: .4byte 0x0000ce4e -_080EF53C: .4byte 0x0000ce50 -_080EF540: .4byte 0x0000ce52 -_080EF544: - movs r0, 0 -_080EF546: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EF4F8 - - thumb_func_start sub_80EF54C -sub_80EF54C: @ 80EF54C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF558 - movs r2, 0x1 -_080EF558: - ldr r0, _080EF580 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 1 - ldr r3, _080EF584 @ =0x0000ce4c - adds r2, r0, r3 - strh r1, [r2] - ldrh r1, [r2] - lsls r1, 1 - ldr r2, _080EF588 @ =0x0000ce52 - adds r1, r2 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080EF580: .4byte gUnknown_083DFEC4 -_080EF584: .4byte 0x0000ce4c -_080EF588: .4byte 0x0000ce52 - thumb_func_end sub_80EF54C - - thumb_func_start sub_80EF58C -sub_80EF58C: @ 80EF58C - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080EF5D0 - cmp r0, 0x1 - bgt _080EF5A4 - cmp r0, 0 - beq _080EF5AA - b _080EF610 -_080EF5A4: - cmp r1, 0x2 - beq _080EF5F8 - b _080EF610 -_080EF5AA: - movs r1, 0 - ldr r0, _080EF5C8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080EF5CC @ =0x0000ce52 - adds r2, r0, r3 - movs r3, 0 -_080EF5B6: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3D - bls _080EF5B6 - b _080EF610 - .align 2, 0 -_080EF5C8: .4byte gUnknown_083DFEC4 -_080EF5CC: .4byte 0x0000ce52 -_080EF5D0: - ldr r0, _080EF5EC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF5F0 @ =0x0000ce52 - adds r2, r0, r1 - ldr r1, _080EF5F4 @ =gUnknown_083E003C - adds r0, r1, 0x2 - adds r1, 0x6 - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 - b _080EF610 - .align 2, 0 -_080EF5EC: .4byte gUnknown_083DFEC4 -_080EF5F0: .4byte 0x0000ce52 -_080EF5F4: .4byte gUnknown_083E003C -_080EF5F8: - ldr r0, _080EF618 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080EF61C @ =0x0000ce8e - adds r2, r0, r3 - ldr r1, _080EF620 @ =gUnknown_083E003C - adds r0, r1, 0x6 - adds r1, 0xE - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 -_080EF610: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EF618: .4byte gUnknown_083DFEC4 -_080EF61C: .4byte 0x0000ce8e -_080EF620: .4byte gUnknown_083E003C - thumb_func_end sub_80EF58C - - thumb_func_start sub_80EF624 -sub_80EF624: @ 80EF624 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, [sp, 0x58] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - lsls r0, r3, 16 - ldr r1, [sp, 0x10] - cmp r1, r3 - bcs _080EF72E - subs r2, 0x1 - str r2, [sp, 0x20] - str r0, [sp, 0x2C] -_080EF654: - ldr r2, [sp] - ldrh r1, [r2] - movs r0, 0x1F - ands r0, r1 - lsls r7, r0, 8 - lsls r1, 16 - lsrs r0, r1, 21 - movs r2, 0x1F - ands r0, r2 - lsls r6, r0, 8 - lsrs r1, 26 - ands r1, r2 - lsls r5, r1, 8 - ldr r0, [sp, 0x4] - ldrh r1, [r0] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0x14] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r2 - lsls r0, 8 - str r0, [sp, 0x18] - lsrs r1, 26 - ands r1, r2 - lsls r1, 8 - str r1, [sp, 0x1C] - ldr r1, [sp, 0x14] - subs r0, r1, r7 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r10, r0 - ldr r2, [sp, 0x18] - subs r0, r2, r6 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r9, r0 - ldr r1, [sp, 0x1C] - subs r0, r1, r5 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r8, r0 - adds r3, r4, 0 - movs r4, 0 - ldr r2, [sp] - adds r2, 0x2 - str r2, [sp, 0x30] - ldr r0, [sp, 0x4] - adds r0, 0x2 - str r0, [sp, 0x34] - adds r1, r3, 0x2 - str r1, [sp, 0x24] - ldr r2, [sp, 0x10] - adds r2, 0x1 - str r2, [sp, 0x28] - ldr r0, [sp, 0x20] - cmp r4, r0 - bge _080EF700 - ldr r1, [sp, 0xC] - lsls r1, 1 - mov r12, r1 -_080EF6D6: - lsls r0, r7, 8 - lsrs r2, r0, 16 - lsls r0, r6, 8 - lsrs r1, r0, 16 - lsls r0, r5, 8 - lsrs r0, 16 - lsls r0, 10 - lsls r1, 5 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - add r3, r12 - add r7, r10 - add r6, r9 - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r2, [sp, 0x20] - cmp r4, r2 - blt _080EF6D6 -_080EF700: - ldr r4, [sp, 0x14] - lsrs r2, r4, 8 - ldr r1, [sp, 0x1C] - lsls r0, r1, 2 - ldr r4, [sp, 0x18] - lsrs r1, r4, 3 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - ldr r0, [sp, 0x30] - str r0, [sp] - ldr r1, [sp, 0x34] - str r1, [sp, 0x4] - ldr r4, [sp, 0x24] - ldr r2, [sp, 0x28] - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - ldr r1, [sp, 0x2C] - lsrs r0, r1, 16 - ldr r2, [sp, 0x10] - cmp r2, r0 - bcc _080EF654 -_080EF72E: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EF624 - - thumb_func_start sub_80EF740 -sub_80EF740: @ 80EF740 - push {lr} - ldr r0, _080EF770 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080EF774 @ =0x00006da0 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r2] - cmp r0, 0 - beq _080EF762 - ldr r2, _080EF778 @ =0x00006da2 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF762: - ldr r0, _080EF77C @ =REG_BG3HOFS - ldr r2, _080EF778 @ =0x00006da2 - adds r1, r3, r2 - ldrh r1, [r1] - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080EF770: .4byte gUnknown_083DFEC4 -_080EF774: .4byte 0x00006da0 -_080EF778: .4byte 0x00006da2 -_080EF77C: .4byte REG_BG3HOFS - thumb_func_end sub_80EF740 - - thumb_func_start sub_80EF780 -sub_80EF780: @ 80EF780 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080EF7B0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080EF7AA - ldr r0, _080EF7B4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080EF7B8 @ =0x00006da2 - adds r2, r3, r0 - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080EF7BC -_080EF7AA: - bl sub_80EF740 - b _080EF7C8 - .align 2, 0 -_080EF7B0: .4byte gTasks -_080EF7B4: .4byte gUnknown_083DFEC4 -_080EF7B8: .4byte 0x00006da2 -_080EF7BC: - strh r1, [r2] - ldr r2, _080EF7CC @ =0x00006da0 - adds r0, r3, r2 - strh r1, [r0] - ldr r0, _080EF7D0 @ =REG_BG3HOFS - strh r1, [r0] -_080EF7C8: - pop {r0} - bx r0 - .align 2, 0 -_080EF7CC: .4byte 0x00006da0 -_080EF7D0: .4byte REG_BG3HOFS - thumb_func_end sub_80EF780 - - thumb_func_start sub_80EF7D4 -sub_80EF7D4: @ 80EF7D4 - push {r4,lr} - ldr r0, _080EF800 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080EF804 @ =0x00006da2 - adds r0, r4, r1 - movs r1, 0 - strh r1, [r0] - ldr r2, _080EF808 @ =0x00006da0 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _080EF80C @ =sub_80EF780 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080EF810 @ =0x00006da4 - adds r4, r1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF800: .4byte gUnknown_083DFEC4 -_080EF804: .4byte 0x00006da2 -_080EF808: .4byte 0x00006da0 -_080EF80C: .4byte sub_80EF780 -_080EF810: .4byte 0x00006da4 - thumb_func_end sub_80EF7D4 - - thumb_func_start sub_80EF814 -sub_80EF814: @ 80EF814 - push {lr} - ldr r0, _080EF834 @ =sub_80EF780 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080EF830 - ldr r0, _080EF838 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF83C @ =0x00006da4 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask -_080EF830: - pop {r0} - bx r0 - .align 2, 0 -_080EF834: .4byte sub_80EF780 -_080EF838: .4byte gUnknown_083DFEC4 -_080EF83C: .4byte 0x00006da4 - thumb_func_end sub_80EF814 - - thumb_func_start sub_80EF840 -sub_80EF840: @ 80EF840 - push {lr} - ldr r0, _080EF868 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF86C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF870 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF862 -_080EF858: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EF858 -_080EF862: - pop {r0} - bx r0 - .align 2, 0 -_080EF868: .4byte gUnknown_083DFEC4 -_080EF86C: .4byte 0x0000d160 -_080EF870: .4byte 0x00006dac - thumb_func_end sub_80EF840 - - thumb_func_start sub_80EF874 -sub_80EF874: @ 80EF874 - push {lr} - ldr r0, _080EF890 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF894 @ =0x0000d160 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xB - bls _080EF886 - b _080EF9D8 -_080EF886: - lsls r0, 2 - ldr r1, _080EF898 @ =_080EF89C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF890: .4byte gUnknown_083DFEC4 -_080EF894: .4byte 0x0000d160 -_080EF898: .4byte _080EF89C - .align 2, 0 -_080EF89C: - .4byte _080EF8CC - .4byte _080EF8D2 - .4byte _080EF8E0 - .4byte _080EF8EC - .4byte _080EF8F6 - .4byte _080EF8FC - .4byte _080EF920 - .4byte _080EF92C - .4byte _080EF940 - .4byte _080EF954 - .4byte _080EF960 - .4byte _080EF972 -_080EF8CC: - bl sub_80EEDE8 - b _080EF9DC -_080EF8D2: - ldr r0, _080EF8DC @ =gWindowConfig_81E7224 - bl SetUpWindowConfig - b _080EF9DC - .align 2, 0 -_080EF8DC: .4byte gWindowConfig_81E7224 -_080EF8E0: - ldr r0, _080EF8E8 @ =gWindowConfig_81E7224 - bl MultistepInitMenuWindowBegin - b _080EF9DC - .align 2, 0 -_080EF8E8: .4byte gWindowConfig_81E7224 -_080EF8EC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _080EF9DC - b _080EF9EA -_080EF8F6: - bl MenuZeroFillScreen - b _080EF9DC -_080EF8FC: - ldr r0, _080EF914 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EF918 @ =0x00006e18 - adds r0, r2 - ldr r1, _080EF91C @ =gSaveBlock2 - ldrb r1, [r1, 0x15] - lsrs r1, 3 - movs r2, 0x1 - ands r1, r2 - bl sub_80FA904 - b _080EF9DC - .align 2, 0 -_080EF914: .4byte gUnknown_083DFEC4 -_080EF918: .4byte 0x00006e18 -_080EF91C: .4byte gSaveBlock2 -_080EF920: - bl sub_80FA940 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF92C: - ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx - ldr r1, _080EF93C @ =0x06005000 - bl LZ77UnCompVram - b _080EF9DC - .align 2, 0 -_080EF938: .4byte gPokenavHoennMapSquares_Gfx -_080EF93C: .4byte 0x06005000 -_080EF940: - ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - bl sub_80EFC3C - b _080EF9DC - .align 2, 0 -_080EF950: .4byte gPokenavHoennMapSquares_Pal -_080EF954: - bl sub_80EFC64 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF960: - movs r0, 0xD - movs r1, 0x3 - movs r2, 0x1D - movs r3, 0x11 - bl MenuDrawTextWindow - bl sub_80EF9F8 - b _080EF9DC -_080EF972: - ldr r0, _080EF990 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EF994 @ =0x00006e90 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF9A0 - ldr r2, _080EF998 @ =0x00007698 - adds r0, r1, r2 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080EF99C @ =REG_BG0VOFS - strh r1, [r0] - b _080EF9B0 - .align 2, 0 -_080EF990: .4byte gUnknown_083DFEC4 -_080EF994: .4byte 0x00006e90 -_080EF998: .4byte 0x00007698 -_080EF99C: .4byte REG_BG0VOFS -_080EF9A0: - ldr r0, _080EF9C8 @ =0x00007698 - adds r1, r0 - movs r2, 0 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r0, _080EF9CC @ =REG_BG0VOFS - strh r2, [r0] -_080EF9B0: - ldr r2, _080EF9D0 @ =REG_BG0CNT - ldrh r0, [r2] - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080EF9D4 @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - b _080EF9DC - .align 2, 0 -_080EF9C8: .4byte 0x00007698 -_080EF9CC: .4byte REG_BG0VOFS -_080EF9D0: .4byte REG_BG0CNT -_080EF9D4: .4byte REG_BLDCNT -_080EF9D8: - movs r0, 0 - b _080EF9EC -_080EF9DC: - ldr r0, _080EF9F0 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EF9F4 @ =0x0000d160 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF9EA: - movs r0, 0x1 -_080EF9EC: - pop {r1} - bx r1 - .align 2, 0 -_080EF9F0: .4byte gUnknown_083DFEC4 -_080EF9F4: .4byte 0x0000d160 - thumb_func_end sub_80EF874 - - thumb_func_start sub_80EF9F8 -sub_80EF9F8: @ 80EF9F8 - push {r4-r6,lr} - sub sp, 0x14 - movs r5, 0x4 - ldr r0, _080EFA18 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFA1C @ =0x00006e2e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080EFA0E - b _080EFB6A -_080EFA0E: - lsls r0, 2 - ldr r1, _080EFA20 @ =_080EFA24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFA18: .4byte gUnknown_083DFEC4 -_080EFA1C: .4byte 0x00006e2e -_080EFA20: .4byte _080EFA24 - .align 2, 0 -_080EFA24: - .4byte _080EFB6A - .4byte _080EFA38 - .4byte _080EFAC0 - .4byte _080EFB4C - .4byte _080EFA38 -_080EFA38: - ldr r0, _080EFA64 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFA68 @ =0x00006e18 - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080EFA6C @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EFA70 - bl sub_80F1A80 - b _080EFB82 - .align 2, 0 -_080EFA64: .4byte gUnknown_083DFEC4 -_080EFA68: .4byte 0x00006e18 -_080EFA6C: .4byte gLinkOpen -_080EFA70: - movs r4, 0 - b _080EFA92 -_080EFA74: - lsls r2, r5, 19 - lsrs r2, 16 - movs r0, 0x1 - str r0, [sp] - adds r0, r1, 0 - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EFA92: - cmp r4, 0x3 - bhi _080EFB6A - ldr r0, _080EFAB8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFABC @ =0x00006e2c - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl GetLandmarkName - adds r1, r0, 0 - cmp r1, 0 - bne _080EFA74 - b _080EFB6A - .align 2, 0 -_080EFAB8: .4byte gUnknown_083DFEC4 -_080EFABC: .4byte 0x00006e2c -_080EFAC0: - ldr r0, _080EFB38 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080EFB3C @ =0x00006e18 - adds r0, r4, r1 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _080EFB40 @ =0x00006e2c - adds r0, r4, r2 - ldrh r1, [r0] - adds r2, 0x3 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - lsls r1, 3 - adds r0, r1 - ldr r1, _080EFB44 @ =0x0000cdcc - adds r4, r1 - adds r6, r4, r0 - ldr r0, [r6] - cmp r0, 0 - beq _080EFB6A - lsls r4, r5, 24 - lsrs r4, 24 - movs r0, 0xE - adds r1, r4, 0 - movs r2, 0xF - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - movs r0, 0x1A - adds r1, r4, 0 - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - ldr r0, _080EFB48 @ =0x0600f800 - ldr r3, [r6] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x10 - movs r2, 0x6 - bl sub_8095C8C - adds r0, r5, 0 - adds r0, 0xB - b _080EFB66 - .align 2, 0 -_080EFB38: .4byte gUnknown_083DFEC4 -_080EFB3C: .4byte 0x00006e18 -_080EFB40: .4byte 0x00006e2c -_080EFB44: .4byte 0x0000cdcc -_080EFB48: .4byte 0x0600f800 -_080EFB4C: - ldr r0, _080EFB98 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFB9C @ =0x00006e18 - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 -_080EFB66: - lsls r0, 16 - lsrs r5, r0, 16 -_080EFB6A: - movs r0, 0 - cmp r0, 0 - bne _080EFB82 - cmp r5, 0xF - bhi _080EFB82 - lsls r1, r5, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile -_080EFB82: - ldr r0, _080EFB98 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFBA0 @ =0x00006e2e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080EFBA4 - bl sub_80EFD74 - b _080EFBA8 - .align 2, 0 -_080EFB98: .4byte gUnknown_083DFEC4 -_080EFB9C: .4byte 0x00006e18 -_080EFBA0: .4byte 0x00006e2e -_080EFBA4: - bl sub_80EFDA0 -_080EFBA8: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80EF9F8 - - thumb_func_start sub_80EFBB0 -sub_80EFBB0: @ 80EFBB0 - push {lr} - ldr r0, _080EFBC8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFBCC @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFBD0 - movs r0, 0x8 - bl sub_80EEFBC - b _080EFBD6 - .align 2, 0 -_080EFBC8: .4byte gUnknown_083DFEC4 -_080EFBCC: .4byte 0x00006e90 -_080EFBD0: - movs r0, 0x7 - bl sub_80EEFBC -_080EFBD6: - pop {r0} - bx r0 - thumb_func_end sub_80EFBB0 - - thumb_func_start sub_80EFBDC -sub_80EFBDC: @ 80EFBDC - push {r4,lr} - lsls r0, 24 - movs r4, 0x1 - ldr r2, _080EFBFC @ =gUnknown_083DFEC4 - ldr r1, [r2] - ldr r3, _080EFC00 @ =0x00007698 - adds r1, r3 - ldrh r3, [r1] - cmp r0, 0 - beq _080EFC08 - cmp r3, 0xA8 - bls _080EFC04 - adds r0, r3, 0 - subs r0, 0x8 - b _080EFC10 - .align 2, 0 -_080EFBFC: .4byte gUnknown_083DFEC4 -_080EFC00: .4byte 0x00007698 -_080EFC04: - movs r3, 0xA0 - b _080EFC1A -_080EFC08: - cmp r3, 0xF7 - bhi _080EFC16 - adds r0, r3, 0 - adds r0, 0x8 -_080EFC10: - lsls r0, 16 - lsrs r3, r0, 16 - b _080EFC1C -_080EFC16: - movs r3, 0x80 - lsls r3, 1 -_080EFC1A: - movs r4, 0 -_080EFC1C: - ldr r0, [r2] - ldr r1, _080EFC34 @ =0x00007698 - adds r0, r1 - strh r3, [r0] - ldr r1, _080EFC38 @ =REG_BG0VOFS - movs r0, 0xFF - ands r3, r0 - strh r3, [r1] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EFC34: .4byte 0x00007698 -_080EFC38: .4byte REG_BG0VOFS - thumb_func_end sub_80EFBDC - - thumb_func_start sub_80EFC3C -sub_80EFC3C: @ 80EFC3C - push {lr} - ldr r0, _080EFC58 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFC5C @ =0x0000bc9a - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080EFC60 @ =0x0000bc9b - adds r0, r1 - strb r2, [r0] - bl sub_80EFD3C - pop {r0} - bx r0 - .align 2, 0 -_080EFC58: .4byte gUnknown_083DFEC4 -_080EFC5C: .4byte 0x0000bc9a -_080EFC60: .4byte 0x0000bc9b - thumb_func_end sub_80EFC3C - - thumb_func_start sub_80EFC64 -sub_80EFC64: @ 80EFC64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, _080EFCD0 @ =gUnknown_083DFEC4 - ldr r2, [r4] - ldr r0, _080EFCD4 @ =0x0000bc9a - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xF - bhi _080EFD2C - ldrb r1, [r1] - mov r8, r1 - ldr r1, _080EFCD8 @ =0x0000bc9b - adds r0, r2, r1 - ldrb r7, [r0] - movs r2, 0 - ldr r0, _080EFCDC @ =gPokenavCityMaps - mov r9, r0 - adds r3, r4, 0 -_080EFC8E: - lsls r0, r2, 2 - mov r4, r8 - lsls r1, r4, 3 - adds r6, r0, r1 - mov r1, r9 - adds r0, r6, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080EFCE8 - movs r0, 0xC8 - adds r5, r7, 0 - muls r5, r0 - ldr r4, _080EFCE0 @ =0x0000bc9c - adds r5, r4 - ldr r4, [r3] - adds r5, r4, r5 - adds r0, r1, 0 - adds r1, r5, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl LZ77UnCompVram - ldr r0, _080EFCE4 @ =0x0000cdcc - adds r4, r0 - adds r4, r6 - str r5, [r4] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r2, [sp] - ldr r3, [sp, 0x4] - b _080EFCF2 - .align 2, 0 -_080EFCD0: .4byte gUnknown_083DFEC4 -_080EFCD4: .4byte 0x0000bc9a -_080EFCD8: .4byte 0x0000bc9b -_080EFCDC: .4byte gPokenavCityMaps -_080EFCE0: .4byte 0x0000bc9c -_080EFCE4: .4byte 0x0000cdcc -_080EFCE8: - ldr r0, [r3] - ldr r4, _080EFD1C @ =0x0000cdcc - adds r0, r4 - adds r0, r6 - str r1, [r0] -_080EFCF2: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _080EFC8E - ldr r0, _080EFD20 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFD24 @ =0x0000bc9a - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bhi _080EFD2C - ldr r1, _080EFD28 @ =0x0000bc9b - adds r0, r2, r1 - strb r7, [r0] - movs r0, 0x1 - b _080EFD2E - .align 2, 0 -_080EFD1C: .4byte 0x0000cdcc -_080EFD20: .4byte gUnknown_083DFEC4 -_080EFD24: .4byte 0x0000bc9a -_080EFD28: .4byte 0x0000bc9b -_080EFD2C: - movs r0, 0 -_080EFD2E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EFC64 - - thumb_func_start sub_80EFD3C -sub_80EFD3C: @ 80EFD3C - ldr r0, _080EFD60 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFD64 @ =0x0000769e - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r0, _080EFD68 @ =0x0000769c - adds r3, r1, r0 - movs r0, 0x2F - strb r0, [r3] - ldr r3, _080EFD6C @ =0x0000769d - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EFD70 @ =0x0000769a - adds r1, r0 - strh r2, [r1] - bx lr - .align 2, 0 -_080EFD60: .4byte gUnknown_083DFEC4 -_080EFD64: .4byte 0x0000769e -_080EFD68: .4byte 0x0000769c -_080EFD6C: .4byte 0x0000769d -_080EFD70: .4byte 0x0000769a - thumb_func_end sub_80EFD3C - - thumb_func_start sub_80EFD74 -sub_80EFD74: @ 80EFD74 - push {lr} - ldr r0, _080EFD94 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFD98 @ =0x0000769e - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EFD9C @ =0x0000769d - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080EFD90 - movs r0, 0x2 - strb r0, [r2] -_080EFD90: - pop {r0} - bx r0 - .align 2, 0 -_080EFD94: .4byte gUnknown_083DFEC4 -_080EFD98: .4byte 0x0000769e -_080EFD9C: .4byte 0x0000769d - thumb_func_end sub_80EFD74 - - thumb_func_start sub_80EFDA0 -sub_80EFDA0: @ 80EFDA0 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFDD4 @ =0x0600f800 - ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r2, 0xF - str r2, [sp, 0x8] - movs r1, 0x1 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - ldr r0, _080EFDDC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFDE0 @ =0x0000769e - adds r0, r1 - strb r4, [r0] - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EFDD4: .4byte 0x0600f800 -_080EFDD8: .4byte gUnknown_08E9AC2C -_080EFDDC: .4byte gUnknown_083DFEC4 -_080EFDE0: .4byte 0x0000769e - thumb_func_end sub_80EFDA0 - - thumb_func_start sub_80EFDE4 -sub_80EFDE4: @ 80EFDE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EFE68 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFE6C @ =0x0000769c - adds r0, r1, r2 - ldrb r2, [r0] - movs r0, 0x3C - subs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080EFE06 - movs r4, 0xF -_080EFE06: - ldr r3, _080EFE70 @ =0x0000769e - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EFE58 - ldr r0, _080EFE74 @ =0x0600f800 - mov r8, r0 - ldr r3, _080EFE78 @ =gUnknown_08E9ABB4 - mov r9, r3 - str r2, [sp] - movs r5, 0 - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r7, 0x1 - str r7, [sp, 0xC] - movs r6, 0x3C - str r6, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - cmp r4, 0xE - bhi _080EFE58 - adds r1, r4, 0 - adds r1, 0xE - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0xF - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - str r7, [sp, 0xC] - str r6, [sp, 0x10] - mov r0, r8 - movs r2, 0x10 - mov r3, r9 - bl sub_8095C8C -_080EFE58: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EFE68: .4byte gUnknown_083DFEC4 -_080EFE6C: .4byte 0x0000769c -_080EFE70: .4byte 0x0000769e -_080EFE74: .4byte 0x0600f800 -_080EFE78: .4byte gUnknown_08E9ABB4 - thumb_func_end sub_80EFDE4 - - thumb_func_start sub_80EFE7C -sub_80EFE7C: @ 80EFE7C - push {r4,lr} - ldr r0, _080EFE98 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFE9C @ =0x0000769d - adds r4, r2, r0 - ldrb r1, [r4] - cmp r1, 0x1 - beq _080EFF08 - cmp r1, 0x1 - bgt _080EFEA0 - cmp r1, 0 - beq _080EFEA6 - b _080EFF2E - .align 2, 0 -_080EFE98: .4byte gUnknown_083DFEC4 -_080EFE9C: .4byte 0x0000769d -_080EFEA0: - cmp r1, 0x2 - beq _080EFF24 - b _080EFF2E -_080EFEA6: - ldr r0, _080EFED4 @ =0x0000769c - adds r4, r2, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _080EFEBA - strb r1, [r4] -_080EFEBA: - ldr r1, _080EFED8 @ =0x0000769e - adds r0, r2, r1 - ldrb r0, [r0] - bl sub_80EFDE4 - ldrb r0, [r4] - cmp r0, 0xF - beq _080EFEE4 - cmp r0, 0xF - bgt _080EFEDC - cmp r0, 0 - beq _080EFEE4 - b _080EFF2E - .align 2, 0 -_080EFED4: .4byte 0x0000769c -_080EFED8: .4byte 0x0000769e -_080EFEDC: - cmp r0, 0x1E - beq _080EFEE4 - cmp r0, 0x2D - bne _080EFF2E -_080EFEE4: - ldr r0, _080EFEFC @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EFF00 @ =0x0000769d - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x1 - strb r0, [r2] - ldr r0, _080EFF04 @ =0x0000769a - adds r1, r0 - strh r3, [r1] - b _080EFF2E - .align 2, 0 -_080EFEFC: .4byte gUnknown_083DFEC4 -_080EFF00: .4byte 0x0000769d -_080EFF04: .4byte 0x0000769a -_080EFF08: - ldr r0, _080EFF20 @ =0x0000769a - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x78 - bls _080EFF2E - movs r0, 0 - strh r0, [r1] - b _080EFF2C - .align 2, 0 -_080EFF20: .4byte 0x0000769a -_080EFF24: - movs r0, 0x1 - bl sub_80EFDE4 - movs r0, 0x1 -_080EFF2C: - strb r0, [r4] -_080EFF2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EFE7C - - thumb_func_start sub_80EFF34 -sub_80EFF34: @ 80EFF34 - push {lr} - ldr r0, _080EFF5C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFF60 @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EFF64 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFF56 -_080EFF4C: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080EFF4C -_080EFF56: - pop {r0} - bx r0 - .align 2, 0 -_080EFF5C: .4byte gUnknown_083DFEC4 -_080EFF60: .4byte 0x0000d160 -_080EFF64: .4byte 0x00006dac - thumb_func_end sub_80EFF34 - - thumb_func_start sub_80EFF68 -sub_80EFF68: @ 80EFF68 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFF88 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFF8C @ =0x0000d160 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EFF7C - b _080F0150 -_080EFF7C: - lsls r0, 2 - ldr r1, _080EFF90 @ =_080EFF94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFF88: .4byte gUnknown_083DFEC4 -_080EFF8C: .4byte 0x0000d160 -_080EFF90: .4byte _080EFF94 - .align 2, 0 -_080EFF94: - .4byte _080EFFCC - .4byte _080EFFE8 - .4byte _080EFFF4 - .4byte _080F0000 - .4byte _080F000C - .4byte _080F0012 - .4byte _080F0018 - .4byte _080F0028 - .4byte _080F003C - .4byte _080F005C - .4byte _080F0098 - .4byte _080F00AC - .4byte _080F00F8 - .4byte _080F0118 -_080EFFCC: - bl sub_80EEDE8 - ldr r0, _080EFFE0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFFE4 @ =0x0000d162 - adds r0, r2 - movs r1, 0xB - strb r1, [r0] - b _080F0154 - .align 2, 0 -_080EFFE0: .4byte gUnknown_083DFEC4 -_080EFFE4: .4byte 0x0000d162 -_080EFFE8: - ldr r0, _080EFFF0 @ =gWindowConfig_81E7080 - bl SetUpWindowConfig - b _080F0154 - .align 2, 0 -_080EFFF0: .4byte gWindowConfig_81E7080 -_080EFFF4: - ldr r0, _080EFFFC @ =gWindowConfig_81E7080 - bl MultistepInitMenuWindowBegin - b _080F0154 - .align 2, 0 -_080EFFFC: .4byte gWindowConfig_81E7080 -_080F0000: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F000A - b _080F0154 -_080F000A: - b _080F0162 -_080F000C: - bl MenuZeroFillScreen - b _080F0154 -_080F0012: - bl sub_80F1614 - b _080F0154 -_080F0018: - movs r0, 0 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - bne _080F0026 - b _080F0154 -_080F0026: - b _080F0162 -_080F0028: - ldr r0, _080F0034 @ =gPokenavConditionView_Gfx - ldr r1, _080F0038 @ =0x06005000 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F0034: .4byte gPokenavConditionView_Gfx -_080F0038: .4byte 0x06005000 -_080F003C: - ldr r0, _080F0050 @ =gUnknown_08E9AC4C - ldr r1, _080F0054 @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _080F0154 - .align 2, 0 -_080F0050: .4byte gUnknown_08E9AC4C -_080F0054: .4byte 0x0600f000 -_080F0058: .4byte gPokenavConditionMenu2_Pal -_080F005C: - ldr r0, _080F0088 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F008C @ =0x000076aa - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0154 - ldr r0, _080F0090 @ =0x0600f000 - ldr r3, _080F0094 @ =gUnknown_083E01AC - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0154 - .align 2, 0 -_080F0088: .4byte gUnknown_083DFEC4 -_080F008C: .4byte 0x000076aa -_080F0090: .4byte 0x0600f000 -_080F0094: .4byte gUnknown_083E01AC -_080F0098: - ldr r0, _080F00A4 @ =gUnknown_08E9FEB4 - ldr r1, _080F00A8 @ =0x0600b800 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F00A4: .4byte gUnknown_08E9FEB4 -_080F00A8: .4byte 0x0600b800 -_080F00AC: - ldr r0, _080F00EC @ =gUnknown_083E0254 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F00F0 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2 - adds r0, r4, 0 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0x1C - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - bl sub_80F01A4 - b _080F0154 - .align 2, 0 -_080F00EC: .4byte gUnknown_083E0254 -_080F00F0: .4byte gUnknownPalette_81E6692 -_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 -_080F00F8: - ldr r0, _080F0110 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0114 @ =0x00008fe9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F0154 - .align 2, 0 -_080F0110: .4byte gUnknown_083DFEC4 -_080F0114: .4byte 0x00008fe9 -_080F0118: - ldr r1, _080F013C @ =REG_BG3CNT - ldr r2, _080F0140 @ =0x00001e03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080F0144 @ =0x00001702 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - ldr r2, _080F0148 @ =0x00000844 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F014C @ =0x0000040b - adds r0, r2, 0 - strh r0, [r1] - b _080F0154 - .align 2, 0 -_080F013C: .4byte REG_BG3CNT -_080F0140: .4byte 0x00001e03 -_080F0144: .4byte 0x00001702 -_080F0148: .4byte 0x00000844 -_080F014C: .4byte 0x0000040b -_080F0150: - movs r0, 0 - b _080F0164 -_080F0154: - ldr r0, _080F016C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0170 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0162: - movs r0, 0x1 -_080F0164: - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F016C: .4byte gUnknown_083DFEC4 -_080F0170: .4byte 0x0000d160 - thumb_func_end sub_80EFF68 - - thumb_func_start sub_80F0174 -sub_80F0174: @ 80F0174 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080F018E - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - b _080F019A -_080F018E: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F01A0 @ =0x0000fbff - ands r0, r1 - strh r0, [r2] -_080F019A: - pop {r0} - bx r0 - .align 2, 0 -_080F01A0: .4byte 0x0000fbff - thumb_func_end sub_80F0174 - - thumb_func_start sub_80F01A4 -sub_80F01A4: @ 80F01A4 - ldr r1, _080F01CC @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x9B - strh r0, [r1] - ldr r0, _080F01D0 @ =REG_WIN0V - ldr r2, _080F01D4 @ =0x00003879 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080F01D8 @ =REG_WININ - ldr r2, _080F01DC @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1B - strh r0, [r1] - bx lr - .align 2, 0 -_080F01CC: .4byte REG_WIN0H -_080F01D0: .4byte REG_WIN0V -_080F01D4: .4byte 0x00003879 -_080F01D8: .4byte REG_WININ -_080F01DC: .4byte 0x00003f3f - thumb_func_end sub_80F01A4 - - thumb_func_start sub_80F01E0 -sub_80F01E0: @ 80F01E0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080F0248 @ =gUnknown_083DFEC4 - lsls r0, r4, 6 - ldr r2, _080F024C @ =0x00008829 - adds r0, r2 - ldr r5, [r1] - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x1 - bl MenuPrint - ldr r1, _080F0250 @ =0x000076aa - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0242 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r2, _080F0254 @ =0x000088e9 - adds r0, r2 - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x3 - bl MenuPrint - ldr r0, _080F0258 @ =0x00008788 - adds r4, r5, r0 - ldr r1, _080F025C @ =0x000087dc - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 2 - adds r0, r5, r0 - ldr r1, _080F0260 @ =0x0000893e - adds r0, r1 - ldrh r1, [r0] - lsls r1, 18 - lsrs r1, 23 - adds r0, r4, 0 - bl sub_80F443C - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x6 - bl MenuPrint -_080F0242: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0248: .4byte gUnknown_083DFEC4 -_080F024C: .4byte 0x00008829 -_080F0250: .4byte 0x000076aa -_080F0254: .4byte 0x000088e9 -_080F0258: .4byte 0x00008788 -_080F025C: .4byte 0x000087dc -_080F0260: .4byte 0x0000893e - thumb_func_end sub_80F01E0 - - thumb_func_start sub_80F0264 -sub_80F0264: @ 80F0264 - push {lr} - ldr r1, _080F0290 @ =gUnknown_083DFEC4 - ldr r2, [r1] - ldr r1, _080F0294 @ =0x00000306 - adds r3, r2, r1 - movs r1, 0 - strh r1, [r3] - ldr r3, _080F0298 @ =0x000087ca - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _080F029C @ =0x00006dac - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _080F028C -_080F0282: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080F0282 -_080F028C: - pop {r0} - bx r0 - .align 2, 0 -_080F0290: .4byte gUnknown_083DFEC4 -_080F0294: .4byte 0x00000306 -_080F0298: .4byte 0x000087ca -_080F029C: .4byte 0x00006dac - thumb_func_end sub_80F0264 - - thumb_func_start sub_80F02A0 -sub_80F02A0: @ 80F02A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - ldr r1, _080F02C4 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F02C8 @ =0x00000306 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0xE - bls _080F02BA - b _080F05FA -_080F02BA: - lsls r0, 2 - ldr r1, _080F02CC @ =_080F02D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F02C4: .4byte gUnknown_083DFEC4 -_080F02C8: .4byte 0x00000306 -_080F02CC: .4byte _080F02D0 - .align 2, 0 -_080F02D0: - .4byte _080F030C - .4byte _080F0344 - .4byte _080F0350 - .4byte _080F035C - .4byte _080F0368 - .4byte _080F036E - .4byte _080F0380 - .4byte _080F0394 - .4byte _080F04BC - .4byte _080F053C - .4byte _080F0550 - .4byte _080F0574 - .4byte _080F057A - .4byte _080F0586 - .4byte _080F05BC -_080F030C: - bl sub_80EEDE8 - ldr r0, _080F0334 @ =gUnknown_083DFEC4 - ldr r1, [r0] - movs r2, 0 - ldr r3, _080F0338 @ =0x000087ca - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0322 - movs r2, 0x1 -_080F0322: - ldr r3, _080F033C @ =0x000087c8 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080F0340 @ =0x0000d162 - adds r1, r0 - movs r0, 0xB - strb r0, [r1] - b _080F0618 - .align 2, 0 -_080F0334: .4byte gUnknown_083DFEC4 -_080F0338: .4byte 0x000087ca -_080F033C: .4byte 0x000087c8 -_080F0340: .4byte 0x0000d162 -_080F0344: - ldr r0, _080F034C @ =gWindowConfig_81E70D4 - bl SetUpWindowConfig - b _080F0618 - .align 2, 0 -_080F034C: .4byte gWindowConfig_81E70D4 -_080F0350: - ldr r0, _080F0358 @ =gWindowConfig_81E70D4 - bl MultistepInitMenuWindowBegin - b _080F0618 - .align 2, 0 -_080F0358: .4byte gWindowConfig_81E70D4 -_080F035C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F0366 - b _080F0618 -_080F0366: - b _080F0626 -_080F0368: - bl MenuZeroFillScreen - b _080F0618 -_080F036E: - ldr r0, _080F0378 @ =gUnknown_08E9FC64 - ldr r1, _080F037C @ =0x0600e800 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0378: .4byte gUnknown_08E9FC64 -_080F037C: .4byte 0x0600e800 -_080F0380: - ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx - ldr r1, _080F0390 @ =0x06008000 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F038C: .4byte gPokenavConditionSearch2_Gfx -_080F0390: .4byte 0x06008000 -_080F0394: - ldr r6, _080F03FC @ =gUnknown_083E02B4 - adds r0, r6, 0 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0400 @ =gUnknown_083E0334 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0404 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0408 @ =0x000087ca - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F0418 - ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F0410 @ =gPlttBufferUnfaded - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0414 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F03FC: .4byte gUnknown_083E02B4 -_080F0400: .4byte gUnknown_083E0334 -_080F0404: .4byte gUnknown_083DFEC4 -_080F0408: .4byte 0x000087ca -_080F040C: .4byte gPokenavConditionSearch2_Pal -_080F0410: .4byte gPlttBufferUnfaded -_080F0414: .4byte gUnknownPalette_81E6692 -_080F0418: - cmp r0, 0x1 - bne _080F0464 - ldr r4, _080F0458 @ =gUnknown_083E0274 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F045C @ =gPlttBufferUnfaded - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0460 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F0458: .4byte gUnknown_083E0274 -_080F045C: .4byte gPlttBufferUnfaded -_080F0460: .4byte gUnknownPalette_81E6692 -_080F0464: - ldr r4, _080F04B0 @ =gUnknown_08E9F9E8 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F04B4 @ =gPlttBufferUnfaded - adds r5, r4, 0 - adds r5, 0xA - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F04B8 @ =gUnknown_083E0314 - movs r1, 0x50 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0x5F -_080F04A8: - movs r2, 0x2 - bl LoadPalette - b _080F0618 - .align 2, 0 -_080F04B0: .4byte gUnknown_08E9F9E8 -_080F04B4: .4byte gPlttBufferUnfaded -_080F04B8: .4byte gUnknown_083E0314 -_080F04BC: - ldr r0, _080F04E8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F04EC @ =0x000087ca - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F04F8 - ldr r0, _080F04F0 @ =0x0600e800 - ldr r3, _080F04F4 @ =gUnknown_08E9FD1C - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F04E8: .4byte gUnknown_083DFEC4 -_080F04EC: .4byte 0x000087ca -_080F04F0: .4byte 0x0600e800 -_080F04F4: .4byte gUnknown_08E9FD1C -_080F04F8: - ldr r3, _080F0530 @ =0x0600e800 - mov r8, r3 - ldr r3, _080F0534 @ =gUnknown_08E9FE54 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0xC - str r5, [sp, 0x8] - movs r6, 0xA - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x4 - bl sub_8095C8C - ldr r3, _080F0538 @ =gUnknown_08E9FD64 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x8 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F0530: .4byte 0x0600e800 -_080F0534: .4byte gUnknown_08E9FE54 -_080F0538: .4byte gUnknown_08E9FD64 -_080F053C: - ldr r0, _080F0548 @ =gUnknown_083E0354 - ldr r1, _080F054C @ =0x06005000 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0548: .4byte gUnknown_083E0354 -_080F054C: .4byte 0x06005000 -_080F0550: - ldr r2, _080F0568 @ =0x0600f800 - add r1, sp, 0x14 - movs r0, 0 - strh r0, [r1] - ldr r0, _080F056C @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080F0570 @ =0x81000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080F0618 - .align 2, 0 -_080F0568: .4byte 0x0600f800 -_080F056C: .4byte 0x040000d4 -_080F0570: .4byte 0x81000400 -_080F0574: - bl sub_80F0900 - b _080F0618 -_080F057A: - bl sub_80F0944 - lsls r0, 24 - cmp r0, 0 - beq _080F0618 - b _080F0626 -_080F0586: - ldr r0, _080F059C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F05A0 @ =0x000087ca - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F05A4 - bl ShowMapNamePopUpWindow - b _080F0618 - .align 2, 0 -_080F059C: .4byte gUnknown_083DFEC4 -_080F05A0: .4byte 0x000087ca -_080F05A4: - movs r0, 0 - bl sub_80F081C - ldr r2, _080F05B8 @ =0x0000876e - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80F0FFC - b _080F0618 - .align 2, 0 -_080F05B8: .4byte 0x0000876e -_080F05BC: - ldr r1, _080F0600 @ =REG_BG2CNT - ldr r3, _080F0604 @ =0x00001d0a - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - adds r3, 0xF9 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x6 - adds r3, 0xFE - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x16 - movs r0, 0xF8 - strh r0, [r1] - ldr r1, [r2] - ldr r0, _080F0608 @ =0x00008776 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xF8 - strh r0, [r2] - ldr r2, _080F060C @ =0x00008778 - adds r0, r1, r2 - strh r3, [r0] - ldr r0, _080F0610 @ =REG_BLDCNT - strh r3, [r0] - ldr r3, _080F0614 @ =0x0000d160 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F05FA: - movs r0, 0 - b _080F0628 - .align 2, 0 -_080F0600: .4byte REG_BG2CNT -_080F0604: .4byte 0x00001d0a -_080F0608: .4byte 0x00008776 -_080F060C: .4byte 0x00008778 -_080F0610: .4byte REG_BLDCNT -_080F0614: .4byte 0x0000d160 -_080F0618: - ldr r0, _080F0634 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0638 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0626: - movs r0, 0x1 -_080F0628: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F0634: .4byte gUnknown_083DFEC4 -_080F0638: .4byte 0x00000306 - thumb_func_end sub_80F02A0 - thumb_func_start sub_80F063C sub_80F063C: @ 80F063C push {r4-r7,lr} diff --git a/include/ewram.h b/include/ewram.h index e4ad98aeb..06ea513a3 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -26,6 +26,8 @@ extern u8 gSharedMem[]; #define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram) #define ewram0_8 ((struct UnkStruct2000000 *)(gSharedMem + 0x0)) #define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) +#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) +#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) #define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4)) #define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520)) #define ewram520_2 (u8 *)(ewram_addr + 0x520) diff --git a/include/pokenav.h b/include/pokenav.h index 70cc4135f..f77f93e2d 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H +#include "region_map.h" + struct UnkPokenavStruct_Sub { /*0x0*/ u16 unk0; /*0x2*/ u8 filler2[6]; @@ -30,28 +32,61 @@ struct UnkPokenavStruct_Sub2 { /*0x26*/ u16 unk26; }; +struct UnkPokenavStruct_Sub3 { + /*0x00*/s16 unk0; +}; + struct UnkUsePokeblockSub { /*0*/ u8 fil0[2]; /*2*/ u8 partyIdx:5; + /*2*/ u16 unk2:9; }; struct UnkPokenavStruct { - /*0x0000*/ u8 filler0000[0x30c]; - /*0x0000*/ u16 unk030C; - /*0x0000*/ u8 filler030E[0x6a9e]; + /*0x0000*/ u8 filler0000[0x306]; + /*0x0306*/ u16 unk306; + /*0x0306*/ u8 filler0308[0x4]; + /*0x030C*/ union { // TODO: what? + u16 val; + struct UnkPokenavStruct_Sub3 unk030C; + } unk030C; + /*0x0310*/ u8 filler030E[0x6a90]; + /*0x6DA0*/ u16 unk6DA0; + /*0x6DA2*/ u16 unk6DA2; + /*0x6DA4*/ u16 taskId6DA4; + /*0x6DA6*/ u8 filler6DA6[0x6]; /*0x6DAC*/ u8 unk6DAC; - /*0x6DAD*/ u8 filler6DAD[0x8fd]; + /*0x6DAD*/ u8 filler6DAD[0x6B]; + /*0x6E18*/ struct RegionMap regionMap; + /*0x7698*/ u16 unk7698; + /*0x769A*/ u16 unk769A; + /*0x769C*/ u8 unk769C; + /*0x769D*/ u8 unk769D; + /*0x769E*/ u8 unk769E; + /*0x769F*/ u8 filler769F[0xB]; /*0x76AA*/ u8 unk76AA; /*0x76AB*/ u8 filler76AB[0x10bd]; /*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768; - /*0x876C*/ u8 filler876C[0x6e]; + /*0x876C*/ u8 filler876C[0x2]; + /*0x876E*/ u8 unk876E; + /*0x876F*/ u8 filler876F[0x7]; + /*0x8776*/ u16 unk8776; + /*0x8778*/ u16 unk8778; + /*0x877A*/ u8 filler877A[0xE]; + /*0x8788*/ u8 unk8788[0x40]; + /*0x87C8*/ u8 unk87C8; + /*0x87C9*/ u8 filler87C9; + /*0x87CA*/ u8 unk87CA; + /*0x87CB*/ u8 filler87CB[0xF]; /*0x87DA*/ s16 unk87DA; /*0x87DC*/ s16 unk87DC; /*0x87DE*/ s16 unk87DE; /*0x87E0*/ void *unk87E0; /*0x87E4*/ u8 filler87E4[0x44]; /*0x8828*/ u8 unk8828; - /*0x8829*/ u8 filler8829[0x113]; + /*0x8829*/ u8 unk8829[3][64]; + /*0x88E9*/ u8 unk88E9[3][24]; + /*0x8931*/ u8 unk8931[11]; /*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab]; /*0x8fe8*/ u8 fil8fe8[1]; /*0x8fe9*/ s8 unk8fe9; @@ -61,11 +96,20 @@ struct UnkPokenavStruct { /*0x9004*/ u8 unk9004[3][20]; /*0x9040*/ u8 unk9040[0x304]; /*0x9344*/ u8 unk9344; - /*0x9345*/ u8 filler9345[0x3ba3]; + /*0x9345*/ u8 filler9345[0x2955]; + /*0xBC9A*/ u8 unkBC9A; + /*0xBC9B*/ u8 unkBC9B; + /*0xBC9C*/ u8 unkBC9C[22][200]; + /*0xCDCC*/ const u8 *unkCDCC[16][2]; + /*0xCE4C*/ u16 unkCE4C; + /*0xCE4E*/ u16 unkCE4E; + /*0xCE50*/ u16 unkCE50; + /*0xCE52*/ u16 palettesCE52[30]; + /*0xCE8E*/ u16 palettesCE8E[0x2D]; /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; /*0xD158*/ u16 unkD158; /*0xD15A*/ u8 fillerD15A[6]; - /*0xD162*/ u16 unkD160; + /*0xD160*/ u16 unkD160; /*0xD162*/ u8 unkD162[2]; /*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164; }; diff --git a/include/region_map.h b/include/region_map.h index 3d970fa0a..4061c5e3d 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -3,8 +3,8 @@ struct RegionMap { - u8 mapSecName[0x14]; - u16 mapSecId; + u8 mapSectionName[20]; + u16 mapSectionId; u8 unk16; u8 everGrandeCityArea; u8 (*inputCallback)(void); @@ -62,10 +62,10 @@ void sub_80FAEC4(void); u8 sub_80FAFC0(void); void UpdateRegionMapVideoRegs(void); void sub_80FB2A4(s16, s16); -u16 sub_80FBA04(u16 mapSecId); +u16 sub_80FBA04(u16 mapSectionId); void CreateRegionMapCursor(u16, u16); void CreateRegionMapPlayerIcon(u16, u16); -const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length); +const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); const u8 *CopyLocationName(u8 *dest, u16 b); diff --git a/ld_script.txt b/ld_script.txt index 1c798f94c..b22462cb7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -168,8 +168,9 @@ SECTIONS { src/field/bike.o(.text); asm/easy_chat.o(.text); src/field/easy_chat.o(.text); + src/pokenav_before.o(.text); asm/pokenav.o(.text); - src/field/pokenav.o(.text); + src/pokenav_after.o(.text); asm/pokenav.o(.text_80F708C); src/pokemon/mon_markings.o(.text); src/field/mauville_man.o(.text); diff --git a/src/field/region_map.c b/src/field/region_map.c index d643c373d..973e7decc 100644 --- a/src/field/region_map.c +++ b/src/field/region_map.c @@ -337,9 +337,9 @@ bool8 sub_80FA940(void) InitializeCursorPosition(); gRegionMap->unk74 = gRegionMap->cursorPosX; gRegionMap->unk76 = gRegionMap->cursorPosY; - gRegionMap->unk16 = sub_80FB758(gRegionMap->mapSecId); - gRegionMap->mapSecId = sub_80FB9C0(gRegionMap->mapSecId); - GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + gRegionMap->unk16 = sub_80FB758(gRegionMap->mapSectionId); + gRegionMap->mapSectionId = sub_80FB9C0(gRegionMap->mapSectionId); + GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16); break; case 6: if (gRegionMap->zoomed == FALSE) @@ -434,7 +434,7 @@ static u8 sub_80FAB78(void) static u8 _swiopen(void) { - u16 mapSecId; + u16 mapSectionId; if (gRegionMap->unk7A != 0) return INPUT_EVENT_2; @@ -451,12 +451,12 @@ static u8 _swiopen(void) if (gRegionMap->cursorDeltaY < 0) gRegionMap->cursorPosY--; - mapSecId = GetRegionMapSectionAt(gRegionMap->cursorPosX, gRegionMap->cursorPosY); - gRegionMap->unk16 = sub_80FB758(mapSecId); - if (mapSecId != gRegionMap->mapSecId) + mapSectionId = GetRegionMapSectionAt(gRegionMap->cursorPosX, gRegionMap->cursorPosY); + gRegionMap->unk16 = sub_80FB758(mapSectionId); + if (mapSectionId != gRegionMap->mapSectionId) { - gRegionMap->mapSecId = mapSecId; - GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + gRegionMap->mapSectionId = mapSectionId; + GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16); } sub_80FBA18(); gRegionMap->inputCallback = sub_80FAB78; @@ -516,16 +516,16 @@ static u8 sub_80FADE4(void) if (r3 != gRegionMap->unk64 || r1 != gRegionMap->unk66) { - u16 mapSecId; + u16 mapSectionId; gRegionMap->unk64 = r3; gRegionMap->unk66 = r1; - mapSecId = GetRegionMapSectionAt(r3, r1); - gRegionMap->unk16 = sub_80FB758(mapSecId); - if (mapSecId != gRegionMap->mapSecId) + mapSectionId = GetRegionMapSectionAt(r3, r1); + gRegionMap->unk16 = sub_80FB758(mapSectionId); + if (mapSectionId != gRegionMap->mapSectionId) { - gRegionMap->mapSecId = mapSecId; - GetMapSectionName(gRegionMap->mapSecName, gRegionMap->mapSecId, 16); + gRegionMap->mapSectionId = mapSectionId; + GetMapSectionName(gRegionMap->mapSectionName, gRegionMap->mapSectionId, 16); } sub_80FBA18(); } @@ -723,19 +723,19 @@ static void InitializeCursorPosition(void) case 2: case 4: case 5: - gRegionMap->mapSecId = gMapHeader.regionMapSectionId; + gRegionMap->mapSectionId = gMapHeader.regionMapSectionId; gRegionMap->playerIsInCave = FALSE; mapWidth = gMapHeader.mapData->width; mapHeight = gMapHeader.mapData->height; x = gSaveBlock1.pos.x; y = gSaveBlock1.pos.y; - if (gRegionMap->mapSecId == MAPSEC_UNDERWATER6) + if (gRegionMap->mapSectionId == MAPSEC_UNDERWATER6) gRegionMap->playerIsInCave = TRUE; break; case 3: case 6: mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp4.mapGroup, gSaveBlock1.warp4.mapNum); - gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->mapSectionId = mapHeader->regionMapSectionId; gRegionMap->playerIsInCave = TRUE; mapWidth = mapHeader->mapData->width; mapHeight = mapHeader->mapData->height; @@ -744,7 +744,7 @@ static void InitializeCursorPosition(void) break; case 8: mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp2.mapGroup, gSaveBlock1.warp2.mapNum); - gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->mapSectionId = mapHeader->regionMapSectionId; gRegionMap->playerIsInCave = TRUE; mapWidth = mapHeader->mapData->width; mapHeight = mapHeader->mapData->height; @@ -755,8 +755,8 @@ static void InitializeCursorPosition(void) { struct WarpData *r4; - gRegionMap->mapSecId = gMapHeader.regionMapSectionId; - if (gRegionMap->mapSecId != MAPSEC_UNK_0x57) + gRegionMap->mapSectionId = gMapHeader.regionMapSectionId; + if (gRegionMap->mapSectionId != MAPSEC_UNK_0x57) { r4 = &gSaveBlock1.warp4; mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum); @@ -765,7 +765,7 @@ static void InitializeCursorPosition(void) { r4 = &gSaveBlock1.warp2; mapHeader = Overworld_GetMapHeaderByGroupAndId(r4->mapGroup, r4->mapNum); - gRegionMap->mapSecId = mapHeader->regionMapSectionId; + gRegionMap->mapSectionId = mapHeader->regionMapSectionId; } gRegionMap->playerIsInCave = FALSE; mapWidth = mapHeader->mapData->width; @@ -778,21 +778,21 @@ static void InitializeCursorPosition(void) r9 = x; - r1 = mapWidth / gRegionMapLocations[gRegionMap->mapSecId].width; + r1 = mapWidth / gRegionMapLocations[gRegionMap->mapSectionId].width; if (r1 == 0) r1 = 1; x /= r1; - if (x >= gRegionMapLocations[gRegionMap->mapSecId].width) - x = gRegionMapLocations[gRegionMap->mapSecId].width - 1; + if (x >= gRegionMapLocations[gRegionMap->mapSectionId].width) + x = gRegionMapLocations[gRegionMap->mapSectionId].width - 1; - r1 = mapHeight / gRegionMapLocations[gRegionMap->mapSecId].height; + r1 = mapHeight / gRegionMapLocations[gRegionMap->mapSectionId].height; if (r1 == 0) r1 = 1; y /= r1; - if (y >= gRegionMapLocations[gRegionMap->mapSecId].height) - y = gRegionMapLocations[gRegionMap->mapSecId].height - 1; + if (y >= gRegionMapLocations[gRegionMap->mapSectionId].height) + y = gRegionMapLocations[gRegionMap->mapSectionId].height - 1; - switch (gRegionMap->mapSecId) + switch (gRegionMap->mapSectionId) { case MAPSEC_ROUTE_114: if (y != 0) @@ -821,8 +821,8 @@ static void InitializeCursorPosition(void) x++; break; } - gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; - gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; + gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSectionId].x + x + MAPCURSOR_X_MIN; + gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSectionId].y + y + MAPCURSOR_Y_MIN; } static void sub_80FB600(void) @@ -837,16 +837,16 @@ static void sub_80FB600(void) switch (GetSSTidalLocation(&mapGroup, &mapNum, &sp2, &sp4)) { case 1: - gRegionMap->mapSecId = MAPSEC_SLATEPORT_CITY; + gRegionMap->mapSectionId = MAPSEC_SLATEPORT_CITY; break; case 2: - gRegionMap->mapSecId = MAPSEC_LILYCOVE_CITY; + gRegionMap->mapSectionId = MAPSEC_LILYCOVE_CITY; break; case 3: - gRegionMap->mapSecId = MAPSEC_ROUTE_124; + gRegionMap->mapSectionId = MAPSEC_ROUTE_124; break; case 4: - gRegionMap->mapSecId = MAPSEC_ROUTE_131; + gRegionMap->mapSectionId = MAPSEC_ROUTE_131; break; default: case 0: @@ -854,31 +854,31 @@ static void sub_80FB600(void) struct MapHeader *mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); u16 r1; - gRegionMap->mapSecId = mapHeader->regionMapSectionId; - r1 = mapHeader->mapData->width / gRegionMapLocations[gRegionMap->mapSecId].width; + gRegionMap->mapSectionId = mapHeader->regionMapSectionId; + r1 = mapHeader->mapData->width / gRegionMapLocations[gRegionMap->mapSectionId].width; if (r1 == 0) r1 = 1; x = sp2 / r1; - if (x >= gRegionMapLocations[gRegionMap->mapSecId].width) - x = gRegionMapLocations[gRegionMap->mapSecId].width - 1; + if (x >= gRegionMapLocations[gRegionMap->mapSectionId].width) + x = gRegionMapLocations[gRegionMap->mapSectionId].width - 1; - r1 = mapHeader->mapData->height / gRegionMapLocations[gRegionMap->mapSecId].height; + r1 = mapHeader->mapData->height / gRegionMapLocations[gRegionMap->mapSectionId].height; if (r1 == 0) r1 = 1; y = sp4 / r1; - if (y >= gRegionMapLocations[gRegionMap->mapSecId].height) - y = gRegionMapLocations[gRegionMap->mapSecId].height - 1; + if (y >= gRegionMapLocations[gRegionMap->mapSectionId].height) + y = gRegionMapLocations[gRegionMap->mapSectionId].height - 1; } break; } gRegionMap->playerIsInCave = FALSE; - gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSecId].x + x + MAPCURSOR_X_MIN; - gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSecId].y + y + MAPCURSOR_Y_MIN; + gRegionMap->cursorPosX = gRegionMapLocations[gRegionMap->mapSectionId].x + x + MAPCURSOR_X_MIN; + gRegionMap->cursorPosY = gRegionMapLocations[gRegionMap->mapSectionId].y + y + MAPCURSOR_Y_MIN; } -static u16 sub_80FB758(u16 mapSecId) +static u16 sub_80FB758(u16 mapSectionId) { - switch (mapSecId) + switch (mapSectionId) { case MAPSEC_NONE: return 0; @@ -929,21 +929,21 @@ u16 GetRegionMapSectionAt_(u16 x, u16 y) return GetRegionMapSectionAt(x, y); } -static u16 sub_80FB9C0(u16 mapSecId) +static u16 sub_80FB9C0(u16 mapSectionId) { u16 i; for (i = 0; gUnknown_083E7684[i][0] != MAPSEC_NONE; i++) { - if (gUnknown_083E7684[i][0] == mapSecId) + if (gUnknown_083E7684[i][0] == mapSectionId) return gUnknown_083E7684[i][1]; } - return mapSecId; + return mapSectionId; } -u16 sub_80FBA04(u16 mapSecId) +u16 sub_80FBA04(u16 mapSectionId) { - return sub_80FB9C0(mapSecId); + return sub_80FB9C0(mapSectionId); } static void sub_80FBA18(void) @@ -952,7 +952,7 @@ static void sub_80FBA18(void) u16 y; u16 i; - if (gRegionMap->mapSecId == MAPSEC_NONE) + if (gRegionMap->mapSectionId == MAPSEC_NONE) { gRegionMap->everGrandeCityArea = 0; return; @@ -987,7 +987,7 @@ static void sub_80FBA18(void) else { x--; - if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSecId) + if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSectionId) i++; } } @@ -1006,7 +1006,7 @@ static bool8 sub_80FBAA0(u16 a) for (x = MAPCURSOR_X_MIN; x <= MAPCURSOR_X_MAX; x++) { - if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSecId) + if (GetRegionMapSectionAt(x, y) == gRegionMap->mapSectionId) return TRUE; } return FALSE; @@ -1303,44 +1303,44 @@ void sub_80FBF94(void) gRegionMap->blinkPlayerIcon = TRUE; } -const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length) +const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length) { - if (mapSecId == MAPSEC_SECRET_BASE) + if (mapSectionId == MAPSEC_SECRET_BASE) return GetSecretBaseMapName(dest); - if (mapSecId < MAPSEC_NONE) - return StringCopy(dest, gRegionMapLocations[mapSecId].regionMapSectionId); + if (mapSectionId < MAPSEC_NONE) + return StringCopy(dest, gRegionMapLocations[mapSectionId].regionMapSectionId); if (length == 0) length = 18; return StringFill(dest, CHAR_SPACE, length); } -const u8 *CopyMapName(u8 *dest, u16 mapSecId) +const u8 *CopyMapName(u8 *dest, u16 mapSectionId) { - switch (mapSecId) + switch (mapSectionId) { case MAPSEC_UNK_0x57: return StringCopy(dest, gOtherText_Ferry); case MAPSEC_SECRET_BASE: return StringCopy(dest, gOtherText_SecretBase); default: - return GetMapSectionName(dest, mapSecId, 0); + return GetMapSectionName(dest, mapSectionId, 0); } } -const u8 *CopyLocationName(u8 *dest, u16 mapSecId) +const u8 *CopyLocationName(u8 *dest, u16 mapSectionId) { - if (mapSecId == MAPSEC_EVIL_TEAM_HIDEOUT) + if (mapSectionId == MAPSEC_EVIL_TEAM_HIDEOUT) return StringCopy(dest, gOtherText_Hideout); else - return CopyMapName(dest, mapSecId); + return CopyMapName(dest, mapSectionId); } -static void GetRegionMapLocationPosition(u16 mapSecId, u16 *x, u16 *y, u16 *width, u16 *height) +static void GetRegionMapLocationPosition(u16 mapSectionId, u16 *x, u16 *y, u16 *width, u16 *height) { - *x = gRegionMapLocations[mapSecId].x; - *y = gRegionMapLocations[mapSecId].y; - *width = gRegionMapLocations[mapSecId].width; - *height = gRegionMapLocations[mapSecId].height; + *x = gRegionMapLocations[mapSectionId].x; + *y = gRegionMapLocations[mapSectionId].y; + *width = gRegionMapLocations[mapSectionId].width; + *height = gRegionMapLocations[mapSectionId].height; } struct UnknownStruct3 @@ -1414,7 +1414,7 @@ static const u8 sUnknown_083E7920[][3] = struct UnknownStruct4 { const u8 *const *unk0; - u16 mapSecId; + u16 mapSectionId; u16 flag; }; @@ -1433,7 +1433,7 @@ static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons // Fly targets that are not cities or towns static const u16 sSpecialFlyAreas[][2] = { - // flag, mapSecId + // flag, mapSectionId {0x848, MAPSEC_BATTLE_TOWER}, {0xFFFF, MAPSEC_NONE}, }; @@ -1550,7 +1550,7 @@ void CB2_InitFlyRegionMap(void) InitRegionMap(&ewram0_3.regionMap, 0); CreateRegionMapCursor(0, 0); CreateRegionMapPlayerIcon(1, 1); - ewram0_3.unk6 = ewram0_3.regionMap.mapSecId; + ewram0_3.unk6 = ewram0_3.regionMap.mapSectionId; StringFill(ewramBlankMapName, CHAR_SPACE, 12); PrintFlyTargetName(); break; @@ -1615,12 +1615,12 @@ static void PrintFlyTargetName(void) { const struct UnknownStruct4 *r4 = &sUnknown_083E79C0[i]; - if (ewram0_3.regionMap.mapSecId == r4->mapSecId) + if (ewram0_3.regionMap.mapSectionId == r4->mapSectionId) { if (FlagGet(r4->flag)) { MenuDrawTextWindow(16, 14, 29, 19); - MenuPrint(ewram0_3.regionMap.mapSecName, 17, 15); + MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 15); MenuPrint_RightAligned(r4->unk0[ewram0_3.regionMap.everGrandeCityArea], 29, 17); return; } @@ -1632,7 +1632,7 @@ static void PrintFlyTargetName(void) if (zero == 0) { MenuDrawTextWindow(16, 16, 29, 19); - MenuPrint(ewram0_3.regionMap.mapSecName, 17, 17); + MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 17); MenuZeroFillWindowRect(16, 14, 29, 15); } } @@ -1712,10 +1712,10 @@ static void CreateSpecialAreaFlyTargetIcons(void) if (FlagGet(sSpecialFlyAreas[i][0])) { - u16 mapSecId = sSpecialFlyAreas[i][1]; + u16 mapSectionId = sSpecialFlyAreas[i][1]; u8 spriteId; - GetRegionMapLocationPosition(mapSecId, &x, &y, &width, &height); + GetRegionMapLocationPosition(mapSectionId, &x, &y, &width, &height); x = (x + 1) * 8; y = (y + 2) * 8; spriteId = CreateSprite(&gFlyTargetSpriteTemplate, x, y, 10); @@ -1724,7 +1724,7 @@ static void CreateSpecialAreaFlyTargetIcons(void) gSprites[spriteId].oam.size = 1; gSprites[spriteId].callback = SpriteCB_FlyTargetIcons; StartSpriteAnim(&gSprites[spriteId], 6); - gSprites[spriteId].data0 = mapSecId; + gSprites[spriteId].data0 = mapSectionId; } } } @@ -1732,8 +1732,8 @@ static void CreateSpecialAreaFlyTargetIcons(void) static void SpriteCB_FlyTargetIcons(struct Sprite *sprite) { - // Blink if our mapSecId is the one selected on the map - if (ewram0_3.regionMap.mapSecId == sprite->data0) + // Blink if our mapSectionId is the one selected on the map + if (ewram0_3.regionMap.mapSectionId == sprite->data0) { // Toggle visibility every 16 frames sprite->data1++; @@ -1810,7 +1810,7 @@ static void sub_80FC69C(void) FreeRegionMapIconResources(); if (ewramA6E != 0) { - switch (ewram0_3.regionMap.mapSecId) + switch (ewram0_3.regionMap.mapSectionId) { case MAPSEC_SOUTHERN_ISLAND: sub_8053538(22); @@ -1825,10 +1825,10 @@ static void sub_80FC69C(void) sub_8053538((FlagGet(0x854) && ewram0_3.regionMap.everGrandeCityArea == 0) ? 20 : 11); break; default: - if (sUnknown_083E7920[ewram0_3.regionMap.mapSecId][2] != 0) - sub_8053538(sUnknown_083E7920[ewram0_3.regionMap.mapSecId][2]); + if (sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2] != 0) + sub_8053538(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2]); else - warp1_set_2(sUnknown_083E7920[ewram0_3.regionMap.mapSecId][0], sUnknown_083E7920[ewram0_3.regionMap.mapSecId][1], -1); + warp1_set_2(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][0], sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][1], -1); break; } sub_80865BC(); diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c index 5fbecec0d..54ed89ef2 100644 --- a/src/field/use_pokeblock.c +++ b/src/field/use_pokeblock.c @@ -244,7 +244,7 @@ static void sub_8136294(void) case 6: gUnknown_083DFEC4->unk76AA = 0; gUnknown_083DFEC4->unk87E0 = NULL; - gUnknown_083DFEC4->unk030C = 0x20; + gUnknown_083DFEC4->unk030C.val = 0x20; gUnknown_02039304->unk50++; break; case 7: diff --git a/src/field/pokenav.c b/src/pokenav_after.c index 21d7bb4e3..84ed7b14b 100644 --- a/src/field/pokenav.c +++ b/src/pokenav_after.c @@ -38,5 +38,3 @@ void sub_80F700C(u8 *arg0, u16 arg1) { ptr[2] = 0x80; ptr[3] = 0xFF; } - -IWRAM_DATA MainCallback gUnknown_03000744; diff --git a/src/pokenav_before.c b/src/pokenav_before.c new file mode 100644 index 000000000..5cd1c8942 --- /dev/null +++ b/src/pokenav_before.c @@ -0,0 +1,5004 @@ +#include "global.h" +#include "main.h" +#include "pokenav.h" +#include "ewram.h" +#include "battle.h" +#include "data2.h" +#include "de_rom_8040FE0.h" +#include "flags.h" +#include "landmark.h" +#include "link.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "region_map.h" +#include "songs.h" +#include "string_util.h" +#include "sound.h" +#include "task.h" +#include "text.h" +#include "unknown_task.h" + +extern u8 ewram[]; + +struct UnknownPokenav0 { + /* 0x0000 */ u8 var0[0x0300]; + /* 0x0300 */ void (*var300)(void); + /* 0x0304 */ u16 var304; + /* 0x0306 */ u16 var306; + /* 0x0308 */ u32 var308; + /* 0x030C */ u8 fill030C[0x6a9f]; + /* 0x6dab */ u8 var6dab; + /* 0x6dac */ u8 var6dac; + /* 0x6dad */ u8 var6dad; + /* 0x6dae */ u8 var6dae; + /* 0x6daf */ u8 fill6daf[0x3]; + /* 0x6db2 */ u8 var6db2[5]; + /* 0x6db7 */ u8 fill6db7[0x25]; + /* 0x6ddc */ s8 var6ddc; + /* 0x6ddd */ u8 fill6ddd[0x13]; + /* 0x6df0 */ s8 var6df0; + /* 0x6df1 */ u8 fill6df1[0xB]; + /* 0x6dfc */ u8 var6dfc; + /* 0x6dfd */ u8 fill6dfd[0x17]; + /* 0x6e14 */ u8 var6e14; + /* 0x6e15 */ u8 var6e15; + /* 0x6e16 */ u8 var6e16; + /* 0x6e17 */ u8 var6e17; + /* 0x6e18 */ u8 fill6e18[0x78]; + /* 0x6e90 */ u8 var6e90; + /* 0x6e91 */ u8 fill6e91[0x4]; + /* 0x6e95 */ u8 var6e95; + /* 0x6e96 */ u8 var6e96[0x814]; + /* 0x76AA */ u8 var76aa; + /* 0x76AB */ u8 fill76AB[0x10BD]; + /* 0x8768 */ u32 var8768; + /* 0x876C */ u8 fill876C[0x2]; + /* 0x876E */ u8 var876E; + /* 0x876F */ u8 fill876F[0x5]; + /* 0x8774 */ s16 var8774; + /* 0x8776 */ u8 fill8776[0x55]; + /* 0x87CB */ u8 var87CB; + /* 0x87CC */ u8 fill87CC[0xC]; + /* 0x87D8 */ u8 var87D8; + /* 0x87D9 */ u8 fill87D9[0x1]; + /* 0x87DA */ s16 var87DA; + /* 0x87DC */ s16 var87DC; + /* 0x87DE */ u8 fill87DE[0x4a]; + /* 0x8828 */ u8 playerPartyCount; + /* 0x8829 */ u8 fill8829[0x07bf]; + /* 0x8FE8 */ s8 var8fe8; + /* 0x8FE9 */ u8 fill8FE9[0x16]; + /* 0x8FFF */ u8 var8fff[5]; + /* 0x9004 */ u8 fill9004[0x340]; + /* 0x9344 */ u8 var9344; + /* 0x9345 */ u8 fill9345[0x3b8b]; + /* 0xced0 */ u32 varCED0; + /* 0xced4 */ u8 fillCED4[0x284]; + /* 0xD158 */ u16 varD158; + /* 0xD15A */ u8 fillD15A[0x8]; + /* 0xD162 */ u8 varD162; +}; + +struct UnknownPokenav0_1 { + u8 fill6dad[0x6dad]; + s8 var6dad; + s8 var6dae; +}; + +IWRAM_DATA void (*gUnknown_03000744)(void); + +extern const u8 gUnknown_083E0314[]; +extern const u16 gUnknown_08E9F9E8[]; +extern const u16 gUnknown_083E0274[]; +extern const u8 gUnknown_08E9FC64[]; +extern const u8 gUnknown_083E0354[]; +extern const u8 gUnknown_08E9FD64[]; +extern const u8 gUnknown_08E9FE54[]; +extern const u8 gUnknown_08E9FD1C[]; +extern const u16 gPokenavConditionSearch2_Pal[]; +extern const u8 gUnknown_083E0334[]; +extern const u16 gUnknown_083E02B4[]; +extern const u8 gPokenavConditionSearch2_Gfx[]; +extern const u8 gUnknownPalette_81E6692[]; +extern const u8 gUnknown_083E0254[]; +extern const u8 gUnknown_08E9FEB4[]; +extern const u8 gUnknown_083E01AC[]; +extern const u8 gUnknown_08E9AC4C[]; +extern const u8 gPokenavConditionMenu2_Pal[]; +extern const u8 gPokenavConditionView_Gfx[]; +extern const u8 gUnknown_08E9ABB4[]; +extern const u8 gUnknown_08E9AC2C[]; +extern const u8 *const gPokenavCityMaps[][2]; +extern const u8 gPokenavHoennMapSquares_Pal[]; +extern const u8 gPokenavHoennMapSquares_Gfx[]; +extern const u16 gUnknown_083E003C[]; +extern const u8 *const gUnknown_083E31B0[]; +extern const u8 *const gUnknown_083E31CC[]; +extern const u8 *const gUnknown_083E31D8[]; +extern u8 *gUnknown_083DFEC8; +extern const u8 gUnknown_083DFEEC[]; +extern const u8 gUnknown_083E005C[]; +extern const u8 gUnknown_083E007C[]; +extern const u8 gPokenavOutlineTilemap[]; +extern const u8 gPokenavOutlineTiles[]; +extern const u8 gPokenavOutlinePalette[]; +extern const u8 gUnknown_083DFECC[]; +extern const u8 gUnknown_083DFF8C[]; +extern const u8 gPokenavHoennMapMisc_Gfx[]; +extern const u8 gUnknown_08E99FB0[]; +extern const u8 gUnknown_08E9A100[]; +extern const u16 gPokenavHoennMap1_Pal[]; + +static void sub_80EBCA8(); +static void sub_80EEE20(); +static bool8 sub_80EEE54(); +static void sub_80EEE08(); +static void sub_80EED2C(u8); +static void sub_80EC268(); +static void sub_80EED1C(); +static void sub_80EE9C0(u8, u8, u8); +static bool8 sub_80EEA0C(); +static bool8 sub_80EEC10(); +static void sub_80EED9C(); +static void sub_80EDB88(); +static void sub_80EC4A0(); +static void sub_80EC81C(); +static void sub_80EE96C(); +static void sub_80EE3D8(); +static bool8 sub_80EEF34(); +static void sub_80EED0C(); +static void sub_80EC67C(); +static void sub_80EC86C(); +static bool8 sub_80EEC90(); +static void sub_80ED620(); +static void sub_80EC960(); +static void sub_80ED01C(); +static void sub_80ECC08(); +static void sub_80ED31C(); +static void sub_80ED4D8(); +static void sub_80ED858(); +static void sub_80EDDBC(); +static void sub_80EDE70(); +static void sub_80EDEE4(); +static void sub_80EE06C(); +static void sub_80EE294(); +static void sub_80EE58C(); +static void sub_80EE658(); +static void sub_80EE8F4(); +static void sub_80EEDC4(); + +extern bool8 sub_80F0944(void); +extern void sub_80F081C(); +extern void sub_80F0900(void); +extern void sub_80F443C(u8 *, u16); +extern bool8 sub_80F162C(u8); +extern void sub_80F01E0(u16); +extern void sub_80F01A4(void); +extern void sub_80F1614(void); +extern void sub_80EFD3C(void); +extern void sub_8095C8C(); +extern void sub_80EFDA0(void); +extern void sub_80EFD74(void); +extern void sub_80F1A80(void); +extern bool8 sub_80EFC64(void); +extern void sub_80EFC3C(void); +extern void sub_80EF624(const u16 *, const u16 *, u8, u8, u16 *); +extern void sub_80EF7D4(void); +extern void sub_80EF54C(u8); +extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16); +extern void sub_80EF58C(u8); +extern void sub_80F6FFC(); +extern void sub_80F3294(); +extern void sub_80F0B24(); +extern bool8 sub_80F0B44(); +extern void sub_80F0F64(); +extern bool8 sub_80F0FEC(); +extern void sub_80F6FB8(); +extern void sub_80F6DB8(); +extern void sub_80F0CD8(); +extern bool8 sub_80F6E9C(); +extern bool8 sub_80F0D5C(); +extern bool8 sub_80F6ED4(); +extern bool8 sub_80F0EF4(); +extern void sub_80F2FB0(); +extern void sub_80F0FA0(); +extern void sub_80F0C28(); +extern bool8 sub_80F0C48(); +extern bool8 sub_80F70FC(); +extern void sub_80F708C(u32); +extern void sub_80F4394(); +extern void sub_80F0EC0(); +extern void sub_80F700C(); +extern void sub_80F42C4(); +extern void sub_80F0FFC(); +extern void sub_80F6F10(); +extern void sub_80F3C2C(); +extern void sub_80F15A8(); +extern void sub_80F6A4C(); +extern bool8 sub_80F6AF0(); +extern void sub_80F3B00(); +extern bool8 sub_80F3B58(); +extern void sub_80F1494(); +extern u8 sub_80F68E8(); +extern void sub_80F3B94(); +extern bool8 sub_80F3BD4(); +extern void sub_80F66E0(); +extern bool8 sub_80F1080(); +extern void sub_80F38B8(); +extern bool8 sub_80F38EC(); +extern void sub_80F638C(); +extern bool8 sub_80F63D0(); +extern void sub_80F4CF0(); +extern void sub_80EFF34(); +extern bool8 sub_80EFF68(); +extern void sub_80F35B4(); +extern void sub_80F6134(); +extern u8 sub_80F5DD4(); +extern void ShowMapNamePopUpWindow(); +extern bool8 sub_80F0718(); +extern bool8 sub_80F3264(); +extern void sub_80F4D44(); +extern bool8 sub_80F4D88(); +extern void sub_80F0264(u8); +extern bool8 sub_80F02A0(); +extern void sub_80F3008(); +extern void sub_80F3130(); +extern void sub_80F2D6C(u32); +extern bool8 sub_80F1E6C(); +extern void sub_80EF9F8(void); +extern bool8 sub_80EFBDC(bool8); +extern void sub_80EFBB0(void); +extern void sub_80F2DF4(); +extern void sub_80F1E84(); +extern bool8 sub_80F1F10(); +extern void sub_80EEFBC(u8); +extern void sub_80F2620(); +extern void sub_80EF814(void); +extern void sub_80EF840(void); +extern bool8 sub_80EF874(void); +extern void sub_80F2DD8(); +extern bool8 sub_80F6250(); +extern void sub_80F6208(); +extern void sub_80F208C(); +extern void sub_80F6C20(); +extern void sub_80F3FF0(); +extern bool8 sub_80F4024(); +extern void sub_80F2598(); +extern void sub_80EF248(u8); +extern bool8 sub_80EF284(u8); +extern void sub_80F1B8C(); +extern bool8 sub_80F1BC8(u32 unk); +extern void sub_80F1DF0(); +extern bool8 sub_80F1E50(); +extern void sub_80EF428(u8, u8); +extern bool8 sub_80EEF78(); +extern void sub_80F1A90(); +extern void sub_80F2D04(u32); +extern bool8 sub_80F1AC4(); +extern void sub_80F36F0(); +extern bool8 sub_80F3724(); +extern void sub_80EBC10(); +extern void sub_80EBDBC(void (*func)(void)); +extern void sub_80EBBE8(); +extern bool8 sub_80F26BC(void); +extern void sub_80EBDD8(); +extern void sub_80EBD90(); +extern void sub_80EBD18(); +extern void sub_80F1A74(); +extern void sub_80F1FF0(); +extern void sub_80FB260(); +extern void sub_80EFE7C(void); +extern void sub_80F5BF0(); +extern void sub_80F6F64(); +extern void sub_80F19FC(); + +extern u16 gKeyRepeatStartDelay; + + +void sub_80EBA5C() { + switch (gMain.state) { + default: + gMain.state = 0; + case 0: + ewram0_10.var6dac = is_c1_link_related_active(); + if (!ewram0_10.var6dac) { + ewram0_10.var6dab = 0; + gMain.state++; + SetMainCallback2(&sub_80EBBE8); + break; + } + break; + case 1: + SetVBlankCallback(NULL); + break; + case 2: + ResetPaletteFade(); + break; + case 3: + ResetSpriteData(); + break; + case 4: + FreeAllSpritePalettes(); + break; + case 5: + ResetTasks(); + break; + case 6: + remove_some_task(); + break; + case 7: + sub_80F1A90(); + gMain.state++; + case 8: + if (sub_80F1AC4()) return; + break; + case 9: + sub_80F2688(); + gMain.state++; + + case 10: + if (sub_80F26BC()) return; + break; + case 11: + sub_80F36F0(); + gMain.state++; + case 12: + if (sub_80F3724()) return; + break; + case 13: + sub_80EBC10(); + sub_80EBDBC(&sub_80EBDD8); + break; + case 14: + ewram0_10.var6dab = 1; + PlaySE(SE_PN_ON); + SetMainCallback2(&sub_80EBD90); + SetVBlankCallback(&sub_80EBD18); + sub_80F1A74(); + break; + } + + gMain.state++; +} + +void sub_80EBBE8() { + u8 var1; + if (!ewram0_10.var6dab) { + var1 = ewram0_10.var6dab; + do { + sub_80EBA5C(); + var1 = ewram0_10.var6dab; + } while (!var1); + } +} + +void sub_80EBC10() { + u16 i; + u16 *var1; + + gKeyRepeatStartDelay = 0x14; + ewram0_10.playerPartyCount = CalculatePlayerPartyCount(); + ewram0_10.var6ddc = 0; + ewram0_10.var9344 = 0; + ewram0_10.var8768 = 0; + ewram0_10.varCED0 = 0; + + for (i = 0; i < 5; ++i) { + ewram0_10.var8fff[i] = 0; + var1 = (u16 *)ewram0_10.var0; + var1[i*2 + 0x4820] = 0x9B; + var1[i*2 + 0x4821] = 0x5B; + } + + ewram0_10.var6e95 = 0; + sub_80EBCA8(); +} + +void sub_80EBCA8() { + ewram0_10.var6db2[0] = 1; + ewram0_10.var6db2[1] = 2; + ewram0_10.var6db2[2] = 3; + + if (FlagGet(SYS_RIBBON_GET)) { + ewram0_10.var6db2[3] = 4; + } + else { + ewram0_10.var6db2[3] = 0; + } + + ewram0_10.var6db2[4] = 5; +} + +void sub_80EBD18() { + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + sub_80F1FF0(); +} + +void sub_80EBD30() { + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + UpdateRegionMapVideoRegs(); + sub_80EFE7C(); +} + +void sub_80EBD4C() { + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + sub_80F5BF0(); + sub_8089668(); +} + +void sub_80EBD68() { + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + sub_80F6F64(); +} + +void sub_80EBD80() { + LoadOam(); + ProcessSpriteCopyRequests(); +} + +void sub_80EBD90() { + ewram0_10.var300(); + AnimateSprites(); + BuildOamBuffer(); + RunTasks(); + UpdatePaletteFade(); + sub_80F19FC(); +} + +void sub_80EBDBC(void (*func)(void)) { + ewram0_10.var300 = func; + ewram0_10.var304 = 0; +} + +void sub_80EBDD8() { + switch (ewram0_10.var304) { + case 0: + SetVBlankCallback(NULL); + REG_DISPCNT = 0; + ewram0_10.var6dad = ewram0_10.var6ddc; + ewram0_10.var6dae = 5; + ewram0_10.var304++; + break; + case 1: + sub_80F3FF0(); + ewram0_10.var304++; + case 2: + if (sub_80F4024()) return; + ewram0_10.var304++; + break; + case 3: + sub_80F2598(); + ewram0_10.var304++; + break; + case 4: + sub_80EEE20(); + ewram0_10.var304++; + case 5: + if (sub_80EEE54()) return; + sub_80EEE08(); + ewram0_10.var304++; + return; + case 6: + sub_80EF248(0); + ewram0_10.var304++; + case 7: + if (sub_80EF284(0)) return; + ewram0_10.var304++; + break; + case 8: + sub_80F1B8C(0); + ewram0_10.var304++; + case 9: + if (sub_80F1BC8(0)) return; + ewram0_10.var304++; + break; + case 10: + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 11: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + ewram0_10.var304++; + return; + case 12: + sub_80EED2C(0); + ewram0_10.var304++; + return; + case 13: + if (gPaletteFade.active) return; + ewram0_10.var304++; + return; + case 14: + sub_80F2C80(0); + ewram0_10.var304++; + case 15: + if (sub_80F2CBC(0)) return; + ewram0_10.var304++; + break; + case 16: + sub_80F1DF0(); + ewram0_10.var304++; + return; + case 17: + if (!sub_80F1E50()) { + sub_80EF428(0, 0); + sub_80EBDBC(&sub_80EC268); + } + return; + + } + +} + +void sub_80EC00C() { + switch (ewram0_10.var304) { + case 0: + if (!sub_80EEF78()) { + SetVBlankCallback(&sub_80EBD80); + sub_80EED1C(); + ewram0_10.var6dad = ewram0_10.var6ddc; + ewram0_10.var6dae = 5; + sub_80EEE08(); + ewram0_10.var304++; + } + break; + case 1: + sub_80EF248(0); + ewram0_10.var304++; + case 2: + if (sub_80EF284(0)) return; + ewram0_10.var304++; + break; + case 3: + sub_80F1B8C(0); + ewram0_10.var304++; + case 4: + if (sub_80F1BC8(0)) return; + ewram0_10.var304++; + break; + case 5: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 6: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 7: + sub_80EED2C(0); + ewram0_10.var304++; + break; + case 8: + if (gPaletteFade.active) return; + ewram0_10.var304++; + return; + case 9: + sub_80F2598(); + ewram0_10.var304++; + break; + case 10: + sub_80F2C80(0); + ewram0_10.var304++; + case 11: + if (sub_80F2CBC(0)) return; + ewram0_10.var304++; + return; + case 12: + sub_80F1DF0(); + ewram0_10.var304++; + return; + case 13: + if (sub_80F1E50()) return; + sub_80EF428(0, ewram0_10.var6dad); + sub_80EBDBC(&sub_80EC268); + } +} + +void sub_80EC210() { + switch (ewram0_10.var304) { + case 0: + sub_80F2D04(1); + sub_80EE9C0(0, ewram0_10.var6ddc, 0); + ewram0_10.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80EC268); + } +} + +void sub_80EC268() { + u8 var1; + switch (ewram0_10.var304) { + case 0: + if (sub_80EEC10() != 0) { + PlaySE(0x5); + sub_80EF428(0, ewram0_10.var6dad); + sub_80EED9C(); + break; + } + else { + if (gMain.newKeys & A_BUTTON) { + ewram0_10.var6ddc = ewram0_10.var6dad; + switch (ewram0_10.var6db2[ewram0_10.var6ddc] - 1) { + case 0: + PlaySE(5); + sub_80EBDBC(&sub_80EC4A0); + break; + case 1: + PlaySE(5); + sub_80EBDBC(&sub_80EC81C); + break; + case 4: + ewram0_10.var304 = 1; + break; + case 3: + ewram0_10.var304 = 2; + break; + case 2: + ewram0_10.var304 = 6; + break; + } + } + else if (gMain.newKeys & B_BUTTON) { + ewram0_10.var304 = 1; + } + break; + } + case 1: + sub_80F208C(); + sub_80EBDBC(&sub_80EE96C); + break; + case 2: + sub_80F6208(); + ewram0_10.var304++; + case 3: + if (sub_80F6250()) return; + ewram0_10.var304++; + break; + case 4: + if (sub_8055870()) return; + if (ewram0_10.var8fe8 != 0) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EDB88); + break; + } + else { + PlaySE(0x20); + sub_80EF428(0, 5); + ewram0_10.var304 = 0xFF; + break; + } + case 6: + sub_80F6C20(); + if (ewram0_10.varD158 != 0) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EE3D8); + break; + } + else { + PlaySE(0x20); + sub_80EF428(0, 6); + ewram0_10.var304 = 0xFF; + break; + } + case 0xFF: + if ((var1 = sub_80EEC10()) != 0) { + PlaySE(0x5); + sub_80EF428(0, ewram0_10.var6dad); + ewram0_10.var304 = 0; + sub_80EED9C(); + } + else { + if (!(gMain.newKeys & (A_BUTTON | B_BUTTON))) return; + sub_80EF428(0, ewram0_10.var6dad); + ewram0_10.var304 = var1; + break; + } + } +} + +void sub_80EC4A0() { + u32 var1; + u32 var2; + switch (ewram0_10.var304) { + case 0: + sub_80F1E84(); + sub_80F2D04(0); + ewram0_10.var304++; + break; + case 1: + if (!sub_80F1F10()) { + if (gSaveBlock2.regionMapZoom) { + var1 = 0x7; + } + else var1 = 0x8; + sub_80EEFBC(var1); + ewram0_10.var304++; + } + break; + case 2: + if (!(var2 = sub_80EEF34())) { + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var2); + ewram0_10.var304++; + } + break; + case 3: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + ewram0_10.var304++; + break; + case 4: + sub_80F2620(); + ewram0_10.var304++; + break; + case 5: + sub_80EF814(); + ewram0_10.var304++; + break; + case 6: + sub_80EF840(); + ewram0_10.var304++; + case 7: + if (sub_80EF874()) return; + ewram0_10.var304++; + break; + case 8: + sub_80F2C80(0x4); + ewram0_10.var304++; + case 9: + if (sub_80F2CBC(0x4)) return; + ewram0_10.var304++; + break; + case 0xA: + sub_80F2DD8(); + SetVBlankCallback(&sub_80EBD30); + ewram0_10.var304++; + break; + case 0xB: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 0xC: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + ewram0_10.var304++; + break; + case 0xD: + sub_80EED2C(0x1); + ewram0_10.var304++; + break; + case 0xE: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80EC67C); + } +} + +void sub_80EC67C() { + u32 var1; + u32 var2; + switch (ewram0_10.var304) { + case 0: + switch (sub_80FAB60()) { + case 1: + sub_80EED9C(); + break; + case 3: + sub_80EF9F8(); + break; + case 4: + PlaySE(0x5); + ewram0_10.var304 = 1; + break; + case 5: + PlaySE(0x5); + ewram0_10.var304 = 4; + break; + } + break; + case 1: + if (!ewram0_10.var6e90) { + sub_80FAEC4(); + ewram0_10.var304++; + break; + } + if (sub_80EFBDC(1)) return; + sub_80FAEC4(); + ewram0_10.var304++; + break; + case 2: + if ((var2 = sub_80FAFC0())) return; + if (!ewram0_10.var6e90) { + sub_80EFBB0(); + ewram0_10.var304 = var2; + break; + } + ewram0_10.var304++; + break; + case 3: + if ((var1 = sub_80EFBDC(0))) return; + sub_80EFBB0(); + ewram0_10.var304 = var1; + break; + case 4: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 5: + if (gPaletteFade.active) return; + sub_80F2DF4(); + sub_80F2D04(0x4); + gSaveBlock2.regionMapZoom = (ewram0_10.var6e90 == 1) ? 1 : 0; + sub_80EBDBC(&sub_80EC00C); + } +} + +void sub_80EC81C() { + switch (ewram0_10.var304) { + case 0: + sub_80F2D04(0); + sub_80EE9C0(1, 0, 1); + ewram0_10.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80EC86C); + } +} + +void sub_80EC86C() { + switch (ewram0_10.var304) { + case 0: + if (sub_80EEC90()) { + PlaySE(0x5); + sub_80EF428(1, ewram0_10.var6dad); + sub_80EED9C(); + break; + } + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + ewram0_10.var6df0 = ewram0_10.var6dad; + switch (ewram0_10.var6df0) { + case 0: + sub_80EBDBC(&sub_80ED620); + break; + case 1: + sub_80EBDBC(&sub_80EC960); + break; + case 2: + sub_80EBDBC(&sub_80EC210); + break; + } + break; + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + ewram0_10.var6df0 = 0x2; + ewram0_10.var6dad = 0x2; + ewram0_10.var304++; + break; + } + break; + case 1: + if (sub_80F1E6C()) return; + sub_80EBDBC(&sub_80EC210); + } +} + +void sub_80EC960() { + switch (ewram0_10.var304) { + case 0: + sub_80EE9C0(2, 0, 5); + ewram0_10.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80ECC08); + } +} + +void sub_80EC9A8() { + switch (ewram0_10.var304) { + case 0: + sub_80F2D04(5); + sub_80EE9C0(1, ewram0_10.var6df0, 0xC); + ewram0_10.var304++; + break; + case 1: + if (sub_80EEA0C()) return; + sub_80EBDBC(&sub_80EC86C); + sub_80EF428(1, ewram0_10.var6dad); + } +} + +void sub_80ECA10() { + switch (ewram0_10.var304) { + case 0: + if (sub_80EEF78()) return; + SetVBlankCallback(&sub_80EBD80); + sub_80EED1C(); + ewram0_10.var6dad = ewram0_10.var6df0; + ewram0_10.var6dae = 0x3; + sub_80EEE08(); + ewram0_10.var304++; + break; + case 1: + sub_80EF248(0x1); + ewram0_10.var304++; + case 2: + if (sub_80EF284(0x1)) return; + ewram0_10.var304++; + break; + case 3: + sub_80F1B8C(0x1); + ewram0_10.var304++; + case 4: + if (sub_80F1BC8(0x1)) return; + ewram0_10.var304++; + break; + case 5: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 6: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 7: + sub_80EED2C(0); + ewram0_10.var304++; + break; + case 8: + sub_80F2598(); + ewram0_10.var304++; + break; + case 9: + if (gPaletteFade.active) return; + ewram0_10.var304++; + break; + case 0xA: + sub_80F2C80(0x1); + ewram0_10.var304++; + + case 0xB: + if (sub_80F2CBC(0x1)) return; + ewram0_10.var304++; + break; + case 0xC: + sub_80F1DF0(); + ewram0_10.var304++; + break; + case 0xD: + if (sub_80F1E50()) return; + sub_80EF428(1, ewram0_10.var6dad); + sub_80EBDBC(&sub_80EC86C); + } +} + +void sub_80ECC08() { + switch (ewram0_10.var304) { + case 0: + if (sub_80EEC90()) { + PlaySE(0x5); + sub_80EF428(2, ewram0_10.var6dad); + sub_80EED9C(); + break; + } + + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + switch ((s8)ewram0_10.var6dad) { + case 0: + ewram0_10.var87D8 = 22; + break; + case 1: + ewram0_10.var87D8 = 23; + break; + case 2: + ewram0_10.var87D8 = 24; + break; + case 3: + ewram0_10.var87D8 = 33; + break; + case 4: + ewram0_10.var87D8 = 47; + break; + case 5: + sub_80EBDBC(&sub_80EC9A8); + return; + } + + ewram0_10.var6dfc = ewram0_10.var6dad; + ewram0_10.var76aa = 1; + sub_80EBDBC(&sub_80ED01C); + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + ewram0_10.var6dad = 0x5; + ewram0_10.var304++; + } + break; + case 1: + if (sub_80F1E6C()) return;; + sub_80EBDBC(&sub_80EC9A8); + break; + } +} + +void sub_80ECD80() { + u16 var1; + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + ewram0_10.var304++; + break; + case 2: + if (sub_80EEF78()) return; + SetVBlankCallback(&sub_80EBD80); + ewram0_10.var304++; + break; + case 3: + sub_80EED1C(); + sub_80F3130(); + ewram0_10.var304++; + break; + case 4: + sub_80F2D6C(0x1); + ewram0_10.var304++; + break; + case 5: + sub_80F2D6C(0x5); + ewram0_10.var304++; + break; + case 6: + ewram0_10.var6dad = ewram0_10.var6dfc; + ewram0_10.var6dae = 0x6; + sub_80EEE08(); + ewram0_10.var304++; + break; + case 7: + sub_80EF248(0x2); + ewram0_10.var304++; + case 8: + if (sub_80EF284(0x2)) return; + ewram0_10.var304++; + break; + case 9: + sub_80F1B8C(0x2); + ewram0_10.var304++; + case 10: + if (sub_80F1BC8(0x2)) return; + ewram0_10.var304++; + break; + case 11: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 12: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 13: + sub_80EED2C(0); + ewram0_10.var304++; + break; + case 14: + sub_80F2598(); + ewram0_10.var304++; + break; + case 15: + if (gPaletteFade.active) return; + ewram0_10.var304++; + break; + case 16: + sub_80F2C80(0x1); + ewram0_10.var304++; + case 17: + if ((var1 = sub_80F2CBC(0x1))) return; + ewram0_10.var306 = var1; + ewram0_10.var304++; + break; + case 18: + sub_80F2C80(0x5); + ewram0_10.var304++; + case 19: + if (sub_80F2CBC(0x5)) return; + sub_80F1DF0(); + ewram0_10.var304++; + break; + case 20: + if (sub_80F1E50()) return; + sub_80EF428(2, ewram0_10.var6dad); + sub_80EBDBC(&sub_80ECC08); + } +} + +void sub_80ED01C() { + u16 var1; + u16 var3; + switch (ewram0_10.var304) { + case 0: + sub_80F1E84(); + sub_80F2D04(0x1); + sub_80F2D04(0x5); + ewram0_10.var304++; + break; + case 1: + if (sub_80F1F10()) return; + sub_80EEFBC(0); + ewram0_10.var304++; + break; + case 2: + if ((var1 = sub_80EEF34())) return; + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1); + ewram0_10.var304++; + break; + case 3: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80EF814(); + ewram0_10.var304++; + break; + case 4: + sub_80F2620(); + ewram0_10.var304++; + break; + case 5: + sub_80F4D44(); + ewram0_10.var304++; + case 6: + if (!sub_80F4D88()) { + ewram0_10.var304 += 2; + break; + } + ewram0_10.var304++; + break; + case 7: + if (sub_8055870()) return; + ewram0_10.var304--; + break; + case 8: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 9: + sub_80F0264(0); + ewram0_10.var304++; + case 10: + if (sub_80F02A0()) return; + ewram0_10.var304++; + break; + case 11: + sub_80F3008(0); + ewram0_10.var304++; + break; + case 12: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 13: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 14: + sub_80EED2C(0x4); + ewram0_10.var304++; + break; + case 15: + if (gPaletteFade.active) return; + ewram0_10.var306 = (u8)(gPaletteFade.active << 24); + ewram0_10.var304++; + break; + case 16: + sub_80F2C80(0x1); + ewram0_10.var304++; + case 17: + if ((var3 = sub_80F2CBC(0x1))) return; + ewram0_10.var306 = var3; + ewram0_10.var304++; + break; + case 18: + sub_80F2C80(ewram0_10.var6dfc + 7); + ewram0_10.var304++; + case 19: + if (sub_80F2CBC(ewram0_10.var6dfc + 7)) return; + sub_80EBDBC(&sub_80ED31C); + break; + } +} + +void sub_80ED31C() { + switch (ewram0_10.var304) { + case 0: + switch (sub_80F5DD4()) { + case 1: + PlaySE(0x5); + ShowMapNamePopUpWindow(); + break; + case 2: + PlaySE(0x5); + ewram0_10.var304++; + break; + default: + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80ED4D8); + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80ECD80); + } + break; + } + break; + case 1: + if (sub_80F0718()) return; + ShowMapNamePopUpWindow(); + sub_80F3264(); + ewram0_10.var304++; + break; + case 2: + if (sub_8055870()) return; + ewram0_10.var304 = 0; + break; + } +} + +void sub_80ED3D0() { + switch (ewram0_10.var304) { + case 0: + SetVBlankCallback(NULL); + ewram0_10.var304++; + break; + case 1: + sub_80EED0C(); + sub_80F6134(); + ewram0_10.var304++; + break; + case 2: + sub_80EEFBC(0); + ewram0_10.var304++; + break; + case 3: + sub_80F0264(0); + ewram0_10.var304++; + case 4: + if (sub_80F02A0()) return; + ewram0_10.var304++; + break; + case 5: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 6: + sub_80F3008(0); + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 7: + sub_80EED2C(0x4); + ewram0_10.var304++; + break; + case 8: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80ED31C); + } +} + +void sub_80ED4D8() { + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80F3130(); + ewram0_10.var304++; + break; + case 2: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 3: + sub_80F4CF0(); + ewram0_10.var304++; + break; + case 4: + sub_80EFF34(); + ewram0_10.var304++; + case 5: + if (sub_80EFF68()) return; + ewram0_10.var304++; + break; + case 6: + sub_80F35B4(); + sub_80EEFBC(0x2); + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(sub_80EBD4C); + ewram0_10.var304++; + break; + case 7: + sub_80EED2C(0x2); + ewram0_10.var304++; + break; + case 8: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80ED858); + break; + } +} + +void sub_80ED620() { + u8 var1; + switch (ewram0_10.var304) { + case 0: + sub_80F1E84(); + sub_80F2D04(0x1); + ewram0_10.var304++; + break; + case 1: + if (sub_80F1F10()) return; + sub_80EEFBC(0x1); + ewram0_10.var304++; + break; + case 2: + if (!(var1 = sub_80EEF34())) { + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1); + ewram0_10.var304++; + } + break; + case 3: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80EF814(); + ewram0_10.var76aa = (u8)(gPaletteFade.active << 24); + ewram0_10.var304++; + break; + case 4: + sub_80F2620(); + ewram0_10.var304++; + break; + case 5: + ewram0_10.varD162 = 0x2; + sub_80F4BD0(); + ewram0_10.var304++; + break; + case 6: + sub_80EFF34(); + ewram0_10.var304++; + case 7: + if (sub_80EFF68()) return; + ewram0_10.var304++; + break; + case 8: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 9: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 10: + sub_80F33A8(); + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD4C); + ewram0_10.var304++; + break; + case 11: + sub_80EED2C(0x2); + ewram0_10.var304++; + break; + case 12: + if (gPaletteFade.active) return; + ewram0_10.var304++; + break; + case 13: + sub_80F2C80(0x1); + ewram0_10.var304++; + case 14: + if (sub_80F2CBC(0x1)) return; + ewram0_10.var304++; + break; + case 15: + sub_80F2C80(0x6); + ewram0_10.var304++; + case 16: + if (sub_80F2CBC(0x6)) return; + sub_80EBDBC(&sub_80ED858); + break; + } +} + +#if 0 +void sub_80F4F78(); +void sub_80F0174(u32); +bool8 sub_80F4FB4(); +void sub_80F3668(); +bool8 sub_80F7500(); +void sub_80F3698(); +bool8 sub_80F5038(); +void sub_80F2F48(); +void sub_80F3CE8(); +void sub_80F3614(); +void sub_80F357C(); +void sub_80F4FDC(); + +void sub_80ED858() { + u8 var1; + switch (ewram0_10.var304) { + case 0: + sub_80F4F78(); + sub_80F5B38(); + ewram0_10.var304 = 0x1; + break; + case 1: + if (sub_80F5B50()) return; + ewram0_10.var304 = 0x2; + break; + case 2: + sub_80F0174(0x1); + ewram0_10.var304 = 0x3; + break; + case 3: + if (sub_80F4FB4()) return; + sub_80F3C94(); + sub_80F3D00(); + ewram0_10.var304 = 0x4; + break; + case 4: + if ( (gMain.heldKeys & 0x40) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var87DC)) ) { + PlaySE(0x5); + sub_80F5060(0x1); + move_anim_execute(); + ewram0_10.var304 = 0x5; + } + else if ( (gMain.heldKeys & 0x80) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var76aa >= ewram0_10.var87DC)) ) { + PlaySE(0x5); + sub_80F5060(0); + move_anim_execute(); + ewram0_10.var304 = 0x5; + } + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F4FDC(); + move_anim_execute(); + ewram0_10.var304 = 0x9; + } + else if (gMain.newKeys & A_BUTTON) { + if (ewram0_10.var76aa) { + if (ewram0_10.var6dac) { + PlaySE(0x5); + ewram0_10.var304 = 0x7; + } + } + else if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) { + PlaySE(0x5); + ewram0_10.var304 = 0x9; + } + } + +/* + if (gMain.heldKeys & 0x40) { + if (ewram0_10.var87CB) { + if (ewram0_10.var76aa) { + if (!ewram0_10.var87DC) goto label1; + } + PlaySE(0x5); + sub_80F5060(0x1); + move_anim_execute(); + ewram0_10.var304 = 0x5; + + } + else goto label1; + } + else goto label1; + break; +label1: + if (gMain.heldKeys & 0x80) { + if (ewram0_10.var87CB) { + if (ewram0_10.var76aa) { + if (!(ewram0_10.var76aa < ewram0_10.var87DC)) goto label2; + } + PlaySE(0x5); + sub_80F5060(0x1); + move_anim_execute(); + ewram0_10.var304 = 0x5; + } + else goto label2; + } + else goto label2; + break; +label2: + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F4FDC(); + move_anim_execute(); + ewram0_10.var304 = 0x9; + } + else if (gMain.newKeys & A_BUTTON) { + if (!ewram0_10.var76aa) { + if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) { + PlaySE(0x5); + ewram0_10.var304 = 0x9; + } + } + else { + PlaySE(0x5); + ewram0_10.var304 = 0x9; + } + } +*/ + break; + + case 5: + if (gpu_sync_bg_show()) return; + sub_80F3D00(); + ewram0_10.var304 = 0x6; + break; + case 6: + if (sub_8055870()) return; + ewram0_10.var304 = 0x4; + break; + case 7: + sub_80EEFBC(0x3); + sub_80F3668(); + ewram0_10.var304 = 0x8; + break; + case 8: + if (sub_80F7500()) return; + sub_80EEFBC(0x2); + sub_80F3698(); + ewram0_10.var304 = 0x4; + break; + case 9: + if (!(var1 = sub_80F5038())) { + sub_80F0174(0); + sub_80F2F48(); + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1); + ewram0_10.var304 = 0xB; + } + break; + case 0xA: + if (gPaletteFade.active) return; + sub_80F3CE8(); + sub_80F5BDC(); + if (!ewram0_10.var76aa) { + sub_80F357C(); + sub_80F2D6C(0x1); + sub_80F2D6C(0x6); + sub_80EBDBC(&sub_80ECA10); + } + else { + sub_80F3614(); + sub_80EBDBC(&sub_80ED3D0); + } + break; + } + +} +#else +__attribute__((naked)) +void sub_80ED858() { + asm_unified("push {r4,r5,lr}\n\ + sub sp, 0x4\n\ + ldr r1, _080ED878 @ =gSharedMem\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + ldrh r0, [r0]\n\ + adds r5, r1, 0\n\ + cmp r0, 0xB\n\ + bls _080ED86E\n\ + b _080EDB7A\n\ +_080ED86E:\n\ + lsls r0, 2\n\ + ldr r1, _080ED87C @ =_080ED880\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080ED878: .4byte gSharedMem\n\ +_080ED87C: .4byte _080ED880\n\ + .align 2, 0\n\ +_080ED880:\n\ + .4byte _080ED8B0\n\ + .4byte _080ED8CC\n\ + .4byte _080ED8EC\n\ + .4byte _080ED904\n\ + .4byte _080ED91A\n\ + .4byte _080EDA68\n\ + .4byte _080EDA8C\n\ + .4byte _080EDAA4\n\ + .4byte _080EDAC0\n\ + .4byte _080EDAE8\n\ + .4byte _080EDB7A\n\ + .4byte _080EDB28\n\ +_080ED8B0:\n\ + bl sub_80F4F78\n\ + bl sub_80F5B38\n\ + ldr r0, _080ED8C8 @ =gSharedMem\n\ + movs r4, 0xC1\n\ + lsls r4, 2\n\ + adds r0, r4\n\ + movs r1, 0x1\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080ED8C8: .4byte gSharedMem\n\ +_080ED8CC:\n\ + bl sub_80F5B50\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080ED8D8\n\ + b _080EDB7A\n\ +_080ED8D8:\n\ + ldr r0, _080ED8E8 @ =gSharedMem\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + movs r1, 0x2\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080ED8E8: .4byte gSharedMem\n\ +_080ED8EC:\n\ + movs r0, 0x1\n\ + bl sub_80F0174\n\ + ldr r0, _080ED900 @ =gSharedMem\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r0, r2\n\ + movs r1, 0x3\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080ED900: .4byte gSharedMem\n\ +_080ED904:\n\ + bl sub_80F4FB4\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080ED910\n\ + b _080EDB7A\n\ +_080ED910:\n\ + bl sub_80F3C94\n\ + bl sub_80F3D00\n\ + b _080EDAD4\n\ +_080ED91A:\n\ + ldr r2, _080ED960 @ =gMain\n\ + ldrh r1, [r2, 0x2C]\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + adds r3, r2, 0\n\ + cmp r0, 0\n\ + beq _080ED970\n\ + ldr r1, _080ED964 @ =0x000087cb\n\ + adds r0, r5, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080ED970\n\ + ldr r2, _080ED968 @ =0x000076aa\n\ + adds r0, r5, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080ED948\n\ + ldr r4, _080ED96C @ =0x000087dc\n\ + adds r0, r5, r4\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + cmp r0, 0\n\ + beq _080ED970\n\ +_080ED948:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x1\n\ + bl sub_80F5060\n\ + bl move_anim_execute\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r1, r5, r2\n\ + b _080ED9B8\n\ + .align 2, 0\n\ +_080ED960: .4byte gMain\n\ +_080ED964: .4byte 0x000087cb\n\ +_080ED968: .4byte 0x000076aa\n\ +_080ED96C: .4byte 0x000087dc\n\ +_080ED970:\n\ + ldrh r1, [r3, 0x2C]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080ED9CC\n\ + ldr r4, _080ED9C0 @ =0x000087cb\n\ + adds r0, r5, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080ED9CC\n\ + ldr r1, _080ED9C4 @ =0x000076aa\n\ + adds r0, r5, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080ED9A2\n\ + ldr r2, _080ED9C8 @ =0x000087dc\n\ + adds r0, r5, r2\n\ + subs r4, 0x57\n\ + adds r1, r5, r4\n\ + movs r4, 0\n\ + ldrsh r2, [r0, r4]\n\ + movs r4, 0\n\ + ldrsh r0, [r1, r4]\n\ + cmp r2, r0\n\ + bge _080ED9CC\n\ +_080ED9A2:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0\n\ + bl sub_80F5060\n\ + bl move_anim_execute\n\ + movs r0, 0xC1\n\ + lsls r0, 2\n\ + adds r1, r5, r0\n\ +_080ED9B8:\n\ + movs r0, 0x5\n\ + strh r0, [r1]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080ED9C0: .4byte 0x000087cb\n\ +_080ED9C4: .4byte 0x000076aa\n\ +_080ED9C8: .4byte 0x000087dc\n\ +_080ED9CC:\n\ + ldrh r2, [r3, 0x2E]\n\ + movs r0, 0x2\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _080ED9F8\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + bl sub_80F4FDC\n\ + bl move_anim_execute\n\ + ldr r0, _080ED9F4 @ =gSharedMem\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + movs r1, 0x9\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080ED9F4: .4byte gSharedMem\n\ +_080ED9F8:\n\ + movs r0, 0x1\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _080EDA02\n\ + b _080EDB7A\n\ +_080EDA02:\n\ + adds r4, r5, 0\n\ + ldr r2, _080EDA38 @ =0x000076aa\n\ + adds r0, r4, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080EDA44\n\ + ldr r1, _080EDA3C @ =0x000087dc\n\ + adds r0, r4, r1\n\ + movs r2, 0\n\ + ldrsh r1, [r0, r2]\n\ + ldr r2, _080EDA40 @ =0x000087da\n\ + adds r0, r4, r2\n\ + movs r2, 0\n\ + ldrsh r0, [r0, r2]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _080EDA26\n\ + b _080EDB7A\n\ +_080EDA26:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0xC1\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + movs r0, 0x9\n\ + strh r0, [r1]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDA38: .4byte 0x000076aa\n\ +_080EDA3C: .4byte 0x000087dc\n\ +_080EDA40: .4byte 0x000087da\n\ +_080EDA44:\n\ + ldr r1, _080EDA64 @ =0x00006dac\n\ + adds r0, r5, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080EDA50\n\ + b _080EDB7A\n\ +_080EDA50:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r1, r5, r2\n\ + movs r0, 0x7\n\ + strh r0, [r1]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDA64: .4byte 0x00006dac\n\ +_080EDA68:\n\ + bl gpu_sync_bg_show\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EDA74\n\ + b _080EDB7A\n\ +_080EDA74:\n\ + bl sub_80F3D00\n\ + ldr r0, _080EDA88 @ =gSharedMem\n\ + movs r4, 0xC1\n\ + lsls r4, 2\n\ + adds r0, r4\n\ + movs r1, 0x6\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDA88: .4byte gSharedMem\n\ +_080EDA8C:\n\ + bl sub_8055870\n\ + cmp r0, 0\n\ + bne _080EDB7A\n\ + ldr r0, _080EDAA0 @ =gSharedMem\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + b _080EDADC\n\ + .align 2, 0\n\ +_080EDAA0: .4byte gSharedMem\n\ +_080EDAA4:\n\ + movs r0, 0x3\n\ + bl sub_80EEFBC\n\ + bl sub_80F3668\n\ + ldr r0, _080EDABC @ =gSharedMem\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r0, r2\n\ + movs r1, 0x8\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDABC: .4byte gSharedMem\n\ +_080EDAC0:\n\ + bl sub_80F7500\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080EDB7A\n\ + movs r0, 0x2\n\ + bl sub_80EEFBC\n\ + bl sub_80F3698\n\ +_080EDAD4:\n\ + ldr r0, _080EDAE4 @ =gSharedMem\n\ + movs r4, 0xC1\n\ + lsls r4, 2\n\ + adds r0, r4\n\ +_080EDADC:\n\ + movs r1, 0x4\n\ + strh r1, [r0]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDAE4: .4byte gSharedMem\n\ +_080EDAE8:\n\ + bl sub_80F5038\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + bne _080EDB7A\n\ + movs r0, 0\n\ + bl sub_80F0174\n\ + bl sub_80F2F48\n\ + ldr r5, _080EDB24 @ =gSharedMem\n\ + movs r1, 0xC2\n\ + lsls r1, 2\n\ + adds r0, r5, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + str r4, [sp]\n\ + movs r2, 0\n\ + movs r3, 0x10\n\ + bl BeginNormalPaletteFade\n\ + movs r2, 0xC1\n\ + lsls r2, 2\n\ + adds r1, r5, r2\n\ + movs r0, 0xB\n\ + strh r0, [r1]\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDB24: .4byte gSharedMem\n\ +_080EDB28:\n\ + ldr r0, _080EDB60 @ =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080EDB7A\n\ + bl sub_80F3CE8\n\ + bl sub_80F5BDC\n\ + ldr r0, _080EDB64 @ =gSharedMem\n\ + ldr r4, _080EDB68 @ =0x000076aa\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080EDB70\n\ + bl sub_80F357C\n\ + movs r0, 0x1\n\ + bl sub_80F2D6C\n\ + movs r0, 0x6\n\ + bl sub_80F2D6C\n\ + ldr r0, _080EDB6C @ =sub_80ECA10\n\ + bl sub_80EBDBC\n\ + b _080EDB7A\n\ + .align 2, 0\n\ +_080EDB60: .4byte gPaletteFade\n\ +_080EDB64: .4byte gSharedMem\n\ +_080EDB68: .4byte 0x000076aa\n\ +_080EDB6C: .4byte sub_80ECA10\n\ +_080EDB70:\n\ + bl sub_80F3614\n\ + ldr r0, _080EDB84 @ =sub_80ED3D0\n\ + bl sub_80EBDBC\n\ +_080EDB7A:\n\ + add sp, 0x4\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080EDB84: .4byte sub_80ED3D0\n"); +} +#endif + +void sub_80EDB88() { + u8 var1; + switch (ewram0_10.var304) { + case 0: + sub_80F1E84(); + sub_80F2D04(0); + ewram0_10.var304++; + break; + case 1: + if (sub_80F1F10()) return; + sub_80EEFBC(0x4); + ewram0_10.var304++; + break; + case 2: + if (!(var1 = sub_80EEF34())) { + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1); + ewram0_10.var304++; + } + break; + case 3: + if (gPaletteFade.active) return; + SetVBlankCallback(0); + sub_80EED0C(); + sub_80EF814(); + ewram0_10.var304++; + break; + case 4: + sub_80F2620(); + ewram0_10.var304++; + break; + case 5: + sub_80F638C(); + ewram0_10.var304++; + case 6: + if (!sub_80F63D0()) { + ewram0_10.var304 += 0x2; + break; + } + ewram0_10.var304++; + break; + case 7: + if (sub_8055870()) return; + ewram0_10.var304--; + break; + case 8: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 9: + sub_80F0264(0x1); + ewram0_10.var304++; + case 10: + if (sub_80F02A0()) return; + ewram0_10.var304++; + break; + case 11: + sub_80F2C80(0x2); + ewram0_10.var304++; + case 12: + if (sub_80F2CBC(0x2)) return; + ewram0_10.var304++; + break; + case 13: + sub_80F3008(0x1); + ewram0_10.var304++; + break; + case 14: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 15: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 16: + sub_80EED2C(0x4); + ewram0_10.var304++; + break; + case 17: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80EDDBC); + break; + } +} + +void sub_80EDDBC() { + switch (ewram0_10.var304) { + case 0: + switch (sub_80F5DD4()) { + case 1: + PlaySE(0x5); + ShowMapNamePopUpWindow(); + break; + case 2: + PlaySE(0x5); + ewram0_10.var304++; + break; + default: + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EDEE4); + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EDE70); + } + break; + } + break; + case 1: + if (sub_80F0718()) return; + ShowMapNamePopUpWindow(); + sub_80F3264(); + ewram0_10.var304++; + break; + case 2: + if (sub_8055870()) return; + ewram0_10.var304 = 0; + break; + + } +} + +void sub_80EDE70() { + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + sub_80F3130(); + sub_80F2D6C(0x2); + ewram0_10.var304++; + break; + case 2: + sub_80EBDBC(&sub_80EC00C); + break; + } + +} + +void sub_80EDEE4() { + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80F3130(); + ewram0_10.var304++; + break; + case 2: + sub_80F66E0(); + sub_80EEE08(); + ewram0_10.var304++; + break; + case 3: + if (sub_80F1080()) return; + ewram0_10.var304++; + break; + case 4: + sub_80EEFBC(0x5); + sub_80F38B8(); + ewram0_10.var304++; + case 5: + if (sub_80F38EC()) return; + ewram0_10.var304++; + break; + case 6: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 7: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 8: + sub_80EED2C(0x3); + ewram0_10.var304++; + break; + case 9: + if (gPaletteFade.active) return; + ewram0_10.var304++; + break; + case 10: + if (sub_80F170C()) return; + sub_80EBDBC(&sub_80EE06C); + break; + } +} + +void sub_80EE06C() { + u32 var1; + u16 var2; + switch (ewram0_10.var304) { + case 0: + sub_80F15A8(); + ewram0_10.var304++; + break; + case 1: + if (gMain.newAndRepeatedKeys & 0x40) { + if (ewram0_10.var87DC) { + PlaySE(0x5); + sub_80F6A4C(-1); + ewram0_10.var304++; + } + else goto label1; + } + else goto label1; + break; +label1: + if (gMain.newAndRepeatedKeys & 0x80) { + if (ewram0_10.var87DC < ewram0_10.var8774) { + PlaySE(0x5); + sub_80F6A4C(1); + ewram0_10.var304++; + } + else goto label2; + } + else goto label2; + break; +label2: + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + sub_80EEFBC(0xB); + ewram0_10.var304 = 0x4; + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EE294); + } + break; + case 2: + if (sub_80F6AF0()) return; + ewram0_10.var304++; + break; + case 3: + var1 = sub_8055870(); + if (var1) return; + ewram0_10.var304 = var1; + break; + case 4: + sub_80F3B00(); + ewram0_10.var304++; + break; + case 5: + if (sub_80F3B58()) return; + sub_80F1494(); + ewram0_10.var304++; + sub_80EED9C(); + break; + case 6: + switch (sub_80F68E8()) { + case 1: + PlaySE(0x5); + sub_80F3B94(); + ewram0_10.var304 = 0x7; + break; + default: + case 0: + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F3B94(); + ewram0_10.var304 = 0x8; + } + break; + } + break; + case 7: + if (sub_80F3BD4()) return; + ewram0_10.var304 = 0x4; + break; + case 8: + var2 = sub_80F3BD4(); + if (var2) return; + sub_80EEFBC(0x5); + ewram0_10.var304 = var2; + break; + } +} + +void sub_80EE294() { + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80F3C2C(); + sub_80EEE08(); + ewram0_10.var304++; + break; + case 2: + sub_80F6134(); + sub_80F0264(0x1); + ewram0_10.var304++; + case 3: + if (sub_80F02A0()) return; + ewram0_10.var304++; + break; + case 4: + sub_80EEFBC(0x4); + sub_80F3008(0x1); + SetVBlankCallback(&sub_80EBD18); + ewram0_10.var304++; + break; + case 5: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 6: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + ewram0_10.var304++; + break; + case 7: + sub_80EED2C(0x4); + ewram0_10.var304++; + break; + case 8: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80EDDBC); + break; + } +} + +void sub_80EE3D8() { + u8 var1; + switch (ewram0_10.var304) { + case 0: + sub_80F1E84(); + sub_80F2D04(0); + ewram0_10.var304++; + break; + case 1: + if (sub_80F1F10()) return; + sub_80EEFBC(0x9); + ewram0_10.var304++; + break; + case 2: + if (!(var1 = sub_80EEF34())) { + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1); + ewram0_10.var304++; + } + break; + case 3: + if (gPaletteFade.active) return; + SetVBlankCallback(NULL); + sub_80EED0C(); + sub_80EF814(); + sub_80EEE08(); + ewram0_10.var304++; + break; + case 4: + sub_80F2620(); + ewram0_10.var304++; + break; + case 5: + sub_80F0264(0x2); + ewram0_10.var304++; + case 6: + if (sub_80F02A0()) return; + ewram0_10.var304++; + break; + case 7: + sub_80F2C80(0x3); + ewram0_10.var304++; + case 8: + if (sub_80F2CBC(0x3)) return; + ewram0_10.var304++; + break; + case 9: + sub_80F3008(0x2); + ewram0_10.var304++; + break; + case 10: + if (sub_8055870()) return; + ewram0_10.var304++; + break; + case 11: + sub_80F6F10(); + BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0); + SetVBlankCallback(&sub_80EBD68); + ewram0_10.var304++; + break; + case 12: + sub_80EED2C(0x5); + ewram0_10.var304++; + break; + case 13: + if (gPaletteFade.active) return; + sub_80EBDBC(&sub_80EE58C); + break; + } +} + +void sub_80EE58C() { + switch (ewram0_10.var304) { + case 0: + switch (sub_80F5DD4()) { + case 1: + PlaySE(0x5); + sub_80F0FFC(ewram0_10.var876E); + break; + case 2: + PlaySE(0x5); + ewram0_10.var304++; + break; + default: + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EE658); + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EE8F4); + } + break; + } + break; + case 1: + if (sub_80F0718()) return; + sub_80F0FFC(ewram0_10.var876E); + sub_80F3264(); + ewram0_10.var304++; + break; + case 2: + if (sub_8055870()) return; + ewram0_10.var304 = 0; + break; + } +} + +void sub_80EE658() { + switch (ewram0_10.var304) { + case 0: + sub_80F3294(0x1); + sub_80EEFBC(0xA); + sub_80F0B24(); + ewram0_10.var304++; + break; + case 1: + if (sub_80F0B44()) return; + ewram0_10.var304++; + break; + case 2: + sub_80F0F64(); + ewram0_10.var304++; + break; + case 3: + if (sub_80F0FEC()) return; + sub_80F6FB8(0x1); + ewram0_10.var304++; + break; + case 4: + sub_80F6DB8(); + ewram0_10.var304++; + break; + case 5: + sub_80F700C((u8 *)(gSharedMem + 0x8788), *(u16 *)(gSharedMem + 0x8788 - 0x1A)); + sub_80F42C4((u8 *)(gSharedMem + 0x8788)); + ewram0_10.var304++; + break; + case 6: + sub_80F0CD8(); + ewram0_10.var304++; + case 7: + if (sub_80F6E9C()) return; + if (sub_80F0D5C()) return; + ewram0_10.var304++; + break; + case 8: + if (gMain.heldKeys & 0x40) { + if (ewram0_10.var87DC) { + PlaySE(0x5); + sub_80F708C(-1); + ewram0_10.var304 = 0x10; + } + else goto label1; + } + else goto label1; + break; +label1: + if (gMain.heldKeys & 0x80) { + if (ewram0_10.var87DC < ewram0_10.var8774) { + PlaySE(0x5); + sub_80F708C(1); + ewram0_10.var304 = 0x10; + } + else goto label2; + } + else goto label2; + break; +label2: + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F4394(); + sub_80F0EC0(); + ewram0_10.var304++; + } + break; + case 9: + if (sub_80F6ED4()) return; + if (sub_80F0EF4()) return; + sub_80F6FB8(0); + sub_80F2FB0(); + ewram0_10.var304++; + break; + case 10: + sub_80F6134(); + ewram0_10.var304++; + break; + case 11: + sub_80F0FA0(); + ewram0_10.var304++; + break; + case 12: + if (sub_80F0FEC()) return; + ewram0_10.var304++; + break; + case 13: + sub_80F0C28(); + ewram0_10.var304++; + break; + case 14: + if (sub_80F0C48()) return; + ewram0_10.var304++; + break; + case 15: + sub_80EEFBC(0x9); + sub_80F3294(0); + sub_80EBDBC(&sub_80EE58C); + sub_80EED9C(); + break; + case 16: + if (sub_80F70FC()) return; + ewram0_10.var304++; + break; + case 17: + if (sub_8055870()) return; + ewram0_10.var304 = 0x8; + break; + } +} + +void sub_80EE8F4() { + switch (ewram0_10.var304) { + case 0: + BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0); + ewram0_10.var304++; + break; + case 1: + if (gPaletteFade.active) return; + sub_80F3130(); + sub_80F2D6C(0x2); + sub_80F6FFC(); + ewram0_10.var304++; + break; + case 2: + sub_80EBDBC(&sub_80EC00C); + break; + } +} + +void sub_80EE96C() { + u16 var1 = ewram0_10.var304; + if (!var1) { + PlaySE(0x6F); + BeginNormalPaletteFade(-1, 0, 0, 0x10, var1); + ewram0_10.var304++; + } + else { + if (gPaletteFade.active) return; + sub_80F5BDC(); + sub_805469C(); + } +} + +void sub_80EE9C0(u8 param1, u8 param2, u8 param3) { + sub_80F1E84(); + ewram0_10.var6e14 = param1; + ewram0_10.var6e15 = param2; + ewram0_10.var6e16 = 0; + ewram0_10.var6e17 = param3; +} + +#if 0 +bool8 sub_80EEA0C() { + switch (ewram0_10.var6e16) { + case 0: + if (sub_80F1F10()) return 1; + if (ewram0_10.var6e17 != 0xC) { + ewram0_10.var6e16 = 0x1; + return 1; + } + else { + ewram0_10.var6e16 = 0x3; + return 1; + } + case 1: + sub_80F2C80(ewram0_10.var6e17); + ewram0_10.var6e16++; + case 2: + if (sub_80F2CBC(ewram0_10.var6e17)) return 1; + ewram0_10.var6e16++; + case 3: + + } +} +#else +__attribute__((naked)) +bool8 sub_80EEA0C() { + asm_unified( + "push {r4,lr}\n\ + ldr r1, _080EEA28 @ =gSharedMem\n\ + ldr r2, _080EEA2C @ =0x00006e16\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r3, r1, 0\n\ + cmp r0, 0x8\n\ + bls _080EEA1E\n\ + b _080EEBFA\n\ +_080EEA1E:\n\ + lsls r0, 2\n\ + ldr r1, _080EEA30 @ =_080EEA34\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080EEA28: .4byte gSharedMem\n\ +_080EEA2C: .4byte 0x00006e16\n\ +_080EEA30: .4byte _080EEA34\n\ + .align 2, 0\n\ +_080EEA34:\n\ + .4byte _080EEA58\n\ + .4byte _080EEA98\n\ + .4byte _080EEAAE\n\ + .4byte _080EEAD4\n\ + .4byte _080EEB3E\n\ + .4byte _080EEB68\n\ + .4byte _080EEB88\n\ + .4byte _080EEBAC\n\ + .4byte _080EEBE4\n\ +_080EEA58:\n\ + bl sub_80F1F10\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EEA64\n\ + b _080EEC08\n\ +_080EEA64:\n\ + ldr r1, _080EEA7C @ =gSharedMem\n\ + ldr r4, _080EEA80 @ =0x00006e17\n\ + adds r0, r1, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xC\n\ + beq _080EEA88\n\ + ldr r0, _080EEA84 @ =0x00006e16\n\ + adds r1, r0\n\ + movs r0, 0x1\n\ + strb r0, [r1]\n\ + b _080EEC08\n\ + .align 2, 0\n\ +_080EEA7C: .4byte gSharedMem\n\ +_080EEA80: .4byte 0x00006e17\n\ +_080EEA84: .4byte 0x00006e16\n\ +_080EEA88:\n\ + ldr r2, _080EEA94 @ =0x00006e16\n\ + adds r1, r2\n\ + movs r0, 0x3\n\ + strb r0, [r1]\n\ + b _080EEC08\n\ + .align 2, 0\n\ +_080EEA94: .4byte 0x00006e16\n\ +_080EEA98:\n\ + ldr r4, _080EEAC8 @ =gSharedMem\n\ + ldr r1, _080EEACC @ =0x00006e17\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + bl sub_80F2C80\n\ + ldr r2, _080EEAD0 @ =0x00006e16\n\ + adds r4, r2\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ +_080EEAAE:\n\ + ldr r4, _080EEAC8 @ =gSharedMem\n\ + ldr r1, _080EEACC @ =0x00006e17\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + bl sub_80F2CBC\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EEAC2\n\ + b _080EEC08\n\ +_080EEAC2:\n\ + ldr r2, _080EEAD0 @ =0x00006e16\n\ + adds r1, r4, r2\n\ + b _080EEB76\n\ + .align 2, 0\n\ +_080EEAC8: .4byte gSharedMem\n\ +_080EEACC: .4byte 0x00006e17\n\ +_080EEAD0: .4byte 0x00006e16\n\ +_080EEAD4:\n\ + adds r2, r3, 0\n\ + ldr r4, _080EEAF8 @ =0x00006e15\n\ + adds r0, r2, r4\n\ + ldrb r1, [r0]\n\ + subs r4, 0x68\n\ + adds r0, r2, r4\n\ + strb r1, [r0]\n\ + ldr r1, _080EEAFC @ =0x00006e14\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + beq _080EEB14\n\ + cmp r0, 0x1\n\ + bgt _080EEB00\n\ + cmp r0, 0\n\ + beq _080EEB06\n\ + b _080EEB28\n\ + .align 2, 0\n\ +_080EEAF8: .4byte 0x00006e15\n\ +_080EEAFC: .4byte 0x00006e14\n\ +_080EEB00:\n\ + cmp r0, 0x2\n\ + beq _080EEB20\n\ + b _080EEB28\n\ +_080EEB06:\n\ + ldr r4, _080EEB10 @ =0x00006dae\n\ + adds r1, r2, r4\n\ + movs r0, 0x5\n\ + b _080EEB26\n\ + .align 2, 0\n\ +_080EEB10: .4byte 0x00006dae\n\ +_080EEB14:\n\ + ldr r0, _080EEB1C @ =0x00006dae\n\ + adds r1, r2, r0\n\ + movs r0, 0x3\n\ + b _080EEB26\n\ + .align 2, 0\n\ +_080EEB1C: .4byte 0x00006dae\n\ +_080EEB20:\n\ + ldr r2, _080EEB58 @ =0x00006dae\n\ + adds r1, r3, r2\n\ + movs r0, 0x6\n\ +_080EEB26:\n\ + strb r0, [r1]\n\ +_080EEB28:\n\ + ldr r4, _080EEB5C @ =gSharedMem\n\ + ldr r1, _080EEB60 @ =0x00006e14\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + bl sub_80F1B8C\n\ + ldr r2, _080EEB64 @ =0x00006e16\n\ + adds r4, r2\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ +_080EEB3E:\n\ + ldr r4, _080EEB5C @ =gSharedMem\n\ + ldr r1, _080EEB60 @ =0x00006e14\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + bl sub_80F1BC8\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080EEC08\n\ + ldr r2, _080EEB64 @ =0x00006e16\n\ + adds r1, r4, r2\n\ + b _080EEB76\n\ + .align 2, 0\n\ +_080EEB58: .4byte 0x00006dae\n\ +_080EEB5C: .4byte gSharedMem\n\ +_080EEB60: .4byte 0x00006e14\n\ +_080EEB64: .4byte 0x00006e16\n\ +_080EEB68:\n\ + bl sub_8055870\n\ + cmp r0, 0\n\ + bne _080EEC08\n\ + ldr r1, _080EEB80 @ =gSharedMem\n\ + ldr r4, _080EEB84 @ =0x00006e16\n\ + adds r1, r4\n\ +_080EEB76:\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _080EEC08\n\ + .align 2, 0\n\ +_080EEB80: .4byte gSharedMem\n\ +_080EEB84: .4byte 0x00006e16\n\ +_080EEB88:\n\ + bl sub_80F1DF0\n\ + ldr r4, _080EEBA0 @ =gSharedMem\n\ + ldr r1, _080EEBA4 @ =0x00006e14\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + bl sub_80EF490\n\ + ldr r2, _080EEBA8 @ =0x00006e16\n\ + adds r4, r2\n\ + b _080EEBCC\n\ + .align 2, 0\n\ +_080EEBA0: .4byte gSharedMem\n\ +_080EEBA4: .4byte 0x00006e14\n\ +_080EEBA8: .4byte 0x00006e16\n\ +_080EEBAC:\n\ + bl sub_80F1E50\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080EEC08\n\ + ldr r4, _080EEBD4 @ =gSharedMem\n\ + ldr r1, _080EEBD8 @ =0x00006e14\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + ldr r2, _080EEBDC @ =0x00006dad\n\ + adds r1, r4, r2\n\ + ldrb r1, [r1]\n\ + bl sub_80EF428\n\ + ldr r0, _080EEBE0 @ =0x00006e16\n\ + adds r4, r0\n\ +_080EEBCC:\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + b _080EEC08\n\ + .align 2, 0\n\ +_080EEBD4: .4byte gSharedMem\n\ +_080EEBD8: .4byte 0x00006e14\n\ +_080EEBDC: .4byte 0x00006dad\n\ +_080EEBE0: .4byte 0x00006e16\n\ +_080EEBE4:\n\ + bl sub_80EF4F8\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080EEC08\n\ + ldr r1, _080EEC00 @ =gSharedMem\n\ + ldr r2, _080EEC04 @ =0x00006e16\n\ + adds r1, r2\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ +_080EEBFA:\n\ + movs r0, 0\n\ + b _080EEC0A\n\ + .align 2, 0\n\ +_080EEC00: .4byte gSharedMem\n\ +_080EEC04: .4byte 0x00006e16\n\ +_080EEC08:\n\ + movs r0, 0x1\n\ +_080EEC0A:\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n" + + ); +} +#endif + +// var6dad and var6dae must be s8 in this func +bool8 sub_80EEC10() { + if (gMain.newKeys & 0x40) { + do { + if (--ewram0_11.var6dad < 0) { + ewram0_11.var6dad = ewram0_11.var6dae - 1; + } + + } while (!ewram0_10.var6db2[ewram0_11.var6dad]); + return 1; + } + if (gMain.newKeys & 0x80) { + do { + if (++ewram0_11.var6dad >= ewram0_11.var6dae) { + ewram0_11.var6dad = 0; + } + } while (!ewram0_10.var6db2[ewram0_11.var6dad]); + return 1; + } + return 0; +} + +bool8 sub_80EEC90() { + if (gMain.newKeys & 0x40) { + if (--ewram0_11.var6dad < 0) { + ewram0_11.var6dad = ewram0_11.var6dae - 1; + } + return 1; + } + if (gMain.newKeys & 0x80) { + if (++ewram0_11.var6dad >= ewram0_11.var6dae) { + ewram0_11.var6dad = 0; + } + return 1; + } + return 0; +} + +void sub_80EED0C() { + REG_DISPCNT = 512; +} + +void sub_80EED1C() { + REG_DISPCNT = 0x92 << 5; +} + +void sub_80EED2C(u8 param1) { + switch (param1) { + case 0: + REG_DISPCNT = 0xFA << 5; + break; + case 1: + REG_DISPCNT = 0x1741; + break; + case 3: + case 4: + REG_DISPCNT = 0xFA << 5; + break; + case 2: + REG_DISPCNT = 0x7b40; + break; + case 5: + REG_DISPCNT = 0xFD << 6; + break; + } +} + +void sub_80EED9C(void) { + gUnknown_03000744 = ewram0_10.var300; + ewram0_10.var300 = &sub_80EEDC4; + ewram0_10.var300(); +} + +void sub_80EEDC4(void) { + if (sub_8055870() != 0x1) { + ewram0_10.var300 = gUnknown_03000744; + } +} + +void sub_80EEDE8(void) { + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; +} + +void sub_80EEE08(void) { + gUnknown_083DFEC4->unkD160 = 0; +} + +void sub_80EEE20(void) { + gUnknown_083DFEC4->unkD160 = 0; + if (!gUnknown_083DFEC4->unk6DAC) { + while (sub_80EEE54()); + } +} + +bool8 sub_80EEE54(void) { + switch (gUnknown_083DFEC4->unkD160) { + case 0: + LZ77UnCompVram(gPokenavHoennMapMisc_Gfx, (void *)VRAM + 0xC000); + break; + case 1: + LZ77UnCompVram(gUnknown_08E99FB0, (void *)VRAM + 0xD800); + break; + case 2: + LoadPalette(gPokenavHoennMap1_Pal, 0x10, 0x20); + break; + case 3: + sub_80EF58C(0); + sub_80EF58C(1); + sub_80EF58C(2); + break; + case 4: + gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG1CNT = 0x1B0C; + gUnknown_083DFEC4->unkD160++; + default: + return 0; + } + gUnknown_083DFEC4->unkD160++; + return 1; +} + +bool8 sub_80EEF34(void) { + bool8 retVal = TRUE; + + if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32) + { + return FALSE; + } + + gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2; + if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31) + { + gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32; + retVal = FALSE; + } + + REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0; + return retVal; +} + +bool8 sub_80EEF78(void) +{ + bool8 retVal = TRUE; + + if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0) + { + return FALSE; + } + + gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2; + if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0) + { + gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0; + retVal = FALSE; + } + + REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0; + return retVal; +} + +void sub_80EEFBC(u8 a) +{ + u8 var1; + + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 0, 17, 2); + + switch (a) + { + case 0: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 17, 0, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 11: + sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 2: + var1 = gUnknown_083DFEC4->unk6DAC; + if (!var1) + { + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 2, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, var1, 6, 7, 2); + } + else + { + sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2); + } + break; + case 3: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 4, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 4: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 2, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 7: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 4, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 8: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 4, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 5: + case 9: + sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 2, 10, 2); + sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + case 10: + sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2); + break; + } +} + +void sub_80EF248(u8 a) +{ + gUnknown_083DFEC4->unkD160 = 0; + + if (!gUnknown_083DFEC4->unk6DAC) + { + while (sub_80EF284(a)); + } +} + +bool8 sub_80EF284(u8 a) +{ + switch (gUnknown_083DFEC4->unkD160) + { + case 0: + sub_80EEDE8(); + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7224); + break; + case 2: + MultistepInitMenuWindowBegin(&gWindowConfig_81E7224); + break; + case 3: + if (!MultistepInitMenuWindowContinue()) + { + return TRUE; + } + break; + case 4: + DmaCopy16Defvars(3, gUnknown_083DFEEC, (void *)VRAM + 0x5000, 0xA0); + break; + case 5: + LZ77UnCompVram(gUnknown_083DFF8C, (void *)VRAM + 0xF800); + break; + case 6: + DmaCopy16Defvars(3, gUnknown_083E005C, (void *)VRAM + 0x8000, 0x20); + break; + case 7: + LZ77UnCompVram(gUnknown_083E007C, (void *)VRAM + 0xE000); + break; + case 8: + LZ77UnCompVram(gPokenavOutlineTilemap, (void *)VRAM + 0xE800); + break; + case 9: + LZ77UnCompVram(gPokenavOutlineTiles, (void *)VRAM + 0x8020); + break; + case 10: + sub_80EF54C(a); + LoadPalette(gUnknown_083DFECC, 0xF0, 0x20); + LoadPalette(gPokenavOutlinePalette, 0x40, 0x20); + sub_80EF7D4(); + break; + case 11: + REG_BG0CNT = 0x1F01; + REG_BG2CNT = 0x1D0A; + REG_BG3CNT = 0x1C0B; + REG_BLDCNT = 0; + + gUnknown_083DFEC4->unkD160++; + return FALSE; + default: + return FALSE; + } + + gUnknown_083DFEC4->unkD160++; + return TRUE; +} + +void sub_80EF428(u8 a, u8 b) +{ + u8 *tileBuffer; + const u8 *pcText = 0; + + switch (a) + { + case 0: + pcText = gUnknown_083E31B0[b]; + break; + case 1: + pcText = gUnknown_083E31CC[b]; + break; + case 2: + pcText = gUnknown_083E31D8[b]; + break; + } + + tileBuffer = gUnknown_083DFEC8; + sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2); + MenuPrint(&tileBuffer[0x800], 3, 17); +} + +void sub_80EF490(u8 a) +{ + u16 var1, var2; + + if (a == 2) + { + a = 1; + } + + gUnknown_083DFEC4->unkCE4E = a * 30; + var1 = gUnknown_083DFEC4->unkCE4C; + var2 = a * 30; + if (var1 < var2) + { + gUnknown_083DFEC4->unkCE50 = 2; + } + else if (var1 > var2) + { + gUnknown_083DFEC4->unkCE50 = -2; + } + else + { + gUnknown_083DFEC4->unkCE50 = 0; + } +} + +bool8 sub_80EF4F8(void) +{ + u16 *palettes; + + if (gUnknown_083DFEC4->unkCE4C == gUnknown_083DFEC4->unkCE4E) + { + return FALSE; + } + else + { + gUnknown_083DFEC4->unkCE4C = gUnknown_083DFEC4->unkCE50 + gUnknown_083DFEC4->unkCE4C; + + palettes = gUnknown_083DFEC4->palettesCE52; + LoadPalette(&palettes[gUnknown_083DFEC4->unkCE4C], 0x31, 4); + return TRUE; + } + +} + +void sub_80EF54C(u8 a) +{ + if (a == 2) + { + a = 1; + } + + gUnknown_083DFEC4->unkCE4C = a * 30; + LoadPalette(&gUnknown_083DFEC4->palettesCE52[gUnknown_083DFEC4->unkCE4C], 0x31, 4); +} + +void sub_80EF58C(u8 a) +{ + u16 i; + u16 * palettes; + const u16 *var1; + + switch (a) + { + case 0: + for (i = 0; i < 62; i++) + { + gUnknown_083DFEC4->palettesCE52[i] = 0; + } + break; + case 1: + palettes = gUnknown_083DFEC4->palettesCE52; + var1 = gUnknown_083E003C; + sub_80EF624(&var1[1], &var1[3], 16, 2, palettes); + break; + case 2: + palettes = gUnknown_083DFEC4->palettesCE8E; + var1 = gUnknown_083E003C; + sub_80EF624(&var1[3], &var1[7], 16, 2, palettes); + break; + } +} + +#ifdef NONMATCHING +void sub_80EF624(const u16 *a, const u16 *b, u8 c, u8 d, u16 *palettes) +{ + u16 red1, green1, blue1; + u16 red2, green2, blue2; + s32 redDiv, greenDiv, blueDiv; + u16 *palettes2; + u16 i, j; + + i = 0; + while (i < d) + { + red1 = (*a & 0x1F) << 8; + green1 = ((*a >> 5) & 0x1F) << 8; + blue1 = ((*a >> 10) & 0x1F) << 8; + + red2 = (*b & 0x1F) << 8; + green2 = ((*b >> 5) & 0x1F) << 8; + blue2 = ((*b >> 10) & 0x1F) << 8; + + redDiv = (red2 - red1) / c; + greenDiv = (green2 - green1) / c; + blueDiv = (blue2 - blue1) / c; + + palettes2 = palettes; + for (j = 0; j < c - 1; j++) + { + *palettes2 = (((blue1 << 8) >> 16) << 10) | (((green1 << 8) >> 16) << 5) | ((red1 << 8) >> 16); + palettes2 += d; + red1 += redDiv; + green1 += greenDiv; + blue1 += blueDiv; + } + + *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3); + palettes++; + + a++; + b++; + i++; + } +} +#else +__attribute__((naked)) +void sub_80EF624(const u16 *a, const u16 *b, u8 c, u8 d, u16 *palettes) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x38\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + ldr r4, [sp, 0x58]\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x8]\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + str r3, [sp, 0xC]\n\ + movs r0, 0\n\ + str r0, [sp, 0x10]\n\ + lsls r0, r3, 16\n\ + ldr r1, [sp, 0x10]\n\ + cmp r1, r3\n\ + bcs _080EF72E\n\ + subs r2, 0x1\n\ + str r2, [sp, 0x20]\n\ + str r0, [sp, 0x2C]\n\ +_080EF654:\n\ + ldr r2, [sp]\n\ + ldrh r1, [r2]\n\ + movs r0, 0x1F\n\ + ands r0, r1\n\ + lsls r7, r0, 8\n\ + lsls r1, 16\n\ + lsrs r0, r1, 21\n\ + movs r2, 0x1F\n\ + ands r0, r2\n\ + lsls r6, r0, 8\n\ + lsrs r1, 26\n\ + ands r1, r2\n\ + lsls r5, r1, 8\n\ + ldr r0, [sp, 0x4]\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1F\n\ + ands r0, r1\n\ + lsls r0, 8\n\ + str r0, [sp, 0x14]\n\ + lsls r1, 16\n\ + lsrs r0, r1, 21\n\ + ands r0, r2\n\ + lsls r0, 8\n\ + str r0, [sp, 0x18]\n\ + lsrs r1, 26\n\ + ands r1, r2\n\ + lsls r1, 8\n\ + str r1, [sp, 0x1C]\n\ + ldr r1, [sp, 0x14]\n\ + subs r0, r1, r7\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + mov r10, r0\n\ + ldr r2, [sp, 0x18]\n\ + subs r0, r2, r6\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + mov r9, r0\n\ + ldr r1, [sp, 0x1C]\n\ + subs r0, r1, r5\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + mov r8, r0\n\ + adds r3, r4, 0\n\ + movs r4, 0\n\ + ldr r2, [sp]\n\ + adds r2, 0x2\n\ + str r2, [sp, 0x30]\n\ + ldr r0, [sp, 0x4]\n\ + adds r0, 0x2\n\ + str r0, [sp, 0x34]\n\ + adds r1, r3, 0x2\n\ + str r1, [sp, 0x24]\n\ + ldr r2, [sp, 0x10]\n\ + adds r2, 0x1\n\ + str r2, [sp, 0x28]\n\ + ldr r0, [sp, 0x20]\n\ + cmp r4, r0\n\ + bge _080EF700\n\ + ldr r1, [sp, 0xC]\n\ + lsls r1, 1\n\ + mov r12, r1\n\ +_080EF6D6:\n\ + lsls r0, r7, 8\n\ + lsrs r2, r0, 16\n\ + lsls r0, r6, 8\n\ + lsrs r1, r0, 16\n\ + lsls r0, r5, 8\n\ + lsrs r0, 16\n\ + lsls r0, 10\n\ + lsls r1, 5\n\ + orrs r0, r1\n\ + orrs r2, r0\n\ + strh r2, [r3]\n\ + add r3, r12\n\ + add r7, r10\n\ + add r6, r9\n\ + add r5, r8\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r2, [sp, 0x20]\n\ + cmp r4, r2\n\ + blt _080EF6D6\n\ +_080EF700:\n\ + ldr r4, [sp, 0x14]\n\ + lsrs r2, r4, 8\n\ + ldr r1, [sp, 0x1C]\n\ + lsls r0, r1, 2\n\ + ldr r4, [sp, 0x18]\n\ + lsrs r1, r4, 3\n\ + orrs r0, r1\n\ + orrs r2, r0\n\ + strh r2, [r3]\n\ + ldr r0, [sp, 0x30]\n\ + str r0, [sp]\n\ + ldr r1, [sp, 0x34]\n\ + str r1, [sp, 0x4]\n\ + ldr r4, [sp, 0x24]\n\ + ldr r2, [sp, 0x28]\n\ + lsls r0, r2, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x10]\n\ + ldr r1, [sp, 0x2C]\n\ + lsrs r0, r1, 16\n\ + ldr r2, [sp, 0x10]\n\ + cmp r2, r0\n\ + bcc _080EF654\n\ +_080EF72E:\n\ + add sp, 0x38\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +void sub_80EF740(void) +{ + gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1; + if (gUnknown_083DFEC4->unk6DA0) + { + gUnknown_083DFEC4->unk6DA2++; + } + + REG_BG3HOFS = gUnknown_083DFEC4->unk6DA2; +} + +void sub_80EF780(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0 || (gUnknown_083DFEC4->unk6DA2 & 0x7) != 0) + { + sub_80EF740(); + } + else + { + u16 value = gUnknown_083DFEC4->unk6DA2 & 0x7; + gUnknown_083DFEC4->unk6DA2 = value; + gUnknown_083DFEC4->unk6DA0 = value; + REG_BG3HOFS = value; + } +} + +void sub_80EF7D4(void) +{ + gUnknown_083DFEC4->unk6DA2 = 0; + gUnknown_083DFEC4->unk6DA0 = 0; + gUnknown_083DFEC4->taskId6DA4 = CreateTask(sub_80EF780, 80); +} + +void sub_80EF814(void) +{ + if (FuncIsActiveTask(sub_80EF780)) + { + DestroyTask(gUnknown_083DFEC4->taskId6DA4); + } +} + +void sub_80EF840(void) +{ + gUnknown_083DFEC4->unkD160 = 0; + + if (gUnknown_083DFEC4->unk6DAC == 0) + { + while (sub_80EF874() != 0); + } +} + +// The only non-matching part is the gSaveBlock2.regionMapZoom access. +#ifdef NONMATCHING +bool8 sub_80EF874(void) +{ + switch (gUnknown_083DFEC4->unkD160) + { + case 0: + sub_80EEDE8(); + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7224); + break; + case 2: + MultistepInitMenuWindowBegin(&gWindowConfig_81E7224); + break; + case 3: + if (!MultistepInitMenuWindowContinue()) + { + return TRUE; + } + break; + case 4: + MenuZeroFillScreen(); + break; + case 5: + sub_80FA904(&gUnknown_083DFEC4->regionMap, gSaveBlock2.regionMapZoom); + break; + case 6: + if (sub_80FA940()) + { + return TRUE; + } + break; + case 7: + LZ77UnCompVram(gPokenavHoennMapSquares_Gfx, (void *)VRAM + 0x5000); + break; + case 8: + LoadPalette(gPokenavHoennMapSquares_Pal, 0x30, 0x20); + sub_80EFC3C(); + break; + case 9: + if (sub_80EFC64()) + { + return TRUE; + } + break; + case 10: + MenuDrawTextWindow(13, 3, 29, 17); + sub_80EF9F8(); + break; + case 11: + if (!gUnknown_083DFEC4->regionMap.zoomed) + { + gUnknown_083DFEC4->unk7698 = 160; + REG_BG0VOFS = 160; + } + else + { + gUnknown_083DFEC4->unk7698 = 256; + REG_BG0VOFS = 0; + } + + REG_BG0CNT = REG_BG0CNT; + REG_BG0CNT |= 1; + REG_BLDCNT = 0; + break; + default: + return FALSE; + } + + gUnknown_083DFEC4->unkD160++; + return TRUE; +} +#else +asm(".include \"constants/gba_constants.inc\"\n"); + +__attribute__((naked)) +bool8 sub_80EF874(void) +{ + asm(".syntax unified\n\ + push {lr}\n\ + ldr r0, _080EF890 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r1, _080EF894 @ =0x0000d160\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0xB\n\ + bls _080EF886\n\ + b _080EF9D8\n\ +_080EF886:\n\ + lsls r0, 2\n\ + ldr r1, _080EF898 @ =_080EF89C\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080EF890: .4byte gUnknown_083DFEC4\n\ +_080EF894: .4byte 0x0000d160\n\ +_080EF898: .4byte _080EF89C\n\ + .align 2, 0\n\ +_080EF89C:\n\ + .4byte _080EF8CC\n\ + .4byte _080EF8D2\n\ + .4byte _080EF8E0\n\ + .4byte _080EF8EC\n\ + .4byte _080EF8F6\n\ + .4byte _080EF8FC\n\ + .4byte _080EF920\n\ + .4byte _080EF92C\n\ + .4byte _080EF940\n\ + .4byte _080EF954\n\ + .4byte _080EF960\n\ + .4byte _080EF972\n\ +_080EF8CC:\n\ + bl sub_80EEDE8\n\ + b _080EF9DC\n\ +_080EF8D2:\n\ + ldr r0, _080EF8DC @ =gWindowConfig_81E7224\n\ + bl SetUpWindowConfig\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF8DC: .4byte gWindowConfig_81E7224\n\ +_080EF8E0:\n\ + ldr r0, _080EF8E8 @ =gWindowConfig_81E7224\n\ + bl MultistepInitMenuWindowBegin\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF8E8: .4byte gWindowConfig_81E7224\n\ +_080EF8EC:\n\ + bl MultistepInitMenuWindowContinue\n\ + cmp r0, 0\n\ + bne _080EF9DC\n\ + b _080EF9EA\n\ +_080EF8F6:\n\ + bl MenuZeroFillScreen\n\ + b _080EF9DC\n\ +_080EF8FC:\n\ + ldr r0, _080EF914 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r2, _080EF918 @ =0x00006e18\n\ + adds r0, r2\n\ + ldr r1, _080EF91C @ =gSaveBlock2\n\ + ldrb r1, [r1, 0x15]\n\ + lsrs r1, 3\n\ + movs r2, 0x1\n\ + ands r1, r2\n\ + bl sub_80FA904\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF914: .4byte gUnknown_083DFEC4\n\ +_080EF918: .4byte 0x00006e18\n\ +_080EF91C: .4byte gSaveBlock2\n\ +_080EF920:\n\ + bl sub_80FA940\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EF9DC\n\ + b _080EF9EA\n\ +_080EF92C:\n\ + ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx\n\ + ldr r1, _080EF93C @ =0x06005000\n\ + bl LZ77UnCompVram\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF938: .4byte gPokenavHoennMapSquares_Gfx\n\ +_080EF93C: .4byte 0x06005000\n\ +_080EF940:\n\ + ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal\n\ + movs r1, 0x30\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + bl sub_80EFC3C\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF950: .4byte gPokenavHoennMapSquares_Pal\n\ +_080EF954:\n\ + bl sub_80EFC64\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EF9DC\n\ + b _080EF9EA\n\ +_080EF960:\n\ + movs r0, 0xD\n\ + movs r1, 0x3\n\ + movs r2, 0x1D\n\ + movs r3, 0x11\n\ + bl MenuDrawTextWindow\n\ + bl sub_80EF9F8\n\ + b _080EF9DC\n\ +_080EF972:\n\ + ldr r0, _080EF990 @ =gUnknown_083DFEC4\n\ + ldr r1, [r0]\n\ + ldr r2, _080EF994 @ =0x00006e90\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080EF9A0\n\ + ldr r2, _080EF998 @ =0x00007698\n\ + adds r0, r1, r2\n\ + movs r1, 0xA0\n\ + strh r1, [r0]\n\ + ldr r0, _080EF99C @ =REG_BG0VOFS\n\ + strh r1, [r0]\n\ + b _080EF9B0\n\ + .align 2, 0\n\ +_080EF990: .4byte gUnknown_083DFEC4\n\ +_080EF994: .4byte 0x00006e90\n\ +_080EF998: .4byte 0x00007698\n\ +_080EF99C: .4byte REG_BG0VOFS\n\ +_080EF9A0:\n\ + ldr r0, _080EF9C8 @ =0x00007698\n\ + adds r1, r0\n\ + movs r2, 0\n\ + movs r0, 0x80\n\ + lsls r0, 1\n\ + strh r0, [r1]\n\ + ldr r0, _080EF9CC @ =REG_BG0VOFS\n\ + strh r2, [r0]\n\ +_080EF9B0:\n\ + ldr r2, _080EF9D0 @ =REG_BG0CNT\n\ + ldrh r0, [r2]\n\ + strh r0, [r2]\n\ + ldrh r0, [r2]\n\ + movs r1, 0x1\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + ldr r1, _080EF9D4 @ =REG_BLDCNT\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + b _080EF9DC\n\ + .align 2, 0\n\ +_080EF9C8: .4byte 0x00007698\n\ +_080EF9CC: .4byte REG_BG0VOFS\n\ +_080EF9D0: .4byte REG_BG0CNT\n\ +_080EF9D4: .4byte REG_BLDCNT\n\ +_080EF9D8:\n\ + movs r0, 0\n\ + b _080EF9EC\n\ +_080EF9DC:\n\ + ldr r0, _080EF9F0 @ =gUnknown_083DFEC4\n\ + ldr r1, [r0]\n\ + ldr r2, _080EF9F4 @ =0x0000d160\n\ + adds r1, r2\n\ + ldrh r0, [r1]\n\ + adds r0, 0x1\n\ + strh r0, [r1]\n\ +_080EF9EA:\n\ + movs r0, 0x1\n\ +_080EF9EC:\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ +_080EF9F0: .4byte gUnknown_083DFEC4\n\ +_080EF9F4: .4byte 0x0000d160\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +#ifdef NONMATCHING +void sub_80EF9F8(void) +{ + s32 zero; + u16 i; + u8 *mapSectionName; + u32 offset; + u16 mapSectionId; + u8 b; + u8 **pointer; + u16 var1 = 4; + + + switch (gUnknown_083DFEC4->regionMap.unk16) + { + case 1: + case 4: + sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1); + var1 += 2; + + if (gLinkOpen == TRUE) + { + sub_80F1A80(); + } + else + { + i = 0; + while (i < 4 && (mapSectionName = GetLandmarkName(gUnknown_083DFEC4->regionMap.mapSectionId, gUnknown_083DFEC4->regionMap.everGrandeCityArea, i)) != NULL) + { + sub_8072A18(mapSectionName, 0x70, var1 * 8, 0x78, 1); + var1 += 2; + i++; + } + + // This check is always true, but somehow the compiler still performed it. + asm("mov %0, #0\n":"=r"(zero)); // zero = 0 + if (!zero && var1 < 16) + { + MenuFillWindowRectWithBlankTile(14, var1, 28, 15); + } + } + break; + case 2: + sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1); + var1 += 2; + + mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId; + b = gUnknown_083DFEC4->regionMap.everGrandeCityArea; + offset = (b << 2) + (mapSectionId << 3); + pointer = (u8 **)((u8 *)&gUnknown_083DFEC4->unkCDCC + offset); + if (*pointer != NULL) + { + MenuFillWindowRectWithBlankTile(14, var1, 15, 15); + MenuFillWindowRectWithBlankTile(26, var1, 28, 15); + + sub_8095C8C((void *)VRAM + 0xF800, 16, 6, *pointer, 0, 0, 10, 10, 10); + + var1 += 11; + } + + // This check is always true, but somehow the compiler still performed it. + asm("mov %0, #0\n":"=r"(zero)); // zero = 0 + if (!zero && var1 < 16) + { + MenuFillWindowRectWithBlankTile(14, var1, 28, 15); + } + break; + case 3: + sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, var1 * 8, 0x78, 1); + var1 += 2; + + // This check is always true, but somehow the compiler still performed it. + asm("mov %0, #0\n":"=r"(zero)); // zero = 0 + if (!zero && var1 < 16) + { + MenuFillWindowRectWithBlankTile(14, var1, 28, 15); + } + break; + case 0: + default: + // This check is always true, but somehow the compiler still performed it. + asm("mov %0, #0\n":"=r"(zero)); // zero = 0 + if (!zero && var1 < 16) + { + MenuFillWindowRectWithBlankTile(14, var1, 28, 15); + } + break; + } + + if (gUnknown_083DFEC4->regionMap.unk16 == 2) + { + sub_80EFD74(); + } + else + { + sub_80EFDA0(); + } +} +#else +__attribute__((naked)) +void sub_80EF9F8(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x14\n\ + movs r5, 0x4\n\ + ldr r0, _080EFA18 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r1, _080EFA1C @ =0x00006e2e\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x4\n\ + bls _080EFA0E\n\ + b _080EFB6A\n\ +_080EFA0E:\n\ + lsls r0, 2\n\ + ldr r1, _080EFA20 @ =_080EFA24\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080EFA18: .4byte gUnknown_083DFEC4\n\ +_080EFA1C: .4byte 0x00006e2e\n\ +_080EFA20: .4byte _080EFA24\n\ + .align 2, 0\n\ +_080EFA24:\n\ + .4byte _080EFB6A\n\ + .4byte _080EFA38\n\ + .4byte _080EFAC0\n\ + .4byte _080EFB4C\n\ + .4byte _080EFA38\n\ +_080EFA38:\n\ + ldr r0, _080EFA64 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r2, _080EFA68 @ =0x00006e18\n\ + adds r0, r2\n\ + lsls r2, r5, 19\n\ + lsrs r2, 16\n\ + movs r1, 0x1\n\ + str r1, [sp]\n\ + movs r1, 0x70\n\ + movs r3, 0x78\n\ + bl sub_8072A18\n\ + adds r0, r5, 0x2\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r0, _080EFA6C @ =gLinkOpen\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080EFA70\n\ + bl sub_80F1A80\n\ + b _080EFB82\n\ + .align 2, 0\n\ +_080EFA64: .4byte gUnknown_083DFEC4\n\ +_080EFA68: .4byte 0x00006e18\n\ +_080EFA6C: .4byte gLinkOpen\n\ +_080EFA70:\n\ + movs r4, 0\n\ + b _080EFA92\n\ +_080EFA74:\n\ + lsls r2, r5, 19\n\ + lsrs r2, 16\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + adds r0, r1, 0\n\ + movs r1, 0x70\n\ + movs r3, 0x78\n\ + bl sub_8072A18\n\ + adds r0, r5, 0x2\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ +_080EFA92:\n\ + cmp r4, 0x3\n\ + bhi _080EFB6A\n\ + ldr r0, _080EFAB8 @ =gUnknown_083DFEC4\n\ + ldr r1, [r0]\n\ + ldr r2, _080EFABC @ =0x00006e2c\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r2, 0x3\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + lsls r2, r4, 24\n\ + lsrs r2, 24\n\ + bl GetLandmarkName\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + bne _080EFA74\n\ + b _080EFB6A\n\ + .align 2, 0\n\ +_080EFAB8: .4byte gUnknown_083DFEC4\n\ +_080EFABC: .4byte 0x00006e2c\n\ +_080EFAC0:\n\ + ldr r0, _080EFB38 @ =gUnknown_083DFEC4\n\ + ldr r4, [r0]\n\ + ldr r1, _080EFB3C @ =0x00006e18\n\ + adds r0, r4, r1\n\ + lsls r2, r5, 19\n\ + lsrs r2, 16\n\ + movs r1, 0x1\n\ + str r1, [sp]\n\ + movs r1, 0x70\n\ + movs r3, 0x78\n\ + bl sub_8072A18\n\ + adds r0, r5, 0x2\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r2, _080EFB40 @ =0x00006e2c\n\ + adds r0, r4, r2\n\ + ldrh r1, [r0]\n\ + adds r2, 0x3\n\ + adds r0, r4, r2\n\ + ldrb r0, [r0]\n\ + lsls r0, 2\n\ + lsls r1, 3\n\ + adds r0, r1\n\ + ldr r1, _080EFB44 @ =0x0000cdcc\n\ + adds r4, r1\n\ + adds r6, r4, r0\n\ + ldr r0, [r6]\n\ + cmp r0, 0\n\ + beq _080EFB6A\n\ + lsls r4, r5, 24\n\ + lsrs r4, 24\n\ + movs r0, 0xE\n\ + adds r1, r4, 0\n\ + movs r2, 0xF\n\ + movs r3, 0xF\n\ + bl MenuFillWindowRectWithBlankTile\n\ + movs r0, 0x1A\n\ + adds r1, r4, 0\n\ + movs r2, 0x1C\n\ + movs r3, 0xF\n\ + bl MenuFillWindowRectWithBlankTile\n\ + ldr r0, _080EFB48 @ =0x0600f800\n\ + ldr r3, [r6]\n\ + movs r1, 0\n\ + str r1, [sp]\n\ + str r1, [sp, 0x4]\n\ + movs r1, 0xA\n\ + str r1, [sp, 0x8]\n\ + str r1, [sp, 0xC]\n\ + str r1, [sp, 0x10]\n\ + movs r1, 0x10\n\ + movs r2, 0x6\n\ + bl sub_8095C8C\n\ + adds r0, r5, 0\n\ + adds r0, 0xB\n\ + b _080EFB66\n\ + .align 2, 0\n\ +_080EFB38: .4byte gUnknown_083DFEC4\n\ +_080EFB3C: .4byte 0x00006e18\n\ +_080EFB40: .4byte 0x00006e2c\n\ +_080EFB44: .4byte 0x0000cdcc\n\ +_080EFB48: .4byte 0x0600f800\n\ +_080EFB4C:\n\ + ldr r0, _080EFB98 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r2, _080EFB9C @ =0x00006e18\n\ + adds r0, r2\n\ + lsls r2, r5, 19\n\ + lsrs r2, 16\n\ + movs r1, 0x1\n\ + str r1, [sp]\n\ + movs r1, 0x70\n\ + movs r3, 0x78\n\ + bl sub_8072A18\n\ + adds r0, r5, 0x2\n\ +_080EFB66:\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ +_080EFB6A:\n\ + movs r0, 0\n\ + cmp r0, 0\n\ + bne _080EFB82\n\ + cmp r5, 0xF\n\ + bhi _080EFB82\n\ + lsls r1, r5, 24\n\ + lsrs r1, 24\n\ + movs r0, 0xE\n\ + movs r2, 0x1C\n\ + movs r3, 0xF\n\ + bl MenuFillWindowRectWithBlankTile\n\ +_080EFB82:\n\ + ldr r0, _080EFB98 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r1, _080EFBA0 @ =0x00006e2e\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + bne _080EFBA4\n\ + bl sub_80EFD74\n\ + b _080EFBA8\n\ + .align 2, 0\n\ +_080EFB98: .4byte gUnknown_083DFEC4\n\ +_080EFB9C: .4byte 0x00006e18\n\ +_080EFBA0: .4byte 0x00006e2e\n\ +_080EFBA4:\n\ + bl sub_80EFDA0\n\ +_080EFBA8:\n\ + add sp, 0x14\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +void sub_80EFBB0(void) +{ + if (!gUnknown_083DFEC4->regionMap.zoomed) + { + sub_80EEFBC(8); + } + else + { + sub_80EEFBC(7); + } +} + +bool8 sub_80EFBDC(bool8 a) +{ + bool8 retVal = TRUE; + u16 var1 = gUnknown_083DFEC4->unk7698; + + if (a) + { + if (var1 > 168) + { + var1 = var1 - 8; + } + else + { + var1 = 160; + retVal = FALSE; + } + } + else + { + if (var1 < 248) + { + var1 = var1 + 8; + } + else + { + var1 = 256; + retVal = FALSE; + } + } + + gUnknown_083DFEC4->unk7698 = var1; + REG_BG0VOFS = var1 & 0xFF; + + return retVal; +} + +void sub_80EFC3C(void) +{ + gUnknown_083DFEC4->unkBC9A = 0; + gUnknown_083DFEC4->unkBC9B = 0; + sub_80EFD3C(); +} + +#ifdef NONMATCHING // "var1 = gUnknown_083DFEC4->unkBC9A;" is the only thing that doesnt' match. +bool8 sub_80EFC64(void) +{ + u16 i; + u16 var1; + u16 var2; + + if (gUnknown_083DFEC4->unkBC9A < 16) + { + var1 = gUnknown_083DFEC4->unkBC9A; + var2 = gUnknown_083DFEC4->unkBC9B; + for (i = 0; i < 2; i++) + { + if (gPokenavCityMaps[var1][i] != 0) + { + LZ77UnCompVram(gPokenavCityMaps[var1][i], gUnknown_083DFEC4->unkBC9C[var2]); + gUnknown_083DFEC4->unkCDCC[var1][i] = gUnknown_083DFEC4->unkBC9C[var2]; + var2++; + } + else + { + gUnknown_083DFEC4->unkCDCC[var1][i] = NULL; + } + } + + gUnknown_083DFEC4->unkBC9A++; + if (gUnknown_083DFEC4->unkBC9A < 16) + { + gUnknown_083DFEC4->unkBC9B = var2; + return TRUE; + } + } + + return FALSE; +} +#else +__attribute__((naked)) +bool8 sub_80EFC64(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x8\n\ + ldr r4, _080EFCD0 @ =gUnknown_083DFEC4\n\ + ldr r2, [r4]\n\ + ldr r0, _080EFCD4 @ =0x0000bc9a\n\ + adds r1, r2, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0xF\n\ + bhi _080EFD2C\n\ + ldrb r1, [r1]\n\ + mov r8, r1\n\ + ldr r1, _080EFCD8 @ =0x0000bc9b\n\ + adds r0, r2, r1\n\ + ldrb r7, [r0]\n\ + movs r2, 0\n\ + ldr r0, _080EFCDC @ =gPokenavCityMaps\n\ + mov r9, r0\n\ + adds r3, r4, 0\n\ +_080EFC8E:\n\ + lsls r0, r2, 2\n\ + mov r4, r8\n\ + lsls r1, r4, 3\n\ + adds r6, r0, r1\n\ + mov r1, r9\n\ + adds r0, r6, r1\n\ + ldr r1, [r0]\n\ + cmp r1, 0\n\ + beq _080EFCE8\n\ + movs r0, 0xC8\n\ + adds r5, r7, 0\n\ + muls r5, r0\n\ + ldr r4, _080EFCE0 @ =0x0000bc9c\n\ + adds r5, r4\n\ + ldr r4, [r3]\n\ + adds r5, r4, r5\n\ + adds r0, r1, 0\n\ + adds r1, r5, 0\n\ + str r2, [sp]\n\ + str r3, [sp, 0x4]\n\ + bl LZ77UnCompVram\n\ + ldr r0, _080EFCE4 @ =0x0000cdcc\n\ + adds r4, r0\n\ + adds r4, r6\n\ + str r5, [r4]\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + ldr r2, [sp]\n\ + ldr r3, [sp, 0x4]\n\ + b _080EFCF2\n\ + .align 2, 0\n\ +_080EFCD0: .4byte gUnknown_083DFEC4\n\ +_080EFCD4: .4byte 0x0000bc9a\n\ +_080EFCD8: .4byte 0x0000bc9b\n\ +_080EFCDC: .4byte gPokenavCityMaps\n\ +_080EFCE0: .4byte 0x0000bc9c\n\ +_080EFCE4: .4byte 0x0000cdcc\n\ +_080EFCE8:\n\ + ldr r0, [r3]\n\ + ldr r4, _080EFD1C @ =0x0000cdcc\n\ + adds r0, r4\n\ + adds r0, r6\n\ + str r1, [r0]\n\ +_080EFCF2:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x1\n\ + bls _080EFC8E\n\ + ldr r0, _080EFD20 @ =gUnknown_083DFEC4\n\ + ldr r2, [r0]\n\ + ldr r0, _080EFD24 @ =0x0000bc9a\n\ + adds r1, r2, r0\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xF\n\ + bhi _080EFD2C\n\ + ldr r1, _080EFD28 @ =0x0000bc9b\n\ + adds r0, r2, r1\n\ + strb r7, [r0]\n\ + movs r0, 0x1\n\ + b _080EFD2E\n\ + .align 2, 0\n\ +_080EFD1C: .4byte 0x0000cdcc\n\ +_080EFD20: .4byte gUnknown_083DFEC4\n\ +_080EFD24: .4byte 0x0000bc9a\n\ +_080EFD28: .4byte 0x0000bc9b\n\ +_080EFD2C:\n\ + movs r0, 0\n\ +_080EFD2E:\n\ + add sp, 0x8\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +void sub_80EFD3C(void) +{ + gUnknown_083DFEC4->unk769E = 0; + gUnknown_083DFEC4->unk769C = 47; + gUnknown_083DFEC4->unk769D = 0; + gUnknown_083DFEC4->unk769A = 0; +} + +void sub_80EFD74(void) +{ + gUnknown_083DFEC4->unk769E = 1; + + if (gUnknown_083DFEC4->unk769D == 1) + { + gUnknown_083DFEC4->unk769D = 2; + } +} + +void sub_80EFDA0(void) +{ + sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9AC2C, 0, 0, 15, 1, 15); + gUnknown_083DFEC4->unk769E = 0; +} + +void sub_80EFDE4(u8 param0) +{ + u16 var1 = 60 - gUnknown_083DFEC4->unk769C; + + if (var1 > 15) + { + var1 = 15; + } + + if (gUnknown_083DFEC4->unk769E != 0) + { + sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9ABB4, gUnknown_083DFEC4->unk769C, 0, var1, 1, 60); + + if (var1 < 15) + { + u16 var2 = var1 + 14; + + sub_8095C8C((void *)VRAM + 0xF800, var2, 16, gUnknown_08E9ABB4, 0, 0, (u16)(15 - var1), 1, 60); + } + } +} + +void sub_80EFE7C(void) +{ + u16 var1; + u8 var2 = gUnknown_083DFEC4->unk769D; + + switch (var2) + { + case 0: + var1 = ++gUnknown_083DFEC4->unk769C; + + if (var1 > 59) + { + gUnknown_083DFEC4->unk769C = var2; + } + + sub_80EFDE4(gUnknown_083DFEC4->unk769E); + + switch (gUnknown_083DFEC4->unk769C) + { + case 0: + case 15: + case 30: + case 45: + gUnknown_083DFEC4->unk769D = 1; + gUnknown_083DFEC4->unk769A = 0; + break; + } + break; + case 1: + var1 = ++gUnknown_083DFEC4->unk769A; + if (var1 > 120) + { + gUnknown_083DFEC4->unk769A = 0; + gUnknown_083DFEC4->unk769D = 0; + } + break; + case 2: + sub_80EFDE4(1); + gUnknown_083DFEC4->unk769D = 1; + break; + } +} + +void sub_80EFF34(void) +{ + gUnknown_083DFEC4->unkD160 = 0; + + if (gUnknown_083DFEC4->unk6DAC == 0) + { + while (sub_80EFF68()); + } +} + +bool8 sub_80EFF68(void) +{ + switch (gUnknown_083DFEC4->unkD160) + { + case 0: + sub_80EEDE8(); + gUnknown_083DFEC4->unkD162[0] = 11; + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7080); + break; + case 2: + MultistepInitMenuWindowBegin(&gWindowConfig_81E7080); + break; + case 3: + if (!MultistepInitMenuWindowContinue()) + { + return TRUE; + } + break; + case 4: + MenuZeroFillScreen(); + break; + case 5: + sub_80F1614(); + break; + case 6: + if (sub_80F162C(0)) + { + return TRUE; + } + break; + case 7: + LZ77UnCompVram(gPokenavConditionView_Gfx, (void *)VRAM + 0x5000); + break; + case 8: + LZ77UnCompVram(gUnknown_08E9AC4C, (void *)VRAM + 0xF000); + LoadPalette(gPokenavConditionMenu2_Pal, 0x20, 0x20); + break; + case 9: + if (gUnknown_083DFEC4->unk76AA == 1) + { + sub_8095C8C((void *)VRAM + 0xF000, 0, 5, gUnknown_083E01AC, 0, 0, 9, 4, 9); + } + break; + case 10: + LZ77UnCompVram(gUnknown_08E9FEB4, (void *)VRAM + 0xB800); + break; + case 11: + LoadPalette(gUnknown_083E0254, 0x30, 0x20); + LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20); + LoadPalette(&gPokenavConditionMenu2_Pal[2], 0xB1, 0x2); + LoadPalette(&gPokenavConditionMenu2_Pal[16], 0xB5, 0x2); + LoadPalette(&gPokenavConditionMenu2_Pal[30], 0xBF, 0x2); + sub_80F01A4(); + break; + case 12: + sub_80F01E0((u16)gUnknown_083DFEC4->unk8fe9); + break; + case 13: + REG_BG3CNT = 0x1E03; + REG_BG2CNT = 0x1702; + REG_BLDCNT = 0x844; + REG_BLDALPHA = 0x40B; + break; + default: + return FALSE; + } + + gUnknown_083DFEC4->unkD160++; + return TRUE; +} + +void sub_80F0174(bool8 a) +{ + if (a) + { + REG_DISPCNT |= DISPCNT_BG2_ON; + } + else + { + REG_DISPCNT &= ~DISPCNT_BG2_ON; + } +} + +void sub_80F01A4(void) +{ + REG_WIN0H = WIN_RANGE(0, 240); + REG_WIN1H = WIN_RANGE(0, 155); + REG_WIN0V = WIN_RANGE(56, 121); + REG_WIN1V = WIN_RANGE(56, 121); + REG_WININ = 0x3F3F; + REG_WINOUT = 0x001B; +} + +void sub_80F01E0(u16 a) +{ + MenuPrint(gUnknown_083DFEC4->unk8829[a], 13, 1); + + if (gUnknown_083DFEC4->unk76AA == 1) + { + MenuPrint(gUnknown_083DFEC4->unk88E9[a], 13, 3); + sub_80F443C(gUnknown_083DFEC4->unk8788, gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].unk2); + MenuPrint(gUnknown_083DFEC4->unk8788, 1, 6); + } +} + +void sub_80F0264(u8 a) +{ + gUnknown_083DFEC4->unk306 = 0; + gUnknown_083DFEC4->unk87CA = a; + + if (gUnknown_083DFEC4->unk6DAC == 0) + { + while (sub_80F02A0()); + } +} + +#ifdef NONMATCHING // small nonmatching part is in the third else clause in case 7. +bool8 sub_80F02A0(void) +{ + const u16 *pointer; + + switch (gUnknown_083DFEC4->unk306) + { + case 0: + sub_80EEDE8(); + + gUnknown_083DFEC4->unk87C8 = gUnknown_083DFEC4->unk87CA == 1; + gUnknown_083DFEC4->unkD162[0] = 11; + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E70D4); + break; + case 2: + MultistepInitMenuWindowBegin(&gWindowConfig_81E70D4); + break; + case 3: + if (!MultistepInitMenuWindowContinue()) + { + return TRUE; + } + break; + case 4: + MenuZeroFillScreen(); + break; + case 5: + LZ77UnCompVram(gUnknown_08E9FC64, (void *)VRAM + 0xE800); + break; + case 6: + LZ77UnCompVram(gPokenavConditionSearch2_Gfx, (void *)VRAM + 0x8000); + break; + case 7: + LoadPalette(gUnknown_083E02B4, 0xB0, 0x20); + LoadPalette(gUnknown_083E02B4, 0xF0, 0x20); + LoadPalette(gUnknown_083E0334, 0x40, 0x20); + + if (gUnknown_083DFEC4->unk87CA == 0) + { + LoadPalette(gPokenavConditionSearch2_Pal, 0x30, 0x20); + gPlttBufferUnfaded[0] = gPokenavConditionSearch2_Pal[5]; + LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20); + LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2); + LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2); + LoadPalette(&gPokenavConditionSearch2_Pal[5], 0xBF, 0x2); + } + else if (gUnknown_083DFEC4->unk87CA == 1) + { + LoadPalette(gUnknown_083E0274, 0x30, 0x20); + gPlttBufferUnfaded[0] = gUnknown_083E0274[5]; + LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20); + LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2); + LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2); + LoadPalette(&gUnknown_083E0274[5], 0xBF, 0x2); + } + else + { + LoadPalette(gUnknown_08E9F9E8, 0x30, 0x20); + pointer = &gUnknown_08E9F9E8[5]; + gPlttBufferUnfaded[0] = gUnknown_08E9F9E8[5]; + LoadPalette(gUnknown_083E0314, 0x50, 0x20); + LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2); + LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2); + LoadPalette(pointer, 0xBF, 0x2); + LoadPalette(pointer, 0x5F, 0x2); + } + break; + case 8: + if (gUnknown_083DFEC4->unk87CA != 2) + { + sub_8095C8C((void *)VRAM + 0xE800, 0, 5, gUnknown_08E9FD1C, 0, 0, 9, 4, 9); + } + else + { + sub_8095C8C((void *)VRAM + 0xE800, 0, 4, gUnknown_08E9FE54, 0, 0, 12, 10, 12); + sub_8095C8C((void *)VRAM + 0xE800, 0, 8, gUnknown_08E9FD64, 0, 0, 12, 10, 12); + } + break; + case 9: + LZ77UnCompVram(gUnknown_083E0354, (void *)VRAM + 0x5000); + break; + case 10: + DmaClear16(3, (void *)VRAM + 0xF800, 0x800); + break; + case 11: + sub_80F0900(); + break; + case 12: + if (sub_80F0944()) + { + return TRUE; + } + break; + case 13: + if (gUnknown_083DFEC4->unk87CA != 2) + { + ShowMapNamePopUpWindow(); + } + else + { + sub_80F081C(0); + sub_80F0FFC(gUnknown_083DFEC4->unk876E); + } + break; + case 14: + REG_BG2CNT = 0x1D0A; + REG_BG3CNT = 0x1E03; + REG_BG0CNT = 0x1F01; + REG_BG3VOFS = 0xF8; + + gUnknown_083DFEC4->unk8776 = 0xF8; + gUnknown_083DFEC4->unk8778 = 0; + + REG_BLDCNT = 0; + gUnknown_083DFEC4->unkD160++; + return FALSE; + default: + return FALSE; + } + + gUnknown_083DFEC4->unk306++; + return TRUE; +} +#else +__attribute__((naked)) +bool8 sub_80F02A0(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + mov r6, r8\n\ + push {r6}\n\ + sub sp, 0x18\n\ + ldr r1, _080F02C4 @ =gUnknown_083DFEC4\n\ + ldr r0, [r1]\n\ + ldr r2, _080F02C8 @ =0x00000306\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + adds r2, r1, 0\n\ + cmp r0, 0xE\n\ + bls _080F02BA\n\ + b _080F05FA\n\ +_080F02BA:\n\ + lsls r0, 2\n\ + ldr r1, _080F02CC @ =_080F02D0\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080F02C4: .4byte gUnknown_083DFEC4\n\ +_080F02C8: .4byte 0x00000306\n\ +_080F02CC: .4byte _080F02D0\n\ + .align 2, 0\n\ +_080F02D0:\n\ + .4byte _080F030C\n\ + .4byte _080F0344\n\ + .4byte _080F0350\n\ + .4byte _080F035C\n\ + .4byte _080F0368\n\ + .4byte _080F036E\n\ + .4byte _080F0380\n\ + .4byte _080F0394\n\ + .4byte _080F04BC\n\ + .4byte _080F053C\n\ + .4byte _080F0550\n\ + .4byte _080F0574\n\ + .4byte _080F057A\n\ + .4byte _080F0586\n\ + .4byte _080F05BC\n\ +_080F030C:\n\ + bl sub_80EEDE8\n\ + ldr r0, _080F0334 @ =gUnknown_083DFEC4\n\ + ldr r1, [r0]\n\ + movs r2, 0\n\ + ldr r3, _080F0338 @ =0x000087ca\n\ + adds r0, r1, r3\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080F0322\n\ + movs r2, 0x1\n\ +_080F0322:\n\ + ldr r3, _080F033C @ =0x000087c8\n\ + adds r0, r1, r3\n\ + strb r2, [r0]\n\ + ldr r0, _080F0340 @ =0x0000d162\n\ + adds r1, r0\n\ + movs r0, 0xB\n\ + strb r0, [r1]\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0334: .4byte gUnknown_083DFEC4\n\ +_080F0338: .4byte 0x000087ca\n\ +_080F033C: .4byte 0x000087c8\n\ +_080F0340: .4byte 0x0000d162\n\ +_080F0344:\n\ + ldr r0, _080F034C @ =gWindowConfig_81E70D4\n\ + bl SetUpWindowConfig\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F034C: .4byte gWindowConfig_81E70D4\n\ +_080F0350:\n\ + ldr r0, _080F0358 @ =gWindowConfig_81E70D4\n\ + bl MultistepInitMenuWindowBegin\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0358: .4byte gWindowConfig_81E70D4\n\ +_080F035C:\n\ + bl MultistepInitMenuWindowContinue\n\ + cmp r0, 0\n\ + beq _080F0366\n\ + b _080F0618\n\ +_080F0366:\n\ + b _080F0626\n\ +_080F0368:\n\ + bl MenuZeroFillScreen\n\ + b _080F0618\n\ +_080F036E:\n\ + ldr r0, _080F0378 @ =gUnknown_08E9FC64\n\ + ldr r1, _080F037C @ =0x0600e800\n\ + bl LZ77UnCompVram\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0378: .4byte gUnknown_08E9FC64\n\ +_080F037C: .4byte 0x0600e800\n\ +_080F0380:\n\ + ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx\n\ + ldr r1, _080F0390 @ =0x06008000\n\ + bl LZ77UnCompVram\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F038C: .4byte gPokenavConditionSearch2_Gfx\n\ +_080F0390: .4byte 0x06008000\n\ +_080F0394:\n\ + ldr r6, _080F03FC @ =gUnknown_083E02B4\n\ + adds r0, r6, 0\n\ + movs r1, 0xB0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + adds r0, r6, 0\n\ + movs r1, 0xF0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r0, _080F0400 @ =gUnknown_083E0334\n\ + movs r1, 0x40\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r0, _080F0404 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r1, _080F0408 @ =0x000087ca\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080F0418\n\ + ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal\n\ + adds r0, r4, 0\n\ + movs r1, 0x30\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r1, _080F0410 @ =gPlttBufferUnfaded\n\ + ldrh r0, [r4, 0xA]\n\ + strh r0, [r1]\n\ + ldr r0, _080F0414 @ =gUnknownPalette_81E6692\n\ + movs r1, 0xB0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + adds r0, r6, 0x2\n\ + movs r1, 0xB1\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r0, r6, 0\n\ + adds r0, 0x10\n\ + movs r1, 0xB5\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r4, 0xA\n\ + adds r0, r4, 0\n\ + movs r1, 0xBF\n\ + b _080F04A8\n\ + .align 2, 0\n\ +_080F03FC: .4byte gUnknown_083E02B4\n\ +_080F0400: .4byte gUnknown_083E0334\n\ +_080F0404: .4byte gUnknown_083DFEC4\n\ +_080F0408: .4byte 0x000087ca\n\ +_080F040C: .4byte gPokenavConditionSearch2_Pal\n\ +_080F0410: .4byte gPlttBufferUnfaded\n\ +_080F0414: .4byte gUnknownPalette_81E6692\n\ +_080F0418:\n\ + cmp r0, 0x1\n\ + bne _080F0464\n\ + ldr r4, _080F0458 @ =gUnknown_083E0274\n\ + adds r0, r4, 0\n\ + movs r1, 0x30\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r1, _080F045C @ =gPlttBufferUnfaded\n\ + ldrh r0, [r4, 0xA]\n\ + strh r0, [r1]\n\ + ldr r0, _080F0460 @ =gUnknownPalette_81E6692\n\ + movs r1, 0xB0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + adds r0, r6, 0x2\n\ + movs r1, 0xB1\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r0, r6, 0\n\ + adds r0, 0x10\n\ + movs r1, 0xB5\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r4, 0xA\n\ + adds r0, r4, 0\n\ + movs r1, 0xBF\n\ + b _080F04A8\n\ + .align 2, 0\n\ +_080F0458: .4byte gUnknown_083E0274\n\ +_080F045C: .4byte gPlttBufferUnfaded\n\ +_080F0460: .4byte gUnknownPalette_81E6692\n\ +_080F0464:\n\ + ldr r4, _080F04B0 @ =gUnknown_08E9F9E8\n\ + adds r0, r4, 0\n\ + movs r1, 0x30\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r1, _080F04B4 @ =gPlttBufferUnfaded\n\ + adds r5, r4, 0\n\ + adds r5, 0xA\n\ + ldrh r0, [r4, 0xA]\n\ + strh r0, [r1]\n\ + ldr r0, _080F04B8 @ =gUnknown_083E0314\n\ + movs r1, 0x50\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + adds r0, r6, 0x2\n\ + movs r1, 0xB1\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r0, r6, 0\n\ + adds r0, 0x10\n\ + movs r1, 0xB5\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r0, r5, 0\n\ + movs r1, 0xBF\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + adds r0, r5, 0\n\ + movs r1, 0x5F\n\ +_080F04A8:\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F04B0: .4byte gUnknown_08E9F9E8\n\ +_080F04B4: .4byte gPlttBufferUnfaded\n\ +_080F04B8: .4byte gUnknown_083E0314\n\ +_080F04BC:\n\ + ldr r0, _080F04E8 @ =gUnknown_083DFEC4\n\ + ldr r0, [r0]\n\ + ldr r2, _080F04EC @ =0x000087ca\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + beq _080F04F8\n\ + ldr r0, _080F04F0 @ =0x0600e800\n\ + ldr r3, _080F04F4 @ =gUnknown_08E9FD1C\n\ + movs r1, 0\n\ + str r1, [sp]\n\ + str r1, [sp, 0x4]\n\ + movs r2, 0x9\n\ + str r2, [sp, 0x8]\n\ + movs r1, 0x4\n\ + str r1, [sp, 0xC]\n\ + str r2, [sp, 0x10]\n\ + movs r1, 0\n\ + movs r2, 0x5\n\ + bl sub_8095C8C\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F04E8: .4byte gUnknown_083DFEC4\n\ +_080F04EC: .4byte 0x000087ca\n\ +_080F04F0: .4byte 0x0600e800\n\ +_080F04F4: .4byte gUnknown_08E9FD1C\n\ +_080F04F8:\n\ + ldr r3, _080F0530 @ =0x0600e800\n\ + mov r8, r3\n\ + ldr r3, _080F0534 @ =gUnknown_08E9FE54\n\ + movs r4, 0\n\ + str r4, [sp]\n\ + str r4, [sp, 0x4]\n\ + movs r5, 0xC\n\ + str r5, [sp, 0x8]\n\ + movs r6, 0xA\n\ + str r6, [sp, 0xC]\n\ + str r5, [sp, 0x10]\n\ + mov r0, r8\n\ + movs r1, 0\n\ + movs r2, 0x4\n\ + bl sub_8095C8C\n\ + ldr r3, _080F0538 @ =gUnknown_08E9FD64\n\ + str r4, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r5, [sp, 0x8]\n\ + str r6, [sp, 0xC]\n\ + str r5, [sp, 0x10]\n\ + mov r0, r8\n\ + movs r1, 0\n\ + movs r2, 0x8\n\ + bl sub_8095C8C\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0530: .4byte 0x0600e800\n\ +_080F0534: .4byte gUnknown_08E9FE54\n\ +_080F0538: .4byte gUnknown_08E9FD64\n\ +_080F053C:\n\ + ldr r0, _080F0548 @ =gUnknown_083E0354\n\ + ldr r1, _080F054C @ =0x06005000\n\ + bl LZ77UnCompVram\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0548: .4byte gUnknown_083E0354\n\ +_080F054C: .4byte 0x06005000\n\ +_080F0550:\n\ + ldr r2, _080F0568 @ =0x0600f800\n\ + add r1, sp, 0x14\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + ldr r0, _080F056C @ =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, _080F0570 @ =0x81000400\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F0568: .4byte 0x0600f800\n\ +_080F056C: .4byte 0x040000d4\n\ +_080F0570: .4byte 0x81000400\n\ +_080F0574:\n\ + bl sub_80F0900\n\ + b _080F0618\n\ +_080F057A:\n\ + bl sub_80F0944\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080F0618\n\ + b _080F0626\n\ +_080F0586:\n\ + ldr r0, _080F059C @ =gUnknown_083DFEC4\n\ + ldr r4, [r0]\n\ + ldr r1, _080F05A0 @ =0x000087ca\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + beq _080F05A4\n\ + bl ShowMapNamePopUpWindow\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F059C: .4byte gUnknown_083DFEC4\n\ +_080F05A0: .4byte 0x000087ca\n\ +_080F05A4:\n\ + movs r0, 0\n\ + bl sub_80F081C\n\ + ldr r2, _080F05B8 @ =0x0000876e\n\ + adds r0, r4, r2\n\ + ldrb r0, [r0]\n\ + bl sub_80F0FFC\n\ + b _080F0618\n\ + .align 2, 0\n\ +_080F05B8: .4byte 0x0000876e\n\ +_080F05BC:\n\ + ldr r1, _080F0600 @ =REG_BG2CNT\n\ + ldr r3, _080F0604 @ =0x00001d0a\n\ + adds r0, r3, 0\n\ + strh r0, [r1]\n\ + adds r1, 0x2\n\ + adds r3, 0xF9\n\ + adds r0, r3, 0\n\ + strh r0, [r1]\n\ + subs r1, 0x6\n\ + adds r3, 0xFE\n\ + adds r0, r3, 0\n\ + strh r0, [r1]\n\ + adds r1, 0x16\n\ + movs r0, 0xF8\n\ + strh r0, [r1]\n\ + ldr r1, [r2]\n\ + ldr r0, _080F0608 @ =0x00008776\n\ + adds r2, r1, r0\n\ + movs r3, 0\n\ + movs r0, 0xF8\n\ + strh r0, [r2]\n\ + ldr r2, _080F060C @ =0x00008778\n\ + adds r0, r1, r2\n\ + strh r3, [r0]\n\ + ldr r0, _080F0610 @ =REG_BLDCNT\n\ + strh r3, [r0]\n\ + ldr r3, _080F0614 @ =0x0000d160\n\ + adds r1, r3\n\ + ldrh r0, [r1]\n\ + adds r0, 0x1\n\ + strh r0, [r1]\n\ +_080F05FA:\n\ + movs r0, 0\n\ + b _080F0628\n\ + .align 2, 0\n\ +_080F0600: .4byte REG_BG2CNT\n\ +_080F0604: .4byte 0x00001d0a\n\ +_080F0608: .4byte 0x00008776\n\ +_080F060C: .4byte 0x00008778\n\ +_080F0610: .4byte REG_BLDCNT\n\ +_080F0614: .4byte 0x0000d160\n\ +_080F0618:\n\ + ldr r0, _080F0634 @ =gUnknown_083DFEC4\n\ + ldr r1, [r0]\n\ + ldr r0, _080F0638 @ =0x00000306\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + adds r0, 0x1\n\ + strh r0, [r1]\n\ +_080F0626:\n\ + movs r0, 0x1\n\ +_080F0628:\n\ + add sp, 0x18\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ +_080F0634: .4byte gUnknown_083DFEC4\n\ +_080F0638: .4byte 0x00000306\n\ + .syntax divided\n"); +} +#endif // NONMATCHING diff --git a/sym_bss.txt b/sym_bss.txt index 4f6d9c95b..6587c2c39 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -26,7 +26,7 @@ .include "src/field/tv.o" .include "src/battle/battle_anim_80CA710.o" .include "src/field/easy_chat.o" - .include "src/field/pokenav.o" + .include "src/pokenav_before.o" .include "src/field/mauville_man.o" .include "src/field/menu_helpers.o" .include "src/scene/contest_painting.o" |