diff options
author | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
commit | fb2f1c8bce95cbe584fbd674b8e7865d2bc84bc6 (patch) | |
tree | 95d47e9e0d44e207d276d6858b44c6be5c845589 /asm/pokedex_area_screen.s | |
parent | cfe4a52393bd5d09d78f68ac165406d3e9354706 (diff) |
split some files out of rom6.s
Diffstat (limited to 'asm/pokedex_area_screen.s')
-rw-r--r-- | asm/pokedex_area_screen.s | 2371 |
1 files changed, 2371 insertions, 0 deletions
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s new file mode 100644 index 000000000..0c52c8580 --- /dev/null +++ b/asm/pokedex_area_screen.s @@ -0,0 +1,2371 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_8110664 +unref_sub_8110664: @ 8110664 + push {lr} + ldr r3, _08110678 @ =0x02000000 + str r1, [r3, 0x4] + str r2, [r3, 0x8] + strh r0, [r3, 0xE] + ldr r0, _0811067C @ =sub_8110680 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08110678: .4byte 0x02000000 +_0811067C: .4byte sub_8110680 + thumb_func_end unref_sub_8110664 + + thumb_func_start sub_8110680 +sub_8110680: @ 8110680 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0811069C @ =gMain + ldr r1, _081106A0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x7 + bls _08110692 + b _081107C0 +_08110692: + lsls r0, 2 + ldr r1, _081106A4 @ =_081106A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811069C: .4byte gMain +_081106A0: .4byte 0x0000043c +_081106A4: .4byte _081106A8 + .align 2, 0 +_081106A8: + .4byte _081106C8 + .4byte _08110720 + .4byte _08110740 + .4byte _08110746 + .4byte _08110752 + .4byte _08110770 + .4byte _08110782 + .4byte _081107A8 +_081106C8: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC4 + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + ldr r0, _08110710 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + ldr r2, _08110714 @ =REG_BG0VOFS + ldr r3, _08110718 @ =0x0000fff8 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _0811071C @ =REG_BG2VOFS + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _081107C0 + .align 2, 0 +_08110710: .4byte REG_BG0HOFS +_08110714: .4byte REG_BG0VOFS +_08110718: .4byte 0x0000fff8 +_0811071C: .4byte REG_BG2VOFS +_08110720: + ldr r4, _0811073C @ =0x020006e8 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0x88 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + bl StringFill + b _081107C0 + .align 2, 0 +_0811073C: .4byte 0x020006e8 +_08110740: + bl sub_8110824 + b _081107C0 +_08110746: + bl sub_8110838 + lsls r0, 24 + cmp r0, 0 + bne _081107CC + b _081107C0 +_08110752: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + movs r1, 0x8 + negs r1, r1 + movs r0, 0 + bl sub_80FB2A4 + ldr r0, _0811076C @ =sub_81107DC + bl SetVBlankCallback + b _081107C0 + .align 2, 0 +_0811076C: .4byte sub_81107DC +_08110770: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _081107C0 +_08110782: + ldr r1, _0811079C @ =REG_BLDCNT + ldr r2, _081107A0 @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8111084 + movs r1, 0x80 + lsls r1, 19 + ldr r3, _081107A4 @ =0x00007741 + adds r0, r3, 0 + strh r0, [r1] + b _081107C0 + .align 2, 0 +_0811079C: .4byte REG_BLDCNT +_081107A0: .4byte 0x00003f41 +_081107A4: .4byte 0x00007741 +_081107A8: + ldr r0, _081107B8 @ =sub_8111288 + bl sub_8110814 + ldr r0, _081107BC @ =sub_81107F0 + bl SetMainCallback2 + b _081107CC + .align 2, 0 +_081107B8: .4byte sub_8111288 +_081107BC: .4byte sub_81107F0 +_081107C0: + ldr r1, _081107D4 @ =gMain + ldr r0, _081107D8 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081107CC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081107D4: .4byte gMain +_081107D8: .4byte 0x0000043c + thumb_func_end sub_8110680 + + thumb_func_start sub_81107DC +sub_81107DC: @ 81107DC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81107DC + + thumb_func_start sub_81107F0 +sub_81107F0: @ 81107F0 + push {lr} + ldr r0, _08110810 @ =0x02000000 + ldr r0, [r0] + bl _call_via_r0 + bl sub_8111110 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08110810: .4byte 0x02000000 + thumb_func_end sub_81107F0 + + thumb_func_start sub_8110814 +sub_8110814: @ 8110814 + ldr r1, _08110820 @ =0x02000000 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xC] + bx lr + .align 2, 0 +_08110820: .4byte 0x02000000 + thumb_func_end sub_8110814 + + thumb_func_start sub_8110824 +sub_8110824: @ 8110824 + ldr r0, _08110834 @ =0x02000000 + movs r1, 0x8A + lsls r1, 1 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_08110834: .4byte 0x02000000 + thumb_func_end sub_8110824 + + thumb_func_start sub_8110838 +sub_8110838: @ 8110838 + push {lr} + ldr r1, _08110854 @ =0x02000000 + movs r2, 0x8A + lsls r2, 1 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _081108E4 + lsls r0, 2 + ldr r1, _08110858 @ =_0811085C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08110854: .4byte 0x02000000 +_08110858: .4byte _0811085C + .align 2, 0 +_0811085C: + .4byte _08110874 + .4byte _08110884 + .4byte _0811088A + .4byte _0811089C + .4byte _081108C0 + .4byte _081108D0 +_08110874: + ldr r0, _08110880 @ =0x02000000 + ldrh r0, [r0, 0xE] + bl sub_8110908 + b _081108F0 + .align 2, 0 +_08110880: .4byte 0x02000000 +_08110884: + bl sub_8110C34 + b _081108F0 +_0811088A: + ldr r0, _08110894 @ =gUnknown_083F8438 + ldr r1, _08110898 @ =0x0600c000 + bl LZ77UnCompVram + b _081108F0 + .align 2, 0 +_08110894: .4byte gUnknown_083F8438 +_08110898: .4byte 0x0600c000 +_0811089C: + ldr r1, _081108B0 @ =0x040000d4 + ldr r0, _081108B4 @ =0x02000116 + str r0, [r1] + ldr r0, _081108B8 @ =0x0600f000 + str r0, [r1, 0x4] + ldr r0, _081108BC @ =0x80000280 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _081108F0 + .align 2, 0 +_081108B0: .4byte 0x040000d4 +_081108B4: .4byte 0x02000116 +_081108B8: .4byte 0x0600f000 +_081108BC: .4byte 0x80000280 +_081108C0: + ldr r0, _081108CC @ =gUnknown_083F8418 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + b _081108F0 + .align 2, 0 +_081108CC: .4byte gUnknown_083F8418 +_081108D0: + ldr r1, _081108E8 @ =REG_BG0CNT + ldr r3, _081108EC @ =0x00001e0d + adds r0, r3, 0 + strh r0, [r1] + movs r0, 0x8A + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_081108E4: + movs r0, 0 + b _08110900 + .align 2, 0 +_081108E8: .4byte REG_BG0CNT +_081108EC: .4byte 0x00001e0d +_081108F0: + ldr r1, _08110904 @ =0x02000000 + movs r2, 0x8A + lsls r2, 1 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_08110900: + pop {r1} + bx r1 + .align 2, 0 +_08110904: .4byte 0x02000000 + thumb_func_end sub_8110838 + + thumb_func_start sub_8110908 +sub_8110908: @ 8110908 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r7, r0, 16 + .ifdef SAPPHIRE + ldr r0, _sub_8110908_Latias @ =407 + .else + @ Latios + movs r0, 0xCC + lsls r0, 1 + .endif + cmp r7, r0 + bne _0811091E + b _08110A44 +_0811091E: + ldr r2, _08110988 @ =0x02000000 + movs r1, 0x88 + lsls r1, 1 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0x89 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r6, 0 + ldr r1, _0811098C @ =gUnknown_083F856C +_08110936: + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + bne _08110942 + b _08110A8C +_08110942: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _08110936 + movs r6, 0 + ldr r4, _08110990 @ =gUnknown_083F856E + ldrh r0, [r4] + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _081109D0 + mov r8, r4 + adds r5, r4, 0x4 + mov r9, r1 +_08110960: + lsls r0, r6, 1 + adds r1, r0, r6 + lsls r2, r1, 1 + mov r3, r8 + adds r1, r2, r3 + adds r3, r0, 0 + ldrh r1, [r1] + cmp r7, r1 + bne _081109BA + adds r0, r4, 0x2 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, 0x18 + beq _081109A6 + cmp r0, 0x18 + bgt _08110994 + cmp r0, 0 + beq _0811099A + b _081109BA + .align 2, 0 + .ifdef SAPPHIRE +_sub_8110908_Latias: .4byte 407 + .endif +_08110988: .4byte 0x02000000 +_0811098C: .4byte gUnknown_083F856C +_08110990: .4byte gUnknown_083F856E +_08110994: + cmp r0, 0x1A + beq _081109A6 + b _081109BA +_0811099A: + adds r0, r2, r5 + ldrh r1, [r0] + movs r0, 0 + bl sub_8110A98 + b _081109BA +_081109A6: + adds r1, r3, r6 + lsls r1, 1 + mov r0, r8 + adds r0, 0x2 + adds r0, r1, r0 + ldrh r0, [r0] + adds r1, r5 + ldrh r1, [r1] + bl sub_8110AE4 +_081109BA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r4, _08110A00 @ =gUnknown_083F856E + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r9 + bne _08110960 +_081109D0: + movs r6, 0 + ldr r1, _08110A04 @ =gWildMonHeaders + ldrb r0, [r1] + cmp r0, 0xFF + beq _08110A8C +_081109DA: + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r0, 2 + adds r5, r0, r1 + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8110BA4 + lsls r0, 24 + cmp r0, 0 + beq _08110A28 + ldrb r0, [r5] + cmp r0, 0x18 + beq _08110A18 + cmp r0, 0x18 + bgt _08110A08 + cmp r0, 0 + beq _08110A0E + b _08110A28 + .align 2, 0 +_08110A00: .4byte gUnknown_083F856E +_08110A04: .4byte gWildMonHeaders +_08110A08: + cmp r0, 0x1A + beq _08110A18 + b _08110A28 +_08110A0E: + ldrb r1, [r5, 0x1] + movs r0, 0 + bl sub_8110A98 + b _08110A28 +_08110A18: + ldr r0, _08110A40 @ =gWildMonHeaders + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl sub_8110AE4 +_08110A28: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _08110A40 @ =gWildMonHeaders + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081109DA + b _08110A8C + .align 2, 0 +_08110A40: .4byte gWildMonHeaders +_08110A44: + ldr r4, _08110A7C @ =0x02000000 + movs r0, 0x89 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0 + strh r0, [r1] + ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144 + ldrb r2, [r0, 0x13] + cmp r2, 0 + beq _08110A84 + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x11 + bl sub_8134538 + ldrb r0, [r4, 0x10] + ldrb r1, [r4, 0x11] + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + strh r0, [r4, 0x12] + movs r3, 0x88 + lsls r3, 1 + adds r1, r4, r3 + movs r0, 0x1 + strh r0, [r1] + b _08110A8C + .align 2, 0 +_08110A7C: .4byte 0x02000000 +_08110A80: .4byte gSaveBlock1 + 0x3144 +_08110A84: + movs r1, 0x88 + lsls r1, 1 + adds r0, r4, r1 + strh r2, [r0] +_08110A8C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8110908 + + thumb_func_start sub_8110A98 +sub_8110A98: @ 8110A98 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r5, _08110AE0 @ =0x02000000 + movs r0, 0x88 + lsls r0, 1 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x3F + bhi _08110AD8 + lsls r0, 2 + adds r0, r5 + strb r2, [r0, 0x10] + ldrh r0, [r4] + lsls r0, 2 + adds r0, r5 + strb r1, [r0, 0x11] + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + bl sub_80FBA04 + ldrh r1, [r4] + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x12] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_08110AD8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08110AE0: .4byte 0x02000000 + thumb_func_end sub_8110A98 + + thumb_func_start sub_8110AE4 +sub_8110AE4: @ 8110AE4 + push {r4-r6,lr} + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08110B9C @ =0x02000000 + movs r3, 0x89 + lsls r3, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0x1F + bhi _08110B96 + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + adds r6, r0, 0 + ldrb r0, [r6, 0x14] + cmp r0, 0x57 + bhi _08110B96 + movs r4, 0 + ldr r1, _08110BA0 @ =gUnknown_083F857A + ldrh r0, [r1] + cmp r0, 0x58 + beq _08110B42 + adds r5, r1, 0 +_08110B16: + lsls r2, r4, 2 + adds r1, r2, r5 + ldrb r0, [r6, 0x14] + ldrh r1, [r1] + cmp r0, r1 + bne _08110B32 + adds r0, r5, 0x2 + adds r0, r2, r0 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08110B96 +_08110B32: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 2 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0x58 + bne _08110B16 +_08110B42: + movs r4, 0 + ldr r0, _08110B9C @ =0x02000000 + movs r1, 0x89 + lsls r1, 1 + adds r2, r0, r1 + ldrh r3, [r2] + adds r1, r0, 0 + cmp r4, r3 + bcs _08110B76 + movs r0, 0xC4 + lsls r0, 3 + adds r5, r1, r0 + ldrh r0, [r5] + ldrb r2, [r6, 0x14] + cmp r0, r2 + beq _08110B76 +_08110B62: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r3 + bcs _08110B76 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r2 + bne _08110B62 +_08110B76: + movs r3, 0x89 + lsls r3, 1 + adds r2, r1, r3 + ldrh r0, [r2] + cmp r4, r0 + bne _08110B96 + lsls r0, r4, 1 + movs r3, 0xC4 + lsls r3, 3 + adds r1, r3 + adds r0, r1 + ldrb r1, [r6, 0x14] + strh r1, [r0] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_08110B96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08110B9C: .4byte 0x02000000 +_08110BA0: .4byte gUnknown_083F857A + thumb_func_end sub_8110AE4 + + thumb_func_start sub_8110BA4 +sub_8110BA4: @ 8110BA4 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r6, r4, 0 + ldr r0, [r5, 0x4] + adds r1, r4, 0 + movs r2, 0xC + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0x8] + adds r1, r4, 0 + movs r2, 0x5 + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0x10] + adds r1, r4, 0 + movs r2, 0xC + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0xC] + adds r1, r6, 0 + movs r2, 0x5 + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + movs r0, 0 + b _08110BF4 +_08110BF2: + movs r0, 0x1 +_08110BF4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8110BA4 + + thumb_func_start sub_8110BFC +sub_8110BFC: @ 8110BFC + push {r4,lr} + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r0, 0 + beq _08110C2A + movs r3, 0 + cmp r3, r2 + bcs _08110C2A + ldr r1, [r0, 0x4] +_08110C12: + lsls r0, r3, 2 + adds r0, r1 + ldrh r0, [r0, 0x2] + cmp r0, r4 + bne _08110C20 + movs r0, 0x1 + b _08110C2C +_08110C20: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r2 + bcc _08110C12 +_08110C2A: + movs r0, 0 +_08110C2C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8110BFC + + thumb_func_start sub_8110C34 +sub_8110C34: @ 8110C34 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r1, _08110E5C @ =gUnknown_02039260 + movs r0, 0 + strh r0, [r1] + mov r9, r1 + ldr r0, _08110E60 @ =0x02000000 + mov r8, r0 + ldr r1, _08110E64 @ =gUnknown_02039262 + mov r12, r1 + mov r1, r9 + movs r4, 0x8B + lsls r4, 1 + add r4, r8 + ldr r3, _08110E68 @ =0x0000027f + movs r2, 0 +_08110C5C: + ldrh r0, [r1] + lsls r0, 1 + adds r0, r4 + strh r2, [r0] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r3 + bls _08110C5C + movs r0, 0 + mov r3, r9 + strh r0, [r3] + movs r1, 0x88 + lsls r1, 1 + add r1, r8 + ldrh r0, [r1] + cmp r0, 0 + beq _08110D04 + ldr r4, _08110E6C @ =gUnknown_02039266 + movs r2, 0 + ldr r5, _08110E64 @ =gUnknown_02039262 + mov r0, r8 + str r0, [sp, 0x8] + movs r1, 0x8B + lsls r1, 1 + add r1, r8 + mov r10, r1 + ldr r6, _08110E70 @ =gUnknown_02039264 + mov r7, r9 +_08110C9A: + strh r2, [r4] + ldr r3, _08110E70 @ =gUnknown_02039264 + strh r2, [r3] +_08110CA0: + mov r0, r12 + strh r2, [r0] +_08110CA4: + ldrh r0, [r5] + ldrh r1, [r6] + str r2, [sp] + bl sub_80FB9A8 + ldrh r1, [r7] + lsls r1, 2 + ldr r3, [sp, 0x8] + adds r1, r3 + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp] + ldrh r1, [r1, 0x12] + cmp r0, r1 + bne _08110CCC + ldrh r0, [r4] + lsls r0, 1 + add r0, r10 + ldr r1, _08110E74 @ =0x0000ffff + strh r1, [r0] +_08110CCC: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1F + bls _08110CA4 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08110E64 @ =gUnknown_02039262 + mov r12, r1 + cmp r0, 0x13 + bls _08110CA0 + ldrh r0, [r7] + adds r0, 0x1 + strh r0, [r7] + lsls r0, 16 + lsrs r0, 16 + ldr r3, _08110E78 @ =0x02000110 + ldrh r3, [r3] + cmp r0, r3 + bcc _08110C9A +_08110D04: + movs r0, 0 + ldr r1, _08110E6C @ =gUnknown_02039266 + strh r0, [r1] + ldr r3, _08110E70 @ =gUnknown_02039264 + strh r0, [r3] + ldr r6, _08110E64 @ =gUnknown_02039262 + mov r10, r0 + adds r3, r1, 0 + ldr r5, _08110E7C @ =0x02000116 + ldr r4, _08110E74 @ =0x0000ffff + ldr r7, _08110E70 @ =gUnknown_02039264 +_08110D1A: + mov r0, r10 + strh r0, [r6] +_08110D1E: + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r4 + bne _08110E10 + ldrh r0, [r6] + cmp r0, 0 + beq _08110D42 + subs r0, r1, 0x1 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D42 + movs r0, 0x2 + orrs r0, r1 + strh r0, [r2] +_08110D42: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110D5C + ldrh r0, [r3] + adds r0, 0x1 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D5C + movs r0, 0x1 + orrs r0, r1 + strh r0, [r2] +_08110D5C: + ldrh r0, [r7] + cmp r0, 0 + beq _08110D76 + ldrh r0, [r3] + subs r0, 0x20 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D76 + movs r0, 0x8 + orrs r0, r1 + strh r0, [r2] +_08110D76: + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110D90 + ldrh r0, [r3] + adds r0, 0x20 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D90 + movs r0, 0x4 + orrs r0, r1 + strh r0, [r2] +_08110D90: + ldrh r0, [r6] + cmp r0, 0 + beq _08110DB0 + ldrh r0, [r7] + cmp r0, 0 + beq _08110DB0 + ldrh r0, [r3] + subs r0, 0x21 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DB0 + movs r0, 0x10 + orrs r0, r1 + strh r0, [r2] +_08110DB0: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110DD0 + ldrh r0, [r7] + cmp r0, 0 + beq _08110DD0 + ldrh r0, [r3] + subs r0, 0x1F + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DD0 + movs r0, 0x40 + orrs r0, r1 + strh r0, [r2] +_08110DD0: + ldrh r0, [r6] + cmp r0, 0 + beq _08110DF0 + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110DF0 + ldrh r0, [r3] + adds r0, 0x1F + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DF0 + movs r0, 0x20 + orrs r0, r1 + strh r0, [r2] +_08110DF0: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110E10 + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110E10 + ldrh r0, [r3] + adds r0, 0x21 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110E10 + movs r0, 0x80 + orrs r0, r1 + strh r0, [r2] +_08110E10: + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1F + bhi _08110E26 + b _08110D1E +_08110E26: + ldrh r0, [r7] + adds r0, 0x1 + strh r0, [r7] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x13 + bhi _08110E36 + b _08110D1A +_08110E36: + movs r0, 0 + mov r1, r9 + strh r0, [r1] +_08110E3C: + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + movs r4, 0x8B + lsls r4, 1 + add r4, r8 + adds r3, r0, r4 + ldrh r2, [r3] + adds r1, r2, 0 + ldr r0, _08110E74 @ =0x0000ffff + cmp r1, r0 + bne _08110E80 + movs r0, 0x10 + strh r0, [r3] + b _0811105E + .align 2, 0 +_08110E5C: .4byte gUnknown_02039260 +_08110E60: .4byte 0x02000000 +_08110E64: .4byte gUnknown_02039262 +_08110E68: .4byte 0x0000027f +_08110E6C: .4byte gUnknown_02039266 +_08110E70: .4byte gUnknown_02039264 +_08110E74: .4byte 0x0000ffff +_08110E78: .4byte 0x02000110 +_08110E7C: .4byte 0x02000116 +_08110E80: + cmp r1, 0 + bne _08110E86 + b _0811105E +_08110E86: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _08110E94 + ldr r0, _08110F28 @ =0x0000ffcf + ands r0, r2 + strh r0, [r3] +_08110E94: + mov r1, r9 + ldrh r0, [r1] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08110EAC + ldr r0, _08110F2C @ =0x0000ff3f + ands r0, r1 + strh r0, [r2] +_08110EAC: + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08110EC4 + ldr r0, _08110F30 @ =0x0000ffaf + ands r0, r1 + strh r0, [r2] +_08110EC4: + mov r1, r9 + ldrh r0, [r1] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08110EDC + ldr r0, _08110F34 @ =0x0000ff5f + ands r0, r1 + strh r0, [r2] +_08110EDC: + ldr r6, _08110F38 @ =gUnknown_02039268 + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + adds r0, r4 + ldrh r1, [r0] + movs r5, 0xF + adds r0, r5, 0 + ands r0, r1 + strh r0, [r6] + ldr r2, _08110F3C @ =gUnknown_0203926A + ldrh r0, [r3] + lsls r0, 1 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0xF0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r3] + adds r3, r2, 0 + cmp r0, 0 + bne _08110F0A + b _0811105E +_08110F0A: + lsls r0, r1, 1 + adds r0, r4 + ldrh r2, [r0] + adds r1, r5, 0 + ands r1, r2 + strh r1, [r0] + ldrh r0, [r6] + cmp r0, 0xA + bls _08110F1E + b _0811105E +_08110F1E: + lsls r0, 2 + ldr r1, _08110F40 @ =_08110F44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08110F28: .4byte 0x0000ffcf +_08110F2C: .4byte 0x0000ff3f +_08110F30: .4byte 0x0000ffaf +_08110F34: .4byte 0x0000ff5f +_08110F38: .4byte gUnknown_02039268 +_08110F3C: .4byte gUnknown_0203926A +_08110F40: .4byte _08110F44 + .align 2, 0 +_08110F44: + .4byte _08110F70 + .4byte _08110FAC + .4byte _08110F8E + .4byte _0811105E + .4byte _08111002 + .4byte _08111036 + .4byte _08111036 + .4byte _0811105E + .4byte _08110FCE + .4byte _0811104A + .4byte _0811104A +_08110F70: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r0, r9 + ldrh r2, [r0] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x10 + lsrs r1, 20 + b _08110FC8 +_08110F8E: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r3, r9 + ldrh r2, [r3] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1E + lsrs r1, 20 + b _08110FC8 +_08110FAC: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r0, r9 + ldrh r2, [r0] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x20 + lsrs r1, 22 +_08110FC8: + adds r0, r1 + strh r0, [r2] + b _0811105E +_08110FCE: + ldrh r2, [r3] + cmp r2, 0 + beq _0811105E + movs r0, 0x80 + ands r0, r2 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + lsrs r3, r0, 31 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08110FEC + movs r0, 0x2 + orrs r3, r0 +_08110FEC: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x20 + adds r0, r3 + b _0811105C +_08111002: + ldrh r2, [r3] + cmp r2, 0 + beq _0811105E + movs r0, 0x40 + ands r0, r2 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + lsrs r3, r0, 31 + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _08111020 + movs r0, 0x2 + orrs r3, r0 +_08111020: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x21 + adds r0, r3 + b _0811105C +_08111036: + mov r3, r9 + ldrh r1, [r3] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x27 + b _0811105C +_0811104A: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x25 +_0811105C: + strh r0, [r1] +_0811105E: + mov r3, r9 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + ldr r1, _08111080 @ =0x027f0000 + cmp r0, r1 + bhi _08111070 + b _08110E3C +_08111070: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111080: .4byte 0x027f0000 + thumb_func_end sub_8110C34 + + thumb_func_start sub_8111084 +sub_8111084: @ 8111084 + push {lr} + ldr r0, _081110AC @ =0x02000000 + movs r2, 0x89 + lsls r2, 1 + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r0, 0 + cmp r1, 0 + beq _081110B4 + movs r3, 0x88 + lsls r3, 1 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _081110B4 + ldr r0, _081110B0 @ =0x0000061e + adds r1, r2, r0 + movs r0, 0x1 + b _081110BA + .align 2, 0 +_081110AC: .4byte 0x02000000 +_081110B0: .4byte 0x0000061e +_081110B4: + ldr r3, _081110FC @ =0x0000061e + adds r1, r2, r3 + movs r0, 0 +_081110BA: + strb r0, [r1] + ldr r1, _08111100 @ =0x00000616 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0xC3 + lsls r3, 3 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _08111104 @ =0x0000061c + adds r1, r2, r0 + movs r0, 0x40 + strh r0, [r1] + adds r3, 0x5 + adds r1, r2, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08111108 @ =REG_BLDCNT + ldr r2, _0811110C @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + bl sub_8111110 + pop {r0} + bx r0 + .align 2, 0 +_081110FC: .4byte 0x0000061e +_08111100: .4byte 0x00000616 +_08111104: .4byte 0x0000061c +_08111108: .4byte REG_BLDCNT +_0811110C: .4byte 0x00003f41 + thumb_func_end sub_8111084 + + thumb_func_start sub_8111110 +sub_8111110: @ 8111110 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0811114C @ =0x02000000 + ldr r2, _08111150 @ =0x0000061e + adds r1, r0, r2 + ldrb r1, [r1] + adds r5, r0, 0 + cmp r1, 0 + bne _081111DE + ldr r3, _08111154 @ =0x00000616 + adds r1, r5, r3 + ldrh r0, [r1] + cmp r0, 0 + bne _081111D8 + movs r1, 0xC3 + lsls r1, 3 + adds r0, r5, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08111158 + subs r2, 0x4 + adds r0, r5, r2 + b _0811115C + .align 2, 0 +_0811114C: .4byte 0x02000000 +_08111150: .4byte 0x0000061e +_08111154: .4byte 0x00000616 +_08111158: + ldr r3, _081111C0 @ =0x0000061c + adds r0, r5, r3 +_0811115C: + ldrh r1, [r0] + adds r1, 0x4 + movs r2, 0x7F + ands r1, r2 + strh r1, [r0] + ldr r2, _081111C4 @ =gSineTable + ldr r1, _081111C8 @ =0x0000061a + adds r0, r5, r1 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 20 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _081111C0 @ =0x0000061c + adds r0, r5, r3 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + lsls r0, 16 + ldr r2, _081111CC @ =REG_BLDALPHA + lsrs r0, 8 + orrs r1, r0 + strh r1, [r2] + ldr r1, _081111D0 @ =0x00000616 + adds r0, r5, r1 + movs r2, 0 + strh r2, [r0] + subs r3, 0x4 + adds r1, r5, r3 + ldrh r0, [r1] + cmp r0, 0x40 + bne _0811126E + strh r2, [r1] + movs r1, 0x89 + lsls r1, 1 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0811126E + ldr r2, _081111D4 @ =0x0000061e + adds r1, r5, r2 + movs r0, 0x1 + b _0811126C + .align 2, 0 +_081111C0: .4byte 0x0000061c +_081111C4: .4byte gSineTable +_081111C8: .4byte 0x0000061a +_081111CC: .4byte REG_BLDALPHA +_081111D0: .4byte 0x00000616 +_081111D4: .4byte 0x0000061e +_081111D8: + subs r0, 0x1 + strh r0, [r1] + b _0811126E +_081111DE: + ldr r3, _0811127C @ =0x00000616 + adds r1, r5, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC + bls _0811126E + movs r0, 0 + strh r0, [r1] + ldr r0, _08111280 @ =0x0000061f + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r4, 0 + movs r2, 0x89 + lsls r2, 1 + adds r0, r5, r2 + ldrh r3, [r0] + cmp r4, r3 + bcs _0811124C + movs r2, 0xCC + lsls r2, 3 + adds r2, r5 + mov r9, r2 + mov r8, r1 + movs r3, 0x1 + mov r12, r3 + adds r6, r0, 0 + movs r7, 0x5 + negs r7, r7 +_08111220: + lsls r0, r4, 2 + add r0, r9 + ldr r3, [r0] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + adds r3, 0x3E + ands r1, r0 + mov r2, r12 + ands r1, r2 + lsls r1, 2 + ldrb r2, [r3] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r3, [r6] + cmp r4, r3 + bcc _08111220 +_0811124C: + ldr r0, _08111280 @ =0x0000061f + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0x4 + bls _0811126E + movs r0, 0x1 + strb r0, [r1] + movs r1, 0x88 + lsls r1, 1 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0811126E + ldr r2, _08111284 @ =0x0000061e + adds r1, r5, r2 + movs r0, 0 +_0811126C: + strb r0, [r1] +_0811126E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811127C: .4byte 0x00000616 +_08111280: .4byte 0x0000061f +_08111284: .4byte 0x0000061e + thumb_func_end sub_8111110 + + thumb_func_start sub_8111288 +sub_8111288: @ 8111288 + push {lr} + ldr r1, _08111298 @ =0x02000000 + ldrh r0, [r1, 0xC] + cmp r0, 0 + beq _0811129C + cmp r0, 0x1 + beq _081112A2 + b _081112B2 + .align 2, 0 +_08111298: .4byte 0x02000000 +_0811129C: + movs r0, 0x1 + strh r0, [r1, 0xC] + b _081112B2 +_081112A2: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _081112B2 + ldr r0, _081112B8 @ =sub_81112BC + bl sub_8110814 +_081112B2: + pop {r0} + bx r0 + .align 2, 0 +_081112B8: .4byte sub_81112BC + thumb_func_end sub_8111288 + + thumb_func_start sub_81112BC +sub_81112BC: @ 81112BC + push {lr} + ldr r0, _081112DC @ =0x02000000 + ldrh r0, [r0, 0xC] + cmp r0, 0 + bne _08111308 + ldr r0, _081112E0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081112E8 + ldr r0, _081112E4 @ =sub_8111314 + bl sub_8110814 + b _08111308 + .align 2, 0 +_081112DC: .4byte 0x02000000 +_081112E0: .4byte gMain +_081112E4: .4byte sub_8111314 +_081112E8: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08111302 + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08111308 + ldr r0, _0811130C @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _08111308 +_08111302: + ldr r0, _08111310 @ =sub_8111360 + bl sub_8110814 +_08111308: + pop {r0} + bx r0 + .align 2, 0 +_0811130C: .4byte gSaveBlock2 +_08111310: .4byte sub_8111360 + thumb_func_end sub_81112BC + + thumb_func_start sub_8111314 +sub_8111314: @ 8111314 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08111328 @ =0x02000000 + ldrh r1, [r4, 0xC] + cmp r1, 0 + beq _0811132C + cmp r1, 0x1 + beq _08111344 + b _08111358 + .align 2, 0 +_08111328: .4byte 0x02000000 +_0811132C: + movs r0, 0x15 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _08111358 +_08111344: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08111358 + bl sub_80FAB10 + ldr r0, [r4, 0x4] + bl SetMainCallback2 +_08111358: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8111314 + + thumb_func_start sub_8111360 +sub_8111360: @ 8111360 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08111374 @ =0x02000000 + ldrh r1, [r4, 0xC] + cmp r1, 0 + beq _08111378 + cmp r1, 0x1 + beq _08111390 + b _081113A4 + .align 2, 0 +_08111374: .4byte 0x02000000 +_08111378: + movs r0, 0x15 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _081113A4 +_08111390: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _081113A4 + bl sub_80FAB10 + ldr r0, [r4, 0x8] + bl SetMainCallback2 +_081113A4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8111360 + + thumb_func_start sub_81113AC +sub_81113AC: @ 81113AC + push {r4,lr} + ldr r2, _081113DC @ =0x02000000 + movs r3, 0 + movs r4, 0 + strh r0, [r2, 0xE] + ldr r0, _081113E0 @ =0x000006e4 + adds r2, r0 + str r1, [r2] + strb r3, [r1] + ldr r0, _081113E4 @ =sub_81113EC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081113E8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081113DC: .4byte 0x02000000 +_081113E0: .4byte 0x000006e4 +_081113E4: .4byte sub_81113EC +_081113E8: .4byte gTasks + thumb_func_end sub_81113AC + + thumb_func_start sub_81113EC +sub_81113EC: @ 81113EC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08111414 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0xB + bls _0811140A + b _08111540 +_0811140A: + lsls r0, 2 + ldr r1, _08111418 @ =_0811141C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111414: .4byte gTasks +_08111418: .4byte _0811141C + .align 2, 0 +_0811141C: + .4byte _0811144C + .4byte _08111488 + .4byte _08111496 + .4byte _081114B8 + .4byte _081114BE + .4byte _081114CA + .4byte _081114DE + .4byte _081114E4 + .4byte _081114EA + .4byte _081114F0 + .4byte _08111502 + .4byte _08111528 +_0811144C: + movs r1, 0x80 + lsls r1, 19 + movs r3, 0xC4 + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _08111478 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + ldr r2, _0811147C @ =REG_BG0VOFS + ldr r3, _08111480 @ =0x0000fff8 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _08111484 @ =REG_BG2VOFS + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _08111540 + .align 2, 0 +_08111478: .4byte REG_BG0HOFS +_0811147C: .4byte REG_BG0VOFS +_08111480: .4byte 0x0000fff8 +_08111484: .4byte REG_BG2VOFS +_08111488: + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + b _08111540 +_08111496: + ldr r4, _081114B4 @ =0x020006e8 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0x88 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + bl StringFill + b _08111540 + .align 2, 0 +_081114B4: .4byte 0x020006e8 +_081114B8: + bl sub_8110824 + b _08111540 +_081114BE: + bl sub_8110838 + lsls r0, 24 + cmp r0, 0 + bne _08111550 + b _08111540 +_081114CA: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + movs r1, 0x8 + negs r1, r1 + movs r0, 0 + bl sub_80FB2A4 + b _08111540 +_081114DE: + bl sub_8111658 + b _08111540 +_081114E4: + bl sub_81117AC + b _08111540 +_081114EA: + bl sub_81117E4 + b _08111540 +_081114F0: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08111540 +_08111502: + ldr r1, _0811151C @ =REG_BLDCNT + ldr r2, _08111520 @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8111084 + movs r1, 0x80 + lsls r1, 19 + ldr r3, _08111524 @ =0x00007741 + adds r0, r3, 0 + strh r0, [r1] + b _08111540 + .align 2, 0 +_0811151C: .4byte REG_BLDCNT +_08111520: .4byte 0x00003f41 +_08111524: .4byte 0x00007741 +_08111528: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldr r1, _0811153C @ =sub_811155C + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x8] + b _08111550 + .align 2, 0 +_0811153C: .4byte sub_811155C +_08111540: + ldr r0, _08111558 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08111550: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08111558: .4byte gTasks + thumb_func_end sub_81113EC + + thumb_func_start sub_811155C +sub_811155C: @ 811155C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8111110 + ldr r1, _08111584 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x1 + beq _081115B4 + cmp r1, 0x1 + bgt _08111588 + cmp r1, 0 + beq _0811159E + b _08111590 + .align 2, 0 +_08111584: .4byte gTasks +_08111588: + cmp r1, 0x2 + beq _081115F8 + cmp r1, 0x3 + beq _0811160A +_08111590: + ldr r0, _081115AC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] +_0811159E: + ldr r0, _081115B0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811164C + b _0811163C + .align 2, 0 +_081115AC: .4byte gTasks +_081115B0: .4byte gPaletteFade +_081115B4: + ldr r0, _081115CC @ =gMain + ldrh r2, [r0, 0x2E] + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _081115D0 + strh r1, [r5, 0xA] + movs r0, 0x3 + bl PlaySE + b _0811163C + .align 2, 0 +_081115CC: .4byte gMain +_081115D0: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _081115EA + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0811164C + ldr r0, _081115F4 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0811164C +_081115EA: + strh r3, [r5, 0xA] + movs r0, 0x6D + bl PlaySE + b _0811163C + .align 2, 0 +_081115F4: .4byte gSaveBlock2 +_081115F8: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0811163C +_0811160A: + ldr r0, _08111630 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811164C + bl sub_8111738 + ldr r0, _08111634 @ =0x02000000 + ldr r1, _08111638 @ =0x000006e4 + adds r0, r1 + ldr r1, [r0] + ldrh r0, [r5, 0xA] + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask + b _0811164C + .align 2, 0 +_08111630: .4byte gPaletteFade +_08111634: .4byte 0x02000000 +_08111638: .4byte 0x000006e4 +_0811163C: + ldr r0, _08111654 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0811164C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08111654: .4byte gTasks + thumb_func_end sub_811155C + + thumb_func_start sub_8111658 +sub_8111658: @ 8111658 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08111720 @ =gUnknown_083F858C + bl LoadSpriteSheet + ldr r0, _08111724 @ =gUnknown_083F8594 + bl LoadSpritePalette + movs r5, 0 + movs r1, 0 + ldr r0, _08111728 @ =0x02000000 + movs r3, 0x89 + lsls r3, 1 + adds r2, r0, r3 + ldrh r7, [r2] + cmp r5, r7 + bge _0811170C + adds r6, r0, 0 + mov r8, r2 +_08111680: + lsls r0, r1, 16 + asrs r4, r0, 16 + lsls r1, r4, 1 + movs r2, 0xC4 + lsls r2, 3 + adds r0, r6, r2 + adds r1, r0 + ldr r2, _0811172C @ =gRegionMapLocations + movs r3, 0 + ldrsh r0, [r1, r3] + lsls r0, 3 + adds r0, r2 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 3 + adds r1, 0x4 + ldrb r2, [r0, 0x1] + lsls r2, 19 + ldrb r3, [r0, 0x2] + subs r3, 0x1 + lsls r3, 2 + ldrb r0, [r0, 0x3] + subs r0, 0x1 + lsls r0, 2 + movs r7, 0xE0 + lsls r7, 13 + adds r2, r7 + asrs r2, 16 + adds r1, r3 + adds r2, r0 + ldr r0, _08111730 @ =gSpriteTemplate_83F85A4 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _081116FC + ldr r0, _08111734 @ =gSprites + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + adds r1, r5, 0 + lsls r0, r1, 16 + movs r3, 0x80 + lsls r3, 9 + adds r0, r3 + lsrs r5, r0, 16 + lsls r1, 16 + asrs r1, 14 + movs r7, 0xCC + lsls r7, 3 + adds r0, r6, r7 + adds r1, r0 + str r2, [r1] +_081116FC: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + mov r2, r8 + ldrh r2, [r2] + cmp r0, r2 + blt _08111680 +_0811170C: + ldr r0, _08111728 @ =0x02000000 + movs r3, 0xDC + lsls r3, 3 + adds r0, r3 + strh r5, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111720: .4byte gUnknown_083F858C +_08111724: .4byte gUnknown_083F8594 +_08111728: .4byte 0x02000000 +_0811172C: .4byte gRegionMapLocations +_08111730: .4byte gSpriteTemplate_83F85A4 +_08111734: .4byte gSprites + thumb_func_end sub_8111658 + + thumb_func_start sub_8111738 +sub_8111738: @ 8111738 + push {r4-r6,lr} + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r0, 0x2 + bl FreeSpritePaletteByTag + movs r4, 0 + ldr r1, _081117A4 @ =0x02000000 + movs r2, 0xDC + lsls r2, 3 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r4, r2 + bcs _08111776 + adds r6, r1, 0 + adds r5, r0, 0 +_0811175A: + lsls r0, r4, 2 + movs r2, 0xCC + lsls r2, 3 + adds r1, r6, r2 + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r0, [r5] + cmp r4, r0 + bcc _0811175A +_08111776: + movs r0, 0x3 + bl FreeSpriteTilesByTag + movs r0, 0x3 + bl FreeSpritePaletteByTag + movs r4, 0 + ldr r5, _081117A8 @ =0x02000fa8 +_08111786: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, 0 + beq _08111794 + bl DestroySprite +_08111794: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _08111786 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081117A4: .4byte 0x02000000 +_081117A8: .4byte 0x02000fa8 + thumb_func_end sub_8111738 + + thumb_func_start sub_81117AC +sub_81117AC: @ 81117AC + push {lr} + sub sp, 0x8 + ldr r0, _081117D4 @ =gUnknown_083F8664 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _081117D8 @ =gAreaUnknownTiles + ldr r1, _081117DC @ =0x02000fb4 + bl LZ77UnCompWram + mov r0, sp + bl LoadSpriteSheet + ldr r0, _081117E0 @ =gUnknown_083F865C + bl LoadSpritePalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_081117D4: .4byte gUnknown_083F8664 +_081117D8: .4byte gAreaUnknownTiles +_081117DC: .4byte 0x02000fb4 +_081117E0: .4byte gUnknown_083F865C + thumb_func_end sub_81117AC + + thumb_func_start sub_81117E4 +sub_81117E4: @ 81117E4 + push {r4-r7,lr} + ldr r1, _08111810 @ =0x02000000 + movs r2, 0x88 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, 0 + beq _08111818 + movs r4, 0 + ldr r7, _08111814 @ =0x00000fa8 + adds r2, r1, r7 + movs r1, 0 +_081117FC: + lsls r0, r4, 2 + adds r0, r2 + str r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _081117FC + b _0811188E + .align 2, 0 +_08111810: .4byte 0x02000000 +_08111814: .4byte 0x00000fa8 +_08111818: + movs r4, 0 + ldr r6, _08111868 @ =gSprites + ldr r0, _0811186C @ =0x00000fa8 + adds r5, r1, r0 +_08111820: + lsls r1, r4, 21 + movs r2, 0xA0 + lsls r2, 16 + adds r1, r2 + asrs r1, 16 + ldr r0, _08111870 @ =gSpriteTemplate_83F8674 + movs r2, 0x8C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0811187C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrh r3, [r2, 0x4] + lsls r0, r3, 22 + lsrs r0, 22 + lsls r1, r4, 4 + adds r0, r1 + ldr r7, _08111874 @ =0x000003ff + adds r1, r7, 0 + ands r0, r1 + ldr r7, _08111878 @ =0xfffffc00 + adds r1, r7, 0 + ands r3, r1 + orrs r3, r0 + strh r3, [r2, 0x4] + lsls r0, r4, 2 + adds r0, r5 + str r2, [r0] + b _08111884 + .align 2, 0 +_08111868: .4byte gSprites +_0811186C: .4byte 0x00000fa8 +_08111870: .4byte gSpriteTemplate_83F8674 +_08111874: .4byte 0x000003ff +_08111878: .4byte 0xfffffc00 +_0811187C: + lsls r0, r4, 2 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_08111884: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _08111820 +_0811188E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81117E4 + + .align 2, 0 @ Don't pad with nop. |