pokefirered/asm/main_menu.s
2019-04-11 18:26:02 -04:00

1854 lines
31 KiB
ArmAsm

.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 ScanlineEffect_Stop
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 StartNewGameScene
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.