pokefirered/asm/new_menu_helpers.s
2018-10-05 18:01:51 -04:00

2498 lines
42 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start clear_scheduled_bg_copies_to_vram
clear_scheduled_bg_copies_to_vram: @ 80F6790
push {lr}
ldr r0, _080F67A0 @ =gUnknown_203AB58
movs r1, 0
movs r2, 0x4
bl memset
pop {r0}
bx r0
.align 2, 0
_080F67A0: .4byte gUnknown_203AB58
thumb_func_end clear_scheduled_bg_copies_to_vram
thumb_func_start schedule_bg_copy_tilemap_to_vram
schedule_bg_copy_tilemap_to_vram: @ 80F67A4
lsls r0, 24
lsrs r0, 24
ldr r1, _080F67B4 @ =gUnknown_203AB58
adds r0, r1
movs r1, 0x1
strb r1, [r0]
bx lr
.align 2, 0
_080F67B4: .4byte gUnknown_203AB58
thumb_func_end schedule_bg_copy_tilemap_to_vram
thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
do_scheduled_bg_tilemap_copies_to_vram: @ 80F67B8
push {r4,lr}
ldr r4, _080F6804 @ =gUnknown_203AB58
ldrb r0, [r4]
cmp r0, 0x1
bne _080F67CC
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0
strb r0, [r4]
_080F67CC:
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bne _080F67DC
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
strb r0, [r4, 0x1]
_080F67DC:
ldrb r0, [r4, 0x2]
cmp r0, 0x1
bne _080F67EC
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0
strb r0, [r4, 0x2]
_080F67EC:
ldrb r0, [r4, 0x3]
cmp r0, 0x1
bne _080F67FC
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0
strb r0, [r4, 0x3]
_080F67FC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F6804: .4byte gUnknown_203AB58
thumb_func_end do_scheduled_bg_tilemap_copies_to_vram
thumb_func_start reset_temp_tile_data_buffers
reset_temp_tile_data_buffers: @ 80F6808
push {lr}
ldr r3, _080F6824 @ =gUnknown_203AB5C
ldr r1, _080F6828 @ =gUnknown_203AB60
movs r2, 0
adds r0, r1, 0
adds r0, 0x7C
_080F6814:
str r2, [r0]
subs r0, 0x4
cmp r0, r1
bge _080F6814
movs r0, 0
strh r0, [r3]
pop {r0}
bx r0
.align 2, 0
_080F6824: .4byte gUnknown_203AB5C
_080F6828: .4byte gUnknown_203AB60
thumb_func_end reset_temp_tile_data_buffers
thumb_func_start free_temp_tile_data_buffers_if_possible
free_temp_tile_data_buffers_if_possible: @ 80F682C
push {r4-r6,lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _080F6870
ldr r1, _080F6868 @ =gUnknown_203AB5C
ldrh r0, [r1]
cmp r0, 0
beq _080F6864
movs r4, 0
ldrh r1, [r1]
cmp r4, r1
bge _080F685E
ldr r5, _080F686C @ =gUnknown_203AB60
movs r6, 0
_080F684C:
ldr r0, [r5]
bl Free
stm r5!, {r6}
adds r4, 0x1
ldr r0, _080F6868 @ =gUnknown_203AB5C
ldrh r0, [r0]
cmp r4, r0
blt _080F684C
_080F685E:
ldr r1, _080F6868 @ =gUnknown_203AB5C
movs r0, 0
strh r0, [r1]
_080F6864:
movs r0, 0
b _080F6872
.align 2, 0
_080F6868: .4byte gUnknown_203AB5C
_080F686C: .4byte gUnknown_203AB60
_080F6870:
movs r0, 0x1
_080F6872:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end free_temp_tile_data_buffers_if_possible
thumb_func_start decompress_and_copy_tile_data_to_vram
decompress_and_copy_tile_data_to_vram: @ 80F6878
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r4, r1, 0
adds r5, r2, 0
ldr r1, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 16
lsrs r3, 16
mov r9, r3
lsls r1, 24
lsrs r7, r1, 24
ldr r6, _080F68D8 @ =gUnknown_203AB5C
ldrh r0, [r6]
cmp r0, 0x1F
bhi _080F68E0
adds r0, r4, 0
add r1, sp, 0x4
bl malloc_and_decompress
adds r4, r0, 0
cmp r5, 0
bne _080F68B0
ldr r5, [sp, 0x4]
_080F68B0:
cmp r4, 0
beq _080F68D4
lsls r2, r5, 16
lsrs r2, 16
str r7, [sp]
mov r0, r8
adds r1, r4, 0
mov r3, r9
bl sub_80F6AD0
ldr r2, _080F68DC @ =gUnknown_203AB60
ldrh r0, [r6]
adds r1, r0, 0x1
strh r1, [r6]
lsls r0, 16
lsrs r0, 14
adds r0, r2
str r4, [r0]
_080F68D4:
adds r0, r4, 0
b _080F68E2
.align 2, 0
_080F68D8: .4byte gUnknown_203AB5C
_080F68DC: .4byte gUnknown_203AB60
_080F68E0:
movs r0, 0
_080F68E2:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end decompress_and_copy_tile_data_to_vram
thumb_func_start sub_80F68F0
sub_80F68F0: @ 80F68F0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r4, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 16
lsrs r3, 16
mov r9, r3
lsls r1, 24
lsrs r7, r1, 24
ldr r5, _080F6954 @ =gUnknown_203AB5C
ldrh r0, [r5]
cmp r0, 0x1F
bhi _080F695C
adds r0, r4, 0
add r1, sp, 0x4
bl malloc_and_decompress
adds r4, r0, 0
ldr r0, [sp, 0x4]
cmp r0, r6
bls _080F692A
str r6, [sp, 0x4]
_080F692A:
cmp r4, 0
beq _080F6950
ldr r2, [sp, 0x4]
lsls r2, 16
lsrs r2, 16
str r7, [sp]
mov r0, r8
adds r1, r4, 0
mov r3, r9
bl sub_80F6AD0
ldr r2, _080F6958 @ =gUnknown_203AB60
ldrh r0, [r5]
adds r1, r0, 0x1
strh r1, [r5]
lsls r0, 16
lsrs r0, 14
adds r0, r2
str r4, [r0]
_080F6950:
adds r0, r4, 0
b _080F695E
.align 2, 0
_080F6954: .4byte gUnknown_203AB5C
_080F6958: .4byte gUnknown_203AB60
_080F695C:
movs r0, 0
_080F695E:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80F68F0
thumb_func_start sub_80F696C
sub_80F696C: @ 80F696C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r5, r2, 0
ldr r2, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r3, 16
lsrs r3, 16
mov r9, r3
lsls r2, 24
lsrs r7, r2, 24
adds r0, r1, 0
add r1, sp, 0x4
bl malloc_and_decompress
adds r6, r0, 0
cmp r5, 0
bne _080F699A
ldr r5, [sp, 0x4]
_080F699A:
cmp r6, 0
beq _080F69D2
ldr r0, _080F69E0 @ =task_free_buf_after_copying_tile_data_to_vram
movs r1, 0
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r2, r5, 16
lsrs r2, 16
str r7, [sp]
mov r0, r8
adds r1, r6, 0
mov r3, r9
bl sub_80F6AD0
ldr r2, _080F69E4 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r2
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x1
adds r2, r6, 0
bl SetWordTaskArg
_080F69D2:
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram
_080F69E4: .4byte gTasks
thumb_func_end sub_80F696C
thumb_func_start sub_80F69E8
sub_80F69E8: @ 80F69E8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r4, r2, 0
ldr r2, [sp, 0x20]
lsls r0, 24
lsrs r7, r0, 24
lsls r3, 16
lsrs r3, 16
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
adds r0, r1, 0
add r1, sp, 0x4
bl malloc_and_decompress
adds r5, r0, 0
ldr r0, [sp, 0x4]
cmp r0, r4
bls _080F6A14
str r4, [sp, 0x4]
_080F6A14:
cmp r5, 0
beq _080F6A4E
ldr r0, _080F6A5C @ =task_free_buf_after_copying_tile_data_to_vram
movs r1, 0
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r2, [sp, 0x4]
lsls r2, 16
lsrs r2, 16
str r6, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r3, r8
bl sub_80F6AD0
ldr r2, _080F6A60 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r2
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
_080F6A4E:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F6A5C: .4byte task_free_buf_after_copying_tile_data_to_vram
_080F6A60: .4byte gTasks
thumb_func_end sub_80F69E8
thumb_func_start task_free_buf_after_copying_tile_data_to_vram
task_free_buf_after_copying_tile_data_to_vram: @ 80F6A64
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080F6A9C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
bl CheckForSpaceForDma3Request
lsls r0, 16
cmp r0, 0
bne _080F6A94
adds r0, r4, 0
movs r1, 0x1
bl GetWordTaskArg
bl Free
adds r0, r4, 0
bl DestroyTask
_080F6A94:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F6A9C: .4byte gTasks
thumb_func_end task_free_buf_after_copying_tile_data_to_vram
thumb_func_start malloc_and_decompress
malloc_and_decompress: @ 80F6AA0
push {r4,r5,lr}
adds r5, r0, 0
ldrb r0, [r5, 0x1]
strb r0, [r1]
ldrb r0, [r5, 0x2]
strb r0, [r1, 0x1]
ldrb r0, [r5, 0x3]
strb r0, [r1, 0x2]
movs r0, 0
strb r0, [r1, 0x3]
ldr r0, [r1]
bl Alloc
adds r4, r0, 0
cmp r4, 0
beq _080F6AC8
adds r0, r5, 0
adds r1, r4, 0
bl LZ77UnCompWram
_080F6AC8:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end malloc_and_decompress
thumb_func_start sub_80F6AD0
sub_80F6AD0: @ 80F6AD0
push {r4,lr}
adds r4, r1, 0
ldr r1, [sp, 0x8]
lsls r0, 24
lsrs r0, 24
lsls r2, 16
lsrs r2, 16
lsls r3, 16
lsrs r3, 16
lsls r1, 24
lsrs r1, 24
cmp r1, 0
beq _080F6AEE
cmp r1, 0x1
beq _080F6AF6
_080F6AEE:
adds r1, r4, 0
bl LoadBgTiles
b _080F6AFC
_080F6AF6:
adds r1, r4, 0
bl LoadBgTilemap
_080F6AFC:
lsls r0, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80F6AD0
thumb_func_start sub_80F6B08
sub_80F6B08: @ 80F6B08
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r5, r2, 0
ldr r4, [sp, 0x28]
ldr r2, [sp, 0x2C]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
str r1, [sp]
lsls r5, 24
lsrs r5, 24
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x4]
lsls r4, 24
lsrs r4, 24
lsls r2, 24
lsrs r2, 24
mov r10, r2
bl GetBgTilemapBuffer
mov r8, r0
adds r0, r5, r4
cmp r5, r0
bge _080F6B80
mov r9, r0
_080F6B46:
ldr r3, [sp]
ldr r1, [sp, 0x4]
adds r0, r3, r1
adds r7, r5, 0x1
cmp r3, r0
bge _080F6B78
lsls r6, r5, 5
ldr r1, _080F6B90 @ =0x00000fff
mov r12, r1
mov r1, r10
lsls r5, r1, 12
adds r4, r0, 0
_080F6B5E:
adds r1, r6, r3
lsls r1, 1
add r1, r8
ldrh r2, [r1]
mov r0, r12
ands r0, r2
orrs r0, r5
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, r4
blt _080F6B5E
_080F6B78:
lsls r0, r7, 24
lsrs r5, r0, 24
cmp r5, r9
blt _080F6B46
_080F6B80:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F6B90: .4byte 0x00000fff
thumb_func_end sub_80F6B08
thumb_func_start sub_80F6B94
sub_80F6B94: @ 80F6B94
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r10, r1
ldr r1, [sp, 0x24]
ldr r4, [sp, 0x28]
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
mov r9, r2
lsls r3, 24
lsrs r3, 24
str r3, [sp]
lsls r1, 24
lsrs r5, r1, 24
lsls r4, 24
lsrs r4, 24
mov r8, r4
bl GetBgTilemapBuffer
adds r7, r0, 0
movs r0, 0
cmp r0, r8
bcs _080F6C02
_080F6BCC:
movs r2, 0
adds r6, r0, 0x1
cmp r2, r5
bcs _080F6BFA
adds r4, r0, 0
muls r4, r5
ldr r1, [sp]
adds r0, r1
lsls r3, r0, 5
_080F6BDE:
adds r1, r4, r2
lsls r1, 1
add r1, r10
adds r0, r3, r2
add r0, r9
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r5
bcc _080F6BDE
_080F6BFA:
lsls r0, r6, 24
lsrs r0, 24
cmp r0, r8
bcc _080F6BCC
_080F6C02:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80F6B94
thumb_func_start sub_80F6C14
sub_80F6C14: @ 80F6C14
push {lr}
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
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 ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
pop {r0}
bx r0
thumb_func_end sub_80F6C14
thumb_func_start sub_80F6C6C
sub_80F6C6C: @ 80F6C6C
push {lr}
ldr r0, _080F6C84 @ =gUnknown_841F42C
bl InitWindows
ldr r1, _080F6C88 @ =gUnknown_203ABE0
movs r0, 0xFF
strb r0, [r1]
bl sub_8112EA8
pop {r0}
bx r0
.align 2, 0
_080F6C84: .4byte gUnknown_841F42C
_080F6C88: .4byte gUnknown_203ABE0
thumb_func_end sub_80F6C6C
thumb_func_start sub_80F6C8C
sub_80F6C8C: @ 80F6C8C
push {lr}
bl FreeAllWindowBuffers
pop {r0}
bx r0
thumb_func_end sub_80F6C8C
thumb_func_start sub_80F6C98
sub_80F6C98: @ 80F6C98
push {lr}
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
bl DeactivateAllTextPrinters
bl sub_80F6E9C
pop {r0}
bx r0
thumb_func_end sub_80F6C98
thumb_func_start sub_80F6CBC
sub_80F6CBC: @ 80F6CBC
push {lr}
bl RunTextPrinters
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80F6CBC
thumb_func_start AddTextPrinterParametrized
AddTextPrinterParametrized: @ 80F6CD0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
ldr r7, [sp, 0x28]
ldr r4, [sp, 0x2C]
mov r8, r4
ldr r5, [sp, 0x30]
ldr r6, [sp, 0x34]
lsls r3, 24
lsrs r3, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
str r2, [sp]
mov r2, sp
movs r4, 0
strb r0, [r2, 0x4]
mov r0, sp
strb r1, [r0, 0x5]
strb r4, [r0, 0x6]
movs r1, 0x1
strb r1, [r0, 0x7]
strb r4, [r0, 0x8]
strb r1, [r0, 0x9]
strb r1, [r0, 0xA]
strb r1, [r0, 0xB]
mov r4, sp
ldrb r2, [r4, 0xC]
subs r1, 0x11
adds r0, r1, 0
ands r0, r2
strb r0, [r4, 0xC]
mov r0, sp
mov r2, r8
lsls r2, 4
movs r4, 0xF
strb r2, [r0, 0xC]
mov r2, sp
ands r5, r4
ldrb r0, [r2, 0xD]
ands r1, r0
orrs r1, r5
strb r1, [r2, 0xD]
mov r0, sp
lsrs r6, 20
ands r1, r4
orrs r1, r6
strb r1, [r0, 0xD]
ldr r2, _080F6D58 @ =gTextFlags
ldrb r1, [r2]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r2]
mov r0, sp
adds r1, r3, 0
adds r2, r7, 0
bl AddTextPrinter
lsls r0, 16
lsrs r0, 16
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080F6D58: .4byte gTextFlags
thumb_func_end AddTextPrinterParametrized
thumb_func_start sub_80F6D5C
sub_80F6D5C: @ 80F6D5C
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
movs r5, 0
ldr r3, _080F6DA8 @ =gTextFlags
movs r4, 0x1
ands r0, r4
ldrb r2, [r3]
movs r1, 0x2
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3]
bl sub_80CBE00
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080F6DB0
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r2, _080F6DAC @ =gStringVar4
str r5, [sp]
movs r0, 0x8
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x4
bl AddTextPrinterParametrized
b _080F6DFC
.align 2, 0
_080F6DA8: .4byte gTextFlags
_080F6DAC: .4byte gStringVar4
_080F6DB0:
cmp r0, 0x1
bne _080F6DDC
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r2, _080F6DD8 @ =gStringVar4
str r5, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x5
bl AddTextPrinterParametrized
b _080F6DFC
.align 2, 0
_080F6DD8: .4byte gStringVar4
_080F6DDC:
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r2, _080F6E04 @ =gStringVar4
str r5, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
bl AddTextPrinterParametrized
_080F6DFC:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6E04: .4byte gStringVar4
thumb_func_end sub_80F6D5C
thumb_func_start sub_80F6E08
sub_80F6E08: @ 80F6E08
push {r4,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
ldr r3, _080F6E4C @ =gTextFlags
movs r4, 0x1
ands r0, r4
ldrb r2, [r3]
movs r1, 0x2
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3]
bl sub_80F78A8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r2, _080F6E50 @ =gStringVar4
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
bl AddTextPrinterParametrized
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F6E4C: .4byte gTextFlags
_080F6E50: .4byte gStringVar4
thumb_func_end sub_80F6E08
thumb_func_start sub_80F6E54
sub_80F6E54: @ 80F6E54
push {r4,r5,lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
lsls r3, 24
lsrs r3, 24
ldr r4, _080F6E94 @ =gTextFlags
movs r5, 0x1
ands r0, r5
ldrb r2, [r4]
movs r1, 0x2
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r4]
ldr r2, _080F6E98 @ =gStringVar4
movs r0, 0
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x2
bl AddTextPrinterParametrized
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6E94: .4byte gTextFlags
_080F6E98: .4byte gStringVar4
thumb_func_end sub_80F6E54
thumb_func_start sub_80F6E9C
sub_80F6E9C: @ 80F6E9C
push {lr}
ldr r0, _080F6EBC @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _080F6EC4
ldr r2, _080F6EC0 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl sub_814FF98
b _080F6ED4
.align 2, 0
_080F6EBC: .4byte gUnknown_203ADFA
_080F6EC0: .4byte gTextFlags
_080F6EC4:
bl sub_80F77B8
movs r1, 0x80
lsls r1, 2
movs r0, 0
movs r2, 0xF0
bl sub_814FEAC
_080F6ED4:
movs r1, 0x85
lsls r1, 2
movs r0, 0
movs r2, 0xE0
bl sub_815001C
pop {r0}
bx r0
thumb_func_end sub_80F6E9C
thumb_func_start sub_80F6EE4
sub_80F6EE4: @ 80F6EE4
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
lsls r4, 24
lsrs r4, 24
ldr r1, _080F6F18 @ =sub_80F7124
adds r0, r5, 0
bl CallWindowFunction
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r5, 0
bl PutWindowTilemap
cmp r4, 0x1
bne _080F6F12
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
_080F6F12:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6F18: .4byte sub_80F7124
thumb_func_end sub_80F6EE4
thumb_func_start sub_80F6F1C
sub_80F6F1C: @ 80F6F1C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
lsls r4, 24
lsrs r4, 24
ldr r1, _080F6F50 @ =sub_80F6FD4
adds r0, r5, 0
bl CallWindowFunction
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r5, 0
bl PutWindowTilemap
cmp r4, 0x1
bne _080F6F4A
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
_080F6F4A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6F50: .4byte sub_80F6FD4
thumb_func_end sub_80F6F1C
thumb_func_start sub_80F6F54
sub_80F6F54: @ 80F6F54
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
lsls r4, 24
lsrs r4, 24
ldr r1, _080F6F94 @ =sub_80F76CC
adds r0, r5, 0
bl CallWindowFunction
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r5, 0
bl ClearWindowTilemap
cmp r4, 0x1
bne _080F6F82
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
_080F6F82:
ldr r0, _080F6F98 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _080F6F8E
bl sub_8111134
_080F6F8E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6F94: .4byte sub_80F76CC
_080F6F98: .4byte gUnknown_203ADFA
thumb_func_end sub_80F6F54
thumb_func_start sub_80F6F9C
sub_80F6F9C: @ 80F6F9C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
lsls r4, 24
lsrs r4, 24
ldr r1, _080F6FD0 @ =sub_80F7684
adds r0, r5, 0
bl CallWindowFunction
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r5, 0
bl ClearWindowTilemap
cmp r4, 0x1
bne _080F6FCA
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
_080F6FCA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F6FD0: .4byte sub_80F7684
thumb_func_end sub_80F6F9C
thumb_func_start sub_80F6FD4
sub_80F6FD4: @ 80F6FD4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
adds r4, r2, 0
ldr r2, [sp, 0x3C]
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsls r4, 24
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x10]
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x14]
movs r3, 0x85
lsls r3, 2
lsrs r0, r1, 24
str r0, [sp, 0xC]
movs r2, 0xFF
lsls r2, 24
adds r2, r1
mov r8, r2
lsrs r2, 24
lsrs r0, r4, 24
mov r9, r0
movs r0, 0xFF
lsls r0, 24
adds r4, r0
lsrs r4, 24
movs r5, 0x1
str r5, [sp]
str r5, [sp, 0x4]
movs r6, 0xE
str r6, [sp, 0x8]
adds r0, r7, 0
adds r1, r3, 0
adds r3, r4, 0
bl FillBgTilemapBufferRect
ldr r1, _080F710C @ =0x00000215
ldr r2, [sp, 0x10]
str r2, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r4, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7110 @ =0x00000216
ldr r3, [sp, 0xC]
ldr r2, [sp, 0x10]
adds r0, r3, r2
lsls r0, 24
mov r10, r0
lsrs r2, r0, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r4, 0
bl FillBgTilemapBufferRect
mov r5, r9
ldr r0, [sp, 0x14]
add r0, r9
cmp r9, r0
bge _080F70A8
mov r3, r8
str r3, [sp, 0x18]
movs r6, 0x1
movs r0, 0xE
mov r8, r0
_080F706E:
lsls r4, r5, 24
lsrs r4, 24
str r6, [sp]
str r6, [sp, 0x4]
mov r2, r8
str r2, [sp, 0x8]
adds r0, r7, 0
ldr r1, _080F7114 @ =0x00000217
ldr r3, [sp, 0x18]
lsrs r2, r3, 24
adds r3, r4, 0
bl FillBgTilemapBufferRect
str r6, [sp]
str r6, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
adds r0, r7, 0
ldr r1, _080F7118 @ =0x00000219
mov r3, r10
lsrs r2, r3, 24
adds r3, r4, 0
bl FillBgTilemapBufferRect
adds r5, 0x1
ldr r0, [sp, 0x14]
add r0, r9
cmp r5, r0
blt _080F706E
_080F70A8:
ldr r1, _080F711C @ =0x0000021a
ldr r2, [sp, 0xC]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r4, [sp, 0x14]
add r4, r9
lsls r4, 24
lsrs r4, 24
movs r5, 0x1
str r5, [sp]
str r5, [sp, 0x4]
movs r6, 0xE
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r4, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7120 @ =0x0000021b
ldr r0, [sp, 0x10]
str r0, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r4, 0
bl FillBgTilemapBufferRect
movs r1, 0x87
lsls r1, 2
ldr r3, [sp, 0xC]
ldr r0, [sp, 0x10]
adds r2, r3, r0
lsls r2, 24
lsrs r2, 24
str r5, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r4, 0
bl FillBgTilemapBufferRect
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F710C: .4byte 0x00000215
_080F7110: .4byte 0x00000216
_080F7114: .4byte 0x00000217
_080F7118: .4byte 0x00000219
_080F711C: .4byte 0x0000021a
_080F7120: .4byte 0x0000021b
thumb_func_end sub_80F6FD4
thumb_func_start sub_80F7124
sub_80F7124: @ 80F7124
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0xC]
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x10]
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x14]
bl sub_8069A38
lsls r0, 24
cmp r0, 0
beq _080F715A
ldr r0, _080F7390 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
beq _080F715A
b _080F73E8
_080F715A:
movs r1, 0x80
lsls r1, 2
ldr r0, [sp, 0xC]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r5, [sp, 0x10]
subs r5, 0x1
lsls r5, 24
lsrs r5, 24
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
movs r6, 0xF
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7394 @ =0x00000201
ldr r2, [sp, 0xC]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
mov r9, r2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7398 @ =0x00000202
ldr r0, [sp, 0x14]
str r0, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F739C @ =0x00000203
ldr r2, [sp, 0xC]
ldr r0, [sp, 0x14]
adds r2, r0
mov r8, r2
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x18]
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0x81
lsls r1, 2
add r8, r4
mov r2, r8
lsls r2, 24
lsrs r2, 24
mov r8, r2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73A0 @ =0x00000205
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F73A4 @ =0x00000206
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
movs r1, 0x82
lsls r1, 2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F73A8 @ =0x00000209
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F73AC @ =0x0000020a
ldr r5, [sp, 0x10]
adds r5, 0x1
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73B0 @ =0x0000020b
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0x83
lsls r1, 2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x18]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73B4 @ =0x0000020d
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73B8 @ =0x00000a0a
ldr r5, [sp, 0x10]
adds r5, 0x2
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73BC @ =0x00000a0b
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73C0 @ =0x00000a0c
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x18]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73C4 @ =0x00000a0d
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73C8 @ =0x00000a05
ldr r5, [sp, 0x10]
adds r5, 0x3
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73CC @ =0x00000a06
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73D0 @ =0x00000a08
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x18]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73D4 @ =0x00000a09
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0xA0
lsls r1, 4
ldr r5, [sp, 0x10]
adds r5, 0x4
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73D8 @ =0x00000a01
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73DC @ =0x00000a02
ldr r0, [sp, 0x14]
str r0, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73E0 @ =0x00000a03
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x18]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F73E4 @ =0x00000a04
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
b _080F761E
.align 2, 0
_080F7390: .4byte gUnknown_203ADFA
_080F7394: .4byte 0x00000201
_080F7398: .4byte 0x00000202
_080F739C: .4byte 0x00000203
_080F73A0: .4byte 0x00000205
_080F73A4: .4byte 0x00000206
_080F73A8: .4byte 0x00000209
_080F73AC: .4byte 0x0000020a
_080F73B0: .4byte 0x0000020b
_080F73B4: .4byte 0x0000020d
_080F73B8: .4byte 0x00000a0a
_080F73BC: .4byte 0x00000a0b
_080F73C0: .4byte 0x00000a0c
_080F73C4: .4byte 0x00000a0d
_080F73C8: .4byte 0x00000a05
_080F73CC: .4byte 0x00000a06
_080F73D0: .4byte 0x00000a08
_080F73D4: .4byte 0x00000a09
_080F73D8: .4byte 0x00000a01
_080F73DC: .4byte 0x00000a02
_080F73E0: .4byte 0x00000a03
_080F73E4: .4byte 0x00000a04
_080F73E8:
movs r1, 0x80
lsls r1, 2
ldr r2, [sp, 0xC]
subs r2, 0x2
lsls r2, 24
lsrs r2, 24
mov r10, r2
ldr r5, [sp, 0x10]
subs r5, 0x1
lsls r5, 24
lsrs r5, 24
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
movs r6, 0xF
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7630 @ =0x00000201
ldr r0, [sp, 0xC]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7634 @ =0x00000202
ldr r2, [sp, 0x14]
str r2, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7638 @ =0x00000203
ldr r0, [sp, 0xC]
ldr r2, [sp, 0x14]
adds r0, r2
mov r8, r0
lsls r2, r0, 24
lsrs r2, 24
str r2, [sp, 0x1C]
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0x81
lsls r1, 2
add r8, r4
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F763C @ =0x00000205
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F7640 @ =0x00000206
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
movs r1, 0x82
lsls r1, 2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x1C]
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F7644 @ =0x00000209
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
ldr r3, [sp, 0x10]
bl FillBgTilemapBufferRect
ldr r1, _080F7648 @ =0x0000020a
ldr r5, [sp, 0x10]
adds r5, 0x1
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F764C @ =0x0000020b
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0x83
lsls r1, 2
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x1C]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7650 @ =0x0000020d
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7654 @ =0x00000a05
ldr r5, [sp, 0x10]
adds r5, 0x2
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7658 @ =0x00000a06
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F765C @ =0x00000a08
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x1C]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7660 @ =0x00000a09
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7664 @ =0x00000a0a
ldr r5, [sp, 0x10]
adds r5, 0x3
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7668 @ =0x00000a0b
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F766C @ =0x00000a0c
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x1C]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7670 @ =0x00000a0d
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
movs r1, 0xA0
lsls r1, 4
ldr r5, [sp, 0x10]
adds r5, 0x4
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r10
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7674 @ =0x00000a01
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r9
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7678 @ =0x00000a02
ldr r2, [sp, 0x14]
str r2, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0xC]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F767C @ =0x00000a03
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
ldr r2, [sp, 0x1C]
adds r3, r5, 0
bl FillBgTilemapBufferRect
ldr r1, _080F7680 @ =0x00000a04
str r4, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
adds r0, r7, 0
mov r2, r8
adds r3, r5, 0
bl FillBgTilemapBufferRect
_080F761E:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F7630: .4byte 0x00000201
_080F7634: .4byte 0x00000202
_080F7638: .4byte 0x00000203
_080F763C: .4byte 0x00000205
_080F7640: .4byte 0x00000206
_080F7644: .4byte 0x00000209
_080F7648: .4byte 0x0000020a
_080F764C: .4byte 0x0000020b
_080F7650: .4byte 0x0000020d
_080F7654: .4byte 0x00000a05
_080F7658: .4byte 0x00000a06
_080F765C: .4byte 0x00000a08
_080F7660: .4byte 0x00000a09
_080F7664: .4byte 0x00000a0a
_080F7668: .4byte 0x00000a0b
_080F766C: .4byte 0x00000a0c
_080F7670: .4byte 0x00000a0d
_080F7674: .4byte 0x00000a01
_080F7678: .4byte 0x00000a02
_080F767C: .4byte 0x00000a03
_080F7680: .4byte 0x00000a04
thumb_func_end sub_80F7124
thumb_func_start sub_80F7684
sub_80F7684: @ 80F7684
push {r4,r5,lr}
sub sp, 0xC
adds r4, r1, 0
adds r5, r2, 0
ldr r1, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsls r5, 24
lsls r3, 24
lsls r1, 24
movs r2, 0xFF
lsls r2, 24
adds r4, r2
lsrs r4, 24
adds r5, r2
lsrs r5, 24
movs r2, 0x80
lsls r2, 18
adds r3, r2
lsrs r3, 24
str r3, [sp]
adds r1, r2
lsrs r1, 24
str r1, [sp, 0x4]
movs r1, 0xE
str r1, [sp, 0x8]
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F7684
thumb_func_start sub_80F76CC
sub_80F76CC: @ 80F76CC
push {r4,r5,lr}
sub sp, 0xC
adds r4, r1, 0
adds r5, r2, 0
ldr r1, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsls r5, 24
lsls r3, 24
lsls r1, 24
movs r2, 0xFE
lsls r2, 24
adds r4, r2
lsrs r4, 24
movs r2, 0xFF
lsls r2, 24
adds r5, r2
lsrs r5, 24
movs r2, 0x80
lsls r2, 19
adds r3, r2
lsrs r3, 24
str r3, [sp]
movs r2, 0x80
lsls r2, 18
adds r1, r2
lsrs r1, 24
str r1, [sp, 0x4]
movs r1, 0xE
str r1, [sp, 0x8]
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F76CC
thumb_func_start sub_80F771C
sub_80F771C: @ 80F771C
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
cmp r4, 0x1
bne _080F7746
movs r0, 0
bl CopyBgTilemapBufferToVram
_080F7746:
add sp, 0xC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F771C
thumb_func_start sub_80F7750
sub_80F7750: @ 80F7750
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
movs r2, 0x85
lsls r2, 2
movs r3, 0xE
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_80F7750
thumb_func_start sub_80F7768
sub_80F7768: @ 80F7768
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _080F7790 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _080F7798
ldr r2, _080F7794 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl sub_814FF98
b _080F77A4
.align 2, 0
_080F7790: .4byte gUnknown_203ADFA
_080F7794: .4byte gTextFlags
_080F7798:
movs r1, 0x80
lsls r1, 2
adds r0, r4, 0
movs r2, 0xF0
bl sub_814FEAC
_080F77A4:
movs r2, 0x80
lsls r2, 2
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0xF
bl sub_810EDC4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F7768
thumb_func_start sub_80F77B8
sub_80F77B8: @ 80F77B8
push {lr}
ldr r0, _080F77C8 @ =gUnknown_841F408
movs r1, 0xE0
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_080F77C8: .4byte gUnknown_841F408
thumb_func_end sub_80F77B8
thumb_func_start sub_80F77CC
sub_80F77CC: @ 80F77CC
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r0, _080F77E0 @ =gUnknown_841F408
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_080F77E0: .4byte gUnknown_841F408
thumb_func_end sub_80F77CC
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
ldr r0, _080F77E8 @ =gUnknown_841F408
bx lr
.align 2, 0
_080F77E8: .4byte gUnknown_841F408
thumb_func_end sub_80F77E4
thumb_func_start sub_80F77EC
sub_80F77EC: @ 80F77EC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bls _080F77F8
movs r1, 0
_080F77F8:
ldr r0, _080F7804 @ =gUnknown_841F408
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
_080F7804: .4byte gUnknown_841F408
thumb_func_end sub_80F77EC
thumb_func_start DisplayItemMessageOnField
DisplayItemMessageOnField: @ 80F7808
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
mov r8, r3
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
bl sub_80F6E9C
bl sub_80F78A8
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 2
str r4, [sp]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0
movs r3, 0xF
bl DisplayMessageAndContinueTask
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end DisplayItemMessageOnField
thumb_func_start sub_80F7858
sub_80F7858: @ 80F7858
push {lr}
sub sp, 0xC
ldr r0, _080F787C @ =gUnknown_841F43C
movs r1, 0x85
lsls r1, 2
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl sub_810FF60
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_080F787C: .4byte gUnknown_841F43C
thumb_func_end sub_80F7858
thumb_func_start sub_80F7880
sub_80F7880: @ 80F7880
push {lr}
sub sp, 0xC
ldr r0, _080F78A4 @ =gUnknown_841F43C
movs r1, 0x85
lsls r1, 2
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl sub_810FF60
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_080F78A4: .4byte gUnknown_841F43C
thumb_func_end sub_80F7880
thumb_func_start sub_80F78A8
sub_80F78A8: @ 80F78A8
push {lr}
ldr r3, _080F78D8 @ =gSaveBlock2Ptr
ldr r2, [r3]
ldrb r1, [r2, 0x14]
lsls r0, r1, 29
lsrs r0, 29
cmp r0, 0x2
bls _080F78C4
movs r0, 0x8
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x14]
_080F78C4:
ldr r1, _080F78DC @ =gUnknown_841F428
ldr r0, [r3]
ldrb r0, [r0, 0x14]
lsls r0, 29
lsrs r0, 29
adds r0, r1
ldrb r0, [r0]
pop {r1}
bx r1
.align 2, 0
_080F78D8: .4byte gSaveBlock2Ptr
_080F78DC: .4byte gUnknown_841F428
thumb_func_end sub_80F78A8
thumb_func_start sub_80F78E0
sub_80F78E0: @ 80F78E0
push {r4,lr}
sub sp, 0x20
lsls r0, 24
lsrs r1, r0, 24
ldr r4, _080F7934 @ =gUnknown_203ABE0
ldrb r0, [r4]
cmp r0, 0xFF
bne _080F792A
movs r0, 0x7
str r0, [sp]
lsls r0, r1, 25
movs r1, 0xFF
lsls r1, 24
adds r0, r1
lsrs r0, 24
str r0, [sp, 0x4]
movs r0, 0xF
str r0, [sp, 0x8]
ldr r0, _080F7938 @ =0x0000013d
str r0, [sp, 0xC]
add r0, sp, 0x10
movs r1, 0
movs r2, 0x16
movs r3, 0x1
bl SetWindowTemplateFields
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
add r0, sp, 0x18
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
bl PutWindowTilemap
_080F792A:
ldrb r0, [r4]
add sp, 0x20
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080F7934: .4byte gUnknown_203ABE0
_080F7938: .4byte 0x0000013d
thumb_func_end sub_80F78E0
thumb_func_start GetStartMenuWindowId
GetStartMenuWindowId: @ 80F793C
ldr r0, _080F7944 @ =gUnknown_203ABE0
ldrb r0, [r0]
bx lr
.align 2, 0
_080F7944: .4byte gUnknown_203ABE0
thumb_func_end GetStartMenuWindowId
thumb_func_start remove_start_menu_window_maybe
remove_start_menu_window_maybe: @ 80F7948
push {r4,lr}
ldr r4, _080F7960 @ =gUnknown_203ABE0
ldrb r0, [r4]
cmp r0, 0xFF
beq _080F795A
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
_080F795A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F7960: .4byte gUnknown_203ABE0
thumb_func_end remove_start_menu_window_maybe
thumb_func_start sub_80F7964
sub_80F7964: @ 80F7964
movs r0, 0x80
lsls r0, 2
bx lr
thumb_func_end sub_80F7964
thumb_func_start sub_80F796C
sub_80F796C: @ 80F796C
movs r0, 0x85
lsls r0, 2
bx lr
thumb_func_end sub_80F796C
thumb_func_start sub_80F7974
sub_80F7974: @ 80F7974
push {r4,lr}
adds r4, r0, 0
bl sub_8112EB4
lsls r0, 24
lsrs r0, 24
movs r1, 0x80
lsls r1, 2
movs r2, 0xF0
bl sub_814FE6C
adds r0, r4, 0
movs r1, 0x2
bl sub_8113018
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F7974
thumb_func_start sub_80F7998
sub_80F7998: @ 80F7998
push {lr}
movs r0, 0x2
bl sub_8112EDC
pop {r0}
bx r0
thumb_func_end sub_80F7998
thumb_func_start sub_80F79A4
sub_80F79A4: @ 80F79A4
push {lr}
bl sub_80F77B8
movs r1, 0x80
lsls r1, 2
movs r0, 0
movs r2, 0xF0
bl sub_814FEEC
movs r1, 0x85
lsls r1, 2
movs r0, 0
movs r2, 0xE0
bl sub_815001C
pop {r0}
bx r0
thumb_func_end sub_80F79A4
thumb_func_start SetDefaultFontsPointer
SetDefaultFontsPointer: @ 80F79C8
push {lr}
ldr r0, _080F79D4 @ =gUnknown_841F444
bl SetFontsPointer
pop {r0}
bx r0
.align 2, 0
_080F79D4: .4byte gUnknown_841F444
thumb_func_end SetDefaultFontsPointer
thumb_func_start GetFontAttribute
GetFontAttribute: @ 80F79D8
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
movs r0, 0
cmp r1, 0x7
bhi _080F7AB6
lsls r0, r1, 2
ldr r1, _080F79F4 @ =_080F79F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F79F4: .4byte _080F79F8
.align 2, 0
_080F79F8:
.4byte _080F7A18
.4byte _080F7A2C
.4byte _080F7A40
.4byte _080F7A54
.4byte _080F7A68
.4byte _080F7A7C
.4byte _080F7A90
.4byte _080F7AA8
_080F7A18:
ldr r1, _080F7A28 @ =gUnknown_841F444
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x4]
b _080F7AB6
.align 2, 0
_080F7A28: .4byte gUnknown_841F444
_080F7A2C:
ldr r1, _080F7A3C @ =gUnknown_841F444
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
b _080F7AB6
.align 2, 0
_080F7A3C: .4byte gUnknown_841F444
_080F7A40:
ldr r1, _080F7A50 @ =gUnknown_841F444
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x6]
b _080F7AB6
.align 2, 0
_080F7A50: .4byte gUnknown_841F444
_080F7A54:
ldr r1, _080F7A64 @ =gUnknown_841F444
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x7]
b _080F7AB6
.align 2, 0
_080F7A64: .4byte gUnknown_841F444
_080F7A68:
ldr r0, _080F7A78 @ =gUnknown_841F444
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x8]
b _080F7A9C
.align 2, 0
_080F7A78: .4byte gUnknown_841F444
_080F7A7C:
ldr r0, _080F7A8C @ =gUnknown_841F444
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x8]
b _080F7AB4
.align 2, 0
_080F7A8C: .4byte gUnknown_841F444
_080F7A90:
ldr r0, _080F7AA4 @ =gUnknown_841F444
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x9]
_080F7A9C:
lsls r0, 28
lsrs r0, 28
b _080F7AB6
.align 2, 0
_080F7AA4: .4byte gUnknown_841F444
_080F7AA8:
ldr r0, _080F7ABC @ =gUnknown_841F444
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x9]
_080F7AB4:
lsrs r0, 4
_080F7AB6:
pop {r1}
bx r1
.align 2, 0
_080F7ABC: .4byte gUnknown_841F444
thumb_func_end GetFontAttribute
thumb_func_start GetMenuCursorDimensionByFont
GetMenuCursorDimensionByFont: @ 80F7AC0
lsls r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, _080F7AD4 @ =gUnknown_841F4A4
lsrs r0, 23
adds r1, r0
adds r1, r2
ldrb r0, [r1]
bx lr
.align 2, 0
_080F7AD4: .4byte gUnknown_841F4A4
thumb_func_end GetMenuCursorDimensionByFont
.align 2, 0 @ Don't pad with nop.