.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_800C2D4 sub_800C2D4: @ 800C2D4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_800C2D4 thumb_func_start sub_800C2EC sub_800C2EC: @ 800C2EC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_800C2EC thumb_func_start sub_800C300 sub_800C300: @ 800C300 push {lr} movs r0, 0x1 bl sub_800C318 pop {r0} bx r0 thumb_func_end sub_800C300 thumb_func_start sub_800C30C sub_800C30C: @ 800C30C push {lr} movs r0, 0x1 bl sub_800C318 pop {r0} bx r0 thumb_func_end sub_800C30C thumb_func_start sub_800C318 sub_800C318: @ 800C318 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0xC movs r1, 0 bl SetGpuReg movs r0, 0xA movs r1, 0 bl SetGpuReg movs r0, 0x8 movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _0800C4A0 @ =0x040000d4 mov r0, sp str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800C4A4 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800C4A8 @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r5, [r0] str r0, [r1] ldr r0, _0800C4AC @ =0x05000002 str r0, [r1, 0x4] ldr r0, _0800C4B0 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes bl ResetPaletteFade movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0800C4B4 @ =gUnknown_8234690 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, _0800C4B8 @ =gUnknown_8234618 bl InitWindows bl DeactivateAllTextPrinters ldr r0, _0800C4BC @ =gUnknown_8234648 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0800C4C0 @ =gUnknown_8234668 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, _0800C4C4 @ =sub_800C2D4 bl SetMainCallback2 movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg ldr r0, _0800C4C8 @ =sub_800C4D0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0800C4CC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0xA] strh r4, [r1, 0x18] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0800C4A0: .4byte 0x040000d4 _0800C4A4: .4byte 0x8100c000 _0800C4A8: .4byte 0x85000100 _0800C4AC: .4byte 0x05000002 _0800C4B0: .4byte 0x810001ff _0800C4B4: .4byte gUnknown_8234690 _0800C4B8: .4byte gUnknown_8234618 _0800C4BC: .4byte gUnknown_8234648 _0800C4C0: .4byte gUnknown_8234668 _0800C4C4: .4byte sub_800C2D4 _0800C4C8: .4byte sub_800C4D0 _0800C4CC: .4byte gTasks thumb_func_end sub_800C318 thumb_func_start sub_800C4D0 sub_800C4D0: @ 800C4D0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0800C538 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0800C4E8 b _0800C626 _0800C4E8: movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C53C @ =gSaveFileStatus ldrh r4, [r0] cmp r4, 0x2 beq _0800C58C cmp r4, 0x2 bgt _0800C540 cmp r4, 0 beq _0800C5E8 cmp r4, 0x1 beq _0800C54A b _0800C5E8 .align 2, 0 _0800C538: .4byte gPaletteFade _0800C53C: .4byte gSaveFileStatus _0800C540: cmp r4, 0x4 beq _0800C60C cmp r4, 0xFF beq _0800C5B0 b _0800C5E8 _0800C54A: movs r0, 0 bl sub_800D044 bl sub_806E2BC cmp r0, 0x1 bne _0800C570 ldr r2, _0800C56C @ =gTasks lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] adds r1, r2, 0 adds r2, r3, 0 b _0800C57E .align 2, 0 _0800C56C: .4byte gTasks _0800C570: ldr r0, _0800C588 @ =gTasks lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r0 strh r4, [r1, 0x8] adds r1, r0, 0 _0800C57E: adds r0, r2, r5 lsls r0, 3 adds r0, r1 b _0800C5FC .align 2, 0 _0800C588: .4byte gTasks _0800C58C: movs r0, 0 bl sub_800D094 ldr r0, _0800C5A8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x8] ldr r1, _0800C5AC @ =gUnknown_8415C42 adds r0, r5, 0 bl sub_800C634 b _0800C626 .align 2, 0 _0800C5A8: .4byte gTasks _0800C5AC: .4byte gUnknown_8415C42 _0800C5B0: movs r0, 0 bl sub_800D094 ldr r1, _0800C5DC @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r6, 0x1 strh r6, [r4, 0x8] ldr r1, _0800C5E0 @ =gUnknown_8415BFF adds r0, r5, 0 bl sub_800C634 bl sub_806E2BC cmp r0, 0x1 bne _0800C5E4 movs r0, 0x2 strh r0, [r4, 0x8] b _0800C626 .align 2, 0 _0800C5DC: .4byte gTasks _0800C5E0: .4byte gUnknown_8415BFF _0800C5E4: strh r6, [r4, 0x8] b _0800C626 _0800C5E8: movs r0, 0 bl sub_800D044 ldr r1, _0800C604 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] _0800C5FC: ldr r1, _0800C608 @ =sub_800C704 str r1, [r0] b _0800C626 .align 2, 0 _0800C604: .4byte gTasks _0800C608: .4byte sub_800C704 _0800C60C: movs r0, 0 bl sub_800D094 ldr r0, _0800C62C @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x8] ldr r1, _0800C630 @ =gUnknown_8415C64 adds r0, r5, 0 bl sub_800C634 _0800C626: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C62C: .4byte gTasks _0800C630: .4byte gUnknown_8415C64 thumb_func_end sub_800C4D0 thumb_func_start sub_800C634 sub_800C634: @ 800C634 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 bl sub_800CDF8 ldr r1, _0800C678 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800C67C @ =sub_800C688 str r1, [r0] movs r0, 0x1 negs r0, r0 ldr r1, _0800C680 @ =0x0000ffff str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0 bl ShowBg ldr r0, _0800C684 @ =sub_800C2EC bl SetVBlankCallback add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0800C678: .4byte gTasks _0800C67C: .4byte sub_800C688 _0800C680: .4byte 0x0000ffff _0800C684: .4byte sub_800C2EC thumb_func_end sub_800C634 thumb_func_start sub_800C688 sub_800C688: @ 800C688 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C6E0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C6F8 bl RunTextPrinters movs r0, 0x4 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0800C6F8 ldr r0, _0800C6E4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800C6F8 movs r0, 0x4 bl ClearWindowTilemap ldr r0, _0800C6E8 @ =gUnknown_8234638 bl sub_800D1E8 movs r0, 0 bl sub_800D044 ldr r1, _0800C6EC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0800C6F4 ldr r0, _0800C6F0 @ =sub_800C704 b _0800C6F6 .align 2, 0 _0800C6E0: .4byte gPaletteFade _0800C6E4: .4byte gMain _0800C6E8: .4byte gUnknown_8234638 _0800C6EC: .4byte gTasks _0800C6F0: .4byte sub_800C704 _0800C6F4: ldr r0, _0800C700 @ =sub_800C7A0 _0800C6F6: str r0, [r1] _0800C6F8: pop {r4} pop {r0} bx r0 .align 2, 0 _0800C700: .4byte sub_800C7A0 thumb_func_end sub_800C688 thumb_func_start sub_800C704 sub_800C704: @ 800C704 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C764 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C774 movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C768 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0800C770 ldr r0, _0800C76C @ =sub_800CA94 b _0800C772 .align 2, 0 _0800C764: .4byte gPaletteFade _0800C768: .4byte gTasks _0800C76C: .4byte sub_800CA94 _0800C770: ldr r0, _0800C77C @ =sub_800C780 _0800C772: str r0, [r1] _0800C774: pop {r4} pop {r0} bx r0 .align 2, 0 _0800C77C: .4byte sub_800C780 thumb_func_end sub_800C704 thumb_func_start sub_800C780 sub_800C780: @ 800C780 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0800C79C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C798 adds r0, r2, 0 bl sub_800C7A0 _0800C798: pop {r0} bx r0 .align 2, 0 _0800C79C: .4byte gPaletteFade thumb_func_end sub_800C780 thumb_func_start sub_800C7A0 sub_800C7A0: @ 800C7A0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C7F4 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _0800C7FC ldr r1, _0800C7F8 @ =0x00007e04 b _0800C7FE .align 2, 0 _0800C7F4: .4byte gSaveBlock2Ptr _0800C7F8: .4byte 0x00007e04 _0800C7FC: ldr r1, _0800C85C @ =0x0000547f _0800C7FE: add r0, sp, 0xC strh r1, [r0] add r0, sp, 0xC movs r1, 0xF1 movs r2, 0x2 bl LoadPalette ldr r2, _0800C860 @ =gTasks lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r6, r0, r2 movs r2, 0x8 ldrsh r0, [r6, r2] mov r8, r1 cmp r0, 0x1 beq _0800C870 cmp r0, 0x1 ble _0800C828 cmp r0, 0x2 beq _0800C8F0 _0800C828: movs r0, 0 movs r1, 0xAA bl FillWindowPixelBuffer ldr r0, _0800C864 @ =gUnknown_8234688 str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, _0800C868 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print ldr r0, _0800C86C @ =gUnknown_8234618 bl sub_800D0B4 movs r0, 0 bl PutWindowTilemap movs r0, 0 b _0800C8D8 .align 2, 0 _0800C85C: .4byte 0x0000547f _0800C860: .4byte gTasks _0800C864: .4byte gUnknown_8234688 _0800C868: .4byte gUnknown_8415A6E _0800C86C: .4byte gUnknown_8234618 _0800C870: movs r0, 0x1 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0xAA bl FillWindowPixelBuffer ldr r5, _0800C8E0 @ =gUnknown_8234688 str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800C8E4 @ =gUnknown_8415A77 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C8E8 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print bl sub_800CE58 ldr r4, _0800C8EC @ =gUnknown_8234620 adds r0, r4, 0 bl sub_800D0B4 adds r4, 0x8 adds r0, r4, 0 bl sub_800D0B4 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 _0800C8D8: movs r1, 0x3 bl CopyWindowToVram b _0800C994 .align 2, 0 _0800C8E0: .4byte gUnknown_8234688 _0800C8E4: .4byte gUnknown_8415A77 _0800C8E8: .4byte gUnknown_8415A6E _0800C8EC: .4byte gUnknown_8234620 _0800C8F0: movs r0, 0x1 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0xAA bl FillWindowPixelBuffer ldr r5, _0800C9B0 @ =gUnknown_8234688 str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800C9B4 @ =gUnknown_8415A77 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9B8 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print movs r0, 0x1 strh r0, [r6, 0x1C] str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9BC @ =gUnknown_8415A97 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl box_print bl sub_800CE58 ldr r4, _0800C9C0 @ =gUnknown_8234620 adds r0, r4, 0 bl sub_800D0B4 adds r0, r4, 0 adds r0, 0x8 bl sub_800D0B4 adds r4, 0x10 adds r0, r4, 0 bl sub_800D0B4 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0x3 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram _0800C994: ldr r0, _0800C9C4 @ =gTasks mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldr r0, _0800C9C8 @ =sub_800C9CC str r0, [r1] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C9B0: .4byte gUnknown_8234688 _0800C9B4: .4byte gUnknown_8415A77 _0800C9B8: .4byte gUnknown_8415A6E _0800C9BC: .4byte gUnknown_8415A97 _0800C9C0: .4byte gUnknown_8234620 _0800C9C4: .4byte gTasks _0800C9C8: .4byte sub_800C9CC thumb_func_end sub_800C7A0 thumb_func_start sub_800C9CC sub_800C9CC: @ 800C9CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r5, 0x1 negs r5, r5 adds r0, r5, 0 bl CheckForSpaceForDma3Request lsls r0, 16 asrs r0, 16 cmp r0, r5 beq _0800CA10 ldr r1, _0800CA18 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CA1C @ =sub_800CA28 str r1, [r0] ldr r0, _0800CA20 @ =0x0000ffff str r0, [sp] adds r0, r5, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0 bl ShowBg ldr r0, _0800CA24 @ =sub_800C2EC bl SetVBlankCallback _0800CA10: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CA18: .4byte gTasks _0800CA1C: .4byte sub_800CA28 _0800CA20: .4byte 0x0000ffff _0800CA24: .4byte sub_800C2EC thumb_func_end sub_800C9CC thumb_func_start sub_800CA28 sub_800CA28: @ 800CA28 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CA4C @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0xA] bl sub_800CC94 ldr r0, _0800CA50 @ =sub_800CA54 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA4C: .4byte gTasks _0800CA50: .4byte sub_800CA54 thumb_func_end sub_800CA28 thumb_func_start sub_800CA54 sub_800CA54: @ 800CA54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CA88 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CA80 adds r0, r4, 0 bl sub_800CCF8 lsls r0, 24 cmp r0, 0 beq _0800CA80 ldr r0, _0800CA8C @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800CA90 @ =sub_800CA28 str r0, [r1] _0800CA80: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA88: .4byte gPaletteFade _0800CA8C: .4byte gTasks _0800CA90: .4byte sub_800CA28 thumb_func_end sub_800CA54 thumb_func_start sub_800CA94 sub_800CA94: @ 800CA94 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0800CAC4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CB84 ldr r1, _0800CAC8 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0800CACC cmp r0, 0x1 ble _0800CAEE cmp r0, 0x2 beq _0800CADA b _0800CAEE .align 2, 0 _0800CAC4: .4byte gPaletteFade _0800CAC8: .4byte gTasks _0800CACC: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0800CAEA cmp r0, 0x1 bne _0800CAEA b _0800CAEE _0800CADA: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0800CAEE cmp r0, 0x1 ble _0800CAEA cmp r0, 0x2 beq _0800CAF2 _0800CAEA: movs r0, 0x1 b _0800CB22 _0800CAEE: movs r0, 0 b _0800CB22 _0800CAF2: bl sub_8009480 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0800CB20 movs r0, 0 bl sub_800D094 ldr r0, _0800CB1C @ =sub_800CB90 str r0, [r4] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0800CB84 .align 2, 0 _0800CB1C: .4byte sub_800CB90 _0800CB20: movs r0, 0x2 _0800CB22: cmp r0, 0x1 beq _0800CB48 cmp r0, 0x1 ble _0800CB2E cmp r0, 0x2 beq _0800CB70 _0800CB2E: ldr r1, _0800CB44 @ =gUnknown_2031DE0 movs r0, 0 strb r0, [r1] bl FreeAllWindowBuffers adds r0, r6, 0 bl DestroyTask bl sub_812EB2C b _0800CB84 .align 2, 0 _0800CB44: .4byte gUnknown_2031DE0 _0800CB48: ldr r0, _0800CB64 @ =gPlttBufferUnfaded movs r2, 0 movs r1, 0 strh r1, [r0] ldr r0, _0800CB68 @ =gPlttBufferFaded strh r1, [r0] ldr r0, _0800CB6C @ =gUnknown_2031DE0 strb r2, [r0] bl FreeAllWindowBuffers adds r0, r6, 0 bl sub_8110F14 b _0800CB84 .align 2, 0 _0800CB64: .4byte gPlttBufferUnfaded _0800CB68: .4byte gPlttBufferFaded _0800CB6C: .4byte gUnknown_2031DE0 _0800CB70: ldr r0, _0800CB8C @ =sub_81422AC bl SetMainCallback2 bl sub_812B478 bl FreeAllWindowBuffers adds r0, r6, 0 bl DestroyTask _0800CB84: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CB8C: .4byte sub_81422AC thumb_func_end sub_800CA94 thumb_func_start sub_800CB90 sub_800CB90: @ 800CB90 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800CBB4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x1A ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0800CC0C cmp r1, 0x1 bgt _0800CBB8 cmp r1, 0 beq _0800CBC2 b _0800CC58 .align 2, 0 _0800CBB4: .4byte gTasks _0800CBB8: cmp r1, 0x2 beq _0800CC1C cmp r1, 0x3 beq _0800CC34 b _0800CC58 _0800CBC2: movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0800CBEC ldr r0, _0800CBE8 @ =gUnknown_8415AA4 bl sub_800CDF8 b _0800CBF2 .align 2, 0 _0800CBE8: .4byte gUnknown_8415AA4 _0800CBEC: ldr r0, _0800CC04 @ =gUnknown_8415ACB bl sub_800CDF8 _0800CBF2: ldr r0, _0800CC08 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] adds r0, 0x1 strh r0, [r1, 0x1A] b _0800CC58 .align 2, 0 _0800CC04: .4byte gUnknown_8415ACB _0800CC08: .4byte gTasks _0800CC0C: ldr r0, _0800CC18 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 b _0800CC28 .align 2, 0 _0800CC18: .4byte gPaletteFade _0800CC1C: bl RunTextPrinters movs r0, 0x4 bl IsTextPrinterActive lsls r0, 16 _0800CC28: cmp r0, 0 bne _0800CC58 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] b _0800CC58 _0800CC34: ldr r0, _0800CC60 @ =gMain ldrh r0, [r0, 0x2E] ands r1, r0 cmp r1, 0 beq _0800CC58 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0800CC64 @ =sub_800CC68 str r0, [r4] _0800CC58: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CC60: .4byte gMain _0800CC64: .4byte sub_800CC68 thumb_func_end sub_800CB90 thumb_func_start sub_800CC68 sub_800CC68: @ 800CC68 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CC8C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CC86 ldr r0, _0800CC90 @ =sub_8078914 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0800CC86: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CC8C: .4byte gPaletteFade _0800CC90: .4byte sub_8078914 thumb_func_end sub_800CC68 thumb_func_start sub_800CC94 sub_800CC94: @ 800CC94 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _0800CCB8 @ =0x000012de movs r0, 0x40 bl SetGpuReg cmp r4, 0 beq _0800CCB2 cmp r4, 0 blt _0800CCB2 cmp r4, 0x2 ble _0800CCBC _0800CCB2: movs r2, 0 movs r0, 0x20 b _0800CCDC .align 2, 0 _0800CCB8: .4byte 0x000012de _0800CCBC: cmp r5, 0x1 beq _0800CCCE cmp r5, 0x1 ble _0800CCC8 cmp r5, 0x2 beq _0800CCD6 _0800CCC8: movs r2, 0 movs r0, 0x60 b _0800CCDC _0800CCCE: movs r2, 0xC0 lsls r2, 7 movs r0, 0x80 b _0800CCDC _0800CCD6: movs r2, 0x80 lsls r2, 8 movs r0, 0xA0 _0800CCDC: movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 adds r1, r2, r1 subs r0, 0x2 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800CC94 thumb_func_start sub_800CCF8 sub_800CCF8: @ 800CCF8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CD38 @ =gMain ldrh r1, [r0, 0x2E] movs r5, 0x1 ands r5, r1 adds r3, r0, 0 cmp r5, 0 beq _0800CD44 movs r0, 0x5 bl PlaySE bl sub_8009480 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0800CD3C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CD40 @ =sub_800CA94 str r1, [r0] b _0800CDEC .align 2, 0 _0800CD38: .4byte gMain _0800CD3C: .4byte gTasks _0800CD40: .4byte sub_800CA94 _0800CD44: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800CD8C movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r0, 0x44 movs r1, 0xA0 bl SetGpuReg ldr r1, _0800CD84 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CD88 @ =sub_800CC68 str r1, [r0] b _0800CDEC .align 2, 0 _0800CD84: .4byte gTasks _0800CD88: .4byte sub_800CC68 _0800CD8C: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800CDB4 ldr r0, _0800CDB0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r5, 0xA ldrsh r0, [r1, r5] cmp r0, 0 ble _0800CDB4 subs r0, r2, 0x1 strh r0, [r1, 0xA] movs r0, 0x1 b _0800CDEE .align 2, 0 _0800CDB0: .4byte gTasks _0800CDB4: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0800CDEC ldr r1, _0800CDE4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 movs r0, 0xA ldrsh r2, [r3, r0] ldr r1, _0800CDE8 @ =gUnknown_8234694 movs r4, 0x8 ldrsh r0, [r3, r4] adds r0, r1 ldrb r0, [r0] cmp r2, r0 bge _0800CDEC ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] movs r0, 0x1 b _0800CDEE .align 2, 0 _0800CDE4: .4byte gTasks _0800CDE8: .4byte gUnknown_8234694 _0800CDEC: movs r0, 0 _0800CDEE: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800CCF8 thumb_func_start sub_800CDF8 sub_800CDF8: @ 800CDF8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r0, 0x4 movs r1, 0xAA bl FillWindowPixelBuffer ldr r0, _0800CE48 @ =gUnknown_8234638 bl sub_800D0B4 ldr r0, _0800CE4C @ =gUnknown_8234688 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x4 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl box_print movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 movs r1, 0x2 bl CopyWindowToVram ldr r1, _0800CE50 @ =0x000013dd movs r0, 0x40 bl SetGpuReg ldr r1, _0800CE54 @ =0x0000739d movs r0, 0x44 bl SetGpuReg add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _0800CE48: .4byte gUnknown_8234638 _0800CE4C: .4byte gUnknown_8234688 _0800CE50: .4byte 0x000013dd _0800CE54: .4byte 0x0000739d thumb_func_end sub_800CDF8 thumb_func_start sub_800CE58 sub_800CE58: @ 800CE58 push {lr} bl sub_800CE70 bl sub_800CF3C bl sub_800CED4 bl sub_800CFC4 pop {r0} bx r0 thumb_func_end sub_800CE58 thumb_func_start sub_800CE70 sub_800CE70: @ 800CE70 push {lr} sub sp, 0x14 ldr r0, _0800CEC8 @ =gUnknown_823468B str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, _0800CECC @ =gUnknown_841B6D5 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x12 bl box_print add r1, sp, 0xC movs r2, 0 ldr r0, _0800CED0 @ =gSaveBlock2Ptr ldr r3, [r0] _0800CE96: adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x6 ble _0800CE96 movs r0, 0xFF strb r0, [r1] ldr r0, _0800CEC8 @ =gUnknown_823468B str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x12 bl box_print add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0800CEC8: .4byte gUnknown_823468B _0800CECC: .4byte gUnknown_841B6D5 _0800CED0: .4byte gSaveBlock2Ptr thumb_func_end sub_800CE70 thumb_func_start sub_800CED4 sub_800CED4: @ 800CED4 push {r4-r6,lr} sub sp, 0x2C ldr r6, _0800CF30 @ =gUnknown_823468B str r6, [sp] movs r5, 0x1 negs r5, r5 str r5, [sp, 0x4] ldr r0, _0800CF34 @ =gUnknown_841B6DC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x22 bl box_print ldr r4, _0800CF38 @ =gSaveBlock2Ptr ldr r0, [r4] ldrh r1, [r0, 0xE] add r0, sp, 0xC movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r1, 0xF0 strb r1, [r0] adds r0, 0x1 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN str r6, [sp] str r5, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x22 bl box_print add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CF30: .4byte gUnknown_823468B _0800CF34: .4byte gUnknown_841B6DC _0800CF38: .4byte gSaveBlock2Ptr thumb_func_end sub_800CED4 thumb_func_start sub_800CF3C sub_800CF3C: @ 800CF3C push {r4-r6,lr} sub sp, 0x2C ldr r0, _0800CF60 @ =0x00000829 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800CFAE bl sub_806E25C cmp r0, 0 beq _0800CF64 movs r0, 0x1 bl pokedex_count b _0800CF6A .align 2, 0 _0800CF60: .4byte 0x00000829 _0800CF64: movs r0, 0x1 bl sub_8088EDC _0800CF6A: lsls r0, 16 lsrs r6, r0, 16 ldr r5, _0800CFB8 @ =gUnknown_823468B str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800CFBC @ =gUnknown_841B6E3 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x32 bl box_print add r0, sp, 0xC adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, _0800CFC0 @ =gUnknown_841B6EB bl StringAppend str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x32 bl box_print _0800CFAE: add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CFB8: .4byte gUnknown_823468B _0800CFBC: .4byte gUnknown_841B6E3 _0800CFC0: .4byte gUnknown_841B6EB thumb_func_end sub_800CF3C thumb_func_start sub_800CFC4 sub_800CFC4: @ 800CFC4 push {r4-r6,lr} sub sp, 0x2C movs r6, 0 movs r4, 0x82 lsls r4, 4 _0800CFCE: lsls r0, r4, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0800CFE2 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0800CFE2: adds r4, 0x1 ldr r0, _0800D034 @ =0x00000827 cmp r4, r0 bls _0800CFCE ldr r5, _0800D038 @ =gUnknown_823468B str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800D03C @ =gUnknown_841B6EC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x42 bl box_print add r0, sp, 0xC adds r1, r6, 0 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r1, _0800D040 @ =gUnknown_841B6F3 bl StringAppend str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x42 bl box_print add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800D034: .4byte 0x00000827 _0800D038: .4byte gUnknown_823468B _0800D03C: .4byte gUnknown_841B6EC _0800D040: .4byte gUnknown_841B6F3 thumb_func_end sub_800CFC4 thumb_func_start sub_800D044 sub_800D044: @ 800D044 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0800D088 @ =gSaveBlock2Ptr ldr r0, [r5] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8069788 ldr r1, [r0] movs r2, 0x90 lsls r2, 1 ldr r3, _0800D08C @ =0x000001b1 adds r0, r4, 0 bl LoadBgTiles ldr r0, [r5] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8069788 ldr r0, [r0, 0x4] movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _0800D090 @ =gUnknown_8234638 bl sub_800D1E8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D088: .4byte gSaveBlock2Ptr _0800D08C: .4byte 0x000001b1 _0800D090: .4byte gUnknown_8234638 thumb_func_end sub_800D044 thumb_func_start sub_800D094 sub_800D094: @ 800D094 push {lr} ldr r1, _0800D0AC @ =0x000001b1 movs r0, 0 movs r2, 0x20 bl sub_814FF2C ldr r0, _0800D0B0 @ =gUnknown_8234638 bl sub_800D1E8 pop {r0} bx r0 .align 2, 0 _0800D0AC: .4byte 0x000001b1 _0800D0B0: .4byte gUnknown_8234638 thumb_func_end sub_800D094 thumb_func_start sub_800D0B4 sub_800D0B4: @ 800D0B4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC adds r5, r0, 0 ldrb r0, [r5] ldr r1, _0800D1D8 @ =0x000001b1 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r6, 0x1 str r6, [sp] str r6, [sp, 0x4] movs r4, 0x2 mov r8, r4 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xD9 lsls r1, 1 ldrb r2, [r5, 0x1] ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r4, [r5, 0x3] str r4, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1DC @ =0x000001b3 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDA lsls r1, 1 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] str r6, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDB lsls r1, 1 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] str r6, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1E0 @ =0x000001b7 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDC lsls r1, 1 ldrb r2, [r5, 0x1] ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 ldrb r4, [r5, 0x3] str r4, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1E4 @ =0x000001b9 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] bl CopyBgTilemapBufferToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800D1D8: .4byte 0x000001b1 _0800D1DC: .4byte 0x000001b3 _0800D1E0: .4byte 0x000001b7 _0800D1E4: .4byte 0x000001b9 thumb_func_end sub_800D0B4 thumb_func_start sub_800D1E8 sub_800D1E8: @ 800D1E8 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldrb r0, [r6] ldrb r1, [r6, 0x1] subs r2, r1, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r4, [r6, 0x2] subs r3, r4, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r5, [r6, 0x3] adds r1, r5 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] ldrb r1, [r6, 0x4] adds r4, r1 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x4] movs r1, 0x2 str r1, [sp, 0x8] movs r1, 0 bl FillBgTilemapBufferRect ldrb r0, [r6] bl CopyBgTilemapBufferToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800D1E8 .align 2, 0 @ Don't pad with nop.