through AddTextPrinterParameterized2()

This commit is contained in:
jiangzhengwenjz
2019-06-24 14:37:45 +08:00
parent 5b7c34096c
commit efad45497d
52 changed files with 664 additions and 1213 deletions
+6 -799
View File
@@ -5,799 +5,6 @@
.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 DecompressAndLoadBgGfxUsingHeap
DecompressAndLoadBgGfxUsingHeap: @ 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 DecompressAndLoadBgGfxUsingHeap
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 SetBgRectPal
SetBgRectPal: @ 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 SetBgRectPal
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 InitStandardTextBoxWindows
InitStandardTextBoxWindows: @ 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 InitStandardTextBoxWindows
thumb_func_start sub_80F6C8C
sub_80F6C8C: @ 80F6C8C
push {lr}
bl FreeAllWindowBuffers
pop {r0}
bx r0
thumb_func_end sub_80F6C8C
thumb_func_start ResetBg0
ResetBg0: @ 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 ResetBg0
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 AddTextPrinterParameterized2
AddTextPrinterParameterized2: @ 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 AddTextPrinterParameterized2
thumb_func_start sub_80F6D5C
sub_80F6D5C: @ 80F6D5C
push {r4,r5,lr}
@@ -2224,7 +1431,7 @@ sub_80F78E0: @ 80F78E0
sub sp, 0x20
lsls r0, 24
lsrs r1, r0, 24
ldr r4, _080F7934 @ =gUnknown_203ABE0
ldr r4, _080F7934 @ =sStartMenuWindowId
ldrb r0, [r4]
cmp r0, 0xFF
bne _080F792A
@@ -2261,23 +1468,23 @@ _080F792A:
pop {r1}
bx r1
.align 2, 0
_080F7934: .4byte gUnknown_203ABE0
_080F7934: .4byte sStartMenuWindowId
_080F7938: .4byte 0x0000013d
thumb_func_end sub_80F78E0
thumb_func_start GetStartMenuWindowId
GetStartMenuWindowId: @ 80F793C
ldr r0, _080F7944 @ =gUnknown_203ABE0
ldr r0, _080F7944 @ =sStartMenuWindowId
ldrb r0, [r0]
bx lr
.align 2, 0
_080F7944: .4byte gUnknown_203ABE0
_080F7944: .4byte sStartMenuWindowId
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
ldr r4, _080F7960 @ =sStartMenuWindowId
ldrb r0, [r4]
cmp r0, 0xFF
beq _080F795A
@@ -2289,7 +1496,7 @@ _080F795A:
pop {r0}
bx r0
.align 2, 0
_080F7960: .4byte gUnknown_203ABE0
_080F7960: .4byte sStartMenuWindowId
thumb_func_end remove_start_menu_window_maybe
thumb_func_start sub_80F7964