diff options
582 files changed, 35819 insertions, 39330 deletions
diff --git a/.clang-format b/.clang-format index e78d3daf..6f287c3c 100644 --- a/.clang-format +++ b/.clang-format @@ -8,7 +8,7 @@ TabWidth: 4 AlignAfterOpenBracket: DontAlign Cpp11BracedListStyle: false BreakStringLiterals: false -IndentCaseLabels: false +IndentCaseLabels: true BinPackArguments: false BinPackParameters: false AlignTrailingComments: false @@ -1,6 +1,6 @@ # Pokémon Diamond -[](https://travis-ci.com/pret/pokediamond) +[](https://github.com/pret/pokediamond/actions/workflows/build.yml) This is a decompilation of Pokémon Diamond. diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt index 0de93feb..8bdaeba1 100644 --- a/arm9/CMakeLists.txt +++ b/arm9/CMakeLists.txt @@ -11,7 +11,7 @@ enable_language(ASM) add_compile_options(-fms-extensions) -file(GLOB_RECURSE SOURCES "*.c" "*.cpp") +file(GLOB_RECURSE SOURCES "*.c" "*.cpp" "*.s") file(GLOB MODULE_INC modules/*/include) add_executable(DP_Arm9 ${SOURCES}) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index fa609048..19c29a3c 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -9,7 +9,7 @@ Static arm9 Object list_menu.o Object unk_02001B80.o Object string_util.o - Object unk_020023C0.o + Object render_text.o Object unk_02002C14.o Object unk_02002F08.o Object unk_020030E8.o @@ -53,7 +53,7 @@ Static arm9 Object unk_02015E30.o Object game_init.o Object heap.o - Object unk_02016B94.o + Object bg_window.o Object unk_0201B1A8.o Object unk_0201B4E8.o Object unk_0201B6D0.o @@ -173,8 +173,7 @@ Static arm9 Object scrcmd_money.o Object scrcmd_daycare.o Object scrcmd_17.o - Object scrcmd_18_c.o - Object scrcmd_18.o + Object scrcmd_party.o Object scrcmd_fossils.o Object scrcmd_prizes.o Object scrcmd_flags.o @@ -265,7 +264,7 @@ Static arm9 Object unk_0206C700.o Object unk_0206DE24.o Object unk_0206E0F0.o - Object unk_0206E2F0.o + Object bag_view.o ##itemtool## Object itemtool.o @@ -545,8 +544,72 @@ Static arm9 Object MATH_crc.o Object STD_string.o ### Standard libraries ### - Object libc.o - Object stdlibmwcc.o + ### Bundled with CodeWarrior, so probably compiled with 2.0sp1 ### + Object MSL_ARM_abort_exit.o + Object MSL_ARM_critical_regions_NITRO.o + Object MSL_ARM_math.o + Object MSL_Common_ansi_files.o + Object MSL_Common_arith.o + Object MSL_Common_assert.o + Object MSL_Common_buffer_io.o + Object MSL_Common_ctype.o + Object MSL_Common_direct_io.o + Object MSL_Common_errno.o + Object MSL_Common_file_io.o + Object MSL_Common_file_pos.o + Object MSL_Common_float.o + Object MSL_Common_mbstring.o + Object MSL_Common_mem.o + Object MSL_Common_mem_funcs.o + Object MSL_Common_printf.o + Object MSL_Common_qsort.o + Object MSL_Common_rand.o + Object MSL_Common_scanf.o + Object MSL_Common_signal.o + Object MSL_Common_string.o + Object MSL_Common_strtold.o + Object MSL_Common_strtoul.o + Object MSL_Common_wchar_io.o + Object MSL_Common_wctype.o + Object MSL_Common_wmem.o + Object MSL_Common_wprintf.o + Object MSL_Common_wstring.o + Object MSL_DPMath_e_pow.o + Object MSL_DPMath_s_copysign.o + Object MSL_DPMath_s_fabs.o + Object MSL_DPMath_s_frexp.o + Object MSL_DPMath_s_ldexp.o + Object MSL_DPMath_w_pow.o + Object MSL_fp_ansi.o + Object MSL_math.o + Object MSL_string_extras.o + Object RUNTIME_d_add.o + Object RUNTIME_d_dtof.o + Object RUNTIME_d_dtoi.o + Object RUNTIME_d_dtoull.o + Object RUNTIME_d_itod.o + Object RUNTIME_d_mul.o + Object RUNTIME_d_sqrt.o + Object RUNTIME_d_sub.o + Object RUNTIME_f_add.o + Object RUNTIME_f_cmp.o + Object RUNTIME_f_div.o + Object RUNTIME_f_ftod.o + Object RUNTIME_f_ftoi.o + Object RUNTIME_f_ftou.o + Object RUNTIME_f_itof.o + Object RUNTIME_f_mul.o + Object RUNTIME_f_sub.o + Object RUNTIME_ll_div.o + Object RUNTIME_ll_mul.o + Object RUNTIME_ll_sll.o + Object RUNTIME_s32_div_f.o + Object RUNTIME_u32_div_f.o + Object RUNTIME_d_div.o + Object RUNTIME_ieee_status.o + Object RUNTIME_ARM_semihosted_console_io.o + Object RUNTIME_CPLUS_StaticInitializers.o + Object RUNTIME_NITRO_eabi_init.o } Autoload ITCM @@ -730,7 +793,7 @@ Overlay MODULE_18 Overlay MODULE_19 { - ##Overworld (models?)## + ##Bottom screen before Pokétch## After MODULE_06 Object module_19.o } diff --git a/arm9/asm/CTRDG_flash_LE39FW512.s b/arm9/asm/CTRDG_flash_LE39FW512.s index 8b249e96..6f964d91 100644 --- a/arm9/asm/CTRDG_flash_LE39FW512.s +++ b/arm9/asm/CTRDG_flash_LE39FW512.s @@ -40,7 +40,7 @@ LE39FW512: ; 0x0210410C .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xD4, 0x00 - .text + .text arm_func_start CTRDGi_WriteFlashSectorAsyncLE CTRDGi_WriteFlashSectorAsyncLE: ; 0x020DCC9C diff --git a/arm9/asm/CTRDG_flash_MX29L010.s b/arm9/asm/CTRDG_flash_MX29L010.s index 39f792cc..9d7cd2aa 100644 --- a/arm9/asm/CTRDG_flash_MX29L010.s +++ b/arm9/asm/CTRDG_flash_MX29L010.s @@ -40,7 +40,7 @@ defaultFlash1M: ; 0x0210418C .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .text + .text arm_func_start CTRDGi_WriteFlashSectorAsyncMX CTRDGi_WriteFlashSectorAsyncMX: ; 0x020DD2D8 diff --git a/arm9/asm/CTRDG_flash_MX29L512.s b/arm9/asm/CTRDG_flash_MX29L512.s index a0d7a776..f5f855bc 100644 --- a/arm9/asm/CTRDG_flash_MX29L512.s +++ b/arm9/asm/CTRDG_flash_MX29L512.s @@ -28,7 +28,7 @@ MN63F805MNP: ; 0x021041D0 .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x1B, 0x00 - .text + .text arm_func_start CTRDGi_WriteFlashSectorAsyncMX5 CTRDGi_WriteFlashSectorAsyncMX5: ; 0x020DD868 diff --git a/arm9/asm/CTRDG_flash_common.s b/arm9/asm/CTRDG_flash_common.s index cf62c3b0..968e3512 100644 --- a/arm9/asm/CTRDG_flash_common.s +++ b/arm9/asm/CTRDG_flash_common.s @@ -67,7 +67,7 @@ UNK_021D6B44: ; 0x021D6B44 ctrdgi_sram_lock_id: ; 0x021D6B4C .space 0x4 - .text + .text arm_func_start CTRDG_WriteAndVerifyAgbFlashAsync CTRDG_WriteAndVerifyAgbFlashAsync: ; 0x020DBF14 diff --git a/arm9/asm/CTRDG_proc.s b/arm9/asm/CTRDG_proc.s index f9e981d0..88c82553 100644 --- a/arm9/asm/CTRDG_proc.s +++ b/arm9/asm/CTRDG_proc.s @@ -37,7 +37,7 @@ UNK_021D6964: ; 0x021D6964 UNK_021D6A20: ; 0x021D6A20 .space 0xe8 - .text + .text arm_func_start CTRDGi_CallbackForSetPhi CTRDGi_CallbackForSetPhi: ; 0x020DB978 diff --git a/arm9/asm/CTRDG_task.s b/arm9/asm/CTRDG_task.s index c0feb88e..95c9ddb4 100644 --- a/arm9/asm/CTRDG_task.s +++ b/arm9/asm/CTRDG_task.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021D6F78 + .extern __console_exit .section .bss @@ -177,7 +177,7 @@ _020DDC04: ; 0x020DDC04 str r0, [r5, #0xc0] mov r2, #0x400 ldr r1, _020DDC54 ; =CTRDGi_TaskThread - ldr r3, _020DDC58 ; =UNK_021D6F78 + ldr r3, _020DDC58 ; =__console_exit mov r0, r5 str r2, [sp, #0x0] mov r2, #0x14 @@ -196,4 +196,4 @@ _020DDC38: _020DDC4C: .word UNK_021D6B50 _020DDC50: .word UNK_021D6B54 _020DDC54: .word CTRDGi_TaskThread -_020DDC58: .word UNK_021D6F78 +_020DDC58: .word __console_exit diff --git a/arm9/asm/DGT_hash1.s b/arm9/asm/DGT_hash1.s index 4befbb88..6a8580c1 100644 --- a/arm9/asm/DGT_hash1.s +++ b/arm9/asm/DGT_hash1.s @@ -41,7 +41,7 @@ Unk_02106900: ; 0x02106900 .word 0x6FA87E4F, 0xFE2CE6E0, 0xA3014314, 0x4E0811A1 .word 0xF7537E82, 0xBD3AF235, 0x2AD7D2BB, 0xEB86D391 - .text + .text arm_func_start ProcessBlock ProcessBlock: ; 0x020D2798 diff --git a/arm9/asm/DGT_hash2.s b/arm9/asm/DGT_hash2.s index f309204e..918b6988 100644 --- a/arm9/asm/DGT_hash2.s +++ b/arm9/asm/DGT_hash2.s @@ -12,7 +12,7 @@ Unk_02106A04: ; 0x02106A04 .byte 0x14, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .text + .text arm_func_start DGT_Hash2CalcHmac DGT_Hash2CalcHmac: ; 0x020D2D78 diff --git a/arm9/asm/MSL_ARM_abort_exit.s b/arm9/asm/MSL_ARM_abort_exit.s new file mode 100644 index 00000000..2fb7796f --- /dev/null +++ b/arm9/asm/MSL_ARM_abort_exit.s @@ -0,0 +1,168 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .bss
+
+ .global __console_exit
+__console_exit: ; 0x021D6F78
+ .space 0x4
+ .size __console_exit,.-__console_exit
+
+ .global __stdio_exit
+__stdio_exit: ; 0x021D6F7C
+ .space 0x4
+ .size __stdio_exit,.-__stdio_exit
+
+ .global __atexit_curr_func
+__atexit_curr_func: ; 0x021D6F80
+ .space 0x4
+ .size __atexit_curr_func,.-__atexit_curr_func
+
+ .global __aborting
+__aborting: ; 0x021D6F84
+ .space 0x4
+ .size __aborting,.-__aborting
+
+ .global __atexit_funcs
+__atexit_funcs: ; 0x021D6F88
+ .space 0x100
+ .size __atexit_funcs,.-__atexit_funcs
+
+ .text
+
+ arm_func_start abort
+abort: ; 0x020DE14C
+ stmdb sp!, {r3,lr}
+ mov r0, #0x1
+ bl raise
+ ldr r1, _020DE16C ; =__aborting - 0xC
+ mov r0, #0x1
+ str r0, [r1, #0xc]
+ bl exit
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DE16C: .word __aborting - 0xC
+ arm_func_end abort
+
+ arm_func_start exit
+exit: ; 0x020DE170
+ stmdb sp!, {r4,lr}
+ ldr r1, _020DE1B8 ; =__aborting - 0xC
+ mov r4, r0
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x0
+ bne _020DE1AC
+ bl __destroy_global_chain
+ ldr r0, _020DE1B8 ; =__stdio_exit - 0x4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020DE1AC
+ blx r0
+ ldr r0, _020DE1B8 ; =__stdio_exit - 0x4
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_020DE1AC:
+ mov r0, r4
+ bl __exit
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020DE1B8: .word __console_exit
+ arm_func_end exit
+
+ arm_func_start __exit
+__exit: ; 0x020DE1BC
+ stmdb sp!, {r3-r5,lr}
+ ldr r0, _020DE2CC ; =__cs
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020DE1F4
+ ldr r0, _020DE2D0 ; =OSi_ThreadInfo
+ ldr r1, _020DE2D4 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020DE2D8 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ b _020DE24C
+_020DE1F4:
+ ldr r0, _020DE2D0 ; =OSi_ThreadInfo
+ ldr r1, _020DE2D4 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DE224
+ ldr r0, _020DE2D8 ; =__cs_ref
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ b _020DE24C
+_020DE224:
+ ldr r0, _020DE2CC ; =__cs
+ bl OS_LockMutex
+ ldr r0, _020DE2D0 ; =OSi_ThreadInfo
+ ldr r1, _020DE2D4 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020DE2D8 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+_020DE24C:
+ ldr r4, _020DE2DC ; =__console_exit
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ble _020DE280
+ ldr r5, _020DE2E0 ; =__atexit_funcs
+_020DE260:
+ ldr r0, [r4, #0x8]
+ sub r1, r0, #0x1
+ ldr r0, [r5, r1, lsl #0x2]
+ str r1, [r4, #0x8]
+ blx r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bgt _020DE260
+_020DE280:
+ ldr r0, _020DE2D8 ; =__cs_ref
+ ldr r1, [r0, #0x0]
+ subs r1, r1, #0x1
+ str r1, [r0, #0x0]
+ bne _020DE29C
+ ldr r0, _020DE2CC ; =__cs
+ bl OS_UnlockMutex
+_020DE29C:
+ ldr r0, _020DE2DC ; =__console_exit
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020DE2BC
+ blx r0
+ ldr r0, _020DE2DC ; =__console_exit
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020DE2BC:
+ mov r0, #0x0
+ bl fflush
+ bl _ExitProcess
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020DE2CC: .word __cs
+_020DE2D0: .word OSi_ThreadInfo
+_020DE2D4: .word __cs_id
+_020DE2D8: .word __cs_ref
+_020DE2DC: .word __console_exit
+_020DE2E0: .word __atexit_funcs
+ arm_func_end __exit
+
+ .section .exceptix,4
+
+ .word abort
+ .short 37
+ .word 0x00100000
+ .word exit
+ .short 77
+ .word 0x00100100
+ .word __exit
+ .short 297
+ .word 0x00200300
diff --git a/arm9/asm/MSL_ARM_critical_regions_NITRO.s b/arm9/asm/MSL_ARM_critical_regions_NITRO.s new file mode 100644 index 00000000..2995c55e --- /dev/null +++ b/arm9/asm/MSL_ARM_critical_regions_NITRO.s @@ -0,0 +1,19 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .bss
+
+ .global __cs_id
+__cs_id: ; 0x021D7088
+ .space 0x24
+ .size __cs_id,.-__cs_id
+
+ .global __cs_ref
+__cs_ref: ; 0x021D70AC
+ .space 0x24
+ .size __cs_ref,.-__cs_ref
+
+ .global __cs
+__cs: ; 0x021D70D0
+ .space 0xD8
+ .size __cs,.-__cs
diff --git a/arm9/asm/MSL_ARM_math.s b/arm9/asm/MSL_ARM_math.s new file mode 100644 index 00000000..cb9bb034 --- /dev/null +++ b/arm9/asm/MSL_ARM_math.s @@ -0,0 +1,21 @@ + .include "global.inc"
+ .include "asm/macros.inc"
+
+ .text
+
+ arm_func_start nan
+nan: ; 0x020DE2E4
+ ldr r0, _020DE2F4 ; =__float_nan
+ ldr ip, _020DE2F8 ; =_f2d
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020DE2F4: .word __float_nan
+_020DE2F8: .word _f2d
+ arm_func_end nan
+
+ .section .exceptix,4
+
+ .word nan
+ .short 25
+ .word 0x00000000
diff --git a/arm9/asm/MSL_Common_ansi_files.s b/arm9/asm/MSL_Common_ansi_files.s new file mode 100644 index 00000000..70fdc293 --- /dev/null +++ b/arm9/asm/MSL_Common_ansi_files.s @@ -0,0 +1,151 @@ + .include "global.inc"
+ .include "asm/macros.inc"
+
+ .data
+
+ .global __files
+__files: ; 0x02106A58
+ ; stdin
+ .byte 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word stdin_buff
+ .byte 0x00, 0x01, 0x00, 0x00
+ .word stdin_buff
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word __read_console
+ .word __write_console
+ .word __close_console
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ ; stdout
+ .byte 0x01, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word stdout_buff
+ .byte 0x00, 0x01, 0x00, 0x00
+ .word stdout_buff
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word __read_console
+ .word __write_console
+ .word __close_console
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ ; stderr
+ .byte 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word stderr_buff
+ .byte 0x00, 0x01, 0x00, 0x00
+ .word stderr_buff
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .word __read_console
+ .word __write_console
+ .word __close_console
+ .byte 0x00, 0x00, 0x00, 0x00
+ .size __files,.-__files
+
+ .bss
+
+ .global stderr_buff
+stderr_buff: ; 0x021D71A8
+ .space 0x100
+ .size stderr_buff,.-stderr_buff
+
+ .global stdout_buff
+stdout_buff: ; 0x021D72A8
+ .space 0x100
+ .size stdout_buff,.-stdout_buff
+
+ .global stdin_buff
+stdin_buff: ; 0x021D73A8
+ .space 0x100
+ .size stdin_buff,.-stdin_buff
+
+ .text
+
+ arm_func_start __flush_line_buffered_output_files
+__flush_line_buffered_output_files:
+ stmdb sp!, {r3-r9,lr}
+ ldr r0, _020DE384 ; =__files
+ mov r4, #0x0
+ mov r5, #0x1
+ mov r8, r0
+ mvn r9, #0x0
+ mov r7, r4
+ mov r6, #0x4c
+_020DE31C:
+ ldr r1, [r0, #0x4]
+ mov r2, r1, lsl #0x16
+ movs r2, r2, lsr #0x1d
+ beq _020DE35C
+ mov r1, r1, lsl #0x19
+ mov r1, r1, lsr #0x1e
+ tst r1, #0x1
+ beq _020DE35C
+ ldr r1, [r0, #0x8]
+ mov r1, r1, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ bne _020DE35C
+ bl fflush
+ cmp r0, #0x0
+ movne r4, r9
+_020DE35C:
+ cmp r5, #0x3
+ movge r0, r7
+ bge _020DE374
+ mul r0, r5, r6
+ add r5, r5, #0x1
+ add r0, r8, r0
+_020DE374:
+ cmp r0, #0x0
+ bne _020DE31C
+ mov r0, r4
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DE384: .word __files
+ arm_func_end __flush_line_buffered_output_files
+
+ arm_func_start __flush_all
+__flush_all: ; 0x020DE388
+ stmdb sp!, {r3-r9,lr}
+ ldr r0, _020DE3EC ; =__files
+ mov r4, #0x0
+ mov r5, #0x1
+ mov r8, r0
+ mvn r9, #0x0
+ mov r7, r4
+ mov r6, #0x4c
+_020DE3A8:
+ ldr r1, [r0, #0x4]
+ mov r1, r1, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ beq _020DE3C4
+ bl fflush
+ cmp r0, #0x0
+ movne r4, r9
+_020DE3C4:
+ cmp r5, #0x3
+ movge r0, r7
+ bge _020DE3DC
+ mul r0, r5, r6
+ add r5, r5, #0x1
+ add r0, r8, r0
+_020DE3DC:
+ cmp r0, #0x0
+ bne _020DE3A8
+ mov r0, r4
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DE3EC: .word __files
+ arm_func_end __flush_all
+
+ .section .exceptix,4
+
+ .word __flush_line_buffered_output_files
+ .short 141
+ .word 0x00403F00
+ .word __flush_all
+ .short 105
+ .word 0x00403F00
diff --git a/arm9/asm/MSL_Common_arith.s b/arm9/asm/MSL_Common_arith.s new file mode 100644 index 00000000..5d93a4de --- /dev/null +++ b/arm9/asm/MSL_Common_arith.s @@ -0,0 +1,11 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start abs
+abs: ; 0x020DE3F0
+ cmp r0, #0x0
+ rsblt r0, r0, #0x0
+ bx lr
+ arm_func_end abs
diff --git a/arm9/asm/MSL_Common_assert.s b/arm9/asm/MSL_Common_assert.s new file mode 100644 index 00000000..ded4056d --- /dev/null +++ b/arm9/asm/MSL_Common_assert.s @@ -0,0 +1,37 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+__local_str__msl_assertion_failed: ; 0x02106B3C
+ .asciz "Assertion (%s) failed in \"%s\", function \"%s\", line %d\n"
+ .size __local_str__msl_assertion_failed,.-__local_str__msl_assertion_failed
+ .balign 4, 0
+
+ .text
+
+ arm_func_start __msl_assertion_failed
+__msl_assertion_failed: ; 0x020DE3FC
+ stmdb sp!, {r3-r4,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ ldr r0, _020DE434 ; =__local_str__msl_assertion_failed
+ mov r1, r4
+ mov r2, lr
+ mov r3, r12
+ bl printf
+ bl abort
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r4,pc}
+ .balign 4
+_020DE434: .word __local_str__msl_assertion_failed
+ arm_func_end __msl_assertion_failed
+
+ .section .exceptix,4
+
+ .word __msl_assertion_failed
+ .short 61
+ .word 0x00200100
diff --git a/arm9/asm/MSL_Common_buffer_io.s b/arm9/asm/MSL_Common_buffer_io.s new file mode 100644 index 00000000..7dbbcc45 --- /dev/null +++ b/arm9/asm/MSL_Common_buffer_io.s @@ -0,0 +1,119 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start __convert_from_newlines
+__convert_from_newlines:
+ bx lr
+ arm_func_end __convert_from_newlines
+
+ arm_func_start __convert_to_newlines
+__convert_to_newlines:
+ bx lr
+ arm_func_end __convert_to_newlines
+
+ arm_func_start __prep_buffer
+__prep_buffer:
+ ldr r1, [r0, #0x1c]
+ str r1, [r0, #0x24]
+ ldr r3, [r0, #0x20]
+ str r3, [r0, #0x28]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r0, #0x2c]
+ and r1, r2, r1
+ sub r1, r3, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x18]
+ str r1, [r0, #0x34]
+ bx lr
+ arm_func_end __prep_buffer
+
+ arm_func_start __load_buffer
+__load_buffer:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r2
+ mov r4, r0
+ mov r6, r1
+ bl __prep_buffer
+ cmp r5, #0x1
+ ldreq r0, [r4, #0x20]
+ add r2, r4, #0x28
+ streq r0, [r4, #0x28]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x1c]
+ ldr r3, [r4, #0x48]
+ ldr r12, [r4, #0x3c]
+ blx r12
+ cmp r0, #0x2
+ moveq r1, #0x0
+ streq r1, [r4, #0x28]
+ cmp r6, #0x0
+ ldrne r1, [r4, #0x28]
+ strne r1, [r6, #0x0]
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x4]
+ mov r0, r0, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ bne _020DE4F4
+ ldr r0, [r4, #0x1c]
+ add r1, r4, #0x28
+ bl __convert_to_newlines
+_020DE4F4:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end __load_buffer
+
+ arm_func_start __flush_buffer
+__flush_buffer:
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ ldr r2, [r5, #0x24]
+ ldr r0, [r5, #0x1c]
+ mov r4, r1
+ subs r0, r2, r0
+ beq _020DE574
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x4]
+ mov r0, r0, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ bne _020DE538
+ ldr r0, [r5, #0x1c]
+ add r1, r5, #0x28
+ bl __convert_from_newlines
+_020DE538:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x1c]
+ ldr r3, [r5, #0x48]
+ ldr r12, [r5, #0x40]
+ add r2, r5, #0x28
+ blx r12
+ cmp r4, #0x0
+ ldrne r1, [r5, #0x28]
+ strne r1, [r4, #0x0]
+ cmp r0, #0x0
+ ldmneia sp!, {r3-r5,pc}
+ ldr r1, [r5, #0x18]
+ ldr r0, [r5, #0x28]
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+_020DE574:
+ mov r0, r5
+ bl __prep_buffer
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __flush_buffer
+
+ .section .exceptix,4
+
+ .word __load_buffer
+ .short 141
+ .word 0x00200700
+ .word __flush_buffer
+ .short 137
+ .word 0x00200300
diff --git a/arm9/asm/MSL_Common_ctype.s b/arm9/asm/MSL_Common_ctype.s new file mode 100644 index 00000000..7513f451 --- /dev/null +++ b/arm9/asm/MSL_Common_ctype.s @@ -0,0 +1,48 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .rodata
+
+ .global __lower_mapC
+__lower_mapC: ; 0x0210420C
+ .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
+ .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
+ .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F
+ .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
+ .byte 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F
+ .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F
+ .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F
+ .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F
+ .size __lower_mapC,.-__lower_mapC
+
+ .global __upper_mapC
+__upper_mapC: ; 0x0210428C
+ .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
+ .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
+ .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F
+ .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
+ .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F
+ .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F
+ .byte 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F
+ .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F
+ .size __upper_mapC,.-__upper_mapC
+
+ .global __msl_digit
+__msl_digit: ; 0x0210430C
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0004, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0004, 0x0004
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0142, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458
+ .short 0x0458, 0x0458, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x0004
+ .size __msl_digit,.-__msl_digit
diff --git a/arm9/asm/MSL_Common_direct_io.s b/arm9/asm/MSL_Common_direct_io.s new file mode 100644 index 00000000..d71f0bc4 --- /dev/null +++ b/arm9/asm/MSL_Common_direct_io.s @@ -0,0 +1,513 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start fread
+fread: ; 0x020DE584
+ stmdb sp!, {r4-r10,lr}
+ ldr r4, _020DE67C ; =__files
+ mov r7, r3
+ cmp r7, r4
+ moveq r6, #0x2
+ mov r10, r0
+ movne r6, #0x5
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DE680 ; =__cs
+ mov r9, r1
+ add r0, r5, r4
+ mov r8, r2
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020DE5E8
+ ldr r0, _020DE684 ; =OSi_ThreadInfo
+ ldr r2, _020DE688 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DE68C ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DE640
+_020DE5E8:
+ ldr r0, _020DE684 ; =OSi_ThreadInfo
+ ldr r1, _020DE688 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DE618
+ ldr r1, _020DE68C ; =__cs_ref
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DE640
+_020DE618:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DE684 ; =OSi_ThreadInfo
+ ldr r2, _020DE688 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DE68C ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DE640:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r8
+ mov r3, r7
+ bl __fread
+ ldr r1, _020DE68C ; =__cs_ref
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DE674
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DE674:
+ mov r0, r7
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020DE67C: .word __files
+_020DE680: .word __cs
+_020DE684: .word OSi_ThreadInfo
+_020DE688: .word __cs_id
+_020DE68C: .word __cs_ref
+ arm_func_end fread
+
+ arm_func_start __fread
+__fread: ; 0x020DE690
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x4
+ mov r7, r3
+ mov r9, r0
+ mov r8, r1
+ mov r0, r7
+ mov r1, #0x0
+ mov r4, r2
+ bl fwide
+ cmp r0, #0x0
+ bne _020DE6C8
+ mov r0, r7
+ mvn r1, #0x0
+ bl fwide
+_020DE6C8:
+ muls r4, r8, r4
+ beq _020DE6EC
+ ldrb r0, [r7, #0xd]
+ cmp r0, #0x0
+ bne _020DE6EC
+ ldr r1, [r7, #0x4]
+ mov r0, r1, lsl #0x16
+ movs r0, r0, lsr #0x1d
+ bne _020DE6F8
+_020DE6EC:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r3-r10,pc}
+_020DE6F8:
+ mov r0, r1, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ movne r0, r1, lsl #0x19
+ movne r0, r0, lsr #0x1e
+ ldr r1, [r7, #0x8]
+ cmpne r0, #0x2
+ mov r6, #0x1
+ mov r0, r1, lsl #0x1d
+ movne r6, #0x0
+ movs r0, r0, lsr #0x1d
+ bne _020DE74C
+ ldr r0, [r7, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ tst r0, #0x1
+ beq _020DE74C
+ bic r0, r1, #0x7
+ orr r0, r0, #0x2
+ str r0, [r7, #0x8]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE74C:
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ bhs _020DE778
+ mov r0, #0x1
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ str r0, [r7, #0x28]
+ ldmia sp!, {r3-r10,pc}
+_020DE778:
+ ldr r0, [r7, #0x4]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ tst r0, #0x1
+ beq _020DE7B0
+ bl __flush_line_buffered_output_files
+ cmp r0, #0x0
+ beq _020DE7B0
+ mov r0, #0x1
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ str r0, [r7, #0x28]
+ ldmia sp!, {r3-r10,pc}
+_020DE7B0:
+ cmp r4, #0x0
+ mov r5, #0x0
+ beq _020DE874
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ blo _020DE874
+ mov r10, r5
+_020DE7D4:
+ mov r0, r7
+ mov r1, r10
+ bl fwide
+ cmp r0, #0x1
+ ldr r0, [r7, #0x8]
+ bne _020DE808
+ mov r0, r0, lsl #0x1d
+ add r0, r7, r0, lsr #0x1c
+ ldrh r0, [r0, #0xe]
+ add r5, r5, #0x2
+ sub r4, r4, #0x2
+ strh r0, [r9], #0x2
+ b _020DE820
+_020DE808:
+ mov r0, r0, lsl #0x1d
+ add r0, r7, r0, lsr #0x1d
+ ldrb r0, [r0, #0xf]
+ add r5, r5, #0x1
+ sub r4, r4, #0x1
+ strb r0, [r9], #0x1
+_020DE820:
+ ldr r1, [r7, #0x8]
+ cmp r4, #0x0
+ mov r0, r1, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ sub r0, r0, #0x1
+ bic r1, r1, #0x7
+ and r0, r0, #0x7
+ orr r0, r1, r0
+ str r0, [r7, #0x8]
+ beq _020DE85C
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ bhs _020DE7D4
+_020DE85C:
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ ldreq r0, [r7, #0x30]
+ streq r0, [r7, #0x28]
+_020DE874:
+ cmp r4, #0x0
+ beq _020DE938
+ ldr r0, [r7, #0x28]
+ cmp r0, #0x0
+ cmpeq r6, #0x0
+ beq _020DE938
+ mov r10, #0x0
+_020DE890:
+ ldr r0, [r7, #0x28]
+ cmp r0, #0x0
+ bne _020DE8E4
+ mov r0, r7
+ mov r1, r10
+ mov r2, r10
+ bl __load_buffer
+ cmp r0, #0x0
+ beq _020DE8E4
+ cmp r0, #0x1
+ mov r0, #0x1
+ streqb r0, [r7, #0xd]
+ beq _020DE8D4
+ ldr r1, [r7, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r7, #0x8]
+ strb r0, [r7, #0xc]
+_020DE8D4:
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ mov r4, #0x0
+ b _020DE938
+_020DE8E4:
+ ldr r0, [r7, #0x28]
+ str r0, [sp, #0x0]
+ cmp r0, r4
+ strhi r4, [sp, #0x0]
+ ldr r1, [r7, #0x24]
+ ldr r2, [sp, #0x0]
+ mov r0, r9
+ bl memcpy
+ ldr r2, [sp, #0x0]
+ ldr r0, [r7, #0x24]
+ subs r4, r4, r2
+ add r0, r0, r2
+ str r0, [r7, #0x24]
+ ldr r1, [r7, #0x28]
+ ldr r0, [sp, #0x0]
+ add r9, r9, r2
+ sub r0, r1, r0
+ add r5, r5, r2
+ str r0, [r7, #0x28]
+ cmpne r6, #0x0
+ bne _020DE890
+_020DE938:
+ cmp r4, #0x0
+ beq _020DE9C4
+ cmp r6, #0x0
+ bne _020DE9C4
+ ldr r6, [r7, #0x1c]
+ ldr r10, [r7, #0x20]
+ add r1, sp, #0x0
+ str r9, [r7, #0x1c]
+ mov r0, r7
+ mov r2, #0x1
+ str r4, [r7, #0x20]
+ bl __load_buffer
+ cmp r0, #0x0
+ beq _020DE9A4
+ cmp r0, #0x1
+ mov r0, #0x1
+ bne _020DE98C
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ b _020DE9A4
+_020DE98C:
+ ldr r1, [r7, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r7, #0x8]
+ strb r0, [r7, #0xc]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE9A4:
+ ldr r1, [sp, #0x0]
+ mov r0, r7
+ str r6, [r7, #0x1c]
+ str r10, [r7, #0x20]
+ add r5, r5, r1
+ bl __prep_buffer
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE9C4:
+ mov r0, r5
+ mov r1, r8
+ bl _u32_div_f
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r10,pc}
+ arm_func_end __fread
+
+ arm_func_start __fwrite
+__fwrite:
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x8
+ mov r9, r3
+ mov r10, r0
+ str r1, [sp, #0x0]
+ mov r0, r9
+ mov r1, #0x0
+ mov r4, r2
+ bl fwide
+ cmp r0, #0x0
+ bne _020DEA10
+ mov r0, r9
+ mvn r1, #0x0
+ bl fwide
+_020DEA10:
+ ldr r0, [sp, #0x0]
+ muls r5, r0, r4
+ beq _020DEA38
+ ldrb r0, [r9, #0xd]
+ cmp r0, #0x0
+ bne _020DEA38
+ ldr r1, [r9, #0x4]
+ mov r0, r1, lsl #0x16
+ movs r0, r0, lsr #0x1d
+ bne _020DEA44
+_020DEA38:
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r3-r11,pc}
+_020DEA44:
+ mov r0, r1, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ movne r0, r1, lsl #0x19
+ movne r0, r0, lsr #0x1e
+ cmpne r0, #0x2
+ ldr r1, [r9, #0x8]
+ cmpne r0, #0x1
+ mov r8, #0x1
+ mov r0, r1, lsl #0x1d
+ movne r8, #0x0
+ movs r0, r0, lsr #0x1d
+ bne _020DEA9C
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ tst r0, #0x2
+ beq _020DEA9C
+ bic r0, r1, #0x7
+ orr r1, r0, #0x1
+ mov r0, r9
+ str r1, [r9, #0x8]
+ bl __prep_buffer
+_020DEA9C:
+ ldr r0, [r9, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x1
+ beq _020DEAC8
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ str r0, [r9, #0x28]
+ ldmia sp!, {r3-r11,pc}
+_020DEAC8:
+ cmp r5, #0x0
+ mov r6, #0x0
+ beq _020DEBF0
+ ldr r0, [r9, #0x1c]
+ ldr r2, [r9, #0x24]
+ cmp r2, r0
+ cmpeq r8, #0x0
+ beq _020DEBF0
+ ldr r1, [r9, #0x20]
+ sub r0, r2, r0
+ sub r0, r1, r0
+ str r0, [r9, #0x28]
+ mov r11, #0xa
+ mov r4, #0x0
+_020DEB00:
+ ldr r0, [r9, #0x28]
+ mov r7, r4
+ str r0, [sp, #0x4]
+ cmp r0, r5
+ strhi r5, [sp, #0x4]
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x1
+ bne _020DEB50
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020DEB50
+ mov r0, r10
+ mov r1, r11
+ bl __memrchr
+ movs r7, r0
+ addne r0, r7, #0x1
+ subne r0, r0, r10
+ strne r0, [sp, #0x4]
+_020DEB50:
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020DEB90
+ ldr r0, [r9, #0x24]
+ mov r1, r10
+ bl memcpy
+ ldr r2, [sp, #0x4]
+ ldr r0, [r9, #0x24]
+ add r10, r10, r2
+ add r0, r0, r2
+ str r0, [r9, #0x24]
+ ldr r1, [r9, #0x28]
+ ldr r0, [sp, #0x4]
+ sub r5, r5, r2
+ sub r0, r1, r0
+ str r0, [r9, #0x28]
+_020DEB90:
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ beq _020DEBB4
+ cmp r7, #0x0
+ bne _020DEBB4
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x19
+ movs r0, r0, lsr #0x1e
+ bne _020DEBDC
+_020DEBB4:
+ mov r0, r9
+ mov r1, #0x0
+ bl __flush_buffer
+ cmp r0, #0x0
+ beq _020DEBDC
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r5, #0x0
+ str r5, [r9, #0x28]
+ b _020DEBF0
+_020DEBDC:
+ ldr r0, [sp, #0x4]
+ cmp r5, #0x0
+ add r6, r6, r0
+ cmpne r8, #0x0
+ bne _020DEB00
+_020DEBF0:
+ cmp r5, #0x0
+ beq _020DEC5C
+ cmp r8, #0x0
+ bne _020DEC5C
+ ldr r4, [r9, #0x1c]
+ ldr r7, [r9, #0x20]
+ add r2, r10, r5
+ str r10, [r9, #0x1c]
+ str r5, [r9, #0x20]
+ add r1, sp, #0x4
+ mov r0, r9
+ str r2, [r9, #0x24]
+ bl __flush_buffer
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x4]
+ addeq r6, r6, r0
+ beq _020DEC44
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r0, #0x0
+ str r0, [r9, #0x28]
+_020DEC44:
+ str r4, [r9, #0x1c]
+ mov r0, r9
+ str r7, [r9, #0x20]
+ bl __prep_buffer
+ mov r0, #0x0
+ str r0, [r9, #0x28]
+_020DEC5C:
+ ldr r0, [r9, #0x4]
+ ldr r1, [sp, #0x0]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x2
+ movne r0, #0x0
+ strne r0, [r9, #0x28]
+ mov r0, r6
+ bl _u32_div_f
+ add sp, sp, #0x8
+ ldmia sp!, {r3-r11,pc}
+ arm_func_end __fwrite
+
+ .section .exceptix,4
+
+ .word fread
+ .short 269
+ .word 0x00407F00
+ .word __fread
+ .short 841
+ .word 0x00507F00
+ .word __fwrite
+ .short 689
+ .word 0x0060FF00
\ No newline at end of file diff --git a/arm9/asm/MSL_Common_errno.s b/arm9/asm/MSL_Common_errno.s new file mode 100644 index 00000000..1005e7b7 --- /dev/null +++ b/arm9/asm/MSL_Common_errno.s @@ -0,0 +1,9 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .bss
+
+ .global errno
+errno: ; 0x021D74A8
+ .space 0x4
+ .size errno,.-errno
\ No newline at end of file diff --git a/arm9/asm/MSL_Common_file_io.s b/arm9/asm/MSL_Common_file_io.s new file mode 100644 index 00000000..f8a76bba --- /dev/null +++ b/arm9/asm/MSL_Common_file_io.s @@ -0,0 +1,113 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start fclose
+fclose: ; 0x020DEC88
+ stmdb sp!, {r3-r5,lr}
+ movs r5, r0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+ ldr r1, [r5, #0x4]
+ mov r1, r1, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+ bl fflush
+ mov r4, r0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x44]
+ blx r1
+ ldr r1, [r5, #0x4]
+ mov r2, #0x0
+ bic r1, r1, #0x380
+ str r1, [r5, #0x4]
+ str r2, [r5, #0x0]
+ ldr r1, [r5, #0x8]
+ mov r1, r1, lsl #0x1c
+ movs r1, r1, lsr #0x1f
+ subne r0, r2, #0x1
+ ldmneia sp!, {r3-r5,pc}
+ cmp r4, #0x0
+ cmpeq r0, #0x0
+ movne r2, #0x1
+ rsb r0, r2, #0x0
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end fclose
+
+ arm_func_start fflush
+fflush:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ bne _020DED10
+ bl __flush_all
+ ldmia sp!, {r4,pc}
+_020DED10:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x0
+ bne _020DED2C
+ ldr r0, [r4, #0x4]
+ mov r1, r0, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ bne _020DED34
+_020DED2C:
+ mvn r0, #0x0
+ ldmia sp!, {r4,pc}
+_020DED34:
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, [r4, #0x8]
+ mov r1, r0, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x3
+ biccs r0, r0, #0x7
+ orrcs r0, r0, #0x2
+ strcs r0, [r4, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ moveq r0, #0x0
+ streq r0, [r4, #0x28]
+ ldr r0, [r4, #0x8]
+ mov r1, r0, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ beq _020DEDA0
+ bic r0, r0, #0x7
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020DEDA0:
+ mov r0, r4
+ mov r1, #0x0
+ bl __flush_buffer
+ cmp r0, #0x0
+ mov r0, #0x0
+ beq _020DEDCC
+ mov r1, #0x1
+ strb r1, [r4, #0xd]
+ str r0, [r4, #0x28]
+ sub r0, r0, #0x1
+ ldmia sp!, {r4,pc}
+_020DEDCC:
+ ldr r1, [r4, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r4, #0x8]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x28]
+ ldmia sp!, {r4,pc}
+ arm_func_end fflush
+
+ .section .exceptix,4
+
+ .word fclose
+ .short 117
+ .word 0x00200300
+ .word fflush
+ .short 233
+ .word 0x00100100
diff --git a/arm9/asm/MSL_Common_file_pos.s b/arm9/asm/MSL_Common_file_pos.s new file mode 100644 index 00000000..f5a122aa --- /dev/null +++ b/arm9/asm/MSL_Common_file_pos.s @@ -0,0 +1,372 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ftell
+_ftell: ; 0x020DEDE4
+ ldr r1, [r0, #0x4]
+ mov r1, r1, lsl #0x16
+ mov r1, r1, lsr #0x1d
+ and r1, r1, #0xff
+ add r1, r1, #0xff
+ and r1, r1, #0xff
+ cmp r1, #0x1
+ bhi _020DEE10
+ ldrb r1, [r0, #0xd]
+ cmp r1, #0x0
+ beq _020DEE24
+_020DEE10:
+ ldr r0, _020DEE5C ; =errno
+ mov r1, #0x28
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ bx lr
+_020DEE24:
+ ldr r1, [r0, #0x8]
+ mov r1, r1, lsl #0x1d
+ movs r12, r1, lsr #0x1d
+ ldreq r0, [r0, #0x18]
+ bxeq lr
+ ldr r2, [r0, #0x24]
+ ldr r1, [r0, #0x1c]
+ ldr r3, [r0, #0x34]
+ sub r0, r2, r1
+ cmp r12, #0x3
+ add r0, r3, r0
+ subcs r1, r12, #0x2
+ subcs r0, r0, r1
+ bx lr
+ .balign 4
+_020DEE5C: .word errno
+ arm_func_end _ftell
+
+ arm_func_start ftell
+ftell: ; 0x020DEE60
+ stmdb sp!, {r3-r7,lr}
+ ldr r1, _020DEF60 ; =__files
+ mov r7, r0
+ cmp r7, r1
+ moveq r6, #0x2
+ beq _020DEE98
+ ldr r0, _020DEF64 ; =__files + 0x4C
+ cmp r7, r0
+ moveq r6, #0x3
+ beq _020DEE98
+ ldr r0, _020DEF68 ; =__files + 0x98
+ cmp r7, r0
+ moveq r6, #0x4
+ movne r6, #0x5
+_020DEE98:
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DEF6C ; =__cs
+ add r0, r5, r4
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020DEED8
+ ldr r0, _020DEF70 ; =OSi_ThreadInfo
+ ldr r2, _020DEF74 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DEF78 ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DEF30
+_020DEED8:
+ ldr r0, _020DEF70 ; =OSi_ThreadInfo
+ ldr r1, _020DEF74 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DEF08
+ ldr r1, _020DEF78 ; =__cs_ref
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DEF30
+_020DEF08:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DEF70 ; =OSi_ThreadInfo
+ ldr r2, _020DEF74 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DEF78 ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DEF30:
+ mov r0, r7
+ bl _ftell
+ ldr r1, _020DEF78 ; =__cs_ref
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DEF58
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DEF58:
+ mov r0, r7
+ ldmia sp!, {r3-r7,pc}
+ .balign 4
+_020DEF60: .word __files
+_020DEF64: .word __files + 0x4C
+_020DEF68: .word __files + 0x98
+_020DEF6C: .word __cs
+_020DEF70: .word OSi_ThreadInfo
+_020DEF74: .word __cs_id
+_020DEF78: .word __cs_ref
+ arm_func_end ftell
+
+ arm_func_start _fseek
+_fseek: ; 0x020DEF7C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ ldr r1, [r5, #0x4]
+ mov r4, r2
+ mov r1, r1, lsl #0x16
+ mov r1, r1, lsr #0x1d
+ and r1, r1, #0xff
+ cmp r1, #0x1
+ ldreqb r1, [r5, #0xd]
+ cmpeq r1, #0x0
+ beq _020DEFC8
+ ldr r0, _020DF160 ; =errno
+ mov r1, #0x28
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DEFC8:
+ ldr r1, [r5, #0x8]
+ mov r1, r1, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ bne _020DF018
+ mov r1, #0x0
+ bl __flush_buffer
+ cmp r0, #0x0
+ beq _020DF018
+ mov r0, #0x1
+ strb r0, [r5, #0xd]
+ mov r2, #0x0
+ ldr r0, _020DF160 ; =errno
+ mov r1, #0x28
+ str r2, [r5, #0x28]
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DF018:
+ cmp r4, #0x1
+ bne _020DF038
+ mov r0, r5
+ mov r4, #0x0
+ bl _ftell
+ ldr r1, [sp, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+_020DF038:
+ cmp r4, #0x2
+ beq _020DF0CC
+ ldr r0, [r5, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ beq _020DF0CC
+ ldr r0, [r5, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _020DF0CC
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, #0x18]
+ cmp r2, r0
+ bhs _020DF088
+ ldr r0, [r5, #0x34]
+ cmp r2, r0
+ bhs _020DF098
+_020DF088:
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ str r0, [r5, #0x8]
+ b _020DF0D8
+_020DF098:
+ ldr r1, [r5, #0x1c]
+ sub r0, r2, r0
+ add r0, r1, r0
+ str r0, [r5, #0x24]
+ ldr r1, [r5, #0x18]
+ ldr r0, [sp, #0x14]
+ sub r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ orr r0, r0, #0x2
+ str r0, [r5, #0x8]
+ b _020DF0D8
+_020DF0CC:
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ str r0, [r5, #0x8]
+_020DF0D8:
+ ldr r0, [r5, #0x8]
+ mov r0, r0, lsl #0x1d
+ movs r0, r0, lsr #0x1d
+ bne _020DF150
+ ldr r12, [r5, #0x38]
+ cmp r12, #0x0
+ beq _020DF13C
+ ldr r0, [r5, #0x0]
+ ldr r3, [r5, #0x48]
+ add r1, sp, #0x14
+ mov r2, r4
+ blx r12
+ cmp r0, #0x0
+ beq _020DF13C
+ mov r0, #0x1
+ strb r0, [r5, #0xd]
+ mov r2, #0x0
+ ldr r0, _020DF160 ; =errno
+ mov r1, #0x28
+ str r2, [r5, #0x28]
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DF13C:
+ mov r1, #0x0
+ strb r1, [r5, #0xc]
+ ldr r0, [sp, #0x14]
+ str r0, [r5, #0x18]
+ str r1, [r5, #0x28]
+_020DF150:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020DF160: .word errno
+ arm_func_end _fseek
+
+ arm_func_start fseek
+fseek:
+ stmdb sp!, {r3-r9,lr}
+ ldr r3, _020DF274 ; =__files
+ mov r9, r0
+ cmp r9, r3
+ mov r8, r1
+ mov r7, r2
+ moveq r6, #0x2
+ beq _020DF1A4
+ ldr r0, _020DF278 ; =__files + 0x4C
+ cmp r9, r0
+ moveq r6, #0x3
+ beq _020DF1A4
+ ldr r0, _020DF27C ; =__files + 0x98
+ cmp r9, r0
+ moveq r6, #0x4
+ movne r6, #0x5
+_020DF1A4:
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DF280 ; =__cs
+ add r0, r5, r4
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020DF1E4
+ ldr r0, _020DF284 ; =OSi_ThreadInfo
+ ldr r2, _020DF288 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DF28C ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DF23C
+_020DF1E4:
+ ldr r0, _020DF284 ; =OSi_ThreadInfo
+ ldr r1, _020DF288 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DF214
+ ldr r1, _020DF28C ; =__cs_ref
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DF23C
+_020DF214:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DF284 ; =OSi_ThreadInfo
+ ldr r2, _020DF288 ; =__cs_id
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DF28C ; =__cs_ref
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DF23C:
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ bl _fseek
+ ldr r1, _020DF28C ; =__cs_ref
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DF26C
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DF26C:
+ mov r0, r7
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DF274: .word __files
+_020DF278: .word __files + 0x4C
+_020DF27C: .word __files + 0x98
+_020DF280: .word __cs
+_020DF284: .word OSi_ThreadInfo
+_020DF288: .word __cs_id
+_020DF28C: .word __cs_ref
+ arm_func_end fseek
+
+ arm_func_start rewind
+rewind: ; 0x020DF290
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r4, r0
+ mov r2, r1
+ strb r1, [r4, #0xd]
+ bl fseek
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+ ldmia sp!, {r4,pc}
+ arm_func_end rewind
+
+ .section .exceptix,4
+
+ .word ftell
+ .short 285
+ .word 0x00300F00
+ .word _fseek
+ .short 489
+ .word 0x00400320
+ .word fseek
+ .short 301
+ .word 0x00403F00
+ .word rewind
+ .short 37
+ .word 0x00100100
diff --git a/arm9/asm/MSL_Common_float.s b/arm9/asm/MSL_Common_float.s new file mode 100644 index 00000000..c9a1db8f --- /dev/null +++ b/arm9/asm/MSL_Common_float.s @@ -0,0 +1,18 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+ .global __float_huge
+__float_huge: ; 0x02106B74
+ .word 0x7F800000 ; inf
+ .size __float_huge,.-__float_huge
+
+ .global __float_nan
+__float_nan: ; 0x02106B78
+ .word 0x7FFFFFFF ; nan
+ .size __float_nan,.-__float_nan
+
+ .global __double_huge
+__double_huge: ; 0x02106B7C
+ .word 0x00000000, 0x7FF00000 ; inf
+ .size __double_huge,.-__double_huge
diff --git a/arm9/asm/MSL_Common_mbstring.s b/arm9/asm/MSL_Common_mbstring.s new file mode 100644 index 00000000..e7bf6947 --- /dev/null +++ b/arm9/asm/MSL_Common_mbstring.s @@ -0,0 +1,247 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+ .balign 4
+ .global _loc_tim_C$timezone
+_loc_tim_C$timezone: ; 0x02106B84
+ .asciz ""
+ .size _loc_tim_C$timezone,.-_loc_tim_C$timezone
+
+ .balign 4
+ .global _loc_tim_C$timefmt2
+_loc_tim_C$timefmt2: ; 0x02106B88
+ .asciz "%T"
+ .size _loc_tim_C$timefmt2,.-_loc_tim_C$timefmt2
+
+ .balign 4
+ .global _loc_tim_C$AMPM
+_loc_tim_C$AMPM: ; 0x02106B8C
+ .asciz "AM|PM"
+ .size _loc_tim_C$AMPM,.-_loc_tim_C$AMPM
+
+ .balign 4, 0
+ .global _loc_ctyp_C
+_loc_ctyp_C: ; 0x02106B94
+ .word __mbtowc_noconv
+ .word __wctomb_noconv
+ .size _loc_ctyp_C,.-_loc_ctyp_C
+
+ .global _loc_coll_C
+_loc_coll_C: ; 0x02106B9C
+ .word 0x20
+ .word 0x6E
+ .word 0x00
+ .word char_coll_tableC
+ .size _loc_coll_C,.-_loc_coll_C
+
+ .global _loc_tim_C
+_loc_tim_C: ; 0x02106BAC
+ .word _loc_tim_C$AMPM
+ .word _loc_tim_C$datetimefmt
+ .word _loc_tim_C$timefmt
+ .word _loc_tim_C$datefmt
+ .word _loc_tim_C$timefmt2
+ .word _loc_tim_C$daynames
+ .word _loc_tim_C$monthnames
+ .word _loc_tim_C$timezone
+ .size _loc_tim_C,.-_loc_tim_C
+
+ .global char_coll_tableC
+char_coll_tableC: ; 0x02106BCC
+ .short 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008
+ .short 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010
+ .short 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028
+ .short 0x0029, 0x002A, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016
+ .short 0x0017, 0x002B, 0x002D, 0x002F, 0x0031, 0x0033, 0x0035, 0x0037
+ .short 0x0039, 0x003B, 0x003D, 0x003F, 0x0041, 0x0043, 0x0045, 0x0047
+ .short 0x0049, 0x004B, 0x004D, 0x004F, 0x0051, 0x0053, 0x0055, 0x0057
+ .short 0x0059, 0x005B, 0x005D, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C
+ .short 0x0000, 0x002C, 0x002E, 0x0030, 0x0032, 0x0034, 0x0036, 0x0038
+ .short 0x003A, 0x003C, 0x003E, 0x0040, 0x0042, 0x0044, 0x0046, 0x0048
+ .short 0x004A, 0x004C, 0x004E, 0x0050, 0x0052, 0x0054, 0x0056, 0x0058
+ .short 0x005A, 0x005C, 0x005E, 0x001D, 0x001E, 0x001F, 0x0020, 0x0000
+ .size char_coll_tableC,.-char_coll_tableC
+
+ .global _loc_tim_C$datefmt
+_loc_tim_C$datefmt: ; 0x02106C8C
+ .asciz "%m/%d/%y"
+ .size _loc_tim_C$datefmt,.-_loc_tim_C$datefmt
+
+ .balign 4, 0
+ .global _current_locale
+_current_locale: ; 0x02106C98
+ .word _loc_tim_C
+ .word _loc_coll_C
+ .word _loc_ctyp_C
+ .size _current_locale,.-_current_locale
+
+ .global _loc_tim_C$timefmt
+_loc_tim_C$timefmt: ; 0x02106CA4
+ .asciz "%I:%M:%S %p"
+ .size _loc_tim_C$timefmt,.-_loc_tim_C$timefmt
+
+ .balign 4, 0
+ .global _loc_tim_C$datetimefmt
+_loc_tim_C$datetimefmt: ; 0x02106CB0
+ .asciz "%a %b %e %T %Y"
+ .size _loc_tim_C$datetimefmt,.-_loc_tim_C$datetimefmt
+
+ .balign 4, 0
+ .global _loc_tim_C$daynames
+_loc_tim_C$daynames: ; 0x02106CC0
+ .asciz "Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thu|Thursday|Fri|Friday|Sat|Saturday"
+ .size _loc_tim_C$daynames,.-_loc_tim_C$daynames
+
+ .balign 4, 0
+ .global _loc_tim_C$monthnames
+_loc_tim_C$monthnames: ; 0x02106D18
+ .asciz "Jan|January|Feb|February|Mar|March|Apr|April|May|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December"
+ .size _loc_tim_C$monthnames,.-_loc_tim_C$monthnames
+
+ .text
+
+ arm_func_start mbtowc
+mbtowc:
+ stmdb sp!, {r3,lr}
+ ldr r3, _020DF2CC ; =_current_locale
+ ldr r3, [r3, #0x8]
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DF2CC: .word _current_locale
+ arm_func_end mbtowc
+
+ arm_func_start __mbtowc_noconv
+__mbtowc_noconv: ; 0x020DF2D0
+ cmp r1, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r2, #0x0
+ mvneq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ ldrneb r2, [r1, #0x0]
+ strneh r2, [r0, #0x0]
+ ldrsb r0, [r1, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ movne r0, #0x1
+ bx lr
+ arm_func_end __mbtowc_noconv
+
+ arm_func_start __wctomb_noconv
+__wctomb_noconv: ; 0x020DF308
+ cmp r0, #0x0
+ moveq r0, #0x0
+ strneb r1, [r0, #0x0]
+ movne r0, #0x1
+ bx lr
+ arm_func_end __wctomb_noconv
+
+ arm_func_start wctomb
+wctomb: ; 0x020DF31C
+ stmdb sp!, {r3,lr}
+ ldr r2, _020DF334 ; =_current_locale
+ ldr r2, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ blx r2
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DF334: .word _current_locale
+ arm_func_end wctomb
+
+ arm_func_start mbstowcs
+mbstowcs: ; 0x020DF338
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r8, r0
+ mov r0, r7
+ mov r6, r2
+ bl strlen
+ mov r5, r0
+ cmp r8, #0x0
+ mov r4, #0x0
+ beq _020DF3B8
+ cmp r6, #0x0
+ bls _020DF3B8
+_020DF368:
+ ldrsb r0, [r7, #0x0]
+ cmp r0, #0x0
+ beq _020DF3A0
+ mov r0, r8
+ mov r1, r7
+ mov r2, r5
+ bl mbtowc
+ cmp r0, #0x0
+ add r8, r8, #0x2
+ addgt r7, r7, r0
+ subgt r5, r5, r0
+ bgt _020DF3AC
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020DF3A0:
+ mov r0, #0x0
+ strh r0, [r8, #0x0]
+ b _020DF3B8
+_020DF3AC:
+ add r4, r4, #0x1
+ cmp r4, r6
+ blo _020DF368
+_020DF3B8:
+ mov r0, r4
+ ldmia sp!, {r4-r8,pc}
+ arm_func_end mbstowcs
+
+ arm_func_start wcstombs
+wcstombs:
+ stmdb sp!, {r3-r9,lr}
+ movs r4, r0
+ mov r9, r1
+ cmpne r9, #0x0
+ mov r8, r2
+ mov r7, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r9,pc}
+ add r6, sp, #0x0
+_020DF3E4:
+ ldrh r1, [r9, #0x0]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ streqb r0, [r4, r7]
+ beq _020DF430
+ mov r0, r6
+ add r9, r9, #0x2
+ bl wctomb
+ mov r5, r0
+ add r0, r7, r5
+ cmp r0, r8
+ bhi _020DF430
+ mov r1, r6
+ mov r2, r5
+ add r0, r4, r7
+ bl strncpy
+ add r7, r7, r5
+ cmp r7, r8
+ bls _020DF3E4
+_020DF430:
+ mov r0, r7
+ ldmia sp!, {r3-r9,pc}
+ arm_func_end wcstombs
+
+ .section .exceptix,4
+
+ .word mbtowc
+ .short 29
+ .word 0x00100000
+ .word wctomb
+ .short 29
+ .word 0x00100000
+ .word mbstowcs
+ .short 137
+ .word 0x00301F00
+ .word wcstombs
+ .short 121
+ .word 0x00403F00
diff --git a/arm9/asm/MSL_Common_mem.s b/arm9/asm/MSL_Common_mem.s new file mode 100644 index 00000000..d6449dde --- /dev/null +++ b/arm9/asm/MSL_Common_mem.s @@ -0,0 +1,115 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start memcpy
+memcpy: ; 0x020DF438
+ mov r12, r0
+ cmp r2, #0x0
+ bxeq lr
+_020DF444:
+ ldrsb r3, [r1], #0x1
+ subs r2, r2, #0x1
+ strb r3, [r12], #0x1
+ bne _020DF444
+ bx lr
+ arm_func_end memcpy
+
+ arm_func_start memmove
+memmove: ; 0x020DF458
+ cmp r1, r0
+ blo _020DF480
+ mov r12, r0
+ cmp r2, #0x0
+ bxeq lr
+_020DF46C:
+ ldrsb r3, [r1], #0x1
+ subs r2, r2, #0x1
+ strb r3, [r12], #0x1
+ bne _020DF46C
+ bx lr
+_020DF480:
+ cmp r2, #0x0
+ add r3, r1, r2
+ add r12, r0, r2
+ bxeq lr
+_020DF490:
+ ldrsb r1, [r3, #-0x1]!
+ subs r2, r2, #0x1
+ strb r1, [r12, #-0x1]!
+ bne _020DF490
+ bx lr
+ arm_func_end memmove
+
+ arm_func_start memset
+memset: ; 0x020DF4A4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl __fill_mem
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ arm_func_end memset
+
+ arm_func_start memchr
+memchr:
+ cmp r2, #0x0
+ and r3, r1, #0xff
+ beq _020DF4DC
+_020DF4C4:
+ ldrb r1, [r0], #0x1
+ cmp r1, r3
+ subeq r0, r0, #0x1
+ bxeq lr
+ subs r2, r2, #0x1
+ bne _020DF4C4
+_020DF4DC:
+ mov r0, #0x0
+ bx lr
+ arm_func_end memchr
+
+ arm_func_start __memrchr
+__memrchr: ; 0x020DF4E4
+ cmp r2, #0x0
+ and r3, r1, #0xff
+ add r0, r0, r2
+ beq _020DF508
+_020DF4F4:
+ ldrb r1, [r0, #-0x1]!
+ cmp r1, r3
+ bxeq lr
+ subs r2, r2, #0x1
+ bne _020DF4F4
+_020DF508:
+ mov r0, #0x0
+ bx lr
+ arm_func_end __memrchr
+
+ arm_func_start memcmp
+memcmp: ; 0x020DF510
+ cmp r2, #0x0
+ beq _020DF548
+_020DF518:
+ ldrb r12, [r0], #0x1
+ ldrb r3, [r1], #0x1
+ cmp r12, r3
+ beq _020DF540
+ ldrb r2, [r0, #-0x1]
+ ldrb r0, [r1, #-0x1]
+ cmp r2, r0
+ mvncc r0, #0x0
+ movcs r0, #0x1
+ bx lr
+_020DF540:
+ subs r2, r2, #0x1
+ bne _020DF518
+_020DF548:
+ mov r0, #0x0
+ bx lr
+ arm_func_end memcmp
+
+ .section .exceptix,4
+
+ .word memset
+ .short 21
+ .word 0x00100100
diff --git a/arm9/asm/MSL_Common_mem_funcs.s b/arm9/asm/MSL_Common_mem_funcs.s new file mode 100644 index 00000000..2a0a0efb --- /dev/null +++ b/arm9/asm/MSL_Common_mem_funcs.s @@ -0,0 +1,61 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start __fill_mem
+__fill_mem: ; 0x020DF550
+ cmp r2, #0x20
+ and r3, r1, #0xff
+ blo _020DF5E4
+ rsb r1, r0, #0x0
+ ands r12, r1, #0x3
+ beq _020DF57C
+ sub r2, r2, r12
+ and r1, r3, #0xff
+_020DF570:
+ strb r1, [r0], #0x1
+ subs r12, r12, #0x1
+ bne _020DF570
+_020DF57C:
+ cmp r3, #0x0
+ beq _020DF594
+ mov r1, r3, lsl #0x10
+ orr r1, r1, r3, lsl #0x18
+ orr r1, r1, r3, lsl #0x8
+ orr r3, r3, r1
+_020DF594:
+ movs r1, r2, lsr #0x5
+ beq _020DF5C8
+_020DF59C:
+ str r3, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x8]
+ str r3, [r0, #0xc]
+ str r3, [r0, #0x10]
+ str r3, [r0, #0x14]
+ str r3, [r0, #0x18]
+ str r3, [r0, #0x1c]
+ add r0, r0, #0x20
+ subs r1, r1, #0x1
+ bne _020DF59C
+_020DF5C8:
+ and r1, r2, #0x1f
+ movs r1, r1, lsr #0x2
+ beq _020DF5E0
+_020DF5D4:
+ str r3, [r0], #0x4
+ subs r1, r1, #0x1
+ bne _020DF5D4
+_020DF5E0:
+ and r2, r2, #0x3
+_020DF5E4:
+ cmp r2, #0x0
+ bxeq lr
+ and r1, r3, #0xff
+_020DF5F0:
+ strb r1, [r0], #0x1
+ subs r2, r2, #0x1
+ bne _020DF5F0
+ bx lr
+ arm_func_end __fill_mem
diff --git a/arm9/asm/MSL_Common_printf.s b/arm9/asm/MSL_Common_printf.s new file mode 100644 index 00000000..b9879afe --- /dev/null +++ b/arm9/asm/MSL_Common_printf.s @@ -0,0 +1,2607 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+ .global UNK_02106DA0
+UNK_02106DA0: ; 0x02106DA0
+ .byte 0x30, 0x78, 0x30, 0x70, 0x30, 0x00, 0x00, 0x00
+ .size UNK_02106DA0,.-UNK_02106DA0
+
+ .global UNK_02106DA8
+UNK_02106DA8: ; 0x02106DA8
+ .asciz "-INF"
+ .size UNK_02106DA8,.-UNK_02106DA8
+
+ .balign 4, 0
+ .global UNK_02106DB0
+UNK_02106DB0: ; 0x02106DB0
+ .asciz "-inf"
+ .size UNK_02106DB0,.-UNK_02106DB0
+
+ .balign 4, 0
+ .global UNK_02106DB8
+UNK_02106DB8: ; 0x02106DB8
+ .asciz "INF"
+ .size UNK_02106DB8,.-UNK_02106DB8
+
+ .balign 4, 0
+ .global UNK_02106DBC
+UNK_02106DBC: ; 0x02106DBC
+ .asciz "inf"
+ .size UNK_02106DBC,.-UNK_02106DBC
+
+ .balign 4, 0
+ .global UNK_02106DC0
+UNK_02106DC0: ; 0x02106DC0
+ .asciz "-NAN"
+ .size UNK_02106DC0,.-UNK_02106DC0
+
+ .balign 4, 0
+ .global UNK_02106DC8
+UNK_02106DC8: ; 0x02106DC8
+ .asciz "-nan"
+ .size UNK_02106DC8,.-UNK_02106DC8
+
+ .balign 4, 0
+ .global UNK_02106DD0
+UNK_02106DD0: ; 0x02106DD0
+ .asciz "NAN"
+ .size UNK_02106DD0,.-UNK_02106DD0
+
+ .balign 4, 0
+ .global UNK_02106DD4
+UNK_02106DD4: ; 0x02106DD4
+ .asciz "nan"
+ .size UNK_02106DD4,.-UNK_02106DD4
+
+ .balign 4, 0
+ .global UNK_02106DD8
+UNK_02106DD8: ; 0x02106DD8
+ .byte 0x00, 0x00, 0x00, 0x00
+ .size UNK_02106DD8,.-UNK_02106DD8
+
+ .global UNK_02106DDC
+UNK_02106DDC: ; 0x02106DDC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .size UNK_02106DDC,.-UNK_02106DDC
+
+ .text
+
+ arm_func_start parse_format
+parse_format: ; 0x020DF600
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldrsb r3, [r0, #0x1]
+ mov r4, #0x0
+ mov r5, #0x1
+ mov lr, r2
+ strb r5, [sp, #0x0]
+ strb r4, [sp, #0x1]
+ strb r4, [sp, #0x2]
+ strb r4, [sp, #0x3]
+ strb r4, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r4, [sp, #0xc]
+ cmp r3, #0x25
+ add r12, r0, #0x1
+ bne _020DF65C
+ add r0, sp, #0x0
+ strb r3, [sp, #0x5]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020DF65C:
+ mov r2, #0x2
+ mov r0, r4
+ mov r5, r2
+ mov r6, r4
+ mov r7, #0x1
+_020DF670:
+ mov r8, r7
+ cmp r3, #0x2b
+ bgt _020DF6A0
+ bge _020DF6C8
+ cmp r3, #0x23
+ bgt _020DF6F8
+ cmp r3, #0x20
+ blt _020DF6F8
+ beq _020DF6D0
+ cmp r3, #0x23
+ beq _020DF6E0
+ b _020DF6F8
+_020DF6A0:
+ cmp r3, #0x30
+ bgt _020DF6F8
+ cmp r3, #0x2d
+ blt _020DF6F8
+ beq _020DF6C0
+ cmp r3, #0x30
+ beq _020DF6E8
+ b _020DF6F8
+_020DF6C0:
+ strb r6, [sp, #0x0]
+ b _020DF6FC
+_020DF6C8:
+ strb r7, [sp, #0x1]
+ b _020DF6FC
+_020DF6D0:
+ ldrb r4, [sp, #0x1]
+ cmp r4, #0x1
+ strneb r5, [sp, #0x1]
+ b _020DF6FC
+_020DF6E0:
+ strb r7, [sp, #0x3]
+ b _020DF6FC
+_020DF6E8:
+ ldrb r4, [sp, #0x0]
+ cmp r4, #0x0
+ strneb r2, [sp, #0x0]
+ b _020DF6FC
+_020DF6F8:
+ mov r8, r0
+_020DF6FC:
+ cmp r8, #0x0
+ ldrnesb r3, [r12, #0x1]!
+ bne _020DF670
+ cmp r3, #0x2a
+ bne _020DF744
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020DF73C
+ rsb r0, r0, #0x0
+ mov r2, #0x0
+ strb r2, [sp, #0x0]
+ str r0, [sp, #0x8]
+_020DF73C:
+ ldrsb r3, [r12, #0x1]!
+ b _020DF794
+_020DF744:
+ ldr r4, _020DFB88 ; =__msl_digit
+ mov r5, #0x0
+ mov r0, #0xa
+ b _020DF768
+_020DF754:
+ ldr r2, [sp, #0x8]
+ sub r3, r3, #0x30
+ mla r6, r2, r0, r3
+ ldrsb r3, [r12, #0x1]!
+ str r6, [sp, #0x8]
+_020DF768:
+ cmp r3, #0x0
+ blt _020DF778
+ cmp r3, #0x80
+ blt _020DF780
+_020DF778:
+ mov r2, r5
+ b _020DF78C
+_020DF780:
+ mov r2, r3, lsl #0x1
+ ldrh r2, [r4, r2]
+ and r2, r2, #0x8
+_020DF78C:
+ cmp r2, #0x0
+ bne _020DF754
+_020DF794:
+ ldr r2, [sp, #0x8]
+ ldr r0, _020DFB8C ; =0x000001FD
+ cmp r2, r0
+ ble _020DF7C4
+ mov r1, #0xff
+ add r0, sp, #0x0
+ strb r1, [sp, #0x5]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020DF7C4:
+ cmp r3, #0x2e
+ bne _020DF858
+ ldrsb r3, [r12, #0x1]!
+ mov r0, #0x1
+ strb r0, [sp, #0x2]
+ cmp r3, #0x2a
+ bne _020DF808
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ ldrsb r3, [r12, #0x1]!
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ movlt r0, #0x0
+ strltb r0, [sp, #0x2]
+ b _020DF858
+_020DF808:
+ ldr r2, _020DFB88 ; =__msl_digit
+ mov r4, #0x0
+ mov r0, #0xa
+ b _020DF82C
+_020DF818:
+ ldr r1, [sp, #0xc]
+ sub r3, r3, #0x30
+ mla r5, r1, r0, r3
+ ldrsb r3, [r12, #0x1]!
+ str r5, [sp, #0xc]
+_020DF82C:
+ cmp r3, #0x0
+ blt _020DF83C
+ cmp r3, #0x80
+ blt _020DF844
+_020DF83C:
+ mov r1, r4
+ b _020DF850
+_020DF844:
+ mov r1, r3, lsl #0x1
+ ldrh r1, [r2, r1]
+ and r1, r1, #0x8
+_020DF850:
+ cmp r1, #0x0
+ bne _020DF818
+_020DF858:
+ cmp r3, #0x6c
+ mov r0, #0x1
+ bgt _020DF890
+ cmp r3, #0x68
+ blt _020DF884
+ beq _020DF8AC
+ cmp r3, #0x6a
+ beq _020DF8F8
+ cmp r3, #0x6c
+ beq _020DF8C8
+ b _020DF91C
+_020DF884:
+ cmp r3, #0x4c
+ beq _020DF8EC
+ b _020DF91C
+_020DF890:
+ cmp r3, #0x74
+ bgt _020DF8A0
+ beq _020DF904
+ b _020DF91C
+_020DF8A0:
+ cmp r3, #0x7a
+ beq _020DF910
+ b _020DF91C
+_020DF8AC:
+ ldrsb r1, [r12, #0x1]
+ mov r2, #0x2
+ strb r2, [sp, #0x4]
+ cmp r1, #0x68
+ streqb r0, [sp, #0x4]
+ ldreqsb r3, [r12, #0x1]!
+ b _020DF920
+_020DF8C8:
+ ldrsb r1, [r12, #0x1]
+ mov r2, #0x3
+ strb r2, [sp, #0x4]
+ cmp r1, #0x6c
+ bne _020DF920
+ mov r1, #0x4
+ strb r1, [sp, #0x4]
+ ldrsb r3, [r12, #0x1]!
+ b _020DF920
+_020DF8EC:
+ mov r1, #0x9
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF8F8:
+ mov r1, #0x6
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF904:
+ mov r1, #0x8
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF910:
+ mov r1, #0x7
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF91C:
+ mov r0, #0x0
+_020DF920:
+ cmp r0, #0x0
+ ldrnesb r3, [r12, #0x1]!
+ strb r3, [sp, #0x5]
+ cmp r3, #0x61
+ bgt _020DF974
+ bge _020DFA5C
+ cmp r3, #0x47
+ bgt _020DF968
+ subs r0, r3, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020DFB68
+ b _020DFA5C ; case 65
+ b _020DFB68 ; case 66
+ b _020DFB68 ; case 67
+ b _020DFB68 ; case 68
+ b _020DFAA4 ; case 69
+ b _020DFA24 ; case 70
+ b _020DFA94 ; case 71
+_020DF968:
+ cmp r3, #0x58
+ beq _020DF9E8
+ b _020DFB68
+_020DF974:
+ cmp r3, #0x63
+ bgt _020DF984
+ beq _020DFB04
+ b _020DFB68
+_020DF984:
+ sub r0, r3, #0x64
+ cmp r0, #0x14
+ addls pc, pc, r0, lsl #0x2
+ b _020DFB68
+ b _020DF9E8 ; case 100
+ b _020DFAA4 ; case 101
+ b _020DFA24 ; case 102
+ b _020DFA94 ; case 103
+ b _020DFB68 ; case 104
+ b _020DF9E8 ; case 105
+ b _020DFB68 ; case 106
+ b _020DFB68 ; case 107
+ b _020DFB68 ; case 108
+ b _020DFB68 ; case 109
+ b _020DFB54 ; case 110
+ b _020DF9E8 ; case 111
+ b _020DFAE0 ; case 112
+ b _020DFB68 ; case 113
+ b _020DFB68 ; case 114
+ b _020DFB30 ; case 115
+ b _020DFB68 ; case 116
+ b _020DF9E8 ; case 117
+ b _020DFB68 ; case 118
+ b _020DFB68 ; case 119
+ b _020DF9E8 ; case 120
+_020DF9E8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020DFB70
+ ldrb r0, [sp, #0x0]
+ cmp r0, #0x2
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ b _020DFB70
+_020DFA24:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020DFB70
+_020DFA5C:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0xd
+ streq r0, [sp, #0xc]
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ b _020DFB70
+_020DFA94:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+_020DFAA4:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020DFB70
+_020DFAE0:
+ mov r3, #0x78
+ mov r2, #0x1
+ mov r1, #0x3
+ mov r0, #0x8
+ strb r3, [sp, #0x5]
+ strb r2, [sp, #0x3]
+ strb r1, [sp, #0x4]
+ str r0, [sp, #0xc]
+ b _020DFB70
+_020DFB04:
+ ldrb r1, [sp, #0x4]
+ cmp r1, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB30:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020DFB70
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB54:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB68:
+ mov r0, #0xff
+ strb r0, [sp, #0x5]
+_020DFB70:
+ add r0, sp, #0x0
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add r0, r12, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020DFB88: .word __msl_digit
+_020DFB8C: .word 0x000001FD
+ arm_func_end parse_format
+
+ arm_func_start long2str
+long2str: ; 0x020DFB90
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ movs r10, r0
+ mov r0, #0x0
+ mov r5, r1
+ str r0, [sp, #0xc]
+ ldr r7, [sp, #0x4c]
+ mov r6, r0
+ strb r0, [r5, #-0x1]!
+ ldrb r0, [sp, #0x43]
+ str r1, [sp, #0x0]
+ ldrb r8, [sp, #0x45]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldrb r11, [sp, #0x41]
+ str r0, [sp, #0x8]
+ cmpeq r7, #0x0
+ bne _020DFC04
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020DFBF0
+ cmp r8, #0x6f
+ beq _020DFC04
+_020DFBF0:
+ add sp, sp, #0x10
+ mov r0, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DFC04:
+ cmp r8, #0x69
+ bgt _020DFC2C
+ bge _020DFC60
+ cmp r8, #0x58
+ bgt _020DFC20
+ beq _020DFC8C
+ b _020DFC94
+_020DFC20:
+ cmp r8, #0x64
+ beq _020DFC60
+ b _020DFC94
+_020DFC2C:
+ cmp r8, #0x6f
+ bgt _020DFC40
+ moveq r4, #0x8
+ moveq r11, #0x0
+ b _020DFC94
+_020DFC40:
+ cmp r8, #0x78
+ bgt _020DFC94
+ cmp r8, #0x75
+ blt _020DFC94
+ beq _020DFC80
+ cmp r8, #0x78
+ beq _020DFC8C
+ b _020DFC94
+_020DFC60:
+ cmp r10, #0x0
+ mov r4, #0xa
+ bge _020DFC94
+ mov r0, #0x1
+ cmp r10, #0x80000000
+ rsbne r10, r10, #0x0
+ str r0, [sp, #0xc]
+ b _020DFC94
+_020DFC80:
+ mov r4, #0xa
+ mov r11, #0x0
+ b _020DFC94
+_020DFC8C:
+ mov r4, #0x10
+ mov r11, #0x0
+_020DFC94:
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ mov r9, r1
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ cmp r9, #0xa
+ mov r10, r0
+ addlt r9, r9, #0x30
+ blt _020DFCCC
+ cmp r8, #0x78
+ addeq r9, r9, #0x57
+ addne r9, r9, #0x37
+_020DFCCC:
+ cmp r10, #0x0
+ strb r9, [r5, #-0x1]!
+ add r6, r6, #0x1
+ bne _020DFC94
+ cmp r4, #0x8
+ bne _020DFD00
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r5, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneb r0, [r5, #-0x1]!
+ addne r6, r6, #0x1
+_020DFD00:
+ ldrb r0, [sp, #0x40]
+ cmp r0, #0x2
+ bne _020DFD34
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ cmp r0, #0x0
+ cmpeq r11, #0x0
+ subne r7, r7, #0x1
+ cmp r4, #0x10
+ bne _020DFD34
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ subne r7, r7, #0x2
+_020DFD34:
+ ldr r0, [sp, #0x0]
+ sub r1, r0, r5
+ ldr r0, _020DFDD8 ; =0x000001FD
+ add r1, r7, r1
+ cmp r1, r0
+ addgt sp, sp, #0x10
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ cmp r6, r7
+ bge _020DFD78
+ mov r0, #0x30
+_020DFD68:
+ add r6, r6, #0x1
+ cmp r6, r7
+ strb r0, [r5, #-0x1]!
+ blt _020DFD68
+_020DFD78:
+ cmp r4, #0x10
+ bne _020DFD94
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneb r8, [r5, #-0x1]
+ strneb r0, [r5, #-0x2]!
+_020DFD94:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r5, #-0x1]!
+ bne _020DFDC4
+ cmp r11, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r5, #-0x1]!
+ beq _020DFDC4
+ cmp r11, #0x2
+ moveq r0, #0x20
+ streqb r0, [r5, #-0x1]!
+_020DFDC4:
+ mov r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020DFDD8: .word 0x000001FD
+ arm_func_end long2str
+
+ arm_func_start longlong2str
+longlong2str: ; 0x020DFDDC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x18
+ mov r9, r1
+ mov r1, #0x0
+ mov r10, r0
+ mov r6, r2
+ mov r0, r1
+ strb r0, [r6, #-0x1]!
+ ldr r0, [sp, #0x58]
+ cmp r9, #0x0
+ str r0, [sp, #0x10]
+ ldrb r0, [sp, #0x4f]
+ cmpeq r10, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x54]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x8]
+ ldrb r0, [sp, #0x4d]
+ mov r7, r1
+ ldrb r8, [sp, #0x51]
+ str r0, [sp, #0xc]
+ ldreq r0, [sp, #0x10]
+ cmpeq r0, #0x0
+ bne _020DFE6C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020DFE58
+ cmp r8, #0x6f
+ beq _020DFE6C
+_020DFE58:
+ add sp, sp, #0x18
+ mov r0, r6
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DFE6C:
+ cmp r8, #0x69
+ bgt _020DFE94
+ bge _020DFEC4
+ cmp r8, #0x58
+ bgt _020DFE88
+ beq _020DFF18
+ b _020DFF24
+_020DFE88:
+ cmp r8, #0x64
+ beq _020DFEC4
+ b _020DFF24
+_020DFE94:
+ cmp r8, #0x6f
+ bgt _020DFEA4
+ beq _020DFEF8
+ b _020DFF24
+_020DFEA4:
+ cmp r8, #0x78
+ bgt _020DFF24
+ cmp r8, #0x75
+ blt _020DFF24
+ beq _020DFF08
+ cmp r8, #0x78
+ beq _020DFF18
+ b _020DFF24
+_020DFEC4:
+ subs r0, r10, #0x0
+ sbcs r0, r9, #0x0
+ mov r11, #0xa
+ mov r5, #0x0
+ bge _020DFF24
+ cmp r9, #0x80000000
+ cmpeq r10, r5
+ beq _020DFEEC
+ rsbs r10, r10, #0x0
+ rsc r9, r9, #0x0
+_020DFEEC:
+ mov r0, #0x1
+ str r0, [sp, #0x14]
+ b _020DFF24
+_020DFEF8:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x8
+ b _020DFF24
+_020DFF08:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0xa
+ b _020DFF24
+_020DFF18:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x10
+_020DFF24:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ull_mod
+ mov r4, r0
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ll_udiv
+ mov r10, r0
+ cmp r4, #0xa
+ mov r9, r1
+ addlt r0, r4, #0x30
+ blt _020DFF70
+ cmp r8, #0x78
+ addeq r0, r4, #0x57
+ addne r0, r4, #0x37
+_020DFF70:
+ strb r0, [r6, #-0x1]!
+ mov r0, #0x0
+ cmp r9, r0
+ cmpeq r10, r0
+ add r7, r7, #0x1
+ bne _020DFF24
+ cmp r5, #0x0
+ cmpeq r11, #0x8
+ bne _020DFFB0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r6, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneb r0, [r6, #-0x1]!
+ addne r7, r7, #0x1
+_020DFFB0:
+ ldrb r0, [sp, #0x4c]
+ cmp r0, #0x2
+ bne _020E0000
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0xc]
+ cmpeq r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x1
+ strne r0, [sp, #0x10]
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E0000
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x2
+ strne r0, [sp, #0x10]
+_020E0000:
+ ldr r0, [sp, #0x0]
+ ldr r1, _020E00B8 ; =0x000001FD
+ sub r2, r0, r6
+ ldr r0, [sp, #0x10]
+ add r0, r0, r2
+ cmp r0, r1
+ addgt sp, sp, #0x18
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _020E0050
+ mov r1, #0x30
+_020E003C:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ strb r1, [r6, #-0x1]!
+ blt _020E003C
+_020E0050:
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E0070
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneb r8, [r6, #-0x1]
+ strneb r0, [r6, #-0x2]!
+_020E0070:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r6, #-0x1]!
+ bne _020E00A4
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r6, #-0x1]!
+ beq _020E00A4
+ cmp r0, #0x2
+ moveq r0, #0x20
+ streqb r0, [r6, #-0x1]!
+_020E00A4:
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E00B8: .word 0x000001FD
+ arm_func_end longlong2str
+
+ arm_func_start double2hex
+double2hex: ; 0x020E00BC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x44
+ ldr r7, [sp, #0x80]
+ ldr r0, _020E056C ; =0x000001FD
+ mov r8, r2
+ cmp r7, r0
+ ldrb r6, [sp, #0x79]
+ ldrb r5, [sp, #0x77]
+ ldrb r4, [sp, #0x75]
+ ldr r1, [sp, #0x68]
+ ldr r2, [sp, #0x6c]
+ addgt sp, sp, #0x44
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r10,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r10, #0x0
+ mov r9, #0x20
+ add r0, sp, #0x8
+ add r3, sp, #0xc
+ strb r10, [sp, #0x8]
+ strh r9, [sp, #0xa]
+ bl __num2dec_internal2
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ bl fabs
+ mov r2, r0
+ mov r0, r10
+ mov r3, r1
+ mov r1, r0
+ bl _deq
+ bne _020E0188
+ ldr r3, _020E0570 ; =UNK_02106DA0
+ sub r0, r8, #0x6
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ add sp, sp, #0x44
+ strb r2, [r8, #-0x6]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r2, [r3, #0x4]
+ ldrb r1, [r3, #0x5]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0188:
+ ldrb r0, [sp, #0x11]
+ cmp r0, #0x49
+ bne _020E0298
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E0224
+ cmp r6, #0x41
+ sub r0, r8, #0x5
+ bne _020E01E8
+ ldr r3, _020E0574 ; =UNK_02106DA8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E01E8:
+ ldr r3, _020E0578 ; =UNK_02106DB0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0224:
+ cmp r6, #0x41
+ sub r0, r8, #0x4
+ bne _020E0264
+ ldr r3, _020E057C ; =UNK_02106DB8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0264:
+ ldr r3, _020E0580 ; =UNK_02106DBC
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0298:
+ cmp r0, #0x4e
+ bne _020E03A4
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E0330
+ cmp r6, #0x41
+ sub r0, r8, #0x5
+ bne _020E02F4
+ ldr r3, _020E0584 ; =UNK_02106DC0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E02F4:
+ ldr r3, _020E0588 ; =UNK_02106DC8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0330:
+ cmp r6, #0x41
+ sub r0, r8, #0x4
+ bne _020E0370
+ ldr r3, _020E058C ; =UNK_02106DD0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0370:
+ ldr r3, _020E0590 ; =UNK_02106DD4
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E03A4:
+ mov r3, r10
+ mov r1, #0x1
+ mov r0, #0x64
+ add r9, sp, #0x68
+ strb r1, [sp, #0x34]
+ strb r1, [sp, #0x35]
+ strb r3, [sp, #0x36]
+ strb r3, [sp, #0x37]
+ strb r3, [sp, #0x38]
+ str r3, [sp, #0x3c]
+ str r1, [sp, #0x40]
+ strb r0, [sp, #0x39]
+_020E03D4:
+ rsb r1, r3, #0x7
+ ldrsb r2, [r9, r3]
+ ldrsb r0, [r9, r1]
+ strb r0, [r9, r3]
+ add r3, r3, #0x1
+ strb r2, [r9, r1]
+ cmp r3, #0x4
+ blt _020E03D4
+ ldrb r0, [sp, #0x69]
+ ldrb r1, [sp, #0x68]
+ ldr sb, _020E0594 ; =0x000007FF
+ mov r0, r0, lsl #0x11
+ orr r1, r0, r1, lsl #0x19
+ add r0, sp, #0x34
+ and lr, r9, r1, lsr #0x15
+ sub r12, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r12, {r0-r3}
+ rsb r0, r9, #0x400
+ mov r1, r8
+ add r0, lr, r0
+ ldmia r12, {r2-r3}
+ bl long2str
+ cmp r6, #0x61
+ moveq r1, #0x70
+ movne r1, #0x50
+ strb r1, [r0, #-0x1]!
+ mov r1, r7, lsl #0x2
+ mov lr, r7
+ cmp r7, #0x1
+ add r8, r1, #0xb
+ add r12, sp, #0x68
+ blt _020E04E4
+ mov r9, #0x30
+_020E045C:
+ cmp r8, #0x40
+ bge _020E04CC
+ ldrb r1, [r12, r8, asr #0x3]
+ and r2, r8, #0x7
+ rsb r3, r2, #0x7
+ mov r2, r1, asr r3
+ sub r10, r8, #0x4
+ bic r1, r8, #0x7
+ bic r10, r10, #0x7
+ cmp r1, r10
+ add r10, r12, r8, asr #0x3
+ and r1, r2, #0xff
+ beq _020E04A0
+ ldrb r2, [r10, #-0x1]
+ mov r2, r2, lsl #0x8
+ orr r1, r1, r2, asr r3
+ and r1, r1, #0xff
+_020E04A0:
+ and r1, r1, #0xf
+ cmp r1, #0xa
+ addcc r1, r1, #0x30
+ andcc r1, r1, #0xff
+ blo _020E04D0
+ cmp r6, #0x61
+ addeq r1, r1, #0x57
+ andeq r1, r1, #0xff
+ addne r1, r1, #0x37
+ andne r1, r1, #0xff
+ b _020E04D0
+_020E04CC:
+ mov r1, r9
+_020E04D0:
+ sub lr, lr, #0x1
+ cmp lr, #0x1
+ strb r1, [r0, #-0x1]!
+ sub r8, r8, #0x4
+ bge _020E045C
+_020E04E4:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r0, #-0x1]!
+ mov r1, #0x31
+ strb r1, [r0, #-0x1]
+ cmp r6, #0x61
+ moveq r1, #0x78
+ movne r1, #0x58
+ strb r1, [r0, #-0x2]!
+ mov r1, #0x30
+ strb r1, [r0, #-0x1]!
+ ldrsb r1, [sp, #0xc]
+ cmp r1, #0x0
+ movne r1, #0x2d
+ strneb r1, [r0, #-0x1]!
+ addne sp, sp, #0x44
+ ldmneia sp!, {r3-r10,lr}
+ addne sp, sp, #0x10
+ bxne lr
+ cmp r4, #0x1
+ moveq r1, #0x2b
+ streqb r1, [r0, #-0x1]!
+ addeq sp, sp, #0x44
+ ldmeqia sp!, {r3-r10,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r4, #0x2
+ moveq r1, #0x20
+ streqb r1, [r0, #-0x1]!
+ add sp, sp, #0x44
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E056C: .word 0x000001FD
+_020E0570: .word UNK_02106DA0
+_020E0574: .word UNK_02106DA8
+_020E0578: .word UNK_02106DB0
+_020E057C: .word UNK_02106DB8
+_020E0580: .word UNK_02106DBC
+_020E0584: .word UNK_02106DC0
+_020E0588: .word UNK_02106DC8
+_020E058C: .word UNK_02106DD0
+_020E0590: .word UNK_02106DD4
+_020E0594: .word 0x000007FF
+ arm_func_end double2hex
+
+ arm_func_start round_decimal
+round_decimal: ; 0x020E0598
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ bge _020E05C0
+_020E05A4:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ strb r1, [r0, #0x4]
+ mov r1, #0x30
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E05C0:
+ ldrb lr, [r0, #0x4]
+ cmp r1, lr
+ ldmgeia sp!, {r4,pc}
+ add r12, r0, #0x5
+ add r2, r12, r1
+ add r2, r2, #0x1
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x5
+ bne _020E0620
+ add r12, r12, lr
+_020E05F4:
+ sub r12, r12, #0x1
+ cmp r12, r2
+ bls _020E060C
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x30
+ beq _020E05F4
+_020E060C:
+ cmp r12, r2
+ ldreqsb r3, [r2, #-0x1]
+ andeq r4, r3, #0x1
+ movne r4, #0x1
+ b _020E0628
+_020E0620:
+ movgt r4, #0x1
+ movle r4, #0x0
+_020E0628:
+ cmp r1, #0x0
+ beq _020E0684
+ mov r12, #0x0
+ mov lr, #0x1
+_020E0638:
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ add r3, r3, r4
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x9
+ movgt r4, lr
+ movle r4, r12
+ cmp r4, #0x0
+ bne _020E0668
+ cmp r3, #0x0
+ bne _020E0670
+_020E0668:
+ sub r1, r1, #0x1
+ b _020E067C
+_020E0670:
+ add r3, r3, #0x30
+ strb r3, [r2, #0x0]
+ b _020E0684
+_020E067C:
+ cmp r1, #0x0
+ bne _020E0638
+_020E0684:
+ cmp r4, #0x0
+ beq _020E06AC
+ ldrsh r3, [r0, #0x2]
+ mov r2, #0x1
+ mov r1, #0x31
+ add r3, r3, #0x1
+ strh r3, [r0, #0x2]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E06AC:
+ cmp r1, #0x0
+ beq _020E05A4
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4,pc}
+ arm_func_end round_decimal
+
+ arm_func_start float2str
+float2str: ; 0x020E06BC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x2c
+ ldr r7, [sp, #0x68]
+ ldr r3, _020E0DF4 ; =0x000001FD
+ ldrb r6, [sp, #0x61]
+ ldrb r5, [sp, #0x5f]
+ ldrb r4, [sp, #0x5d]
+ cmp r7, r3
+ mov r10, r0
+ mov r8, r1
+ mov r9, r2
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r12, #0x0
+ mov r11, #0x20
+ add r0, sp, #0x0
+ add r3, sp, #0x4
+ mov r1, r10
+ mov r2, r8
+ strb r12, [sp, #0x0]
+ strh r11, [sp, #0x2]
+ bl __num2dec_internal2
+ ldrb r0, [sp, #0x8]
+ add r1, sp, #0x9
+ add r0, r1, r0
+ b _020E074C
+_020E0734:
+ ldrb r2, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r2, r2, #0x1
+ add r1, r1, #0x1
+ strb r2, [sp, #0x8]
+ strh r1, [sp, #0x6]
+_020E074C:
+ ldrb r1, [sp, #0x8]
+ cmp r1, #0x1
+ bls _020E0764
+ ldrsb r1, [r0, #-0x1]!
+ cmp r1, #0x30
+ beq _020E0734
+_020E0764:
+ ldrb r0, [sp, #0x9]
+ cmp r0, #0x30
+ beq _020E0784
+ cmp r0, #0x49
+ beq _020E0790
+ cmp r0, #0x4e
+ beq _020E08F0
+ b _020E0A44
+_020E0784:
+ mov r0, #0x0
+ strh r0, [sp, #0x6]
+ b _020E0A44
+_020E0790:
+ mov r2, #0x0
+ mov r0, r10
+ mov r1, r8
+ mov r3, r2
+ bl _dls
+ bhs _020E0854
+ cmp r6, #0x0
+ sub r0, r9, #0x5
+ blt _020E07BC
+ cmp r6, #0x80
+ blt _020E07C4
+_020E07BC:
+ mov r1, #0x0
+ b _020E07D4
+_020E07C4:
+ ldr r1, _020E0DF8 ; =__msl_digit
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E07D4:
+ cmp r1, #0x0
+ beq _020E0818
+ ldr r3, _020E0DFC ; =UNK_02106DA8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0818:
+ ldr r3, _020E0E00 ; =UNK_02106DB0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0854:
+ cmp r6, #0x0
+ sub r0, r9, #0x4
+ blt _020E0868
+ cmp r6, #0x80
+ blt _020E0870
+_020E0868:
+ mov r1, #0x0
+ b _020E0880
+_020E0870:
+ ldr r1, _020E0DF8 ; =__msl_digit
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E0880:
+ cmp r1, #0x0
+ beq _020E08BC
+ ldr r3, _020E0E04 ; =UNK_02106DB8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E08BC:
+ ldr r3, _020E0E08 ; =UNK_02106DBC
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E08F0:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E09A8
+ cmp r6, #0x0
+ sub r0, r9, #0x5
+ blt _020E0910
+ cmp r6, #0x80
+ blt _020E0918
+_020E0910:
+ mov r1, #0x0
+ b _020E0928
+_020E0918:
+ ldr r1, _020E0DF8 ; =__msl_digit
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E0928:
+ cmp r1, #0x0
+ beq _020E096C
+ ldr r3, _020E0E0C ; =UNK_02106DC0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E096C:
+ ldr r3, _020E0E10 ; =UNK_02106DC8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E09A8:
+ cmp r6, #0x0
+ sub r0, r9, #0x4
+ blt _020E09BC
+ cmp r6, #0x80
+ blt _020E09C4
+_020E09BC:
+ mov r1, #0x0
+ b _020E09D4
+_020E09C4:
+ ldr r1, _020E0DF8 ; =__msl_digit
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E09D4:
+ cmp r1, #0x0
+ beq _020E0A10
+ ldr r3, _020E0E14 ; =UNK_02106DD0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0A10:
+ ldr r3, _020E0E18 ; =UNK_02106DD4
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0A44:
+ ldrb r0, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r8, r9, #0x1
+ sub r0, r0, #0x1
+ add r0, r1, r0
+ strh r0, [sp, #0x6]
+ mov r0, #0x0
+ strb r0, [r8, #0x0]
+ cmp r6, #0x65
+ bgt _020E0A98
+ bge _020E0B24
+ cmp r6, #0x47
+ bgt _020E0DE0
+ cmp r6, #0x45
+ blt _020E0DE0
+ beq _020E0B24
+ cmp r6, #0x46
+ beq _020E0C6C
+ cmp r6, #0x47
+ beq _020E0AB0
+ b _020E0DE0
+_020E0A98:
+ cmp r6, #0x66
+ bgt _020E0AA8
+ beq _020E0C6C
+ b _020E0DE0
+_020E0AA8:
+ cmp r6, #0x67
+ bne _020E0DE0
+_020E0AB0:
+ ldrb r0, [sp, #0x8]
+ cmp r0, r7
+ ble _020E0AC8
+ add r0, sp, #0x4
+ mov r1, r7
+ bl round_decimal
+_020E0AC8:
+ ldrsh r2, [sp, #0x6]
+ mvn r0, #0x3
+ cmp r2, r0
+ blt _020E0AE0
+ cmp r2, r7
+ blt _020E0B00
+_020E0AE0:
+ cmp r5, #0x0
+ ldreqb r0, [sp, #0x8]
+ subne r7, r7, #0x1
+ subeq r7, r0, #0x1
+ cmp r6, #0x67
+ moveq r6, #0x65
+ movne r6, #0x45
+ b _020E0B24
+_020E0B00:
+ cmp r5, #0x0
+ addne r0, r2, #0x1
+ subne r7, r7, r0
+ bne _020E0C6C
+ ldrb r1, [sp, #0x8]
+ add r0, r2, #0x1
+ subs r7, r1, r0
+ movmi r7, #0x0
+ b _020E0C6C
+_020E0B24:
+ ldrb r0, [sp, #0x8]
+ add r1, r7, #0x1
+ cmp r0, r1
+ ble _020E0B3C
+ add r0, sp, #0x4
+ bl round_decimal
+_020E0B3C:
+ ldrsh lr, [sp, #0x6]
+ mov r11, #0x2b
+ mov r10, #0x0
+ cmp lr, #0x0
+ rsblt lr, lr, #0x0
+ movlt r11, #0x2d
+ ldr r3, _020E0E1C ; =0x66666667
+ mov r0, #0xa
+ b _020E0B90
+_020E0B60:
+ mov r1, lr, lsr #0x1f
+ smull r2, r12, r3, lr
+ add r12, r1, r12, asr #0x2
+ smull r1, r2, r0, r12
+ sub r12, lr, r1
+ add r1, r12, #0x30
+ strb r1, [r8, #-0x1]!
+ mov r2, lr
+ smull r1, lr, r3, r2
+ mov r1, r2, lsr #0x1f
+ add lr, r1, lr, asr #0x2
+ add r10, r10, #0x1
+_020E0B90:
+ cmp lr, #0x0
+ bne _020E0B60
+ cmp r10, #0x2
+ blt _020E0B60
+ strb r11, [r8, #-0x1]
+ strb r6, [r8, #-0x2]!
+ sub r1, r9, r8
+ ldr r0, _020E0DF4 ; =0x000001FD
+ add r1, r7, r1
+ cmp r1, r0
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldrb r1, [sp, #0x8]
+ add r0, r7, #0x1
+ cmp r1, r0
+ bge _020E0BFC
+ add r0, r7, #0x2
+ sub r0, r0, r1
+ subs r1, r0, #0x1
+ beq _020E0BFC
+ mov r0, #0x30
+_020E0BF0:
+ strb r0, [r8, #-0x1]!
+ subs r1, r1, #0x1
+ bne _020E0BF0
+_020E0BFC:
+ ldrb r1, [sp, #0x8]
+ add r0, sp, #0x9
+ add r2, r0, r1
+ subs r1, r1, #0x1
+ beq _020E0C20
+_020E0C10:
+ ldrsb r0, [r2, #-0x1]!
+ subs r1, r1, #0x1
+ strb r0, [r8, #-0x1]!
+ bne _020E0C10
+_020E0C20:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r0, #0x2e
+ strneb r0, [r8, #-0x1]!
+ ldrb r0, [sp, #0x9]
+ strb r0, [r8, #-0x1]!
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E0DE0
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E0DE0
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+ b _020E0DE0
+_020E0C6C:
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+ cmp r1, r7
+ ble _020E0CAC
+ sub r1, r1, r7
+ add r0, sp, #0x4
+ sub r1, r2, r1
+ bl round_decimal
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+_020E0CAC:
+ adds r0, r3, #0x1
+ movmi r0, #0x0
+ ldr r3, _020E0DF4 ; =0x000001FD
+ add r6, r0, r1
+ cmp r6, r3
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ add r3, sp, #0x9
+ sub r6, r7, r1
+ cmp r6, #0x0
+ add r2, r3, r2
+ mov r9, #0x0
+ ble _020E0D00
+ mov r3, #0x30
+_020E0CF0:
+ add r9, r9, #0x1
+ cmp r9, r6
+ strb r3, [r8, #-0x1]!
+ blt _020E0CF0
+_020E0D00:
+ mov r6, #0x0
+ b _020E0D14
+_020E0D08:
+ ldrsb r3, [r2, #-0x1]!
+ add r6, r6, #0x1
+ strb r3, [r8, #-0x1]!
+_020E0D14:
+ cmp r6, r1
+ ldrltb r3, [sp, #0x8]
+ cmplt r6, r3
+ blt _020E0D08
+ cmp r6, r1
+ bge _020E0D40
+ mov r3, #0x30
+_020E0D30:
+ add r6, r6, #0x1
+ cmp r6, r1
+ strb r3, [r8, #-0x1]!
+ blt _020E0D30
+_020E0D40:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r8, #-0x1]!
+ cmp r0, #0x0
+ beq _020E0DA8
+ ldrb r1, [sp, #0x8]
+ mov r5, #0x0
+ sub r1, r0, r1
+ cmp r1, #0x0
+ ble _020E0D88
+ mov r3, #0x30
+_020E0D70:
+ strb r3, [r8, #-0x1]!
+ ldrb r1, [sp, #0x8]
+ add r5, r5, #0x1
+ sub r1, r0, r1
+ cmp r5, r1
+ blt _020E0D70
+_020E0D88:
+ cmp r5, r0
+ bge _020E0DB0
+_020E0D90:
+ ldrsb r1, [r2, #-0x1]!
+ add r5, r5, #0x1
+ cmp r5, r0
+ strb r1, [r8, #-0x1]!
+ blt _020E0D90
+ b _020E0DB0
+_020E0DA8:
+ mov r0, #0x30
+ strb r0, [r8, #-0x1]!
+_020E0DB0:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E0DE0
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E0DE0
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+_020E0DE0:
+ mov r0, r8
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E0DF4: .word 0x000001FD
+_020E0DF8: .word __msl_digit
+_020E0DFC: .word UNK_02106DA8
+_020E0E00: .word UNK_02106DB0
+_020E0E04: .word UNK_02106DB8
+_020E0E08: .word UNK_02106DBC
+_020E0E0C: .word UNK_02106DC0
+_020E0E10: .word UNK_02106DC8
+_020E0E14: .word UNK_02106DD0
+_020E0E18: .word UNK_02106DD4
+_020E0E1C: .word 0x66666667
+ arm_func_end float2str
+
+ arm_func_start __pformatter
+__pformatter:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x22c
+ mov r3, #0x20
+ mov r11, r2
+ strb r3, [sp, #0x19]
+ ldrsb r2, [r11, #0x0]
+ mov r9, r0
+ mov r8, r1
+ cmp r2, #0x0
+ mov r10, #0x0
+ beq _020E1628
+_020E0E50:
+ mov r0, r11
+ mov r1, #0x25
+ bl strchr
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020E0EA4
+ mov r0, r11
+ bl strlen
+ movs r2, r0
+ add r10, r10, r2
+ beq _020E1628
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ bne _020E1628
+ add sp, sp, #0x22c
+ mvn r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0EA4:
+ subs r2, r0, r11
+ add r10, r10, r2
+ beq _020E0ED4
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E0ED4:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x25c
+ add r2, sp, #0x1c
+ bl parse_format
+ ldrb r1, [sp, #0x21]
+ mov r11, r0
+ cmp r1, #0x61
+ bgt _020E0F40
+ bge _020E12A4
+ cmp r1, #0x47
+ bgt _020E0F34
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E0F28
+ b _020E12A4 ; case 65
+ b _020E148C ; case 66
+ b _020E148C ; case 67
+ b _020E148C ; case 68
+ b _020E123C ; case 69
+ b _020E123C ; case 70
+ b _020E123C ; case 71
+_020E0F28:
+ cmp r1, #0x25
+ beq _020E1478
+ b _020E148C
+_020E0F34:
+ cmp r1, #0x58
+ beq _020E1100
+ b _020E148C
+_020E0F40:
+ cmp r1, #0x75
+ bgt _020E0FA8
+ subs r0, r1, #0x64
+ addpl pc, pc, r0, lsl #0x2
+ b _020E0F9C
+ b _020E0FC0 ; case 100
+ b _020E123C ; case 101
+ b _020E123C ; case 102
+ b _020E123C ; case 103
+ b _020E148C ; case 104
+ b _020E0FC0 ; case 105
+ b _020E148C ; case 106
+ b _020E148C ; case 107
+ b _020E148C ; case 108
+ b _020E148C ; case 109
+ b _020E13CC ; case 110
+ b _020E1100 ; case 111
+ b _020E148C ; case 112
+ b _020E148C ; case 113
+ b _020E148C ; case 114
+ b _020E130C ; case 115
+ b _020E148C ; case 116
+ b _020E1100 ; case 117
+_020E0F9C:
+ cmp r1, #0x63
+ beq _020E1458
+ b _020E148C
+_020E0FA8:
+ cmp r1, #0x78
+ bgt _020E0FB8
+ beq _020E1100
+ b _020E148C
+_020E0FB8:
+ cmp r1, #0xff
+ b _020E148C
+_020E0FC0:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x3
+ bne _020E0FE0
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E0FE0:
+ cmp r0, #0x4
+ bne _020E1008
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E1078
+_020E1008:
+ cmp r0, #0x6
+ bne _020E1030
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E1078
+_020E1030:
+ cmp r0, #0x7
+ bne _020E104C
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E104C:
+ cmp r0, #0x8
+ bne _020E1068
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E1068:
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+_020E1078:
+ cmp r0, #0x2
+ moveq r1, r5, lsl #0x10
+ moveq r5, r1, asr #0x10
+ cmp r0, #0x1
+ moveq r1, r5, lsl #0x18
+ moveq r5, r1, asr #0x18
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x1c
+ bne _020E10CC
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x22c
+ bl longlong2str
+ movs r7, r0
+ beq _020E148C
+ b _020E10F0
+_020E10CC:
+ sub r4, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ add r1, sp, #0x22c
+ mov r0, r5
+ ldmia r4, {r2-r3}
+ bl long2str
+ movs r7, r0
+ beq _020E148C
+_020E10F0:
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E1100:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x3
+ bne _020E1120
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E1120:
+ cmp r0, #0x4
+ bne _020E1148
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E11B8
+_020E1148:
+ cmp r0, #0x6
+ bne _020E1170
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E11B8
+_020E1170:
+ cmp r0, #0x7
+ bne _020E118C
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E118C:
+ cmp r0, #0x8
+ bne _020E11A8
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E11A8:
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+_020E11B8:
+ cmp r0, #0x2
+ moveq r1, r5, lsl #0x10
+ moveq r5, r1, lsr #0x10
+ cmp r0, #0x1
+ andeq r5, r5, #0xff
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x1c
+ bne _020E1208
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x22c
+ bl longlong2str
+ movs r7, r0
+ beq _020E148C
+ b _020E122C
+_020E1208:
+ sub r4, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ add r1, sp, #0x22c
+ mov r0, r5
+ ldmia r4, {r2-r3}
+ bl long2str
+ movs r7, r0
+ beq _020E148C
+_020E122C:
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E123C:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x25c]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x25c]
+ bne _020E1260
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x8
+ str r0, [sp, #0x25c]
+_020E1260:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x1c
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x22c
+ bl float2str
+ movs r7, r0
+ beq _020E148C
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E12A4:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x25c]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x25c]
+ bne _020E12C8
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x8
+ str r0, [sp, #0x25c]
+_020E12C8:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x1c
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x22c
+ bl double2hex
+ movs r7, r0
+ beq _020E148C
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E130C:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x5
+ bne _020E134C
+ ldr r0, [sp, #0x25c]
+ mov r2, #0x200
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r1, [r0, #-0x4]
+ add r0, sp, #0x2c
+ cmp r1, #0x0
+ ldreq r1, _020E163C ; =UNK_02106DD8
+ bl wcstombs
+ cmp r0, #0x0
+ blt _020E148C
+ add r7, sp, #0x2c
+ b _020E135C
+_020E134C:
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r7, [r0, #-0x4]
+_020E135C:
+ ldrb r0, [sp, #0x1f]
+ cmp r7, #0x0
+ ldreq r7, _020E1640 ; =UNK_02106DDC
+ cmp r0, #0x0
+ beq _020E1390
+ ldrb r0, [sp, #0x1e]
+ ldrb r6, [r7], #0x1
+ cmp r0, #0x0
+ beq _020E14D8
+ ldr r0, [sp, #0x28]
+ cmp r6, r0
+ movgt r6, r0
+ b _020E14D8
+_020E1390:
+ ldrb r0, [sp, #0x1e]
+ cmp r0, #0x0
+ beq _020E13BC
+ ldr r6, [sp, #0x28]
+ mov r0, r7
+ mov r2, r6
+ mov r1, #0x0
+ bl memchr
+ cmp r0, #0x0
+ subne r6, r0, r7
+ b _020E14D8
+_020E13BC:
+ mov r0, r7
+ bl strlen
+ mov r6, r0
+ b _020E14D8
+_020E13CC:
+ ldr r1, [sp, #0x25c]
+ ldrb r0, [sp, #0x20]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r1, [r1, #-0x4]
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020E161C
+ b _020E1410 ; case 0
+ b _020E161C ; case 1
+ b _020E1418 ; case 2
+ b _020E1420 ; case 3
+ b _020E1448 ; case 4
+ b _020E161C ; case 5
+ b _020E1428 ; case 6
+ b _020E1438 ; case 7
+ b _020E1440 ; case 8
+_020E1410:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1418:
+ strh r10, [r1, #0x0]
+ b _020E161C
+_020E1420:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1428:
+ str r10, [r1, #0x0]
+ mov r0, r10, asr #0x1f
+ str r0, [r1, #0x4]
+ b _020E161C
+_020E1438:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1440:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1448:
+ str r10, [r1, #0x0]
+ mov r0, r10, asr #0x1f
+ str r0, [r1, #0x4]
+ b _020E161C
+_020E1458:
+ ldr r0, [sp, #0x25c]
+ add r7, sp, #0x2c
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r0, [r0, #-0x4]
+ mov r6, #0x1
+ strb r0, [sp, #0x2c]
+ b _020E14D8
+_020E1478:
+ mov r0, #0x25
+ strb r0, [sp, #0x2c]
+ add r7, sp, #0x2c
+ mov r6, #0x1
+ b _020E14D8
+_020E148C:
+ ldr r0, [sp, #0xc]
+ bl strlen
+ movs r4, r0
+ beq _020E14C4
+ ldr r1, [sp, #0xc]
+ mov r0, r8
+ mov r2, r4
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E14C4:
+ add sp, sp, #0x22c
+ add r0, r10, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E14D8:
+ ldrb r0, [sp, #0x1c]
+ mov r4, r6
+ cmp r0, #0x0
+ beq _020E158C
+ cmp r0, #0x2
+ moveq r0, #0x30
+ movne r0, #0x20
+ strb r0, [sp, #0x19]
+ ldrsb r0, [r7, #0x0]
+ cmp r0, #0x2b
+ cmpne r0, #0x2d
+ cmpne r0, #0x20
+ bne _020E1548
+ ldrsb r0, [sp, #0x19]
+ cmp r0, #0x30
+ bne _020E1548
+ mov r0, r8
+ mov r1, r7
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r7, r7, #0x1
+ sub r6, r6, #0x1
+_020E1548:
+ ldr r0, [sp, #0x24]
+ cmp r4, r0
+ bge _020E158C
+_020E1554:
+ mov r0, r8
+ add r1, sp, #0x19
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020E1554
+_020E158C:
+ cmp r6, #0x0
+ beq _020E15BC
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E15BC:
+ ldrb r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _020E1618
+ ldr r0, [sp, #0x24]
+ cmp r4, r0
+ bge _020E1618
+ mov r6, #0x20
+ add r7, sp, #0x18
+_020E15DC:
+ mov r0, r8
+ mov r1, r7
+ mov r2, #0x1
+ strb r6, [sp, #0x18]
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020E15DC
+_020E1618:
+ add r10, r10, r4
+_020E161C:
+ ldrsb r0, [r11, #0x0]
+ cmp r0, #0x0
+ bne _020E0E50
+_020E1628:
+ mov r0, r10
+ add sp, sp, #0x22c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E163C: .word UNK_02106DD8
+_020E1640: .word UNK_02106DDC
+ arm_func_end __pformatter
+
+ arm_func_start __FileWrite
+__FileWrite: ; 0x020E1644
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ mov r0, r1
+ mov r3, r5
+ mov r1, #0x1
+ mov r4, r2
+ bl __fwrite
+ cmp r4, r0
+ movne r5, #0x0
+ mov r0, r5
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __FileWrite
+
+ arm_func_start __StringWrite
+__StringWrite: ; 0x020E1670
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ mov r5, r2
+ ldr r2, [r4, #0x4]
+ add r0, r3, r5
+ cmp r0, r2
+ ldr r0, [r4, #0x0]
+ subhi r5, r2, r3
+ mov r2, r5
+ add r0, r0, r3
+ bl memcpy
+ ldr r1, [r4, #0x8]
+ mov r0, #0x1
+ add r1, r1, r5
+ str r1, [r4, #0x8]
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __StringWrite
+
+ arm_func_start printf
+printf: ; 0x020E16B4
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r0, _020E17B4 ; =__files + 0x4C
+ mvn r1, #0x0
+ bl fwide
+ cmp r0, #0x0
+ mvnge r0, #0x0
+ ldmgeia sp!, {r4,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r0, _020E17B8 ; =__cs + 0x48
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020E1710
+ ldr r0, _020E17BC ; =OSi_ThreadInfo
+ ldr r1, _020E17C0 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E17C4 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0xc]
+ str r2, [r0, #0xc]
+ b _020E1768
+_020E1710:
+ ldr r0, _020E17BC ; =OSi_ThreadInfo
+ ldr r1, _020E17C0 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0xc]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020E1740
+ ldr r0, _020E17C4 ; =__cs_ref
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x1
+ str r1, [r0, #0xc]
+ b _020E1768
+_020E1740:
+ ldr r0, _020E17B8 ; =__cs + 0x48
+ bl OS_LockMutex
+ ldr r0, _020E17BC ; =OSi_ThreadInfo
+ ldr r1, _020E17C0 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E17C4 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0xc]
+ str r2, [r0, #0xc]
+_020E1768:
+ add r0, sp, #0x8
+ bic r3, r0, #0x3
+ ldr r2, [sp, #0x8]
+ ldr r0, _020E17C8 ; =__FileWrite
+ ldr r1, _020E17B4 ; =__files + 0x4C
+ add r3, r3, #0x4
+ bl __pformatter
+ ldr r1, _020E17C4 ; =__cs_ref
+ mov r4, r0
+ ldr r0, [r1, #0xc]
+ subs r0, r0, #0x1
+ str r0, [r1, #0xc]
+ bne _020E17A4
+ ldr r0, _020E17B8 ; =__cs + 0x48
+ bl OS_UnlockMutex
+_020E17A4:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E17B4: .word __files + 0x4C
+_020E17B8: .word __cs + 0x48
+_020E17BC: .word OSi_ThreadInfo
+_020E17C0: .word __cs_id
+_020E17C4: .word __cs_ref
+_020E17C8: .word __FileWrite
+ arm_func_end printf
+
+ arm_func_start vsnprintf
+vsnprintf: ; 0x020E17CC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ mov r12, #0x0
+ ldr r0, _020E1830 ; =__StringWrite
+ add r1, sp, #0x0
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r12, [sp, #0x8]
+ bl __pformatter
+ cmp r5, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r5,pc}
+ cmp r0, r4
+ movcc r1, #0x0
+ addcc sp, sp, #0xc
+ strccb r1, [r5, r0]
+ ldmccia sp!, {r4-r5,pc}
+ cmp r4, #0x0
+ addne r1, r5, r4
+ movne r2, #0x0
+ strneb r2, [r1, #-0x1]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E1830: .word __StringWrite
+ arm_func_end vsnprintf
+
+ arm_func_start snprintf
+snprintf: ; 0x020E1834
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r3, sp, #0x10
+ bic r3, r3, #0x3
+ ldr r2, [sp, #0x10]
+ add r3, r3, #0x4
+ bl vsnprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end snprintf
+
+ arm_func_start sprintf
+sprintf: ; 0x020E185C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r1, sp, #0xc
+ bic r1, r1, #0x3
+ add r3, r1, #0x4
+ ldr r2, [sp, #0xc]
+ mvn r1, #0x0
+ bl vsnprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end sprintf
+
+ .section .exceptix,4
+
+ .word long2str
+ .short 589
+ .word 0x0090FF20
+ .word longlong2str
+ .short 737
+ .word 0x00A0FF20
+ .word double2hex
+ .short 1245
+ .word 0x00F07F20
+ .word float2str
+ .short 1893
+ .word 0x00C0FF20
+ .word __pformatter
+ .short 2084
+ .word UNK_020EC710
+ .word __FileWrite
+ .short 45
+ .word 0x00200300
+ .word __StringWrite
+ .short 69
+ .word 0x00200300
+ .word printf
+ .short 281
+ .word 0x00300120
+ .word vsnprintf
+ .short 105
+ .word 0x00300300
+ .word snprintf
+ .short 41
+ .word 0x00300020
+ .word sprintf
+ .short 45
+ .word 0x00300020
+
+ .section .exception,8
+
+UNK_020EC710: ; 0x020EC710
+ .byte 0x20, 0xFF, 0x09, 0x60
+ .balign 8
diff --git a/arm9/asm/MSL_Common_qsort.s b/arm9/asm/MSL_Common_qsort.s new file mode 100644 index 00000000..edfc142b --- /dev/null +++ b/arm9/asm/MSL_Common_qsort.s @@ -0,0 +1,112 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start qsort
+qsort: ; 0x020E1888
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ mov r9, r1
+ cmp r9, #0x2
+ mov r10, r0
+ mov r8, r2
+ mov r7, r3
+ addcc sp, sp, #0x10
+ ldmccia sp!, {r3-r11,pc}
+ mov r0, r9, lsr #0x1
+ add r11, r0, #0x1
+ sub r0, r11, #0x1
+ mla r0, r8, r0, r10
+ sub r2, r9, #0x1
+ str r0, [sp, #0xc]
+ mla r0, r8, r2, r10
+ str r0, [sp, #0x8]
+ mul r0, r11, r8
+ mvn r1, #0x0
+ str r0, [sp, #0x4]
+ mul r0, r8, r1
+ str r0, [sp, #0x0]
+_020E18E0:
+ cmp r11, #0x1
+ bls _020E1908
+ ldr r0, [sp, #0x4]
+ sub r11, r11, #0x1
+ sub r0, r0, r8
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ sub r0, r0, r8
+ str r0, [sp, #0xc]
+ b _020E1950
+_020E1908:
+ mov r2, r8
+ ldr r4, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ cmp r8, #0x0
+ beq _020E1934
+_020E191C:
+ ldrsb r0, [r4, #0x0]
+ ldrsb r1, [r3, #0x0]
+ subs r2, r2, #0x1
+ strb r0, [r3], #0x1
+ strb r1, [r4], #0x1
+ bne _020E191C
+_020E1934:
+ sub r9, r9, #0x1
+ cmp r9, #0x1
+ addeq sp, sp, #0x10
+ ldmeqia sp!, {r3-r11,pc}
+ ldr r0, [sp, #0x8]
+ sub r0, r0, r8
+ str r0, [sp, #0x8]
+_020E1950:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r4, r11
+ add r0, r1, r0
+ cmp r9, r11, lsl #0x1
+ add r5, r10, r0
+ blo _020E18E0
+_020E196C:
+ mov r4, r4, lsl #0x1
+ sub r0, r4, #0x1
+ mov r6, r5
+ mla r5, r8, r0, r10
+ cmp r9, r4
+ bls _020E199C
+ mov r0, r5
+ add r1, r5, r8
+ blx r7
+ cmp r0, #0x0
+ addlt r4, r4, #0x1
+ addlt r5, r5, r8
+_020E199C:
+ mov r0, r6
+ mov r1, r5
+ blx r7
+ cmp r0, #0x0
+ bge _020E18E0
+ mov r2, r8
+ mov r3, r5
+ cmp r8, #0x0
+ beq _020E19D8
+_020E19C0:
+ ldrsb r1, [r6, #0x0]
+ ldrsb r0, [r3, #0x0]
+ subs r2, r2, #0x1
+ strb r0, [r6], #0x1
+ strb r1, [r3], #0x1
+ bne _020E19C0
+_020E19D8:
+ cmp r9, r4, lsl #0x1
+ bhs _020E196C
+ b _020E18E0
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,pc}
+ arm_func_end qsort
+
+ .section .exceptix,4
+
+ .word qsort
+ .short 357
+ .word 0x0070FF00
diff --git a/arm9/asm/MSL_Common_rand.s b/arm9/asm/MSL_Common_rand.s new file mode 100644 index 00000000..8191a5a4 --- /dev/null +++ b/arm9/asm/MSL_Common_rand.s @@ -0,0 +1,38 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+ .global random_next
+random_next: ; 0x02106DE0
+ .word 0x00000001
+ .size random_next,.-random_next
+
+ .text
+
+ arm_func_start rand
+rand: ; 0x020E19EC
+ ldr r2, _020E1A14 ; =random_next
+ ldr r0, _020E1A18 ; =0x41C64E6D
+ ldr r3, [r2, #0x0]
+ ldr r1, _020E1A1C ; =0x00007FFF
+ mul r0, r3, r0
+ add r0, r0, #0x39
+ add r0, r0, #0x3000
+ str r0, [r2, #0x0]
+ and r0, r1, r0, lsr #0x10
+ bx lr
+ .balign 4
+_020E1A14: .word random_next
+_020E1A18: .word 0x41C64E6D
+_020E1A1C: .word 0x00007FFF
+ arm_func_end rand
+
+ arm_func_start srand
+srand: ; 0x020E1A20
+ ldr r1, _020E1A2C ; =random_next
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020E1A2C: .word random_next
+ arm_func_end srand
diff --git a/arm9/asm/MSL_Common_scanf.s b/arm9/asm/MSL_Common_scanf.s new file mode 100644 index 00000000..8d9a8fe3 --- /dev/null +++ b/arm9/asm/MSL_Common_scanf.s @@ -0,0 +1,1466 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .rodata
+
+parse_format$f: ; 0x0210440C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .word 0x7FFFFFFF
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .word 0x00000000
+ .size parse_format$f,.-parse_format$f
+
+ .text
+
+ local_arm_func_start parse_format
+parse_format: ; 0x020E1A30
+ stmdb sp!, {r3-r7,lr}
+ sub sp, sp, #0x28
+ ldr r6, _020E1F20 ; =parse_format$f
+ add r5, sp, #0x0
+ mov r7, r0
+ mov lr, r1
+ mov r4, r5
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldmia r6, {r0-r1}
+ stmia r5, {r0-r1}
+ ldrsb r0, [r7, #0x1]
+ add r12, r7, #0x1
+ cmp r0, #0x25
+ bne _020E1A9C
+ strb r0, [sp, #0x3]
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add sp, sp, #0x28
+ add r0, r12, #0x1
+ ldmia sp!, {r3-r7,pc}
+_020E1A9C:
+ cmp r0, #0x2a
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ ldreqsb r0, [r12, #0x1]!
+ cmp r0, #0x0
+ blt _020E1ABC
+ cmp r0, #0x80
+ blt _020E1AC4
+_020E1ABC:
+ mov r1, #0x0
+ b _020E1AD4
+_020E1AC4:
+ ldr r1, _020E1F24 ; =__msl_digit
+ mov r2, r0, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x8
+_020E1AD4:
+ cmp r1, #0x0
+ beq _020E1B74
+ mov r1, #0x0
+ ldr r3, _020E1F24 ; =__msl_digit
+ str r1, [sp, #0x4]
+ mov r4, r1
+ mov r1, #0xa
+_020E1AF0:
+ ldr r2, [sp, #0x4]
+ sub r0, r0, #0x30
+ mla r0, r2, r1, r0
+ str r0, [sp, #0x4]
+ ldrsb r0, [r12, #0x1]!
+ cmp r0, #0x0
+ blt _020E1B14
+ cmp r0, #0x80
+ blt _020E1B1C
+_020E1B14:
+ mov r2, r4
+ b _020E1B28
+_020E1B1C:
+ mov r2, r0, lsl #0x1
+ ldrh r2, [r3, r2]
+ and r2, r2, #0x8
+_020E1B28:
+ cmp r2, #0x0
+ bne _020E1AF0
+ ldr r1, [sp, #0x4]
+ cmp r1, #0x0
+ bne _020E1B6C
+ mov r0, #0xff
+ add r4, sp, #0x0
+ strb r0, [sp, #0x3]
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add sp, sp, #0x28
+ add r0, r12, #0x1
+ ldmia sp!, {r3-r7,pc}
+_020E1B6C:
+ mov r1, #0x1
+ strb r1, [sp, #0x1]
+_020E1B74:
+ cmp r0, #0x6c
+ mov r1, #0x1
+ bgt _020E1BAC
+ cmp r0, #0x68
+ blt _020E1BA0
+ beq _020E1BC8
+ cmp r0, #0x6a
+ beq _020E1C14
+ cmp r0, #0x6c
+ beq _020E1BE4
+ b _020E1C38
+_020E1BA0:
+ cmp r0, #0x4c
+ beq _020E1C08
+ b _020E1C38
+_020E1BAC:
+ cmp r0, #0x74
+ bgt _020E1BBC
+ beq _020E1C2C
+ b _020E1C38
+_020E1BBC:
+ cmp r0, #0x7a
+ beq _020E1C20
+ b _020E1C38
+_020E1BC8:
+ mov r2, #0x2
+ strb r2, [sp, #0x2]
+ ldrsb r2, [r12, #0x1]
+ cmp r2, #0x68
+ streqb r1, [sp, #0x2]
+ ldreqsb r0, [r12, #0x1]!
+ b _020E1C3C
+_020E1BE4:
+ mov r2, #0x3
+ strb r2, [sp, #0x2]
+ ldrsb r2, [r12, #0x1]
+ cmp r2, #0x6c
+ bne _020E1C3C
+ mov r0, #0x7
+ strb r0, [sp, #0x2]
+ ldrsb r0, [r12, #0x1]!
+ b _020E1C3C
+_020E1C08:
+ mov r2, #0x9
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C14:
+ mov r2, #0x4
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C20:
+ mov r2, #0x5
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C2C:
+ mov r2, #0x6
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C38:
+ mov r1, #0x0
+_020E1C3C:
+ cmp r1, #0x0
+ ldrnesb r0, [r12, #0x1]!
+ strb r0, [sp, #0x3]
+ cmp r0, #0x5b
+ bgt _020E1C90
+ bge _020E1DE0
+ cmp r0, #0x47
+ bgt _020E1C84
+ subs r1, r0, #0x41
+ addpl pc, pc, r1, lsl #0x2
+ b _020E1EF0
+ b _020E1D1C ; case 65
+ b _020E1EF0 ; case 66
+ b _020E1EF0 ; case 67
+ b _020E1EF0 ; case 68
+ b _020E1D1C ; case 69
+ b _020E1D1C ; case 70
+ b _020E1D1C ; case 71
+_020E1C84:
+ cmp r0, #0x58
+ beq _020E1D08
+ b _020E1EF0
+_020E1C90:
+ cmp r0, #0x61
+ bgt _020E1CA0
+ beq _020E1D1C
+ b _020E1EF0
+_020E1CA0:
+ sub r0, r0, #0x63
+ cmp r0, #0x15
+ addls pc, pc, r0, lsl #0x2
+ b _020E1EF0
+ b _020E1D6C ; case 99
+ b _020E1D08 ; case 100
+ b _020E1D1C ; case 101
+ b _020E1D1C ; case 102
+ b _020E1D1C ; case 103
+ b _020E1EF0 ; case 104
+ b _020E1D08 ; case 105
+ b _020E1EF0 ; case 106
+ b _020E1EF0 ; case 107
+ b _020E1EF0 ; case 108
+ b _020E1EF0 ; case 109
+ b _020E1EF8 ; case 110
+ b _020E1D08 ; case 111
+ b _020E1D58 ; case 112
+ b _020E1EF0 ; case 113
+ b _020E1EF0 ; case 114
+ b _020E1D90 ; case 115
+ b _020E1EF0 ; case 116
+ b _020E1D08 ; case 117
+ b _020E1EF0 ; case 118
+ b _020E1EF0 ; case 119
+ b _020E1D08 ; case 120
+_020E1D08:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D1C:
+ ldrb r1, [sp, #0x2]
+ cmp r1, #0x1
+ cmpne r1, #0x2
+ beq _020E1D3C
+ add r0, r1, #0xfc
+ and r0, r0, #0xff
+ cmp r0, #0x3
+ bhi _020E1D48
+_020E1D3C:
+ mov r0, #0xff
+ strb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D48:
+ cmp r1, #0x3
+ moveq r0, #0x8
+ streqb r0, [sp, #0x2]
+ b _020E1EF8
+_020E1D58:
+ mov r1, #0x3
+ mov r0, #0x78
+ strb r1, [sp, #0x2]
+ strb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D6C:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1EF8
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D90:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1DB0
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+_020E1DB0:
+ add r2, sp, #0x8
+ mov r1, #0x20
+ mov r0, #0xff
+_020E1DBC:
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ strb r0, [r2], #0x1
+ bgt _020E1DBC
+ mov r1, #0xc1
+ mov r0, #0xfe
+ strb r1, [sp, #0x9]
+ strb r0, [sp, #0xc]
+ b _020E1EF8
+_020E1DE0:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1E00
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+_020E1E00:
+ ldrsb r2, [r12, #0x1]!
+ mov r1, #0x0
+ cmp r2, #0x5e
+ ldreqsb r2, [r12, #0x1]!
+ moveq r1, #0x1
+ cmp r2, #0x5d
+ bne _020E1EA8
+ ldrb r0, [sp, #0x13]
+ orr r0, r0, #0x20
+ strb r0, [sp, #0x13]
+ ldrsb r2, [r12, #0x1]!
+ b _020E1EA8
+_020E1E30:
+ add r0, sp, #0x0
+ and r3, r2, #0xff
+ add r6, r0, r3, asr #0x3
+ ldrb r5, [r6, #0x8]
+ and r3, r2, #0x7
+ mov r4, #0x1
+ orr r3, r5, r4, lsl r3
+ strb r3, [r6, #0x8]
+ ldrsb r3, [r12, #0x1]
+ cmp r3, #0x2d
+ bne _020E1EA4
+ ldrsb r7, [r12, #0x2]
+ cmp r7, #0x0
+ cmpne r7, #0x5d
+ beq _020E1EA4
+ add r2, r2, #0x1
+ cmp r2, r7
+ bgt _020E1E9C
+_020E1E78:
+ and r3, r2, #0xff
+ add r6, r0, r3, asr #0x3
+ ldrb r5, [r6, #0x8]
+ and r3, r2, #0x7
+ add r2, r2, #0x1
+ orr r3, r5, r4, lsl r3
+ strb r3, [r6, #0x8]
+ cmp r2, r7
+ ble _020E1E78
+_020E1E9C:
+ ldrsb r2, [r12, #0x3]!
+ b _020E1EA8
+_020E1EA4:
+ ldrsb r2, [r12, #0x1]!
+_020E1EA8:
+ cmp r2, #0x0
+ cmpne r2, #0x5d
+ bne _020E1E30
+ cmp r2, #0x0
+ moveq r0, #0xff
+ streqb r0, [sp, #0x3]
+ beq _020E1EF8
+ cmp r1, #0x0
+ beq _020E1EF8
+ add r2, sp, #0x8
+ mov r1, #0x20
+_020E1ED4:
+ ldrb r0, [r2, #0x0]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ mvn r0, r0
+ strb r0, [r2], #0x1
+ bgt _020E1ED4
+ b _020E1EF8
+_020E1EF0:
+ mov r0, #0xff
+ strb r0, [sp, #0x3]
+_020E1EF8:
+ add r4, sp, #0x0
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add r0, r12, #0x1
+ add sp, sp, #0x28
+ ldmia sp!, {r3-r7,pc}
+ .balign 4
+_020E1F20: .word parse_format$f
+_020E1F24: .word __msl_digit
+ arm_func_end parse_format
+
+ arm_func_start __sformatter
+__sformatter: ; 0x020E1F28
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x88
+ ldrsb r5, [r2, #0x0]
+ str r2, [sp, #0xc]
+ mov r2, #0x0
+ mov r9, r0
+ mov r0, r2
+ str r2, [sp, #0x20]
+ mov r8, r1
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x24]
+ cmp r5, #0x0
+ ldr r10, [sp, #0xb0]
+ str r0, [sp, #0x30]
+ mov r4, r2
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x40]
+ beq _020E2C3C
+_020E1F70:
+ cmp r5, #0x0
+ mov r0, #0x1
+ blt _020E1F84
+ cmp r5, #0x80
+ movlt r0, #0x0
+_020E1F84:
+ cmp r0, #0x0
+ movne r0, #0x0
+ bne _020E1FA0
+ mov r1, r5, lsl #0x1
+ ldr r0, _020E2C74 ; =__msl_digit
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E1FA0:
+ cmp r0, #0x0
+ beq _020E2060
+ mov r2, #0x0
+ ldr r1, _020E2C74 ; =__msl_digit
+ mov r12, r2
+ mov r3, #0x1
+_020E1FB8:
+ ldr r0, [sp, #0xc]
+ ldrsb r5, [r0, #0x1]!
+ str r0, [sp, #0xc]
+ mov r0, r3
+ cmp r5, #0x0
+ blt _020E1FD8
+ cmp r5, #0x80
+ movlt r0, r2
+_020E1FD8:
+ cmp r0, #0x0
+ movne r0, r12
+ moveq r0, r5, lsl #0x1
+ ldreqh r0, [r1, r0]
+ andeq r0, r0, #0x100
+ cmp r0, #0x0
+ bne _020E1FB8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2C2C
+ ldr r5, _020E2C74 ; =__msl_digit
+ b _020E200C
+_020E2008:
+ add r4, r4, #0x1
+_020E200C:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E2034
+ cmp r1, #0x80
+ blt _020E203C
+_020E2034:
+ mov r0, #0x0
+ b _020E2048
+_020E203C:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r5, r0]
+ and r0, r0, #0x100
+_020E2048:
+ cmp r0, #0x0
+ bne _020E2008
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ b _020E2C2C
+_020E2060:
+ cmp r5, #0x25
+ beq _020E20D8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E20D8
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ and r0, r5, #0xff
+ ldrsb r1, [sp, #0x50]
+ cmp r0, r1
+ beq _020E20C4
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ b _020E2C2C
+_020E20C4:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ b _020E2C2C
+_020E20D8:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x60
+ bl parse_format
+ str r0, [sp, #0xc]
+ ldrb r0, [sp, #0x60]
+ cmp r0, #0x0
+ bne _020E2114
+ ldrb r0, [sp, #0x63]
+ cmp r0, #0x25
+ beq _020E2114
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x4
+ str r0, [sp, #0x10]
+ ldr r5, [r0, #-0x4]
+ b _020E2118
+_020E2114:
+ mov r5, #0x0
+_020E2118:
+ ldrb r0, [sp, #0x63]
+ cmp r0, #0x6e
+ beq _020E2158
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2158
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx r9
+ cmp r0, #0x0
+ beq _020E2158
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+_020E2158:
+ ldrb r1, [sp, #0x63]
+ cmp r1, #0x5b
+ bgt _020E21B0
+ bge _020E2984
+ cmp r1, #0x47
+ bgt _020E21A4
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E2198
+ b _020E2600 ; case 65
+ b _020E2C3C ; case 66
+ b _020E2C3C ; case 67
+ b _020E2C3C ; case 68
+ b _020E2600 ; case 69
+ b _020E2600 ; case 70
+ b _020E2600 ; case 71
+_020E2198:
+ cmp r1, #0x25
+ beq _020E287C
+ b _020E2C3C
+_020E21A4:
+ cmp r1, #0x58
+ beq _020E243C
+ b _020E2C3C
+_020E21B0:
+ cmp r1, #0x78
+ bgt _020E2228
+ subs r0, r1, #0x63
+ addpl pc, pc, r0, lsl #0x2
+ b _020E221C
+ b _020E26C4 ; case 99
+ b _020E2230 ; case 100
+ b _020E2600 ; case 101
+ b _020E2600 ; case 102
+ b _020E2600 ; case 103
+ b _020E2C3C ; case 104
+ b _020E2238 ; case 105
+ b _020E2C3C ; case 106
+ b _020E2C3C ; case 107
+ b _020E2C3C ; case 108
+ b _020E2C3C ; case 109
+ b _020E2BC8 ; case 110
+ b _020E242C ; case 111
+ b _020E2C3C ; case 112
+ b _020E2C3C ; case 113
+ b _020E2C3C ; case 114
+ b _020E2908 ; case 115
+ b _020E2C3C ; case 116
+ b _020E2434 ; case 117
+ b _020E2C3C ; case 118
+ b _020E2C3C ; case 119
+ b _020E243C ; case 120
+_020E221C:
+ cmp r1, #0x61
+ beq _020E2600
+ b _020E2C3C
+_020E2228:
+ cmp r1, #0xff
+ b _020E2C3C
+_020E2230:
+ mov r0, #0xa
+ b _020E223C
+_020E2238:
+ mov r0, #0x0
+_020E223C:
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ beq _020E225C
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E225C:
+ ldrb r1, [sp, #0x62]
+ add r2, sp, #0x5c
+ cmp r1, #0x7
+ cmpne r1, #0x4
+ add r1, sp, #0x58
+ bne _020E22A0
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoull
+ str r0, [sp, #0x34]
+ str r1, [sp, #0x18]
+ b _020E22C4
+_020E22A0:
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoul
+ str r0, [sp, #0x3c]
+_020E22C4:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E22F4
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E22F4:
+ add r4, r4, r0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ cmpne r0, #0x4
+ bne _020E2344
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ beq _020E2330
+ ldr r0, [sp, #0x34]
+ rsbs r0, r0, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ rsc r0, r0, #0x0
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E2330:
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E2344:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x3c]
+ streq r0, [sp, #0x1c]
+ beq _020E2364
+ ldr r0, [sp, #0x3c]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x1c]
+_020E2364:
+ cmp r5, #0x0
+ beq _020E241C
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E2408
+ b _020E239C ; case 0
+ b _020E23A8 ; case 1
+ b _020E23B4 ; case 2
+ b _020E23C0 ; case 3
+ b _020E23CC ; case 4
+ b _020E23E0 ; case 5
+ b _020E23EC ; case 6
+ b _020E23F8 ; case 7
+_020E239C:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23A8:
+ ldr r0, [sp, #0x1c]
+ strb r0, [r5, #0x0]
+ b _020E2408
+_020E23B4:
+ ldr r0, [sp, #0x1c]
+ strh r0, [r5, #0x0]
+ b _020E2408
+_020E23C0:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23CC:
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x4]
+ b _020E2408
+_020E23E0:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23EC:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23F8:
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x4]
+_020E2408:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E241C:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E242C:
+ mov r0, #0x8
+ b _020E2440
+_020E2434:
+ mov r0, #0xa
+ b _020E2440
+_020E243C:
+ mov r0, #0x10
+_020E2440:
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ beq _020E2460
+ mov r0, #0x0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ b _020E2538
+_020E2460:
+ ldrb r1, [sp, #0x62]
+ add r2, sp, #0x5c
+ cmp r1, #0x7
+ cmpne r1, #0x4
+ add r1, sp, #0x58
+ bne _020E24A4
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoull
+ str r0, [sp, #0x34]
+ str r1, [sp, #0x18]
+ b _020E24C8
+_020E24A4:
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoul
+ str r0, [sp, #0x3c]
+_020E24C8:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E24F8
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ mov r0, #0x0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ b _020E2538
+_020E24F8:
+ add r4, r4, r0
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ beq _020E2538
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ ldrne r0, [sp, #0x3c]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x3c]
+ bne _020E2538
+ ldr r0, [sp, #0x34]
+ rsbs r0, r0, #0x0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x18]
+ rsc r0, r0, #0x0
+ str r0, [sp, #0x18]
+_020E2538:
+ cmp r5, #0x0
+ beq _020E25F0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E25DC
+ b _020E2570 ; case 0
+ b _020E257C ; case 1
+ b _020E2588 ; case 2
+ b _020E2594 ; case 3
+ b _020E25A0 ; case 4
+ b _020E25B4 ; case 5
+ b _020E25C0 ; case 6
+ b _020E25CC ; case 7
+_020E2570:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E257C:
+ ldr r0, [sp, #0x3c]
+ strb r0, [r5, #0x0]
+ b _020E25DC
+_020E2588:
+ ldr r0, [sp, #0x3c]
+ strh r0, [r5, #0x0]
+ b _020E25DC
+_020E2594:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25A0:
+ ldr r0, [sp, #0x34]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x4]
+ b _020E25DC
+_020E25B4:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25C0:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25CC:
+ ldr r0, [sp, #0x34]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x4]
+_020E25DC:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E25F0:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E2600:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ beq _020E261C
+ ldr r0, _020E2C78 ; =__float_nan
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ b _020E2668
+_020E261C:
+ add r0, sp, #0x54
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x64]
+ mov r1, r9
+ mov r2, r8
+ add r3, sp, #0x5c
+ bl __strtold
+ ldr r2, [sp, #0x5c]
+ cmp r2, #0x0
+ bne _020E2664
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ ldr r0, _020E2C78 ; =__float_nan
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ b _020E2668
+_020E2664:
+ add r4, r4, r2
+_020E2668:
+ cmp r5, #0x0
+ beq _020E26B4
+ ldrb r2, [sp, #0x62]
+ cmp r2, #0x0
+ beq _020E2690
+ cmp r2, #0x8
+ beq _020E269C
+ cmp r2, #0x9
+ stmeqia r5, {r0-r1}
+ b _020E26A0
+_020E2690:
+ bl _d2f
+ str r0, [r5, #0x0]
+ b _020E26A0
+_020E269C:
+ stmia r5, {r0-r1}
+_020E26A0:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E26B4:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E26C4:
+ ldrb r0, [sp, #0x61]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0x64]
+ cmp r5, #0x0
+ beq _020E280C
+ cmp r10, #0x0
+ beq _020E26F8
+ ldr r0, [sp, #0x10]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ ldr r11, [r0, #-0x4]
+ str r0, [sp, #0x10]
+_020E26F8:
+ ldr r0, [sp, #0x30]
+ mov r1, #0x0
+ cmp r0, #0x0
+ str r1, [sp, #0x5c]
+ beq _020E2718
+ cmp r11, #0x0
+ strneb r1, [r5, #0x0]
+ b _020E2C2C
+_020E2718:
+ mvn r0, #0x0
+ str r5, [sp, #0x2c]
+ str r0, [sp, #0x48]
+ b _020E2760
+_020E2728:
+ ldrb r0, [sp, #0x62]
+ strb r6, [sp, #0x50]
+ cmp r0, #0xa
+ ldrnesb r0, [sp, #0x50]
+ strneb r0, [r5], #0x1
+ bne _020E2754
+ mov r0, r5
+ add r1, sp, #0x50
+ mov r2, #0x1
+ bl mbtowc
+ add r5, r5, #0x1
+_020E2754:
+ ldr r0, [sp, #0x5c]
+ add r1, r0, #0x1
+ str r1, [sp, #0x5c]
+_020E2760:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E27B0
+ cmp r10, #0x0
+ beq _020E2790
+ cmp r11, r1
+ movhi r7, #0x1
+ movls r7, #0x0
+ cmp r7, #0x0
+ beq _020E27B0
+_020E2790:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ ldr r0, [sp, #0x48]
+ cmp r6, r0
+ bne _020E2728
+_020E27B0:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E27D0
+ cmp r10, #0x0
+ beq _020E27F8
+ cmp r7, #0x0
+ bne _020E27F8
+_020E27D0:
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ cmp r11, #0x0
+ str r0, [sp, #0x30]
+ beq _020E2C2C
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ b _020E2C2C
+_020E27F8:
+ add r4, r4, r0
+ ldr r0, [sp, #0x44]
+ add r0, r0, #0x1
+ str r0, [sp, #0x44]
+ b _020E286C
+_020E280C:
+ mov r0, #0x0
+ str r0, [sp, #0x5c]
+ mvn r5, #0x0
+ b _020E282C
+_020E281C:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x5c]
+_020E282C:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E285C
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ cmp r6, r5
+ bne _020E281C
+_020E285C:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E2C3C
+_020E286C:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E287C:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2C2C
+ ldr r5, _020E2C74 ; =__msl_digit
+ b _020E2894
+_020E2890:
+ add r4, r4, #0x1
+_020E2894:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E28BC
+ cmp r1, #0x80
+ blt _020E28C4
+_020E28BC:
+ mov r0, #0x0
+ b _020E28D0
+_020E28C4:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r5, r0]
+ and r0, r0, #0x100
+_020E28D0:
+ cmp r0, #0x0
+ bne _020E2890
+ cmp r1, #0x25
+ beq _020E2900
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ b _020E2C2C
+_020E2900:
+ add r4, r4, #0x1
+ b _020E2C2C
+_020E2908:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2984
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ b _020E2944
+_020E292C:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ strb r0, [sp, #0x50]
+_020E2944:
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E2958
+ cmp r1, #0x80
+ blt _020E2960
+_020E2958:
+ mov r0, #0x0
+ b _020E2970
+_020E2960:
+ ldr r0, _020E2C74 ; =__msl_digit
+ mov r2, r1, lsl #0x1
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x100
+_020E2970:
+ cmp r0, #0x0
+ bne _020E292C
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+_020E2984:
+ cmp r5, #0x0
+ beq _020E2B00
+ cmp r10, #0x0
+ beq _020E29AC
+ ldr r0, [sp, #0x10]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x10]
+ ldr r0, [r0, #-0x4]
+ sub r11, r0, #0x1
+_020E29AC:
+ ldr r0, [sp, #0x30]
+ mov r1, #0x0
+ cmp r0, #0x0
+ str r1, [sp, #0x5c]
+ beq _020E29CC
+ cmp r11, #0x0
+ strneb r1, [r5, #0x0]
+ b _020E2C2C
+_020E29CC:
+ mvn r0, #0x0
+ str r5, [sp, #0x28]
+ str r0, [sp, #0x4c]
+ b _020E2A30
+_020E29DC:
+ strb r6, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ add r2, sp, #0x60
+ and r3, r1, #0xff
+ add r2, r2, r3, asr #0x3
+ ldrb r3, [r2, #0x8]
+ and r0, r1, #0x7
+ mov r2, #0x1
+ tst r3, r2, lsl r0
+ beq _020E2A80
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0xa
+ strneb r1, [r5], #0x1
+ bne _020E2A24
+ mov r0, r5
+ add r1, sp, #0x50
+ bl mbtowc
+ add r5, r5, #0x2
+_020E2A24:
+ ldr r0, [sp, #0x5c]
+ add r1, r0, #0x1
+ str r1, [sp, #0x5c]
+_020E2A30:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E2A80
+ cmp r10, #0x0
+ beq _020E2A60
+ cmp r11, r1
+ movcs r7, #0x1
+ movcc r7, #0x0
+ cmp r7, #0x0
+ beq _020E2A80
+_020E2A60:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ ldr r0, [sp, #0x4c]
+ cmp r6, r0
+ bne _020E29DC
+_020E2A80:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E2AA0
+ cmp r10, #0x0
+ beq _020E2AD8
+ cmp r7, #0x0
+ bne _020E2AD8
+_020E2AA0:
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ cmp r11, #0x0
+ str r0, [sp, #0x30]
+ beq _020E2C2C
+ ldr r0, [sp, #0x28]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ b _020E2C2C
+_020E2AD8:
+ add r4, r4, r0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0xa
+ mov r0, #0x0
+ streqh r0, [r5, #0x0]
+ strneb r0, [r5, #0x0]
+ ldr r0, [sp, #0x44]
+ add r0, r0, #0x1
+ str r0, [sp, #0x44]
+ b _020E2B9C
+_020E2B00:
+ mov r0, #0x0
+ str r0, [sp, #0x5c]
+ mvn r5, #0x0
+ b _020E2B44
+_020E2B10:
+ strb r6, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ and r0, r1, #0x7
+ and r2, r1, #0xff
+ add r1, sp, #0x60
+ add r1, r1, r2, asr #0x3
+ ldrb r2, [r1, #0x8]
+ mov r1, #0x1
+ tst r2, r1, lsl r0
+ beq _020E2B74
+ ldr r0, [sp, #0x5c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x5c]
+_020E2B44:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E2B74
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ cmp r6, r5
+ bne _020E2B10
+_020E2B74:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E2B98
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+ b _020E2C2C
+_020E2B98:
+ add r4, r4, r0
+_020E2B9C:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ blt _020E2BB8
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+_020E2BB8:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E2BC8:
+ cmp r5, #0x0
+ beq _020E2C2C
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E2C2C
+ b _020E2C00 ; case 0
+ b _020E2C18 ; case 1
+ b _020E2C08 ; case 2
+ b _020E2C10 ; case 3
+ b _020E2C2C ; case 4
+ b _020E2C2C ; case 5
+ b _020E2C2C ; case 6
+ b _020E2C20 ; case 7
+_020E2C00:
+ str r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C08:
+ strh r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C10:
+ str r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C18:
+ strb r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C20:
+ str r4, [r5, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r5, #0x4]
+_020E2C2C:
+ ldr r0, [sp, #0xc]
+ ldrsb r5, [r0, #0x0]
+ cmp r5, #0x0
+ bne _020E1F70
+_020E2C3C:
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx r9
+ cmp r0, #0x0
+ beq _020E2C68
+ ldr r0, [sp, #0x40]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,pc}
+_020E2C68:
+ ldr r0, [sp, #0x44]
+ add sp, sp, #0x88
+ ldmia sp!, {r3-r11,pc}
+ .balign 4
+_020E2C74: .word __msl_digit
+_020E2C78: .word __float_nan
+ arm_func_end __sformatter
+
+ arm_func_start __StringRead
+__StringRead: ; 0x020E2C7C
+ cmp r2, #0x0
+ beq _020E2C98
+ cmp r2, #0x1
+ beq _020E2CC8
+ cmp r2, #0x2
+ beq _020E2CF0
+ b _020E2CF8
+_020E2C98:
+ ldr r1, [r0, #0x0]
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020E2CB8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ sub r0, r1, #0x2
+ bx lr
+_020E2CB8:
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ and r0, r2, #0xff
+ bx lr
+_020E2CC8:
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ movne r2, #0x0
+ strne r2, [r0, #0x4]
+ bne _020E2CE8
+ ldr r2, [r0, #0x0]
+ sub r2, r2, #0x1
+ str r2, [r0, #0x0]
+_020E2CE8:
+ mov r0, r1
+ bx lr
+_020E2CF0:
+ ldr r0, [r0, #0x4]
+ bx lr
+_020E2CF8:
+ mov r0, #0x0
+ bx lr
+ arm_func_end __StringRead
+
+ arm_func_start vsscanf
+vsscanf: ; 0x020E2D00
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r0, #0x0]
+ mov lr, r1
+ mov r3, r2
+ cmpne r0, #0x0
+ addeq sp, sp, #0xc
+ mvneq r0, #0x0
+ ldmeqia sp!, {pc}
+ mov r12, #0x0
+ str r12, [sp, #0x8]
+ ldr r0, _020E2D50 ; =__StringRead
+ add r1, sp, #0x4
+ mov r2, lr
+ str r12, [sp, #0x0]
+ bl __sformatter
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .balign 4
+_020E2D50: .word __StringRead
+ arm_func_end vsscanf
+
+ arm_func_start sscanf
+sscanf: ; 0x020E2D54
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r2, sp, #0xc
+ bic r2, r2, #0x3
+ ldr r1, [sp, #0xc]
+ add r2, r2, #0x4
+ bl vsscanf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end sscanf
+
+ .section .exceptix,4
+
+ .word __sformatter
+ .short 3412
+ .word UNK_020EC718
+ .word vsscanf
+ .short 85
+ .word 0x00200000
+ .word sscanf
+ .short 41
+ .word 0x00300020
+
+ .section .exception,8
+
+UNK_020EC718: ; 0x020EC718
+ .byte 0x00, 0xFF, 0x01, 0xB0
+ .balign 8
diff --git a/arm9/asm/MSL_Common_signal.s b/arm9/asm/MSL_Common_signal.s new file mode 100644 index 00000000..8fd03917 --- /dev/null +++ b/arm9/asm/MSL_Common_signal.s @@ -0,0 +1,107 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .bss
+
+ .global signal_funcs
+signal_funcs: ; 0x021D74AC
+ .space 0x1c
+ .size signal_funcs,.-signal_funcs
+
+ .text
+
+ arm_func_start raise
+raise: ; 0x020E2D7C
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ cmp r5, #0x1
+ blt _020E2D94
+ cmp r5, #0x7
+ ble _020E2D9C
+_020E2D94:
+ mvn r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E2D9C:
+ ldr r0, _020E2E98 ; =__cs + 0xA8
+ bl OS_TryLockMutex
+ cmp r0, #0x0
+ bne _020E2DD0
+ ldr r0, _020E2E9C ; =OSi_ThreadInfo
+ ldr r1, _020E2EA0 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E2EA4 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x1c]
+ str r2, [r0, #0x1c]
+ b _020E2E28
+_020E2DD0:
+ ldr r0, _020E2E9C ; =OSi_ThreadInfo
+ ldr r1, _020E2EA0 ; =__cs_id
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0x1c]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020E2E00
+ ldr r0, _020E2EA4 ; =__cs_ref
+ ldr r1, [r0, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ b _020E2E28
+_020E2E00:
+ ldr r0, _020E2E98 ; =__cs + 0xA8
+ bl OS_LockMutex
+ ldr r0, _020E2E9C ; =OSi_ThreadInfo
+ ldr r1, _020E2EA0 ; =__cs_id
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E2EA4 ; =__cs_ref
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x1c]
+ str r2, [r0, #0x1c]
+_020E2E28:
+ ldr r1, _020E2EA8 ; =signal_funcs
+ sub r2, r5, #0x1
+ ldr r4, [r1, r2, lsl #0x2]
+ cmp r4, #0x1
+ movne r0, #0x0
+ strne r0, [r1, r2, lsl #0x2]
+ ldr r0, _020E2EA4 ; =__cs_ref
+ ldr r1, [r0, #0x1c]
+ subs r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ bne _020E2E5C
+ ldr r0, _020E2E98 ; =__cs + 0xA8
+ bl OS_UnlockMutex
+_020E2E5C:
+ cmp r4, #0x1
+ beq _020E2E70
+ cmp r4, #0x0
+ cmpeq r5, #0x1
+ bne _020E2E78
+_020E2E70:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E2E78:
+ cmp r4, #0x0
+ bne _020E2E88
+ mov r0, #0x0
+ bl exit
+_020E2E88:
+ mov r0, r5
+ blx r4
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E2E98: .word __cs + 0xA8
+_020E2E9C: .word OSi_ThreadInfo
+_020E2EA0: .word __cs_id
+_020E2EA4: .word __cs_ref
+_020E2EA8: .word signal_funcs
+ arm_func_end raise
+
+ .section .exceptix,4
+
+ .word raise
+ .short 305
+ .word 0x00200300
diff --git a/arm9/asm/MSL_Common_string.s b/arm9/asm/MSL_Common_string.s new file mode 100644 index 00000000..d8371d05 --- /dev/null +++ b/arm9/asm/MSL_Common_string.s @@ -0,0 +1,364 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start strlen
+strlen: ; 0x020E2EAC
+ mvn r2, #0x0
+_020E2EB0:
+ ldrsb r1, [r0], #0x1
+ add r2, r2, #0x1
+ cmp r1, #0x0
+ bne _020E2EB0
+ mov r0, r2
+ bx lr
+ arm_func_end strlen
+
+ arm_func_start strcpy
+strcpy: ; 0x020E2EC8
+ stmdb sp!, {r3-r5,lr}
+ and r4, r1, #0x3
+ and r3, r0, #0x3
+ mov r2, r0
+ cmp r3, r4
+ bne _020E2F64
+ cmp r4, #0x0
+ beq _020E2F20
+ ldrb r3, [r1, #0x0]
+ strb r3, [r0, #0x0]
+ cmp r3, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+ rsbs r4, r4, #0x3
+ beq _020E2F18
+_020E2F00:
+ ldrb r3, [r1, #0x1]!
+ cmp r3, #0x0
+ strb r3, [r2, #0x1]!
+ ldmeqia sp!, {r3-r5,pc}
+ subs r4, r4, #0x1
+ bne _020E2F00
+_020E2F18:
+ add r2, r2, #0x1
+ add r1, r1, #0x1
+_020E2F20:
+ ldr r5, [r1, #0x0]
+ ldr r3, _020E2F88 ; =0xFEFEFEFF
+ mvn r4, r5
+ add lr, r5, r3
+ ldr ip, _020E2F8C ; =0x80808080
+ and r4, lr, r4
+ tst r4, r12
+ bne _020E2F64
+ sub r2, r2, #0x4
+_020E2F44:
+ str r5, [r2, #0x4]!
+ ldr r5, [r1, #0x4]!
+ add r4, r5, r3
+ mvn lr, r5
+ and lr, r4, lr
+ tst lr, r12
+ beq _020E2F44
+ add r2, r2, #0x4
+_020E2F64:
+ ldrb r3, [r1, #0x0]
+ strb r3, [r2, #0x0]
+ cmp r3, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020E2F74:
+ ldrb r3, [r1, #0x1]!
+ cmp r3, #0x0
+ strb r3, [r2, #0x1]!
+ bne _020E2F74
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E2F88: .word 0xFEFEFEFF
+_020E2F8C: .word 0x80808080
+ arm_func_end strcpy
+
+ arm_func_start strncpy
+strncpy: ; 0x020E2F90
+ stmdb sp!, {r3,lr}
+ mov lr, r0
+ cmp r2, #0x0
+ ldmeqia sp!, {r3,pc}
+_020E2FA0:
+ ldrsb r3, [r1], #0x1
+ mov r12, lr
+ strb r3, [lr], #0x1
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x0
+ bne _020E2FD4
+ subs r2, r2, #0x1
+ ldmeqia sp!, {r3,pc}
+ mov r1, #0x0
+_020E2FC4:
+ strb r1, [lr], #0x1
+ subs r2, r2, #0x1
+ bne _020E2FC4
+ ldmia sp!, {r3,pc}
+_020E2FD4:
+ subs r2, r2, #0x1
+ bne _020E2FA0
+ ldmia sp!, {r3,pc}
+ arm_func_end strncpy
+
+ arm_func_start strcat
+strcat: ; 0x020E2FE0
+ mov r3, r0
+_020E2FE4:
+ ldrsb r2, [r3], #0x1
+ cmp r2, #0x0
+ bne _020E2FE4
+ sub r3, r3, #0x1
+_020E2FF4:
+ ldrsb r2, [r1], #0x1
+ mov r12, r3
+ strb r2, [r3], #0x1
+ ldrsb r2, [r12, #0x0]
+ cmp r2, #0x0
+ bne _020E2FF4
+ bx lr
+ arm_func_end strcat
+
+ arm_func_start strncat
+strncat: ; 0x020E3010
+ stmdb sp!, {r3,lr}
+ mov r12, r0
+_020E3018:
+ ldrsb r3, [r12], #0x1
+ cmp r3, #0x0
+ bne _020E3018
+ cmp r2, #0x0
+ sub r12, r12, #0x1
+ beq _020E3054
+_020E3030:
+ ldrsb r3, [r1], #0x1
+ mov lr, r12
+ strb r3, [r12], #0x1
+ ldrsb r3, [lr, #0x0]
+ cmp r3, #0x0
+ subeq r12, r12, #0x1
+ beq _020E3054
+ subs r2, r2, #0x1
+ bne _020E3030
+_020E3054:
+ mov r1, #0x0
+ strb r1, [r12, #0x0]
+ ldmia sp!, {r3,pc}
+ arm_func_end strncat
+
+ arm_func_start strcmp
+strcmp: ; 0x020E3060
+ stmdb sp!, {r4,lr}
+ ldrb r2, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ subs r3, r2, r3
+ movne r0, r3
+ ldmneia sp!, {r4,pc}
+ and r4, r0, #0x3
+ and r3, r1, #0x3
+ cmp r3, r4
+ bne _020E313C
+ cmp r4, #0x0
+ beq _020E30D4
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ rsbs r4, r4, #0x3
+ beq _020E30CC
+_020E30A4:
+ ldrb r3, [r0, #0x1]!
+ ldrb r2, [r1, #0x1]!
+ subs r2, r3, r2
+ movne r0, r2
+ ldmneia sp!, {r4,pc}
+ cmp r3, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ subs r4, r4, #0x1
+ bne _020E30A4
+_020E30CC:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+_020E30D4:
+ ldr r2, [r0, #0x0]
+ ldr r3, _020E316C ; =0xFEFEFEFF
+ mvn r4, r2
+ add lr, r2, r3
+ ldr ip, _020E3170 ; =0x80808080
+ and r4, lr, r4
+ tst r4, r12
+ ldr r4, [r1, #0x0]
+ bne _020E3128
+ cmp r2, r4
+ bne _020E311C
+_020E3100:
+ ldr r2, [r0, #0x4]!
+ ldr r4, [r1, #0x4]!
+ add lr, r2, r3
+ tst lr, r12
+ bne _020E3128
+ cmp r2, r4
+ beq _020E3100
+_020E311C:
+ sub r0, r0, #0x1
+ sub r1, r1, #0x1
+ b _020E313C
+_020E3128:
+ ldrb r2, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ subs r3, r2, r3
+ movne r0, r3
+ ldmneia sp!, {r4,pc}
+_020E313C:
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020E3148:
+ ldrb r3, [r0, #0x1]!
+ ldrb r2, [r1, #0x1]!
+ subs r2, r3, r2
+ movne r0, r2
+ ldmneia sp!, {r4,pc}
+ cmp r3, #0x0
+ bne _020E3148
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020E316C: .word 0xFEFEFEFF
+_020E3170: .word 0x80808080
+ arm_func_end strcmp
+
+ arm_func_start strncmp
+strncmp: ; 0x020E3174
+ cmp r2, #0x0
+ beq _020E31A0
+_020E317C:
+ ldrb r12, [r1], #0x1
+ ldrb r3, [r0], #0x1
+ cmp r3, r12
+ subne r0, r3, r12
+ bxne lr
+ cmp r3, #0x0
+ beq _020E31A0
+ subs r2, r2, #0x1
+ bne _020E317C
+_020E31A0:
+ mov r0, #0x0
+ bx lr
+ arm_func_end strncmp
+
+ arm_func_start strchr
+strchr: ; 0x020E31A8
+ ldrsb r2, [r0], #0x1
+ mov r1, r1, lsl #0x18
+ mov r1, r1, asr #0x18
+ cmp r2, #0x0
+ beq _020E31D4
+_020E31BC:
+ cmp r2, r1
+ subeq r0, r0, #0x1
+ bxeq lr
+ ldrsb r2, [r0], #0x1
+ cmp r2, #0x0
+ bne _020E31BC
+_020E31D4:
+ cmp r1, #0x0
+ movne r0, #0x0
+ subeq r0, r0, #0x1
+ bx lr
+ arm_func_end strchr
+
+ arm_func_start strspn
+strspn: ; 0x020E31E4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x20
+ add r12, sp, #0x0
+ mov r3, #0x8
+ mov r2, #0x0
+_020E31F8:
+ strb r2, [r12, #0x0]
+ strb r2, [r12, #0x1]
+ strb r2, [r12, #0x2]
+ strb r2, [r12, #0x3]
+ add r12, r12, #0x4
+ subs r3, r3, #0x1
+ bne _020E31F8
+ ldrb r3, [r1, #0x0]
+ add r4, r1, #0x1
+ cmp r3, #0x0
+ beq _020E3254
+ add lr, sp, #0x0
+ mov r2, #0x1
+_020E322C:
+ and r12, r3, #0xff
+ and r1, r3, #0x7
+ mov r1, r2, lsl r1
+ ldrb r3, [lr, r12, asr #0x3]
+ and r1, r1, #0xff
+ orr r1, r3, r1
+ strb r1, [lr, r12, asr #0x3]
+ ldrb r3, [r4], #0x1
+ cmp r3, #0x0
+ bne _020E322C
+_020E3254:
+ ldrb r1, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r1, #0x0
+ beq _020E3294
+ add r12, sp, #0x0
+ mov r2, #0x1
+_020E326C:
+ and r3, r1, #0xff
+ and r1, r1, #0x7
+ mov r1, r2, lsl r1
+ ldrb r3, [r12, r3, asr #0x3]
+ and r1, r1, #0xff
+ tst r3, r1
+ bne _020E3294
+ ldrb r1, [r4], #0x1
+ cmp r1, #0x0
+ bne _020E326C
+_020E3294:
+ sub r0, r4, r0
+ sub r0, r0, #0x1
+ add sp, sp, #0x20
+ ldmia sp!, {r4,pc}
+ arm_func_end strspn
+
+ arm_func_start strstr
+strstr: ; 0x020E32A4
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ ldrneb r2, [r1, #0x0]
+ cmpne r2, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldrb r3, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r3, #0x0
+ beq _020E3308
+_020E32C8:
+ cmp r3, r2
+ bne _020E32FC
+ mov lr, r4
+ add r12, r1, #0x1
+_020E32D8:
+ ldrb r3, [r12], #0x1
+ ldrb r0, [lr], #0x1
+ cmp r0, r3
+ bne _020E32F0
+ cmp r0, #0x0
+ bne _020E32D8
+_020E32F0:
+ cmp r3, #0x0
+ subeq r0, r4, #0x1
+ ldmeqia sp!, {r4,pc}
+_020E32FC:
+ ldrb r3, [r4], #0x1
+ cmp r3, #0x0
+ bne _020E32C8
+_020E3308:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ arm_func_end strstr
diff --git a/arm9/asm/MSL_Common_strtold.s b/arm9/asm/MSL_Common_strtold.s new file mode 100644 index 00000000..424c3a19 --- /dev/null +++ b/arm9/asm/MSL_Common_strtold.s @@ -0,0 +1,1436 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .rodata
+
+model$4434: ; 0x02104434
+ .asciz "NAN("
+ .size model$4434,.-model$4434
+
+model$4439: ; 0x02104439
+ .asciz "INFINITY"
+ .size model$4439,.-model$4439
+
+ .text
+
+ arm_func_start __strtold
+__strtold: ; 0x020E3310
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0xa8
+ ldr r4, [sp, #0xd0]
+ mov r10, #0x0
+ str r4, [sp, #0xd0]
+ str r0, [sp, #0x0]
+ add r6, sp, #0x80
+ mov r9, r1
+ mov r8, r2
+ str r3, [sp, #0x4]
+ mov r4, r10
+ str r10, [sp, #0x2c]
+ mov r5, #0x1
+ mov r0, #0x4
+_020E3348:
+ strh r10, [r6, #0x0]
+ strh r10, [r6, #0x2]
+ strh r10, [r6, #0x4]
+ strh r10, [r6, #0x6]
+ add r6, r6, #0x8
+ subs r0, r0, #0x1
+ bne _020E3348
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ strh r10, [r6, #0x0]
+ strh r10, [r6, #0x2]
+ ldr r2, [sp, #0x28]
+ ldr r1, [sp, #0xd0]
+ strh r10, [r6, #0x4]
+ str r2, [r1, #0x0]
+ mov r1, r2
+ mov r0, r8
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x8]
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ ldr r7, _020E42F0 ; =model$4439
+ add r0, sp, #0x4d
+ mov r6, #0x4
+_020E33C0:
+ ldrb r3, [r7, #0x0]
+ ldrb r2, [r7, #0x1]
+ add r7, r7, #0x2
+ strb r3, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ subs r6, r6, #0x1
+ bne _020E33C0
+ ldrb r3, [r7, #0x0]
+ ldr r2, _020E42F4 ; =model$4434
+ strb r3, [r0, #0x0]
+ ldrb r3, [r2, #0x1]
+ ldrb r0, [r2, #0x2]
+ ldrb r6, [r2, #0x0]
+ strb r3, [sp, #0x31]
+ strb r0, [sp, #0x32]
+ ldrb r3, [r2, #0x3]
+ ldrb r0, [r2, #0x4]
+ strb r6, [sp, #0x30]
+ strb r3, [sp, #0x33]
+ strb r0, [sp, #0x34]
+ b _020E4104
+_020E3418:
+ cmp r5, #0x100
+ bgt _020E3490
+ bge _020E3B98
+ cmp r5, #0x20
+ bgt _020E3474
+ bge _020E3A6C
+ cmp r5, #0x8
+ bgt _020E3468
+ cmp r5, #0x0
+ addge pc, pc, r5, lsl #0x2
+ b _020E4104
+ b _020E4104 ; case 0
+ b _020E34D4 ; case 1
+ b _020E38B8 ; case 2
+ b _020E4104 ; case 3
+ b _020E3968 ; case 4
+ b _020E4104 ; case 5
+ b _020E4104 ; case 6
+ b _020E4104 ; case 7
+ b _020E3990 ; case 8
+_020E3468:
+ cmp r5, #0x10
+ beq _020E3A34
+ b _020E4104
+_020E3474:
+ cmp r5, #0x40
+ bgt _020E3484
+ beq _020E3AF8
+ b _020E4104
+_020E3484:
+ cmp r5, #0x80
+ beq _020E3B44
+ b _020E4104
+_020E3490:
+ cmp r5, #0x2000
+ bgt _020E34B8
+ bge _020E36EC
+ cmp r5, #0x200
+ bgt _020E34AC
+ beq _020E3BF8
+ b _020E4104
+_020E34AC:
+ cmp r5, #0x400
+ beq _020E3C20
+ b _020E4104
+_020E34B8:
+ cmp r5, #0x4000
+ bgt _020E34C8
+ beq _020E35F4
+ b _020E4104
+_020E34C8:
+ cmp r5, #0x8000
+ beq _020E3C98
+ b _020E4104
+_020E34D4:
+ cmp r1, #0x0
+ blt _020E34E4
+ cmp r1, #0x80
+ blt _020E34EC
+_020E34E4:
+ mov r0, #0x0
+ b _020E34FC
+_020E34EC:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x100
+_020E34FC:
+ cmp r0, #0x0
+ beq _020E3528
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x2c]
+ b _020E4104
+_020E3528:
+ cmp r1, #0x0
+ blt _020E3538
+ cmp r1, #0x80
+ blt _020E3540
+_020E3538:
+ mov r0, r1
+ b _020E3548
+_020E3540:
+ ldr r0, _020E42FC ; =__upper_mapC
+ ldrb r0, [r0, r1]
+_020E3548:
+ cmp r0, #0x49
+ bgt _020E3574
+ bge _020E35AC
+ cmp r0, #0x2d
+ bgt _020E35EC
+ cmp r0, #0x2b
+ blt _020E35EC
+ beq _020E3588
+ cmp r0, #0x2d
+ beq _020E3580
+ b _020E35EC
+_020E3574:
+ cmp r0, #0x4e
+ beq _020E35CC
+ b _020E35EC
+_020E3580:
+ mov r0, #0x1
+ str r0, [sp, #0x28]
+_020E3588:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+ b _020E4104
+_020E35AC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ mov r5, #0x4000
+ b _020E4104
+_020E35CC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ mov r5, #0x2000
+ b _020E4104
+_020E35EC:
+ mov r5, #0x2
+ b _020E4104
+_020E35F4:
+ mov r5, #0x1
+ add r7, sp, #0x4d
+ add r0, sp, #0x76
+ mov r6, #0x4
+_020E3604:
+ ldrb r3, [r7, #0x0]
+ ldrb r2, [r7, #0x1]
+ add r7, r7, #0x2
+ strb r3, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ subs r6, r6, #0x1
+ bne _020E3604
+ ldrb r2, [r7, #0x0]
+ add r6, sp, #0x77
+ ldr r7, _020E42FC ; =__upper_mapC
+ strb r2, [r0, #0x0]
+ b _020E3658
+_020E3638:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r6, r6, #0x1
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E3658:
+ cmp r5, #0x8
+ bge _020E3688
+ cmp r1, #0x0
+ blt _020E3670
+ cmp r1, #0x80
+ blt _020E3678
+_020E3670:
+ mov r2, r1
+ b _020E367C
+_020E3678:
+ ldrb r2, [r7, r1]
+_020E367C:
+ ldrsb r0, [r6, #0x0]
+ cmp r0, r2
+ beq _020E3638
+_020E3688:
+ cmp r5, #0x3
+ cmpne r5, #0x8
+ bne _020E36E4
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ beq _020E36B8
+ ldr r1, _020E4300 ; =__float_huge
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl _fsub
+ bl _f2d
+ b _020E36C4
+_020E36B8:
+ ldr r0, _020E4300 ; =__float_huge
+ ldr r0, [r0, #0x0]
+ bl _f2d
+_020E36C4:
+ ldr r2, [sp, #0x2c]
+ add r3, r2, r5
+ ldr r2, [sp, #0x18]
+ add r3, r2, r3
+ ldr r2, [sp, #0x4]
+ add sp, sp, #0xa8
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E36E4:
+ mov r5, #0x1000
+ b _020E4104
+_020E36EC:
+ ldrb r3, [sp, #0x30]
+ ldrb r0, [sp, #0x32]
+ ldrb r2, [sp, #0x31]
+ strb r3, [sp, #0x40]
+ strb r0, [sp, #0x42]
+ ldrb r3, [sp, #0x33]
+ ldrb r0, [sp, #0x34]
+ strb r2, [sp, #0x41]
+ mov r5, #0x1
+ strb r0, [sp, #0x44]
+ mov r6, #0x0
+ add r2, sp, #0x56
+ strb r3, [sp, #0x43]
+ mov r0, #0x8
+_020E3724:
+ strb r6, [r2, #0x0]
+ strb r6, [r2, #0x1]
+ strb r6, [r2, #0x2]
+ strb r6, [r2, #0x3]
+ add r2, r2, #0x4
+ subs r0, r0, #0x1
+ bne _020E3724
+ add r7, sp, #0x41
+ b _020E3768
+_020E3748:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r7, r7, #0x1
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E3768:
+ cmp r5, #0x4
+ bge _020E379C
+ cmp r1, #0x0
+ blt _020E3780
+ cmp r1, #0x80
+ blt _020E3788
+_020E3780:
+ mov r2, r1
+ b _020E3790
+_020E3788:
+ ldr r0, _020E42FC ; =__upper_mapC
+ ldrb r2, [r0, r1]
+_020E3790:
+ ldrsb r0, [r7, #0x0]
+ cmp r0, r2
+ beq _020E3748
+_020E379C:
+ sub r0, r5, #0x3
+ cmp r0, #0x1
+ bhi _020E38B0
+ cmp r5, #0x4
+ bne _020E3854
+ ldr r7, _020E42F8 ; =__msl_digit
+ b _020E37DC
+_020E37B8:
+ add r0, sp, #0x56
+ strb r1, [r0, r6]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r6, r6, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E37DC:
+ cmp r6, #0x20
+ bge _020E3844
+ cmp r1, #0x0
+ blt _020E37F4
+ cmp r1, #0x80
+ blt _020E37FC
+_020E37F4:
+ mov r0, #0x0
+ b _020E3808
+_020E37FC:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r7, r0]
+ and r0, r0, #0x8
+_020E3808:
+ cmp r0, #0x0
+ bne _020E37B8
+ cmp r1, #0x0
+ blt _020E3820
+ cmp r1, #0x80
+ blt _020E3828
+_020E3820:
+ mov r0, #0x0
+ b _020E3834
+_020E3828:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r7, r0]
+ and r0, r0, #0x1
+_020E3834:
+ cmp r0, #0x0
+ bne _020E37B8
+ cmp r1, #0x2e
+ beq _020E37B8
+_020E3844:
+ cmp r1, #0x29
+ movne r5, #0x1000
+ bne _020E4104
+ add r6, r6, #0x1
+_020E3854:
+ add r0, sp, #0x56
+ mov r1, #0x0
+ strb r1, [r0, r6]
+ ldr r1, [sp, #0x28]
+ cmp r1, #0x0
+ beq _020E3888
+ bl nan
+ mov r2, r0
+ mov r0, #0x0
+ mov r3, r1
+ mov r1, r0
+ bl _dsub
+ b _020E388C
+_020E3888:
+ bl nan
+_020E388C:
+ ldr r2, [sp, #0x2c]
+ add r2, r2, r5
+ add r3, r6, r2
+ ldr r2, [sp, #0x18]
+ add r3, r2, r3
+ ldr r2, [sp, #0x4]
+ add sp, sp, #0xa8
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E38B0:
+ mov r5, #0x1000
+ b _020E4104
+_020E38B8:
+ cmp r1, #0x2e
+ bne _020E38E0
+ mov r5, #0x10
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E38E0:
+ cmp r1, #0x0
+ blt _020E38F0
+ cmp r1, #0x80
+ blt _020E38F8
+_020E38F0:
+ mov r0, #0x0
+ b _020E3908
+_020E38F8:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3908:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ bne _020E3960
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ cmp r0, #0x0
+ mov r1, r0
+ blt _020E394C
+ cmp r0, #0x80
+ bge _020E394C
+ ldr r2, _020E42FC ; =__upper_mapC
+ ldrb r0, [r2, r0]
+_020E394C:
+ cmp r0, #0x58
+ moveq r5, #0x8000
+ moveq r10, #0x1
+ movne r5, #0x4
+ b _020E4104
+_020E3960:
+ mov r5, #0x8
+ b _020E4104
+_020E3968:
+ cmp r1, #0x30
+ movne r5, #0x8
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3990:
+ cmp r1, #0x0
+ blt _020E39A0
+ cmp r1, #0x80
+ blt _020E39A8
+_020E39A0:
+ mov r0, #0x0
+ b _020E39B8
+_020E39A8:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E39B8:
+ cmp r0, #0x0
+ bne _020E39EC
+ cmp r1, #0x2e
+ movne r5, #0x40
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x20
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E39EC:
+ ldrb r2, [sp, #0x84]
+ cmp r2, #0x14
+ ldrcs r0, [sp, #0x1c]
+ addcs r0, r0, #0x1
+ strcs r0, [sp, #0x1c]
+ bhs _020E3A18
+ add r0, r2, #0x1
+ strb r0, [sp, #0x84]
+ add r0, sp, #0x80
+ add r0, r0, r2
+ strb r1, [r0, #0x5]
+_020E3A18:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3A34:
+ cmp r1, #0x0
+ blt _020E3A44
+ cmp r1, #0x80
+ blt _020E3A4C
+_020E3A44:
+ mov r0, #0x0
+ b _020E3A5C
+_020E3A4C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3A5C:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ movne r5, #0x20
+ b _020E4104
+_020E3A6C:
+ cmp r1, #0x0
+ blt _020E3A7C
+ cmp r1, #0x80
+ blt _020E3A84
+_020E3A7C:
+ mov r0, #0x0
+ b _020E3A94
+_020E3A84:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3A94:
+ cmp r0, #0x0
+ moveq r5, #0x40
+ beq _020E4104
+ ldrb r3, [sp, #0x84]
+ cmp r3, #0x14
+ bhs _020E3ADC
+ cmp r1, #0x30
+ cmpeq r3, #0x0
+ beq _020E3AD0
+ ldrb r2, [sp, #0x84]
+ add r0, sp, #0x80
+ add r0, r0, r3
+ add r2, r2, #0x1
+ strb r2, [sp, #0x84]
+ strb r1, [r0, #0x5]
+_020E3AD0:
+ ldr r0, [sp, #0x1c]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x1c]
+_020E3ADC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3AF8:
+ cmp r1, #0x0
+ blt _020E3B08
+ cmp r1, #0x80
+ blt _020E3B10
+_020E3B08:
+ mov r0, r1
+ b _020E3B18
+_020E3B10:
+ ldr r0, _020E42FC ; =__upper_mapC
+ ldrb r0, [r0, r1]
+_020E3B18:
+ cmp r0, #0x45
+ movne r5, #0x800
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x80
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3B44:
+ cmp r1, #0x2b
+ bne _020E3B68
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E3B90
+_020E3B68:
+ cmp r1, #0x2d
+ bne _020E3B90
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ mov r0, #0x1
+ str r0, [sp, #0x24]
+_020E3B90:
+ mov r5, #0x100
+ b _020E4104
+_020E3B98:
+ cmp r1, #0x0
+ blt _020E3BA8
+ cmp r1, #0x80
+ blt _020E3BB0
+_020E3BA8:
+ mov r0, #0x0
+ b _020E3BC0
+_020E3BB0:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3BC0:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ movne r5, #0x400
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x200
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3BF8:
+ cmp r1, #0x30
+ movne r5, #0x400
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3C20:
+ cmp r1, #0x0
+ blt _020E3C30
+ cmp r1, #0x80
+ blt _020E3C38
+_020E3C30:
+ mov r0, #0x0
+ b _020E3C48
+_020E3C38:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3C48:
+ cmp r0, #0x0
+ moveq r5, #0x800
+ beq _020E4104
+ ldr r0, [sp, #0x20]
+ sub r2, r1, #0x30
+ mov r1, #0xa
+ mla r0, r1, r0, r2
+ ldr r1, _020E4304 ; =0x00007FFF
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ ldrgt r0, [sp, #0xd0]
+ movgt r1, #0x1
+ strgt r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3C98:
+ cmp r10, #0x20
+ bgt _020E3CE8
+ bge _020E3FBC
+ cmp r10, #0x8
+ bgt _020E3CDC
+ cmp r10, #0x0
+ addge pc, pc, r10, lsl #0x2
+ b _020E4104
+ b _020E4104 ; case 0
+ b _020E3D0C ; case 1
+ b _020E3D5C ; case 2
+ b _020E4104 ; case 3
+ b _020E3D84 ; case 4
+ b _020E4104 ; case 5
+ b _020E4104 ; case 6
+ b _020E4104 ; case 7
+ b _020E3E94 ; case 8
+_020E3CDC:
+ cmp r10, #0x10
+ beq _020E3F70
+ b _020E4104
+_020E3CE8:
+ cmp r10, #0x80
+ bgt _020E3D00
+ bge _020E4064
+ cmp r10, #0x40
+ beq _020E4004
+ b _020E4104
+_020E3D00:
+ cmp r10, #0x100
+ beq _020E408C
+ b _020E4104
+_020E3D0C:
+ mov r1, #0x0
+ add r0, sp, #0x45
+ str r0, [sp, #0x14]
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ mov r0, r8
+ mov r2, r1
+ str r1, [sp, #0x8]
+ mov r11, r1
+ mov r10, #0x2
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3D5C:
+ cmp r1, #0x30
+ movne r10, #0x4
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3D84:
+ cmp r1, #0x0
+ blt _020E3D94
+ cmp r1, #0x80
+ blt _020E3D9C
+_020E3D94:
+ mov r0, #0x0
+ b _020E3DAC
+_020E3D9C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x400
+_020E3DAC:
+ cmp r0, #0x0
+ bne _020E3DE0
+ cmp r1, #0x2e
+ movne r10, #0x10
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x8
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3DE0:
+ ldr r2, [sp, #0x8]
+ mov r0, #0xe
+ cmp r2, r0
+ bhs _020E3E78
+ mov r0, r2
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r2, r11, r11, lsr #0x1f
+ cmp r1, #0x0
+ ldrb r0, [r0, r2, asr #0x1]
+ blt _020E3E20
+ cmp r1, #0x80
+ bge _020E3E20
+ ldr r2, _020E42FC ; =__upper_mapC
+ ldrb r1, [r2, r1]
+_020E3E20:
+ cmp r1, #0x41
+ subge r1, r1, #0x37
+ sublt r1, r1, #0x30
+ mov r2, r11, lsr #0x1f
+ and r3, r1, #0xff
+ rsb r1, r2, r11, lsl #0x1f
+ adds r1, r2, r1, ror #0x1f
+ moveq r1, r3, lsl #0x4
+ add r2, r11, r11, lsr #0x1f
+ orrne r0, r0, r3
+ andeq r1, r1, #0xff
+ orreq r0, r0, r1
+ ldr r1, [sp, #0x14]
+ add r11, r11, #0x1
+ strb r0, [r1, r2, asr #0x1]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3E78:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3E94:
+ cmp r1, #0x0
+ blt _020E3EA4
+ cmp r1, #0x80
+ blt _020E3EAC
+_020E3EA4:
+ mov r0, #0x0
+ b _020E3EBC
+_020E3EAC:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x400
+_020E3EBC:
+ cmp r0, #0x0
+ moveq r10, #0x10
+ beq _020E4104
+ ldr r2, [sp, #0x8]
+ mov r0, #0xe
+ cmp r2, r0
+ bhs _020E3F54
+ ldr r0, [sp, #0x14]
+ add r2, r11, r11, lsr #0x1f
+ cmp r1, #0x0
+ ldrb r0, [r0, r2, asr #0x1]
+ blt _020E3EFC
+ cmp r1, #0x80
+ bge _020E3EFC
+ ldr r2, _020E42FC ; =__upper_mapC
+ ldrb r1, [r2, r1]
+_020E3EFC:
+ cmp r1, #0x41
+ subge r1, r1, #0x37
+ sublt r1, r1, #0x30
+ mov r2, r11, lsr #0x1f
+ and r3, r1, #0xff
+ rsb r1, r2, r11, lsl #0x1f
+ adds r1, r2, r1, ror #0x1f
+ moveq r1, r3, lsl #0x4
+ add r2, r11, r11, lsr #0x1f
+ orrne r0, r0, r3
+ andeq r1, r1, #0xff
+ orreq r0, r0, r1
+ ldr r1, [sp, #0x14]
+ add r11, r11, #0x1
+ strb r0, [r1, r2, asr #0x1]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3F54:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3F70:
+ cmp r1, #0x0
+ blt _020E3F80
+ cmp r1, #0x80
+ blt _020E3F88
+_020E3F80:
+ mov r0, r1
+ b _020E3F90
+_020E3F88:
+ ldr r0, _020E42FC ; =__upper_mapC
+ ldrb r0, [r0, r1]
+_020E3F90:
+ cmp r0, #0x50
+ movne r5, #0x800
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x20
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3FBC:
+ cmp r1, #0x2d
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020E3FE4
+ cmp r1, #0x2b
+ beq _020E3FE4
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ sub r4, r4, #0x1
+_020E3FE4:
+ mov r10, #0x40
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E4004:
+ cmp r1, #0x0
+ blt _020E4014
+ cmp r1, #0x80
+ blt _020E401C
+_020E4014:
+ mov r0, #0x0
+ b _020E402C
+_020E401C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E402C:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ movne r10, #0x100
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x80
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E4064:
+ cmp r1, #0x30
+ movne r10, #0x100
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E408C:
+ cmp r1, #0x0
+ blt _020E409C
+ cmp r1, #0x80
+ blt _020E40A4
+_020E409C:
+ mov r0, #0x0
+ b _020E40B4
+_020E40A4:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =__msl_digit
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E40B4:
+ cmp r0, #0x0
+ moveq r5, #0x800
+ beq _020E4104
+ ldr r0, [sp, #0x10]
+ sub r2, r1, #0x30
+ mov r1, #0xa
+ mla r0, r1, r0, r2
+ str r0, [sp, #0x10]
+ ldr r1, _020E4304 ; =0x00007FFF
+ ldr r0, [sp, #0x20]
+ add r4, r4, #0x1
+ cmp r0, r1
+ ldrgt r0, [sp, #0xd0]
+ movgt r1, #0x1
+ strgt r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r1, r0
+_020E4104:
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ bgt _020E4124
+ mvn r0, #0x0
+ cmp r1, r0
+ beq _020E4124
+ tst r5, #0x1800
+ beq _020E3418
+_020E4124:
+ cmp r5, #0x8000
+ beq _020E4140
+ ldr r0, _020E4308 ; =0x00000E2C
+ tst r5, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ b _020E4164
+_020E4140:
+ sub r0, r4, #0x1
+ cmp r0, #0x2
+ ble _020E4158
+ ldr r0, _020E430C ; =0x0000018E
+ tst r10, r0
+ bne _020E4160
+_020E4158:
+ mov r0, #0x1
+ b _020E4164
+_020E4160:
+ mov r0, #0x0
+_020E4164:
+ cmp r0, #0x0
+ movne r2, #0x0
+ ldrne r0, [sp, #0x4]
+ bne _020E4184
+ ldr r0, [sp, #0x2c]
+ sub r2, r4, #0x1
+ add r2, r2, r0
+ ldr r0, [sp, #0x4]
+_020E4184:
+ str r2, [r0, #0x0]
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ bne _020E4388
+ ldr r0, [sp, #0x24]
+ ldrb r2, [sp, #0x84]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x20]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x20]
+ add r0, sp, #0x85
+ add r1, r0, r2
+ b _020E41CC
+_020E41C0:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+_020E41CC:
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ beq _020E41E4
+ ldrb r0, [r1, #-0x1]!
+ cmp r0, #0x30
+ beq _020E41C0
+_020E41E4:
+ add r0, r2, #0x1
+ strb r0, [sp, #0x84]
+ ands r2, r0, #0xff
+ bne _020E4208
+ add r1, r2, #0x1
+ strb r1, [sp, #0x84]
+ add r0, sp, #0x85
+ mov r1, #0x30
+ strb r1, [r0, r2]
+_020E4208:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0x8000
+ add r0, r1, r0
+ rsb r2, r2, #0x0
+ str r0, [sp, #0x20]
+ cmp r0, r2
+ blt _020E4230
+ cmp r0, r2, lsr #0x11
+ ble _020E423C
+_020E4230:
+ ldr r0, [sp, #0xd0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E423C:
+ ldr r0, [sp, #0xd0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020E4298
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ movne r0, #0x0
+ addne sp, sp, #0xa8
+ movne r1, r0
+ ldmneia sp!, {r3-r11,pc}
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ ldreq r1, _020E4310 ; =__double_huge
+ addeq sp, sp, #0xa8
+ ldmeqia r1, {r0-r1}
+ ldmeqia sp!, {r3-r11,pc}
+ ldr r1, _020E4310 ; =__double_huge
+ mov r0, #0x0
+ ldmia r1, {r2-r3}
+ mov r1, r0
+ bl _dsub
+ add sp, sp, #0xa8
+ ldmia sp!, {r3-r11,pc}
+_020E4298:
+ ldr r1, [sp, #0x20]
+ add r0, sp, #0x80
+ strh r1, [sp, #0x82]
+ bl __dec2num
+ mov r4, r0
+ mov r6, r1
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r6
+ bl _dneq
+ beq _020E4318
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x0
+ mov r3, #0x100000
+ bl _dls
+ bhs _020E4318
+ ldr r0, [sp, #0xd0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ b _020E4344
+ .balign 4
+_020E42F0: .word model$4439
+_020E42F4: .word model$4434
+_020E42F8: .word __msl_digit
+_020E42FC: .word __upper_mapC
+_020E4300: .word __float_huge
+_020E4304: .word 0x00007FFF
+_020E4308: .word 0x00000E2C
+_020E430C: .word 0x0000018E
+_020E4310: .word __double_huge
+_020E4314: .word 0x7FEFFFFF
+_020E4318:
+ ldr r3, _020E4314 ; =0x7FEFFFFF
+ mov r0, r4
+ mov r1, r6
+ mvn r2, #0x0
+ bl _dgr
+ bls _020E4344
+ ldr r0, [sp, #0xd0]
+ mov r2, #0x1
+ ldr r1, _020E4310 ; =__double_huge
+ str r2, [r0, #0x0]
+ ldmia r1, {r4,r6}
+_020E4344:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ beq _020E4378
+ ldr r0, _020E4308 ; =0x00000E2C
+ tst r5, r0
+ beq _020E4378
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r6
+ bl _dsub
+ mov r4, r0
+ mov r6, r1
+_020E4378:
+ add sp, sp, #0xa8
+ mov r0, r4
+ mov r1, r6
+ ldmia sp!, {r3-r11,pc}
+_020E4388:
+ ldr r0, [sp, #0xc]
+ add r4, sp, #0x38
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ ldrb r3, [sp, #0x45]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x8]
+ mov r2, #0x0
+ add r0, r1, r0, lsl #0x2
+ str r0, [sp, #0x10]
+ mov r1, #0x80
+ b _020E43D0
+_020E43C0:
+ ldr r0, [sp, #0x10]
+ add r2, r2, #0x1
+ sub r0, r0, #0x1
+ str r0, [sp, #0x10]
+_020E43D0:
+ cmp r2, #0x4
+ bhs _020E43E0
+ tst r3, r1, asr r2
+ beq _020E43C0
+_020E43E0:
+ adds r5, r2, #0x1
+ beq _020E442C
+ add r0, sp, #0x4c
+ add r3, sp, #0x45
+ str r0, [sp, #0x14]
+ mov r1, #0x0
+ cmp r0, r3
+ blo _020E442C
+ rsb r6, r5, #0x8
+_020E4404:
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0, #0x0]
+ orr r2, r1, r0, lsl r5
+ mov r1, r0, asr r6
+ ldr r0, [sp, #0x14]
+ and r1, r1, #0xff
+ strb r2, [r0], #-0x1
+ str r0, [sp, #0x14]
+ cmp r0, r3
+ bhs _020E4404
+_020E442C:
+ mov r2, #0x0
+ mov r6, r2
+ strb r2, [r4, #0x0]
+ strb r2, [r4, #0x1]
+ strb r2, [r4, #0x2]
+ strb r2, [r4, #0x3]
+ strb r2, [r4, #0x4]
+ strb r2, [r4, #0x5]
+ strb r2, [r4, #0x6]
+ strb r2, [r4, #0x7]
+ mov r3, #0xc
+ mov r7, #0x1
+ mov r0, #0xff
+ add r1, sp, #0x45
+_020E4464:
+ add r5, r2, #0x8
+ cmp r5, #0x34
+ ldrb r5, [r1, r6]
+ rsbhi r8, r2, #0x34
+ and r11, r3, #0x7
+ andhi r5, r5, r0, lsl r8
+ andhi r5, r5, #0xff
+ mov r8, r5, asr r11
+ and r9, r8, #0xff
+ ldrb r10, [r4, r7]
+ rsb r8, r11, #0x8
+ mov r5, r5, lsl r8
+ orr r9, r10, r9
+ strb r9, [r4, r7]
+ add r7, r7, #0x1
+ add r2, r2, #0x8
+ ldrb r8, [r4, r7]
+ and r5, r5, #0xff
+ cmp r2, #0x34
+ orr r5, r8, r5
+ strb r5, [r4, r7]
+ add r3, r3, #0x8
+ add r6, r6, #0x1
+ blo _020E4464
+ ldr r0, [sp, #0x10]
+ mov r1, #0x800
+ add r0, r0, #0xfe
+ add r2, r0, #0x300
+ rsb r1, r1, #0x0
+ tst r2, r1
+ beq _020E44FC
+ ldr r2, [sp, #0xd0]
+ mov r3, #0x1
+ mov r0, #0x0
+ add sp, sp, #0xa8
+ mov r1, r0
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E44FC:
+ ldrb r0, [r4, #0x1]
+ mov r2, r2, lsl #0x15
+ ldrb r1, [r4, #0x0]
+ orr r0, r0, r2, lsr #0x11
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x28]
+ orr r1, r1, r2, lsr #0x19
+ cmp r0, #0x0
+ andne r0, r1, #0xff
+ strb r1, [r4, #0x0]
+ orrne r0, r0, #0x80
+ strneb r0, [r4, #0x0]
+ mov r3, #0x0
+_020E4530:
+ rsb r1, r3, #0x7
+ ldrb r2, [r4, r3]
+ ldrb r0, [r4, r1]
+ strb r0, [r4, r3]
+ add r3, r3, #0x1
+ strb r2, [r4, r1]
+ cmp r3, #0x4
+ blt _020E4530
+ ldmia r4, {r0-r1}
+ add sp, sp, #0xa8
+ ldmia sp!, {r3-r11,pc}
+ arm_func_end __strtold
+
+ arm_func_start strtold
+strtold: ; 0x020E455C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r7, r0
+ mov r0, #0x0
+ mov r6, r1
+ str r0, [sp, #0x8]
+ add r4, sp, #0xc
+ str r7, [sp, #0x4]
+ ldr r1, _020E4630 ; =__StringRead
+ add r2, sp, #0x4
+ add r3, sp, #0x10
+ sub r0, r0, #0x80000001
+ str r4, [sp, #0x0]
+ bl __strtold
+ mov r5, r1
+ mov r4, r0
+ cmp r6, #0x0
+ ldrne r0, [sp, #0x10]
+ mov r1, r5
+ addne r0, r7, r0
+ strne r0, [r6, #0x0]
+ mov r0, r4
+ bl fabs
+ ldr r2, [sp, #0xc]
+ mov r6, r0
+ mov r7, r1
+ cmp r2, #0x0
+ bne _020E4614
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r5
+ bl _dneq
+ beq _020E4620
+ mov r0, r6
+ mov r1, r7
+ mov r2, #0x0
+ mov r3, #0x100000
+ bl _dls
+ blo _020E4614
+ ldr r3, _020E4634 ; =0x7FEFFFFF
+ mov r0, r6
+ mov r1, r7
+ mvn r2, #0x0
+ bl _dgr
+ bls _020E4620
+_020E4614:
+ ldr r0, _020E4638 ; =errno
+ mov r1, #0x22
+ str r1, [r0, #0x0]
+_020E4620:
+ mov r0, r4
+ mov r1, r5
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020E4630: .word __StringRead
+_020E4634: .word 0x7FEFFFFF
+_020E4638: .word errno
+ arm_func_end strtold
+
+ arm_func_start atod
+atod: ; 0x020E463C
+ ldr ip, _020E4648 ; =strtold
+ mov r1, #0x0
+ bx r12
+ .balign 4
+_020E4648: .word strtold
+ arm_func_end atod
+
+ .section .exceptix,4
+
+ .word __strtold
+ .short 4684
+ .word UNK_020EC720
+ .word strtold
+ .short 225
+ .word 0x00500F00
+ .word atod
+ .short 17
+ .word 0x00000000
+
+ .section .exception,8
+
+UNK_020EC720: ; 0x020EC720
+ .byte 0x00, 0xFF, 0x01, 0xD0
+ .balign 8
diff --git a/arm9/asm/MSL_Common_strtoul.s b/arm9/asm/MSL_Common_strtoul.s new file mode 100644 index 00000000..ab4a1bbf --- /dev/null +++ b/arm9/asm/MSL_Common_strtoul.s @@ -0,0 +1,743 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start __strtoul
+__strtoul:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r4, [sp, #0x38]
+ movs r9, r0
+ ldr r0, [sp, #0x34]
+ str r4, [sp, #0x38]
+ mov r4, #0x0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x38]
+ str r1, [sp, #0x0]
+ str r4, [r0, #0x0]
+ mov r0, r4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x34]
+ mov r1, r4
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x30]
+ str r4, [sp, #0x8]
+ mov r8, r2
+ mov r7, r3
+ mov r5, r4
+ mov r10, r4
+ str r0, [sp, #0x30]
+ mov r4, #0x1
+ bmi _020E46CC
+ cmp r9, #0x1
+ beq _020E46CC
+ cmp r9, #0x24
+ bgt _020E46CC
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bge _020E46D4
+_020E46CC:
+ mov r4, #0x40
+ b _020E46F0
+_020E46D4:
+ ldr r1, [sp, #0x8]
+ mov r0, r7
+ mov r3, r1
+ mov r2, r1
+ add r5, r3, #0x1
+ blx r8
+ mov r6, r0
+_020E46F0:
+ cmp r9, #0x0
+ beq _020E4708
+ mov r1, r9
+ mvn r0, #0x0
+ bl _u32_div_f
+ str r0, [sp, #0x4]
+_020E4708:
+ mvn r11, #0x0
+ b _020E49C8
+_020E4710:
+ cmp r4, #0x8
+ bgt _020E4748
+ cmp r4, #0x0
+ addge pc, pc, r4, lsl #0x2
+ b _020E49C8
+ b _020E49C8
+ b _020E4754
+ b _020E4800
+ b _020E49C8
+ b _020E483C
+ b _020E49C8
+ b _020E49C8
+ b _020E49C8
+ b _020E487C
+_020E4748:
+ cmp r4, #0x10
+ beq _020E487C
+ b _020E49C8
+_020E4754:
+ cmp r6, #0x0
+ blt _020E4764
+ cmp r6, #0x80
+ blt _020E476C
+_020E4764:
+ mov r0, #0x0
+ b _020E477C
+_020E476C:
+ ldr r0, _020E4A2C ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E477C:
+ cmp r0, #0x0
+ beq _020E47A8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ b _020E49C8
+_020E47A8:
+ cmp r6, #0x2b
+ bne _020E47CC
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E47F8
+_020E47CC:
+ cmp r6, #0x2d
+ bne _020E47F8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x34]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E47F8:
+ mov r4, #0x2
+ b _020E49C8
+_020E4800:
+ cmp r9, #0x0
+ cmpne r9, #0x10
+ bne _020E4834
+ cmp r6, #0x30
+ bne _020E4834
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r4, #0x4
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E49C8
+_020E4834:
+ mov r4, #0x8
+ b _020E49C8
+_020E483C:
+ cmp r6, #0x58
+ cmpne r6, #0x78
+ bne _020E486C
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r9, #0x10
+ mov r4, #0x8
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E49C8
+_020E486C:
+ cmp r9, #0x0
+ moveq r9, #0x8
+ mov r4, #0x10
+ b _020E49C8
+_020E487C:
+ ldr r0, [sp, #0x4]
+ cmp r9, #0x0
+ moveq r9, #0xa
+ cmp r0, #0x0
+ bne _020E48A0
+ mov r0, r11
+ mov r1, r9
+ bl _u32_div_f
+ str r0, [sp, #0x4]
+_020E48A0:
+ cmp r6, #0x0
+ blt _020E48B0
+ cmp r6, #0x80
+ blt _020E48B8
+_020E48B0:
+ mov r0, #0x0
+ b _020E48C8
+_020E48B8:
+ ldr r0, _020E4A2C ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x8
+_020E48C8:
+ cmp r0, #0x0
+ beq _020E48F0
+ sub r6, r6, #0x30
+ cmp r6, r9
+ blt _020E4978
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ add r6, r6, #0x30
+ b _020E49C8
+_020E48F0:
+ cmp r6, #0x0
+ blt _020E4900
+ cmp r6, #0x80
+ blt _020E4908
+_020E4900:
+ mov r0, #0x0
+ b _020E4918
+_020E4908:
+ ldr r0, _020E4A2C ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x1
+_020E4918:
+ cmp r0, #0x0
+ beq _020E494C
+ cmp r6, #0x0
+ blt _020E4930
+ cmp r6, #0x80
+ blt _020E4938
+_020E4930:
+ mov r0, r6
+ b _020E4940
+_020E4938:
+ ldr r0, _020E4A30 ; =__upper_mapC
+ ldrb r0, [r0, r6]
+_020E4940:
+ sub r0, r0, #0x37
+ cmp r0, r9
+ blt _020E495C
+_020E494C:
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ b _020E49C8
+_020E495C:
+ cmp r6, #0x0
+ blt _020E4974
+ cmp r6, #0x80
+ bge _020E4974
+ ldr r0, _020E4A30 ; =__upper_mapC
+ ldrb r6, [r0, r6]
+_020E4974:
+ sub r6, r6, #0x37
+_020E4978:
+ ldr r0, [sp, #0x4]
+ mov r4, #0x10
+ cmp r10, r0
+ ldrhi r0, [sp, #0x38]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mul r0, r10, r9
+ mov r10, r0
+ sub r0, r11, r0
+ cmp r6, r0
+ ldrhi r0, [sp, #0x38]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r10, r10, r6
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+_020E49C8:
+ ldr r0, [sp, #0x0]
+ cmp r5, r0
+ bgt _020E49E4
+ cmp r6, r11
+ beq _020E49E4
+ tst r4, #0x60
+ beq _020E4710
+_020E49E4:
+ tst r4, #0x34
+ bne _020E49FC
+ ldr r0, [sp, #0x30]
+ mov r10, #0x0
+ str r10, [r0, #0x0]
+ b _020E4A10
+_020E49FC:
+ ldr r0, [sp, #0x8]
+ sub r1, r5, #0x1
+ add r1, r1, r0
+ ldr r0, [sp, #0x30]
+ str r1, [r0, #0x0]
+_020E4A10:
+ mov r0, r7
+ mov r1, r6
+ mov r2, #0x1
+ blx r8
+ mov r0, r10
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E4A2C: .word __msl_digit
+_020E4A30: .word __upper_mapC
+ arm_func_end __strtoul
+
+ arm_func_start __strtoull
+__strtoull: ; 0x020E4A34
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ ldr r4, [sp, #0x48]
+ movs r9, r0
+ ldr r0, [sp, #0x44]
+ str r4, [sp, #0x48]
+ mov r4, #0x0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x48]
+ str r1, [sp, #0x0]
+ str r4, [r0, #0x0]
+ mov r0, r4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x44]
+ mov r1, r4
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x40]
+ str r4, [sp, #0x14]
+ mov r8, r2
+ mov r7, r3
+ mov r5, r4
+ mov r10, r4
+ mov r11, r4
+ str r0, [sp, #0x40]
+ mov r4, #0x1
+ bmi _020E4ABC
+ cmp r9, #0x1
+ beq _020E4ABC
+ cmp r9, #0x24
+ bgt _020E4ABC
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bge _020E4AC4
+_020E4ABC:
+ mov r4, #0x40
+ b _020E4ADC
+_020E4AC4:
+ ldr r1, [sp, #0x14]
+ mov r0, r7
+ mov r2, r1
+ add r5, r1, #0x1
+ blx r8
+ mov r6, r0
+_020E4ADC:
+ cmp r9, #0x0
+ beq _020E4B00
+ mvn r0, #0x0
+ mov r1, r0
+ mov r3, r9, asr #0x1f
+ mov r2, r9
+ bl _ll_udiv
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+_020E4B00:
+ mvn r0, #0x0
+ str r0, [sp, #0x18]
+ b _020E4E08
+_020E4B0C:
+ cmp r4, #0x8
+ bgt _020E4B44
+ cmp r4, #0x0
+ addge pc, pc, r4, lsl #0x2
+ b _020E4E08
+ b _020E4E08
+ b _020E4B50
+ b _020E4BFC
+ b _020E4E08
+ b _020E4C38
+ b _020E4E08
+ b _020E4E08
+ b _020E4E08
+ b _020E4C78
+_020E4B44:
+ cmp r4, #0x10
+ beq _020E4C78
+ b _020E4E08
+_020E4B50:
+ cmp r6, #0x0
+ blt _020E4B60
+ cmp r6, #0x80
+ blt _020E4B68
+_020E4B60:
+ mov r0, #0x0
+ b _020E4B78
+_020E4B68:
+ ldr r0, _020E4E78 ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E4B78:
+ cmp r0, #0x0
+ beq _020E4BA4
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ b _020E4E08
+_020E4BA4:
+ cmp r6, #0x2b
+ bne _020E4BC8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4BF4
+_020E4BC8:
+ cmp r6, #0x2d
+ bne _020E4BF4
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x44]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E4BF4:
+ mov r4, #0x2
+ b _020E4E08
+_020E4BFC:
+ cmp r9, #0x0
+ cmpne r9, #0x10
+ bne _020E4C30
+ cmp r6, #0x30
+ bne _020E4C30
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r4, #0x4
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4E08
+_020E4C30:
+ mov r4, #0x8
+ b _020E4E08
+_020E4C38:
+ cmp r6, #0x58
+ cmpne r6, #0x78
+ bne _020E4C68
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r9, #0x10
+ mov r4, #0x8
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4E08
+_020E4C68:
+ cmp r9, #0x0
+ moveq r9, #0x8
+ mov r4, #0x10
+ b _020E4E08
+_020E4C78:
+ ldr r1, [sp, #0x8]
+ mov r0, #0x0
+ cmp r9, #0x0
+ moveq r9, #0xa
+ cmp r1, r0
+ ldr r1, [sp, #0xc]
+ cmpeq r1, r0
+ bne _020E4CB4
+ ldr r0, [sp, #0x18]
+ mov r3, r9, asr #0x1f
+ mov r1, r0
+ mov r2, r9
+ bl _ll_udiv
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+_020E4CB4:
+ cmp r6, #0x0
+ blt _020E4CC4
+ cmp r6, #0x80
+ blt _020E4CCC
+_020E4CC4:
+ mov r0, #0x0
+ b _020E4CDC
+_020E4CCC:
+ ldr r0, _020E4E78 ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x8
+_020E4CDC:
+ cmp r0, #0x0
+ beq _020E4D04
+ sub r6, r6, #0x30
+ cmp r6, r9
+ blt _020E4D8C
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ add r6, r6, #0x30
+ b _020E4E08
+_020E4D04:
+ cmp r6, #0x0
+ blt _020E4D14
+ cmp r6, #0x80
+ blt _020E4D1C
+_020E4D14:
+ mov r0, #0x0
+ b _020E4D2C
+_020E4D1C:
+ ldr r0, _020E4E78 ; =__msl_digit
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x1
+_020E4D2C:
+ cmp r0, #0x0
+ beq _020E4D60
+ cmp r6, #0x0
+ blt _020E4D44
+ cmp r6, #0x80
+ blt _020E4D4C
+_020E4D44:
+ mov r0, r6
+ b _020E4D54
+_020E4D4C:
+ ldr r0, _020E4E7C ; =__upper_mapC
+ ldrb r0, [r0, r6]
+_020E4D54:
+ sub r0, r0, #0x37
+ cmp r0, r9
+ blt _020E4D70
+_020E4D60:
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ b _020E4E08
+_020E4D70:
+ cmp r6, #0x0
+ blt _020E4D88
+ cmp r6, #0x80
+ bge _020E4D88
+ ldr r0, _020E4E7C ; =__upper_mapC
+ ldrb r6, [r0, r6]
+_020E4D88:
+ sub r6, r6, #0x37
+_020E4D8C:
+ ldr r0, [sp, #0x8]
+ umull r2, r3, r10, r9
+ cmp r11, r0
+ ldr r0, [sp, #0xc]
+ mov r4, #0x10
+ cmpeq r10, r0
+ ldrhi r0, [sp, #0x48]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mov r1, r9, asr #0x1f
+ mla r3, r10, r1, r3
+ mla r3, r11, r9, r3
+ ldr r1, [sp, #0x18]
+ mov r10, r2
+ subs r2, r1, r2
+ mov r0, r6, asr #0x1f
+ sbc r1, r1, r3
+ cmp r0, r1
+ cmpeq r6, r2
+ ldrhi r1, [sp, #0x48]
+ movhi r2, #0x1
+ strhi r2, [r1, #0x0]
+ mov r1, #0x0
+ mov r11, r3
+ adds r10, r10, r6
+ adc r11, r11, r0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+_020E4E08:
+ ldr r0, [sp, #0x0]
+ cmp r5, r0
+ bgt _020E4E28
+ ldr r0, [sp, #0x18]
+ cmp r6, r0
+ beq _020E4E28
+ tst r4, #0x60
+ beq _020E4B0C
+_020E4E28:
+ tst r4, #0x34
+ bne _020E4E44
+ ldr r0, [sp, #0x40]
+ mov r10, #0x0
+ mov r11, r10
+ str r10, [r0, #0x0]
+ b _020E4E58
+_020E4E44:
+ ldr r0, [sp, #0x14]
+ sub r1, r5, #0x1
+ add r1, r1, r0
+ ldr r0, [sp, #0x40]
+ str r1, [r0, #0x0]
+_020E4E58:
+ mov r0, r7
+ mov r1, r6
+ mov r2, #0x1
+ blx r8
+ mov r0, r10
+ mov r1, r11
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E4E78: .word __msl_digit
+_020E4E7C: .word __upper_mapC
+ arm_func_end __strtoull
+
+ arm_func_start strtoul
+strtoul: ; 0x020E4E80
+ stmdb sp!, {r3-r5,lr}
+ sub sp, sp, #0x20
+ mov r5, r0
+ mov lr, #0x0
+ mov r0, r2
+ mov r4, r1
+ add r2, sp, #0x1c
+ str r5, [sp, #0xc]
+ str lr, [sp, #0x10]
+ str r2, [sp, #0x0]
+ add r1, sp, #0x18
+ str r1, [sp, #0x4]
+ add r12, sp, #0x14
+ ldr r2, _020E4F10 ; =__StringRead
+ add r3, sp, #0xc
+ sub r1, lr, #0x80000001
+ str r12, [sp, #0x8]
+ bl __strtoul
+ cmp r4, #0x0
+ ldrne r1, [sp, #0x1c]
+ addne r1, r5, r1
+ strne r1, [r4, #0x0]
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x0
+ beq _020E4EFC
+ ldr r0, _020E4F14 ; =errno
+ mov r1, #0x22
+ str r1, [r0, #0x0]
+ add sp, sp, #0x20
+ mvn r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E4EFC:
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ rsbne r0, r0, #0x0
+ add sp, sp, #0x20
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E4F10: .word __StringRead
+_020E4F14: .word errno
+ arm_func_end strtoul
+
+ arm_func_start strtol
+strtol: ; 0x020E4F18
+ stmdb sp!, {r3-r5,lr}
+ sub sp, sp, #0x20
+ mov r5, r0
+ mov lr, #0x0
+ mov r0, r2
+ mov r4, r1
+ add r2, sp, #0x1c
+ str r5, [sp, #0xc]
+ str lr, [sp, #0x10]
+ str r2, [sp, #0x0]
+ add r1, sp, #0x18
+ str r1, [sp, #0x4]
+ add r12, sp, #0x14
+ ldr r2, _020E4FD8 ; =__StringRead
+ add r3, sp, #0xc
+ sub r1, lr, #0x80000001
+ str r12, [sp, #0x8]
+ bl __strtoul
+ cmp r4, #0x0
+ ldrne r1, [sp, #0x1c]
+ addne r1, r5, r1
+ strne r1, [r4, #0x0]
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x0
+ bne _020E4FA4
+ ldr r2, [sp, #0x18]
+ cmp r2, #0x0
+ bne _020E4F94
+ mvn r1, #0x80000000
+ cmp r0, r1
+ bhi _020E4FA4
+_020E4F94:
+ cmp r2, #0x0
+ beq _020E4FC8
+ cmp r0, #0x80000000
+ bls _020E4FC8
+_020E4FA4:
+ ldr r0, [sp, #0x18]
+ ldr r1, _020E4FDC ; =errno
+ mov r2, #0x22
+ cmp r0, #0x0
+ movne r0, #0x80000000
+ str r2, [r1, #0x0]
+ add sp, sp, #0x20
+ mvneq r0, #0x80000000
+ ldmia sp!, {r3-r5,pc}
+_020E4FC8:
+ cmp r2, #0x0
+ rsbne r0, r0, #0x0
+ add sp, sp, #0x20
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E4FD8: .word __StringRead
+_020E4FDC: .word errno
+ arm_func_end strtol
+
+ arm_func_start atol
+atol: ; 0x020E4FE0
+ ldr ip, _020E4FF0 ; =strtol
+ mov r1, #0x0
+ mov r2, #0xa
+ bx r12
+ .balign 4
+_020E4FF0: .word strtol
+ arm_func_end atol
+
+ .section .exceptix,4
+
+ .word __strtoul
+ .short 1001
+ .word 0x0060FF00
+ .word __strtoull
+ .short 1101
+ .word 0x0080FF00
+ .word strtoul
+ .short 153
+ .word 0x00600300
+ .word strtol
+ .short 201
+ .word 0x00600300
+ .word atol
+ .short 21
+ .word 0x00000000
diff --git a/arm9/asm/MSL_Common_wchar_io.s b/arm9/asm/MSL_Common_wchar_io.s new file mode 100644 index 00000000..92f47ac4 --- /dev/null +++ b/arm9/asm/MSL_Common_wchar_io.s @@ -0,0 +1,43 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start fwide
+fwide:
+ cmp r0, #0x0
+ beq _020E500C
+ ldr r3, [r0, #0x4]
+ mov r2, r3, lsl #0x16
+ movs r2, r2, lsr #0x1d
+ bne _020E5014
+_020E500C:
+ mov r0, #0x0
+ bx lr
+_020E5014:
+ mov r2, r3, lsl #0x14
+ movs r2, r2, lsr #0x1e
+ beq _020E5034
+ cmp r2, #0x1
+ beq _020E505C
+ cmp r2, #0x2
+ moveq r1, #0x1
+ b _020E5060
+_020E5034:
+ cmp r1, #0x0
+ ble _020E504C
+ bic r2, r3, #0xc00
+ orr r2, r2, #0x800
+ str r2, [r0, #0x4]
+ b _020E5060
+_020E504C:
+ biclt r2, r3, #0xc00
+ orrlt r2, r2, #0x400
+ strlt r2, [r0, #0x4]
+ b _020E5060
+_020E505C:
+ mvn r1, #0x0
+_020E5060:
+ mov r0, r1
+ bx lr
+ arm_func_end fwide
diff --git a/arm9/asm/MSL_Common_wctype.s b/arm9/asm/MSL_Common_wctype.s new file mode 100644 index 00000000..7b671940 --- /dev/null +++ b/arm9/asm/MSL_Common_wctype.s @@ -0,0 +1,61 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .rodata
+
+ .global __wlower_mapC
+__wlower_mapC: ; 0x02104444
+ .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007
+ .short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F
+ .short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017
+ .short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F
+ .short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027
+ .short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F
+ .short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037
+ .short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F
+ .short 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067
+ .short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F
+ .short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077
+ .short 0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F
+ .short 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067
+ .short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F
+ .short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077
+ .short 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F
+
+ .global __wctype_mapC
+__wctype_mapC: ; 0x02104544
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0004, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0004, 0x0004
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004
+ .short 0x0142, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458
+ .short 0x0458, 0x0458, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251
+ .short 0x0251, 0x0251, 0x0251, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0
+ .short 0x00D0, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071
+ .short 0x0071, 0x0071, 0x0071, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x0004
+
+ .global __wupper_mapC
+__wupper_mapC: ; 0x02104644
+ .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007
+ .short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F
+ .short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017
+ .short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F
+ .short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027
+ .short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F
+ .short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037
+ .short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F
+ .short 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047
+ .short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F
+ .short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057
+ .short 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F
+ .short 0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047
+ .short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F
+ .short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057
+ .short 0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F
diff --git a/arm9/asm/MSL_Common_wmem.s b/arm9/asm/MSL_Common_wmem.s new file mode 100644 index 00000000..7c02c344 --- /dev/null +++ b/arm9/asm/MSL_Common_wmem.s @@ -0,0 +1,35 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start wmemcpy
+wmemcpy: ; 0x020E5068
+ ldr ip, _020E5074 ; =memcpy
+ mov r2, r2, lsl #0x1
+ bx r12
+ .balign 4
+_020E5074: .word memcpy
+ arm_func_end wmemcpy
+
+ arm_func_start wmemchr
+wmemchr:
+ cmp r2, #0x0
+ beq _020E5098
+_020E5080:
+ ldrh r3, [r0, #0x0]
+ cmp r3, r1
+ bxeq lr
+ add r0, r0, #0x2
+ subs r2, r2, #0x1
+ bne _020E5080
+_020E5098:
+ mov r0, #0x0
+ bx lr
+ arm_func_end wmemchr
+
+ .section .exceptix,4
+
+ .word wmemcpy
+ .short 17
+ .word 0x00000000
diff --git a/arm9/asm/MSL_Common_wprintf.s b/arm9/asm/MSL_Common_wprintf.s new file mode 100644 index 00000000..95d115e6 --- /dev/null +++ b/arm9/asm/MSL_Common_wprintf.s @@ -0,0 +1,2367 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+wstr$6DE4: ; 0x02106DE4
+ ; L"0x0p0"
+ .short 0x0030, 0x0078, 0x0030, 0x0070, 0x0030, 0x0000
+
+wstr$6DF0: ; 0x02106DF0
+ ; L"-INF"
+ .short 0x002D, 0x0049, 0x004E, 0x0046, 0x0000, 0x0000
+
+wstr$6DFC: ; 0x02106DFC
+ ; L"-inf"
+ .short 0x002D, 0x0069, 0x006E, 0x0066, 0x0000, 0x0000
+
+wstr$6E08: ; 0x02106E08
+ ; L"INF"
+ .short 0x0049, 0x004E, 0x0046, 0x0000
+
+wstr$6E10: ; 0x02106E10
+ ; L"inf"
+ .short 0x0069, 0x006E, 0x0066, 0x0000
+
+wstr$6E18: ; 0x02106E18
+ ; L"-NAN"
+ .short 0x002D, 0x004E, 0x0041, 0x004E, 0x0000, 0x0000
+
+wstr$6E24: ; 0x02106E24
+ ; L"-nan"
+ .short 0x002D, 0x006E, 0x0061, 0x006E, 0x0000, 0x0000
+
+wstr$6E30: ; 0x02106E30
+ ; L"NAN"
+ .short 0x004E, 0x0041, 0x004E, 0x0000
+
+wstr$6E38: ; 0x02106E38
+ ; L"nan"
+ .short 0x006E, 0x0061, 0x006E, 0x0000
+
+buff_ptr$6E40: ; 0x02106E40
+ .short 0x0000, 0x0000
+
+strptr$6E44: ; 0x02106E44
+ .asciz ""
+
+ .text
+
+ arm_func_start parse_format__wide
+parse_format__wide: ; 0x020E50A0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldrh r3, [r0, #0x2]
+ mov r4, #0x0
+ mov r5, #0x1
+ mov lr, r2
+ strb r5, [sp, #0x0]
+ strb r4, [sp, #0x1]
+ strb r4, [sp, #0x2]
+ strb r4, [sp, #0x3]
+ strb r4, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r4, [sp, #0xc]
+ cmp r3, #0x25
+ add r12, r0, #0x2
+ bne _020E50FC
+ add r0, sp, #0x0
+ strh r3, [sp, #0x6]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x2
+ ldmia sp!, {r4-r8,pc}
+_020E50FC:
+ mov r2, #0x2
+ mov r0, r4
+ mov r5, r2
+ mov r6, r4
+ mov r7, #0x1
+_020E5110:
+ mov r8, r7
+ cmp r3, #0x2b
+ bgt _020E5140
+ bge _020E5168
+ cmp r3, #0x23
+ bgt _020E5198
+ cmp r3, #0x20
+ blt _020E5198
+ beq _020E5170
+ cmp r3, #0x23
+ beq _020E5180
+ b _020E5198
+_020E5140:
+ cmp r3, #0x30
+ bgt _020E5198
+ cmp r3, #0x2d
+ blt _020E5198
+ beq _020E5160
+ cmp r3, #0x30
+ beq _020E5188
+ b _020E5198
+_020E5160:
+ strb r6, [sp, #0x0]
+ b _020E519C
+_020E5168:
+ strb r7, [sp, #0x1]
+ b _020E519C
+_020E5170:
+ ldrb r4, [sp, #0x1]
+ cmp r4, #0x1
+ strneb r5, [sp, #0x1]
+ b _020E519C
+_020E5180:
+ strb r7, [sp, #0x3]
+ b _020E519C
+_020E5188:
+ ldrb r4, [sp, #0x0]
+ cmp r4, #0x0
+ strneb r2, [sp, #0x0]
+ b _020E519C
+_020E5198:
+ mov r8, r0
+_020E519C:
+ cmp r8, #0x0
+ ldrneh r3, [r12, #0x2]!
+ bne _020E5110
+ cmp r3, #0x2a
+ bne _020E51E4
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020E51DC
+ rsb r0, r0, #0x0
+ mov r2, #0x0
+ strb r2, [sp, #0x0]
+ str r0, [sp, #0x8]
+_020E51DC:
+ ldrh r3, [r12, #0x2]!
+ b _020E5228
+_020E51E4:
+ mov r2, #0x0
+ ldr r5, _020E560C ; =__wctype_mapC
+ mov r0, #0xa
+ b _020E5208
+_020E51F4:
+ ldr r4, [sp, #0x8]
+ sub r3, r3, #0x30
+ mla r6, r4, r0, r3
+ ldrh r3, [r12, #0x2]!
+ str r6, [sp, #0x8]
+_020E5208:
+ cmp r3, #0x80
+ movcs r4, r2
+ bhs _020E5220
+ mov r4, r3, lsl #0x1
+ ldrh r4, [r5, r4]
+ and r4, r4, #0x8
+_020E5220:
+ cmp r4, #0x0
+ bne _020E51F4
+_020E5228:
+ ldr r2, [sp, #0x8]
+ ldr r0, _020E5610 ; =0x000001FD
+ cmp r2, r0
+ ble _020E5258
+ ldr r1, _020E5614 ; =0x0000FFFF
+ add r0, sp, #0x0
+ strh r1, [sp, #0x6]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x2
+ ldmia sp!, {r4-r8,pc}
+_020E5258:
+ cmp r3, #0x2e
+ bne _020E52E0
+ ldrh r3, [r12, #0x2]!
+ mov r0, #0x1
+ strb r0, [sp, #0x2]
+ cmp r3, #0x2a
+ bne _020E529C
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ ldrh r3, [r12, #0x2]!
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ movlt r0, #0x0
+ strltb r0, [sp, #0x2]
+ b _020E52E0
+_020E529C:
+ mov r1, #0x0
+ ldr r4, _020E560C ; =__wctype_mapC
+ mov r0, #0xa
+ b _020E52C0
+_020E52AC:
+ ldr r2, [sp, #0xc]
+ sub r3, r3, #0x30
+ mla r5, r2, r0, r3
+ ldrh r3, [r12, #0x2]!
+ str r5, [sp, #0xc]
+_020E52C0:
+ cmp r3, #0x80
+ movcs r2, r1
+ bhs _020E52D8
+ mov r2, r3, lsl #0x1
+ ldrh r2, [r4, r2]
+ and r2, r2, #0x8
+_020E52D8:
+ cmp r2, #0x0
+ bne _020E52AC
+_020E52E0:
+ cmp r3, #0x6c
+ mov r0, #0x1
+ bgt _020E5318
+ cmp r3, #0x68
+ blt _020E530C
+ beq _020E5334
+ cmp r3, #0x6a
+ beq _020E5380
+ cmp r3, #0x6c
+ beq _020E5350
+ b _020E53A4
+_020E530C:
+ cmp r3, #0x4c
+ beq _020E5374
+ b _020E53A4
+_020E5318:
+ cmp r3, #0x74
+ bgt _020E5328
+ beq _020E538C
+ b _020E53A4
+_020E5328:
+ cmp r3, #0x7a
+ beq _020E5398
+ b _020E53A4
+_020E5334:
+ ldrh r1, [r12, #0x2]
+ mov r2, #0x2
+ strb r2, [sp, #0x4]
+ cmp r1, #0x68
+ streqb r0, [sp, #0x4]
+ ldreqh r3, [r12, #0x2]!
+ b _020E53A8
+_020E5350:
+ ldrh r1, [r12, #0x2]
+ mov r2, #0x3
+ strb r2, [sp, #0x4]
+ cmp r1, #0x6c
+ bne _020E53A8
+ mov r1, #0x4
+ strb r1, [sp, #0x4]
+ ldrh r3, [r12, #0x2]!
+ b _020E53A8
+_020E5374:
+ mov r1, #0x9
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E5380:
+ mov r1, #0x6
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E538C:
+ mov r1, #0x8
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E5398:
+ mov r1, #0x7
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E53A4:
+ mov r0, #0x0
+_020E53A8:
+ cmp r0, #0x0
+ ldrneh r3, [r12, #0x2]!
+ strh r3, [sp, #0x6]
+ cmp r3, #0x61
+ bgt _020E53FC
+ bge _020E54E0
+ cmp r3, #0x47
+ bgt _020E53F0
+ subs r0, r3, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E55EC
+ b _020E54E0
+ b _020E55EC
+ b _020E55EC
+ b _020E55EC
+ b _020E5528
+ b _020E54A8
+ b _020E5518
+_020E53F0:
+ cmp r3, #0x58
+ beq _020E5470
+ b _020E55EC
+_020E53FC:
+ cmp r3, #0x63
+ bgt _020E540C
+ beq _020E5588
+ b _020E55EC
+_020E540C:
+ sub r0, r3, #0x64
+ cmp r0, #0x14
+ addls pc, pc, r0, lsl #0x2
+ b _020E55EC
+ b _020E5470 ; case
+ b _020E5528 ; case
+ b _020E54A8 ; case
+ b _020E5518 ; case
+ b _020E55EC ; case
+ b _020E5470 ; case
+ b _020E55EC ; case
+ b _020E55EC ; case
+ b _020E55EC ; case
+ b _020E55EC ; case
+ b _020E55D8 ; case
+ b _020E5470 ; case
+ b _020E5564 ; case
+ b _020E55EC ; case
+ b _020E55EC ; case
+ b _020E55B4 ; case
+ b _020E55EC ; case
+ b _020E5470 ; case
+ b _020E55EC ; case
+ b _020E55EC ; case
+ b _020E5470 ; case
+_020E5470:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0x4
+ streqb r0, [sp, #0x4]
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020E55F4
+ ldrb r0, [sp, #0x0]
+ cmp r0, #0x2
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ b _020E55F4
+_020E54A8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020E55F4
+_020E54E0:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0xd
+ streq r0, [sp, #0xc]
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ b _020E55F4
+_020E5518:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+_020E5528:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020E55F4
+_020E5564:
+ mov r3, #0x3
+ mov r2, #0x1
+ mov r1, #0x78
+ mov r0, #0x8
+ strb r3, [sp, #0x4]
+ strb r2, [sp, #0x3]
+ strh r1, [sp, #0x6]
+ str r0, [sp, #0xc]
+ b _020E55F4
+_020E5588:
+ ldrb r1, [sp, #0x4]
+ cmp r1, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ ldrne r0, _020E5614 ; =0x0000FFFF
+ strneh r0, [sp, #0x6]
+ b _020E55F4
+_020E55B4:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020E55F4
+ cmp r0, #0x0
+ ldrne r0, _020E5614 ; =0x0000FFFF
+ strneh r0, [sp, #0x6]
+ b _020E55F4
+_020E55D8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0x4
+ streqb r0, [sp, #0x4]
+ b _020E55F4
+_020E55EC:
+ ldr r0, _020E5614 ; =0x0000FFFF
+ strh r0, [sp, #0x6]
+_020E55F4:
+ add r0, sp, #0x0
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add r0, r12, #0x2
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020E560C: .word __wctype_mapC
+_020E5610: .word 0x000001FD
+_020E5614: .word 0x0000FFFF
+ arm_func_end parse_format__wide
+
+ arm_func_start long2str__wide
+long2str__wide: ; 0x020E5618
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ movs r10, r0
+ mov r0, #0x0
+ mov r5, r1
+ str r0, [sp, #0xc]
+ ldr r7, [sp, #0x4c]
+ mov r6, r0
+ strh r0, [r5, #-0x2]!
+ ldrb r0, [sp, #0x43]
+ str r1, [sp, #0x0]
+ ldrh r8, [sp, #0x46]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldrb r11, [sp, #0x41]
+ str r0, [sp, #0x8]
+ cmpeq r7, #0x0
+ bne _020E568C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E5678
+ cmp r8, #0x6f
+ beq _020E568C
+_020E5678:
+ add sp, sp, #0x10
+ mov r0, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E568C:
+ cmp r8, #0x69
+ bgt _020E56B4
+ bge _020E56E8
+ cmp r8, #0x58
+ bgt _020E56A8
+ beq _020E5714
+ b _020E571C
+_020E56A8:
+ cmp r8, #0x64
+ beq _020E56E8
+ b _020E571C
+_020E56B4:
+ cmp r8, #0x6f
+ bgt _020E56C8
+ moveq r4, #0x8
+ moveq r11, #0x0
+ b _020E571C
+_020E56C8:
+ cmp r8, #0x78
+ bgt _020E571C
+ cmp r8, #0x75
+ blt _020E571C
+ beq _020E5708
+ cmp r8, #0x78
+ beq _020E5714
+ b _020E571C
+_020E56E8:
+ cmp r10, #0x0
+ mov r4, #0xa
+ bge _020E571C
+ mov r0, #0x1
+ cmp r10, #0x80000000
+ rsbne r10, r10, #0x0
+ str r0, [sp, #0xc]
+ b _020E571C
+_020E5708:
+ mov r4, #0xa
+ mov r11, #0x0
+ b _020E571C
+_020E5714:
+ mov r4, #0x10
+ mov r11, #0x0
+_020E571C:
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ mov r9, r1
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ cmp r9, #0xa
+ mov r10, r0
+ addlt r9, r9, #0x30
+ blt _020E5754
+ cmp r8, #0x78
+ addeq r9, r9, #0x57
+ addne r9, r9, #0x37
+_020E5754:
+ cmp r10, #0x0
+ strh r9, [r5, #-0x2]!
+ add r6, r6, #0x1
+ bne _020E571C
+ cmp r4, #0x8
+ bne _020E5788
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrneh r0, [r5, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneh r0, [r5, #-0x2]!
+ addne r6, r6, #0x1
+_020E5788:
+ ldrb r0, [sp, #0x40]
+ cmp r0, #0x2
+ bne _020E57BC
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ cmp r0, #0x0
+ cmpeq r11, #0x0
+ subne r7, r7, #0x1
+ cmp r4, #0x10
+ bne _020E57BC
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ subne r7, r7, #0x2
+_020E57BC:
+ ldr r0, [sp, #0x0]
+ ldr r1, _020E5864 ; =0x000001FD
+ sub r0, r0, r5
+ add r0, r0, r0, lsr #0x1f
+ add r0, r7, r0, asr #0x1
+ cmp r0, r1
+ addgt sp, sp, #0x10
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ cmp r6, r7
+ bge _020E5804
+ mov r0, #0x30
+_020E57F4:
+ add r6, r6, #0x1
+ cmp r6, r7
+ strh r0, [r5, #-0x2]!
+ blt _020E57F4
+_020E5804:
+ cmp r4, #0x10
+ bne _020E5820
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneh r8, [r5, #-0x2]
+ strneh r0, [r5, #-0x4]!
+_020E5820:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneh r0, [r5, #-0x2]!
+ bne _020E5850
+ cmp r11, #0x1
+ moveq r0, #0x2b
+ streqh r0, [r5, #-0x2]!
+ beq _020E5850
+ cmp r11, #0x2
+ moveq r0, #0x20
+ streqh r0, [r5, #-0x2]!
+_020E5850:
+ mov r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5864: .word 0x000001FD
+ ; arm_func_end long2str__wide
+
+ arm_func_start longlong2str__wide
+longlong2str__wide: ; 0x020E5868
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x18
+ mov r9, r1
+ mov r1, #0x0
+ mov r10, r0
+ mov r6, r2
+ mov r0, r1
+ strh r0, [r6, #-0x2]!
+ ldr r0, [sp, #0x58]
+ cmp r9, #0x0
+ str r0, [sp, #0x10]
+ ldrb r0, [sp, #0x4f]
+ cmpeq r10, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x54]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x8]
+ ldrb r0, [sp, #0x4d]
+ mov r7, r1
+ ldrh r8, [sp, #0x52]
+ str r0, [sp, #0xc]
+ ldreq r0, [sp, #0x10]
+ cmpeq r0, #0x0
+ bne _020E58F8
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E58E4
+ cmp r8, #0x6f
+ beq _020E58F8
+_020E58E4:
+ add sp, sp, #0x18
+ mov r0, r6
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E58F8:
+ cmp r8, #0x69
+ bgt _020E5920
+ bge _020E5950
+ cmp r8, #0x58
+ bgt _020E5914
+ beq _020E59A4
+ b _020E59B0
+_020E5914:
+ cmp r8, #0x64
+ beq _020E5950
+ b _020E59B0
+_020E5920:
+ cmp r8, #0x6f
+ bgt _020E5930
+ beq _020E5984
+ b _020E59B0
+_020E5930:
+ cmp r8, #0x78
+ bgt _020E59B0
+ cmp r8, #0x75
+ blt _020E59B0
+ beq _020E5994
+ cmp r8, #0x78
+ beq _020E59A4
+ b _020E59B0
+_020E5950:
+ subs r0, r10, #0x0
+ sbcs r0, r9, #0x0
+ mov r11, #0xa
+ mov r5, #0x0
+ bge _020E59B0
+ cmp r9, #0x80000000
+ cmpeq r10, r5
+ beq _020E5978
+ rsbs r10, r10, #0x0
+ rsc r9, r9, #0x0
+_020E5978:
+ mov r0, #0x1
+ str r0, [sp, #0x14]
+ b _020E59B0
+_020E5984:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x8
+ b _020E59B0
+_020E5994:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0xa
+ b _020E59B0
+_020E59A4:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x10
+_020E59B0:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ull_mod
+ mov r4, r0
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ll_udiv
+ mov r10, r0
+ cmp r4, #0xa
+ mov r9, r1
+ addlt r0, r4, #0x30
+ blt _020E59FC
+ cmp r8, #0x78
+ addeq r0, r4, #0x57
+ addne r0, r4, #0x37
+_020E59FC:
+ strh r0, [r6, #-0x2]!
+ mov r0, #0x0
+ cmp r9, r0
+ cmpeq r10, r0
+ add r7, r7, #0x1
+ bne _020E59B0
+ cmp r5, #0x0
+ cmpeq r11, #0x8
+ bne _020E5A3C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrneh r0, [r6, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneh r0, [r6, #-0x2]!
+ addne r7, r7, #0x1
+_020E5A3C:
+ ldrb r0, [sp, #0x4c]
+ cmp r0, #0x2
+ bne _020E5A8C
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0xc]
+ cmpeq r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x1
+ strne r0, [sp, #0x10]
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E5A8C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x2
+ strne r0, [sp, #0x10]
+_020E5A8C:
+ ldr r0, [sp, #0x0]
+ ldr r2, _020E5B48 ; =0x000001FD
+ sub r0, r0, r6
+ add r1, r0, r0, lsr #0x1f
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1, asr #0x1
+ cmp r0, r2
+ addgt sp, sp, #0x18
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _020E5AE0
+ mov r1, #0x30
+_020E5ACC:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ strh r1, [r6, #-0x2]!
+ blt _020E5ACC
+_020E5AE0:
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E5B00
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneh r8, [r6, #-0x2]
+ strneh r0, [r6, #-0x4]!
+_020E5B00:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneh r0, [r6, #-0x2]!
+ bne _020E5B34
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ moveq r0, #0x2b
+ streqh r0, [r6, #-0x2]!
+ beq _020E5B34
+ cmp r0, #0x2
+ moveq r0, #0x20
+ streqh r0, [r6, #-0x2]!
+_020E5B34:
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5B48: .word 0x000001FD
+ ; arm_func_end longlong2str__wide
+
+ arm_func_start double2hex__wide
+double2hex__wide: ; 0x020E5B4C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x44
+ ldr r7, [sp, #0x80]
+ ldr r0, _020E5EB8 ; =0x000001FD
+ mov r8, r2
+ cmp r7, r0
+ ldrh r6, [sp, #0x7a]
+ ldrb r5, [sp, #0x77]
+ ldrb r4, [sp, #0x75]
+ ldr r1, [sp, #0x68]
+ ldr r2, [sp, #0x6c]
+ addgt sp, sp, #0x44
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r10,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r10, #0x0
+ mov r9, #0x20
+ add r0, sp, #0x8
+ add r3, sp, #0xc
+ strb r10, [sp, #0x8]
+ strh r9, [sp, #0xa]
+ bl __num2dec_internal2
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ bl fabs
+ mov r2, r0
+ mov r0, r10
+ mov r3, r1
+ mov r1, r0
+ bl _deq
+ bne _020E5BF4
+ sub r4, r8, #0xc
+ ldr r1, _020E5EBC ; =wstr$6DE4
+ mov r0, r4
+ bl wcscpy
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5BF4:
+ ldrb r0, [sp, #0x11]
+ cmp r0, #0x49
+ bne _020E5C74
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E5C38
+ cmp r6, #0x41
+ sub r4, r8, #0xa
+ bne _020E5C28
+ ldr r1, _020E5EC0 ; =wstr$6DF0
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C28:
+ ldr r1, _020E5EC4 ; =wstr$6DFC
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C38:
+ cmp r6, #0x41
+ sub r4, r8, #0x8
+ bne _020E5C54
+ ldr r1, _020E5EC8 ; =wstr$6E08
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C54:
+ ldr r1, _020E5ECC ; =wstr$6E10
+ mov r0, r4
+ bl wcscpy
+_020E5C60:
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5C74:
+ cmp r0, #0x4e
+ bne _020E5CF0
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E5CB4
+ cmp r6, #0x41
+ sub r4, r8, #0xa
+ bne _020E5CA4
+ ldr r1, _020E5ED0 ; =wstr$6E18
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CA4:
+ ldr r1, _020E5ED4 ; =wstr$6E24
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CB4:
+ cmp r6, #0x41
+ sub r4, r8, #0x8
+ bne _020E5CD0
+ ldr r1, _020E5ED8 ; =wstr$6E30
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CD0:
+ ldr r1, _020E5EDC ; =wstr$6E38
+ mov r0, r4
+ bl wcscpy
+_020E5CDC:
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5CF0:
+ mov r3, r10
+ mov r1, #0x1
+ mov r0, #0x64
+ add r9, sp, #0x68
+ strb r1, [sp, #0x34]
+ strb r1, [sp, #0x35]
+ strb r3, [sp, #0x36]
+ strb r3, [sp, #0x37]
+ strb r3, [sp, #0x38]
+ str r3, [sp, #0x3c]
+ str r1, [sp, #0x40]
+ strh r0, [sp, #0x3a]
+_020E5D20:
+ rsb r1, r3, #0x7
+ ldrsb r2, [r9, r3]
+ ldrsb r0, [r9, r1]
+ strb r0, [r9, r3]
+ add r3, r3, #0x1
+ strb r2, [r9, r1]
+ cmp r3, #0x4
+ blt _020E5D20
+ ldrb r0, [sp, #0x69]
+ ldrb r1, [sp, #0x68]
+ ldr sb, _020E5EE0 ; =0x000007FF
+ mov r0, r0, lsl #0x11
+ orr r1, r0, r1, lsl #0x19
+ add r0, sp, #0x34
+ and lr, r9, r1, lsr #0x15
+ sub r12, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r12, {r0-r3}
+ rsb r0, r9, #0x400
+ mov r1, r8
+ add r0, lr, r0
+ ldmia r12, {r2-r3}
+ bl long2str__wide
+ cmp r6, #0x61
+ moveq r1, #0x70
+ movne r1, #0x50
+ strh r1, [r0, #-0x2]!
+ mov r1, r7, lsl #0x2
+ mov lr, r7
+ cmp r7, #0x1
+ add r8, r1, #0xb
+ add r12, sp, #0x68
+ blt _020E5E30
+ mov r9, #0x30
+_020E5DA8:
+ cmp r8, #0x40
+ bge _020E5E18
+ ldrb r1, [r12, r8, asr #0x3]
+ and r2, r8, #0x7
+ rsb r3, r2, #0x7
+ mov r2, r1, asr r3
+ sub r10, r8, #0x4
+ bic r1, r8, #0x7
+ bic r10, r10, #0x7
+ cmp r1, r10
+ add r10, r12, r8, asr #0x3
+ and r1, r2, #0xff
+ beq _020E5DEC
+ ldrb r2, [r10, #-0x1]
+ mov r2, r2, lsl #0x8
+ orr r1, r1, r2, asr r3
+ and r1, r1, #0xff
+_020E5DEC:
+ and r1, r1, #0xf
+ cmp r1, #0xa
+ addcc r1, r1, #0x30
+ andcc r1, r1, #0xff
+ blo _020E5E1C
+ cmp r6, #0x61
+ addeq r1, r1, #0x57
+ andeq r1, r1, #0xff
+ addne r1, r1, #0x37
+ andne r1, r1, #0xff
+ b _020E5E1C
+_020E5E18:
+ mov r1, r9
+_020E5E1C:
+ sub lr, lr, #0x1
+ cmp lr, #0x1
+ strh r1, [r0, #-0x2]!
+ sub r8, r8, #0x4
+ bge _020E5DA8
+_020E5E30:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneh r1, [r0, #-0x2]!
+ mov r1, #0x31
+ strh r1, [r0, #-0x2]
+ cmp r6, #0x61
+ moveq r1, #0x78
+ movne r1, #0x58
+ strh r1, [r0, #-0x4]!
+ mov r1, #0x30
+ strh r1, [r0, #-0x2]!
+ ldrsb r1, [sp, #0xc]
+ cmp r1, #0x0
+ movne r1, #0x2d
+ strneh r1, [r0, #-0x2]!
+ addne sp, sp, #0x44
+ ldmneia sp!, {r3-r10,lr}
+ addne sp, sp, #0x10
+ bxne lr
+ cmp r4, #0x1
+ moveq r1, #0x2b
+ streqh r1, [r0, #-0x2]!
+ addeq sp, sp, #0x44
+ ldmeqia sp!, {r3-r10,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r4, #0x2
+ moveq r1, #0x20
+ streqh r1, [r0, #-0x2]!
+ add sp, sp, #0x44
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5EB8: .word 0x000001FD
+_020E5EBC: .word wstr$6DE4
+_020E5EC0: .word wstr$6DF0
+_020E5EC4: .word wstr$6DFC
+_020E5EC8: .word wstr$6E08
+_020E5ECC: .word wstr$6E10
+_020E5ED0: .word wstr$6E18
+_020E5ED4: .word wstr$6E24
+_020E5ED8: .word wstr$6E30
+_020E5EDC: .word wstr$6E38
+_020E5EE0: .word 0x000007FF
+ ; arm_func_end double2hex__wide
+
+ arm_func_start round_decimal__wide
+round_decimal__wide: ; 0x020E5EE4
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ bge _020E5F0C
+_020E5EF0:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ strb r1, [r0, #0x4]
+ mov r1, #0x30
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E5F0C:
+ ldrb lr, [r0, #0x4]
+ cmp r1, lr
+ ldmgeia sp!, {r4,pc}
+ add r12, r0, #0x5
+ add r2, r12, r1
+ add r2, r2, #0x1
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x5
+ bne _020E5F6C
+ add r12, r12, lr
+_020E5F40:
+ sub r12, r12, #0x1
+ cmp r12, r2
+ bls _020E5F58
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x30
+ beq _020E5F40
+_020E5F58:
+ cmp r12, r2
+ ldreqsb r3, [r2, #-0x1]
+ andeq r4, r3, #0x1
+ movne r4, #0x1
+ b _020E5F74
+_020E5F6C:
+ movgt r4, #0x1
+ movle r4, #0x0
+_020E5F74:
+ cmp r1, #0x0
+ beq _020E5FD0
+ mov r12, #0x0
+ mov lr, #0x1
+_020E5F84:
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ add r3, r3, r4
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x9
+ movgt r4, lr
+ movle r4, r12
+ cmp r4, #0x0
+ bne _020E5FB4
+ cmp r3, #0x0
+ bne _020E5FBC
+_020E5FB4:
+ sub r1, r1, #0x1
+ b _020E5FC8
+_020E5FBC:
+ add r3, r3, #0x30
+ strb r3, [r2, #0x0]
+ b _020E5FD0
+_020E5FC8:
+ cmp r1, #0x0
+ bne _020E5F84
+_020E5FD0:
+ cmp r4, #0x0
+ beq _020E5FF8
+ ldrsh r3, [r0, #0x2]
+ mov r2, #0x1
+ mov r1, #0x31
+ add r3, r3, #0x1
+ strh r3, [r0, #0x2]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E5FF8:
+ cmp r1, #0x0
+ beq _020E5EF0
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4,pc}
+ arm_func_end round_decimal__wide
+
+ arm_func_start float2str__wide
+float2str__wide: ; 0x020E6008
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x22c
+ mov r10, r0
+ add r0, sp, #0x250
+ ldr r7, [sp, #0x268]
+ ldr r3, _020E6628 ; =0x000001FD
+ ldrh r6, [r0, #0x12]
+ cmp r7, r3
+ ldrb r5, [sp, #0x25f]
+ ldrb r4, [sp, #0x25d]
+ mov r8, r1
+ mov r9, r2
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r12, #0x0
+ mov r11, #0x20
+ add r0, sp, #0x0
+ add r3, sp, #0x4
+ mov r1, r10
+ mov r2, r8
+ strb r12, [sp, #0x0]
+ strh r11, [sp, #0x2]
+ bl __num2dec_internal2
+ ldrb r0, [sp, #0x8]
+ add r1, sp, #0x9
+ add r0, r1, r0
+ b _020E609C
+_020E6084:
+ ldrb r2, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r2, r2, #0x1
+ add r1, r1, #0x1
+ strb r2, [sp, #0x8]
+ strh r1, [sp, #0x6]
+_020E609C:
+ ldrb r1, [sp, #0x8]
+ cmp r1, #0x1
+ bls _020E60B4
+ ldrsb r1, [r0, #-0x1]!
+ cmp r1, #0x30
+ beq _020E6084
+_020E60B4:
+ ldrb r0, [sp, #0x9]
+ cmp r0, #0x30
+ beq _020E60D4
+ cmp r0, #0x49
+ beq _020E60E0
+ cmp r0, #0x4e
+ beq _020E6198
+ b _020E6244
+_020E60D4:
+ mov r0, #0x0
+ strh r0, [sp, #0x6]
+ b _020E6244
+_020E60E0:
+ mov r2, #0x0
+ mov r0, r10
+ mov r1, r8
+ mov r3, r2
+ bl _dls
+ bhs _020E6140
+ cmp r6, #0x80
+ sub r4, r9, #0xa
+ movcs r0, #0x0
+ bhs _020E6118
+ ldr r0, _020E662C ; =__wctype_mapC
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E6118:
+ cmp r0, #0x0
+ beq _020E6130
+ ldr r1, _020E6630 ; =wstr$6DF0
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6130:
+ ldr r1, _020E6634 ; =wstr$6DFC
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6140:
+ cmp r6, #0x80
+ sub r4, r9, #0x8
+ movcs r0, #0x0
+ bhs _020E6160
+ ldr r0, _020E662C ; =__wctype_mapC
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E6160:
+ cmp r0, #0x0
+ beq _020E6178
+ ldr r1, _020E6638 ; =wstr$6E08
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6178:
+ ldr r1, _020E663C ; =wstr$6E10
+ mov r0, r4
+ bl wcscpy
+_020E6184:
+ add sp, sp, #0x22c
+ mov r0, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6198:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E61EC
+ cmp r6, #0x80
+ sub r4, r9, #0xa
+ movcs r0, #0x0
+ bhs _020E61C4
+ ldr r0, _020E662C ; =__wctype_mapC
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E61C4:
+ cmp r0, #0x0
+ beq _020E61DC
+ ldr r1, _020E6640 ; =wstr$6E18
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E61DC:
+ ldr r1, _020E6644 ; =wstr$6E24
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E61EC:
+ cmp r6, #0x80
+ sub r4, r9, #0x8
+ movcs r0, #0x0
+ bhs _020E620C
+ ldr r0, _020E662C ; =__wctype_mapC
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E620C:
+ cmp r0, #0x0
+ beq _020E6224
+ ldr r1, _020E6648 ; =wstr$6E30
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E6224:
+ ldr r1, _020E664C ; =wstr$6E38
+ mov r0, r4
+ bl wcscpy
+_020E6230:
+ add sp, sp, #0x22c
+ mov r0, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6244:
+ ldrb r1, [sp, #0x8]
+ ldrsh r2, [sp, #0x6]
+ add r0, sp, #0x200
+ sub r1, r1, #0x1
+ add r0, r0, #0x2a
+ add r1, r2, r1
+ sub r8, r0, #0x1
+ strh r1, [sp, #0x6]
+ mov r0, #0x0
+ strb r0, [r8, #0x0]
+ cmp r6, #0x65
+ bgt _020E62A0
+ bge _020E632C
+ cmp r6, #0x47
+ bgt _020E65EC
+ cmp r6, #0x45
+ blt _020E65EC
+ beq _020E632C
+ cmp r6, #0x46
+ beq _020E6478
+ cmp r6, #0x47
+ beq _020E62B8
+ b _020E65EC
+_020E62A0:
+ cmp r6, #0x66
+ bgt _020E62B0
+ beq _020E6478
+ b _020E65EC
+_020E62B0:
+ cmp r6, #0x67
+ bne _020E65EC
+_020E62B8:
+ ldrb r0, [sp, #0x8]
+ cmp r0, r7
+ ble _020E62D0
+ add r0, sp, #0x4
+ mov r1, r7
+ bl round_decimal__wide
+_020E62D0:
+ ldrsh r2, [sp, #0x6]
+ mvn r0, #0x3
+ cmp r2, r0
+ blt _020E62E8
+ cmp r2, r7
+ blt _020E6308
+_020E62E8:
+ cmp r5, #0x0
+ ldreqb r0, [sp, #0x8]
+ subne r7, r7, #0x1
+ subeq r7, r0, #0x1
+ cmp r6, #0x67
+ moveq r6, #0x65
+ movne r6, #0x45
+ b _020E632C
+_020E6308:
+ cmp r5, #0x0
+ addne r0, r2, #0x1
+ subne r7, r7, r0
+ bne _020E6478
+ ldrb r1, [sp, #0x8]
+ add r0, r2, #0x1
+ subs r7, r1, r0
+ movmi r7, #0x0
+ b _020E6478
+_020E632C:
+ ldrb r0, [sp, #0x8]
+ add r1, r7, #0x1
+ cmp r0, r1
+ ble _020E6344
+ add r0, sp, #0x4
+ bl round_decimal__wide
+_020E6344:
+ ldrsh lr, [sp, #0x6]
+ mov r11, #0x2b
+ mov r10, #0x0
+ cmp lr, #0x0
+ rsblt lr, lr, #0x0
+ movlt r11, #0x2d
+ ldr r3, _020E6650 ; =0x66666667
+ mov r0, #0xa
+ b _020E6398
+_020E6368:
+ mov r1, lr, lsr #0x1f
+ smull r2, r12, r3, lr
+ add r12, r1, r12, asr #0x2
+ smull r1, r2, r0, r12
+ sub r12, lr, r1
+ add r1, r12, #0x30
+ strb r1, [r8, #-0x1]!
+ mov r2, lr
+ smull r1, lr, r3, r2
+ mov r1, r2, lsr #0x1f
+ add lr, r1, lr, asr #0x2
+ add r10, r10, #0x1
+_020E6398:
+ cmp lr, #0x0
+ bne _020E6368
+ cmp r10, #0x2
+ blt _020E6368
+ add r0, sp, #0x2a
+ strb r11, [r8, #-0x1]
+ strb r6, [r8, #-0x2]!
+ sub r1, r0, r8
+ ldr r0, _020E6628 ; =0x000001FD
+ add r1, r1, r7
+ cmp r1, r0
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldrb r1, [sp, #0x8]
+ add r0, r7, #0x1
+ cmp r1, r0
+ bge _020E6408
+ add r0, r7, #0x2
+ sub r0, r0, r1
+ subs r1, r0, #0x1
+ beq _020E6408
+ mov r0, #0x30
+_020E63FC:
+ strb r0, [r8, #-0x1]!
+ subs r1, r1, #0x1
+ bne _020E63FC
+_020E6408:
+ ldrb r1, [sp, #0x8]
+ add r0, sp, #0x9
+ add r2, r0, r1
+ subs r1, r1, #0x1
+ beq _020E642C
+_020E641C:
+ ldrsb r0, [r2, #-0x1]!
+ subs r1, r1, #0x1
+ strb r0, [r8, #-0x1]!
+ bne _020E641C
+_020E642C:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r0, #0x2e
+ strneb r0, [r8, #-0x1]!
+ ldrb r0, [sp, #0x9]
+ strb r0, [r8, #-0x1]!
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E65EC
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E65EC
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+ b _020E65EC
+_020E6478:
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+ cmp r1, r7
+ ble _020E64B8
+ sub r1, r1, r7
+ add r0, sp, #0x4
+ sub r1, r2, r1
+ bl round_decimal__wide
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+_020E64B8:
+ adds r0, r3, #0x1
+ movmi r0, #0x0
+ ldr r3, _020E6628 ; =0x000001FD
+ add r6, r0, r1
+ cmp r6, r3
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ add r3, sp, #0x9
+ sub r6, r7, r1
+ cmp r6, #0x0
+ add r2, r3, r2
+ mov r10, #0x0
+ ble _020E650C
+ mov r3, #0x30
+_020E64FC:
+ add r10, r10, #0x1
+ cmp r10, r6
+ strb r3, [r8, #-0x1]!
+ blt _020E64FC
+_020E650C:
+ mov r6, #0x0
+ b _020E6520
+_020E6514:
+ ldrsb r3, [r2, #-0x1]!
+ add r6, r6, #0x1
+ strb r3, [r8, #-0x1]!
+_020E6520:
+ cmp r6, r1
+ ldrltb r3, [sp, #0x8]
+ cmplt r6, r3
+ blt _020E6514
+ cmp r6, r1
+ bge _020E654C
+ mov r3, #0x30
+_020E653C:
+ add r6, r6, #0x1
+ cmp r6, r1
+ strb r3, [r8, #-0x1]!
+ blt _020E653C
+_020E654C:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r8, #-0x1]!
+ cmp r0, #0x0
+ beq _020E65B4
+ ldrb r1, [sp, #0x8]
+ mov r5, #0x0
+ sub r1, r0, r1
+ cmp r1, #0x0
+ ble _020E6594
+ mov r3, #0x30
+_020E657C:
+ strb r3, [r8, #-0x1]!
+ ldrb r1, [sp, #0x8]
+ add r5, r5, #0x1
+ sub r1, r0, r1
+ cmp r5, r1
+ blt _020E657C
+_020E6594:
+ cmp r5, r0
+ bge _020E65BC
+_020E659C:
+ ldrsb r1, [r2, #-0x1]!
+ add r5, r5, #0x1
+ cmp r5, r0
+ strb r1, [r8, #-0x1]!
+ blt _020E659C
+ b _020E65BC
+_020E65B4:
+ mov r0, #0x30
+ strb r0, [r8, #-0x1]!
+_020E65BC:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E65EC
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E65EC
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+_020E65EC:
+ mov r0, r8
+ bl strlen
+ sub r1, r9, r0, lsl #0x1
+ mov r0, r8
+ sub r4, r1, #0x2
+ bl strlen
+ mov r2, r0
+ mov r0, r4
+ mov r1, r8
+ bl mbstowcs
+ mov r0, r4
+ add sp, sp, #0x22c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E6628: .word 0x000001FD
+_020E662C: .word __wctype_mapC
+_020E6630: .word wstr$6DF0
+_020E6634: .word wstr$6DFC
+_020E6638: .word wstr$6E08
+_020E663C: .word wstr$6E10
+_020E6640: .word wstr$6E18
+_020E6644: .word wstr$6E24
+_020E6648: .word wstr$6E30
+_020E664C: .word wstr$6E38
+_020E6650: .word 0x66666667
+ ; arm_func_end float2str__wide
+
+ arm_func_start __wpformatter
+__wpformatter:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x430
+ mov r3, #0x20
+ mov r11, r2
+ strh r3, [sp, #0x1c]
+ ldrh r2, [r11, #0x0]
+ mov r9, r0
+ mov r8, r1
+ cmp r2, #0x0
+ mov r4, #0x0
+ beq _020E6F24
+_020E6684:
+ mov r0, r11
+ mov r1, #0x25
+ bl wcschr
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020E66D8
+ mov r0, r11
+ bl wcslen
+ movs r2, r0
+ add r4, r4, r2
+ beq _020E6F24
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ bne _020E6F24
+ add sp, sp, #0x430
+ mvn r0, #0x0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E66D8:
+ sub r0, r0, r11
+ add r0, r0, r0, lsr #0x1f
+ movs r2, r0, asr #0x1
+ add r4, r4, r2
+ beq _020E6710
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6710:
+ add r1, sp, #0x400
+ ldr r0, [sp, #0xc]
+ add r1, r1, #0x64
+ add r2, sp, #0x20
+ bl parse_format__wide
+ ldrh r1, [sp, #0x26]
+ mov r11, r0
+ cmp r1, #0x61
+ bgt _020E6780
+ bge _020E6AEC
+ cmp r1, #0x47
+ bgt _020E6774
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E6768
+ b _020E6AEC
+ b _020E6D90
+ b _020E6D90
+ b _020E6D90
+ b _020E6A7C
+ b _020E6A7C
+ b _020E6A7C
+_020E6768:
+ cmp r1, #0x25
+ beq _020E6D7C
+ b _020E6D90
+_020E6774:
+ cmp r1, #0x58
+ beq _020E6940
+ b _020E6D90
+_020E6780:
+ cmp r1, #0x75
+ bgt _020E67E8
+ subs r0, r1, #0x64
+ addpl pc, pc, r0, lsl #0x2
+ b _020E67DC
+ b _020E6804
+ b _020E6A7C
+ b _020E6A7C
+ b _020E6A7C
+ b _020E6D90
+ b _020E6804
+ b _020E6D90
+ b _020E6D90
+ b _020E6D90
+ b _020E6D90
+ b _020E6C98
+ b _020E6940
+ b _020E6D90
+ b _020E6D90
+ b _020E6D90
+ b _020E6B5C
+ b _020E6D90
+ b _020E6940
+_020E67DC:
+ cmp r1, #0x63
+ beq _020E6D24
+ b _020E6D90
+_020E67E8:
+ cmp r1, #0x78
+ bgt _020E67F8
+ beq _020E6940
+ b _020E6D90
+_020E67F8:
+ ldr r0, _020E6F38 ; =0x0000FFFF
+ cmp r1, r0
+ b _020E6D90
+_020E6804:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x3
+ bne _020E6824
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E6824:
+ cmp r0, #0x4
+ bne _020E684C
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E68BC
+_020E684C:
+ cmp r0, #0x6
+ bne _020E6874
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E68BC
+_020E6874:
+ cmp r0, #0x7
+ bne _020E6890
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E6890:
+ cmp r0, #0x8
+ bne _020E68AC
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E68AC:
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+_020E68BC:
+ cmp r0, #0x2
+ moveq r1, r10, lsl #0x10
+ moveq r10, r1, asr #0x10
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x20
+ bne _020E6904
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x430
+ bl longlong2str__wide
+ movs r6, r0
+ beq _020E6D90
+ b _020E6928
+_020E6904:
+ sub r5, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ add r1, sp, #0x430
+ mov r0, r10
+ ldmia r5, {r2-r3}
+ bl long2str__wide
+ movs r6, r0
+ beq _020E6D90
+_020E6928:
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6940:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x3
+ bne _020E6960
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E6960:
+ cmp r0, #0x4
+ bne _020E6988
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E69F8
+_020E6988:
+ cmp r0, #0x6
+ bne _020E69B0
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E69F8
+_020E69B0:
+ cmp r0, #0x7
+ bne _020E69CC
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E69CC:
+ cmp r0, #0x8
+ bne _020E69E8
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E69E8:
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+_020E69F8:
+ cmp r0, #0x2
+ moveq r1, r10, lsl #0x10
+ moveq r10, r1, lsr #0x10
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x20
+ bne _020E6A40
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x430
+ bl longlong2str__wide
+ movs r6, r0
+ beq _020E6D90
+ b _020E6A64
+_020E6A40:
+ sub r5, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ add r1, sp, #0x430
+ mov r0, r10
+ ldmia r5, {r2-r3}
+ bl long2str__wide
+ movs r6, r0
+ beq _020E6D90
+_020E6A64:
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6A7C:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x464]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x464]
+ bne _020E6AA0
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x8
+ str r0, [sp, #0x464]
+_020E6AA0:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x20
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x430
+ bl float2str__wide
+ movs r6, r0
+ beq _020E6D90
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6AEC:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x464]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x464]
+ bne _020E6B10
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x8
+ str r0, [sp, #0x464]
+_020E6B10:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x20
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x430
+ bl double2hex__wide
+ movs r6, r0
+ beq _020E6D90
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6B5C:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x5
+ bne _020E6BF8
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r6, [r0, #-0x4]
+ ldrb r0, [sp, #0x23]
+ cmp r6, #0x0
+ ldreq r6, _020E6F3C ; =buff_ptr$6E40
+ cmp r0, #0x0
+ beq _020E6BB0
+ ldrh r1, [r6], #0x2
+ ldrb r0, [sp, #0x22]
+ and r7, r1, #0xff
+ cmp r0, #0x0
+ beq _020E6DDC
+ ldr r0, [sp, #0x2c]
+ cmp r7, r0
+ movgt r7, r0
+ b _020E6DDC
+_020E6BB0:
+ ldrb r0, [sp, #0x22]
+ cmp r0, #0x0
+ beq _020E6BE8
+ ldr r7, [sp, #0x2c]
+ mov r0, r6
+ mov r2, r7
+ mov r1, #0x0
+ bl wmemchr
+ cmp r0, #0x0
+ beq _020E6DDC
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6BE8:
+ mov r0, r6
+ bl wcslen
+ mov r7, r0
+ b _020E6DDC
+_020E6BF8:
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r5, [r0, #-0x4]
+ ldrb r0, [sp, #0x23]
+ cmp r5, #0x0
+ ldreq r5, _020E6F40 ; =strptr$6E44
+ cmp r0, #0x0
+ beq _020E6C40
+ ldrh r1, [r6, #0x0]
+ ldrb r0, [sp, #0x22]
+ and r6, r1, #0xff
+ cmp r0, #0x0
+ beq _020E6C78
+ ldr r0, [sp, #0x2c]
+ cmp r6, r0
+ movgt r6, r0
+ b _020E6C78
+_020E6C40:
+ ldrb r0, [sp, #0x22]
+ cmp r0, #0x0
+ beq _020E6C6C
+ ldr r6, [sp, #0x2c]
+ mov r0, r5
+ mov r2, r6
+ mov r1, #0x0
+ bl memchr
+ cmp r0, #0x0
+ subne r6, r0, r5
+ b _020E6C78
+_020E6C6C:
+ mov r0, r5
+ bl strlen
+ mov r6, r0
+_020E6C78:
+ add r0, sp, #0x30
+ mov r1, r5
+ mov r2, r6
+ bl mbstowcs
+ movs r7, r0
+ bmi _020E6D90
+ add r6, sp, #0x30
+ b _020E6DDC
+_020E6C98:
+ ldr r1, [sp, #0x464]
+ ldrb r0, [sp, #0x24]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r6, [r1, #-0x4]
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020E6F18
+ b _020E6CDC ; case
+ b _020E6F18 ; case
+ b _020E6CE4 ; case
+ b _020E6CEC ; case
+ b _020E6D14 ; case
+ b _020E6F18 ; case
+ b _020E6CF4 ; case
+ b _020E6D04 ; case
+ b _020E6D0C ; case
+_020E6CDC:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6CE4:
+ strh r4, [r6, #0x0]
+ b _020E6F18
+_020E6CEC:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6CF4:
+ str r4, [r6, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r6, #0x4]
+ b _020E6F18
+_020E6D04:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6D0C:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6D14:
+ str r4, [r6, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r6, #0x4]
+ b _020E6F18
+_020E6D24:
+ ldrb r0, [sp, #0x24]
+ add r6, sp, #0x30
+ cmp r0, #0x5
+ bne _020E6D50
+ ldr r0, [sp, #0x464]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r0, [r0, #-0x4]
+ strh r0, [r6, #0x0]
+ b _020E6DDC
+_020E6D50:
+ ldr r0, [sp, #0x464]
+ add r1, sp, #0x18
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r3, [r0, #-0x4]
+ mov r0, r6
+ mov r2, #0x1
+ strb r3, [sp, #0x18]
+ bl mbtowc
+ mov r7, r0
+ b _020E6DDC
+_020E6D7C:
+ mov r0, #0x25
+ strh r0, [sp, #0x30]
+ add r6, sp, #0x30
+ mov r7, #0x1
+ b _020E6DDC
+_020E6D90:
+ ldr r0, [sp, #0xc]
+ bl wcslen
+ movs r5, r0
+ beq _020E6DC8
+ ldr r1, [sp, #0xc]
+ mov r0, r8
+ mov r2, r5
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6DC8:
+ add sp, sp, #0x430
+ add r0, r4, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6DDC:
+ ldrb r0, [sp, #0x20]
+ mov r5, r7
+ cmp r0, #0x0
+ beq _020E6E8C
+ cmp r0, #0x2
+ moveq r1, #0x30
+ movne r1, #0x20
+ strh r1, [sp, #0x1c]
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x2b
+ cmpne r0, #0x2d
+ cmpne r0, #0x20
+ bne _020E6E48
+ cmp r1, #0x30
+ bne _020E6E48
+ mov r0, r8
+ mov r1, r6
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r6, r6, #0x2
+ sub r7, r7, #0x1
+_020E6E48:
+ ldr r0, [sp, #0x28]
+ cmp r5, r0
+ bge _020E6E8C
+_020E6E54:
+ mov r0, r8
+ add r1, sp, #0x1c
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020E6E54
+_020E6E8C:
+ cmp r7, #0x0
+ beq _020E6EBC
+ mov r0, r8
+ mov r1, r6
+ mov r2, r7
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6EBC:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _020E6F14
+ ldr r0, [sp, #0x28]
+ cmp r5, r0
+ bge _020E6F14
+ mov r7, #0x20
+_020E6ED8:
+ mov r0, r8
+ add r1, sp, #0x1a
+ mov r2, #0x1
+ strh r7, [sp, #0x1a]
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020E6ED8
+_020E6F14:
+ add r4, r4, r5
+_020E6F18:
+ ldrh r0, [r11, #0x0]
+ cmp r0, #0x0
+ bne _020E6684
+_020E6F24:
+ mov r0, r4
+ add sp, sp, #0x430
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E6F38: .word 0x0000FFFF
+_020E6F3C: .word buff_ptr$6E40
+_020E6F40: .word strptr$6E44
+ arm_func_end __wpformatter
+
+ arm_func_start __wStringWrite
+__wStringWrite: ; 0x020E6F44
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ mov r5, r2
+ ldr r2, [r4, #0x4]
+ add r0, r3, r5
+ cmp r0, r2
+ ldr r0, [r4, #0x0]
+ subhi r5, r2, r3
+ mov r2, r5
+ add r0, r0, r3, lsl #0x1
+ bl wmemcpy
+ ldr r1, [r4, #0x8]
+ add r1, r1, r5
+ str r1, [r4, #0x8]
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __wStringWrite
+
+ arm_func_start swprintf
+swprintf: ; 0x020E6F84
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r3, sp, #0x10
+ bic r3, r3, #0x3
+ ldr r2, [sp, #0x10]
+ add r3, r3, #0x4
+ bl vswprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end swprintf
+
+ arm_func_start vswprintf
+vswprintf: ; 0x020E6FAC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ mov r12, #0x0
+ ldr r0, _020E7018 ; =__wStringWrite
+ add r1, sp, #0x0
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r12, [sp, #0x8]
+ bl __wpformatter
+ cmp r0, #0x0
+ addlt sp, sp, #0xc
+ ldmltia sp!, {r4-r5,pc}
+ cmp r0, r4
+ bhs _020E7000
+ mov r1, r0, lsl #0x1
+ mov r2, #0x0
+ add sp, sp, #0xc
+ strh r2, [r5, r1]
+ ldmia sp!, {r4-r5,pc}
+_020E7000:
+ mov r1, #0x0
+ add r0, r5, r4, lsl #0x1
+ strh r1, [r0, #-0x2]
+ sub r0, r1, #0x1
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E7018: .word __wStringWrite
+ arm_func_end vswprintf
+
+ .section .exceptix,4
+
+ .word long2str__wide
+ .short 593
+ .word 0x0090FF20
+ .word longlong2str__wide
+ .short 741
+ .word 0x00A0FF20
+ .word double2hex__wide
+ .short 921
+ .word 0x00F07F20
+ .word float2str__wide
+ .short 1612
+ .word UNK_020EC728
+ .word __wpformatter
+ .short 2288
+ .word UNK_020EC730
+ .word __wStringWrite
+ .short 65
+ .word 0x00200300
+ .word swprintf
+ .short 41
+ .word 0x00300020
+ .word vswprintf
+ .short 113
+ .word 0x00300300
+
+ .section .exception,8
+
+UNK_020EC728: ; 0x020EC728
+ .byte 0x20, 0xFF, 0x09, 0x60
+ .balign 8
+
+ .section .exception,8
+
+UNK_020EC730: ; 0x020EC730
+ .byte 0x20, 0xFF, 0x11, 0x68
+ .balign 8
diff --git a/arm9/asm/MSL_Common_wstring.s b/arm9/asm/MSL_Common_wstring.s new file mode 100644 index 00000000..d01c034b --- /dev/null +++ b/arm9/asm/MSL_Common_wstring.s @@ -0,0 +1,48 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start wcslen
+wcslen: ; 0x020E701C
+ mvn r2, #0x0
+_020E7020:
+ ldrh r1, [r0], #0x2
+ add r2, r2, #0x1
+ cmp r1, #0x0
+ bne _020E7020
+ mov r0, r2
+ bx lr
+ arm_func_end wcslen
+
+ arm_func_start wcscpy
+wcscpy: ; 0x020E7038
+ mov r3, r0
+_020E703C:
+ ldrh r2, [r1], #0x2
+ mov r12, r3
+ strh r2, [r3], #0x2
+ ldrh r2, [r12, #0x0]
+ cmp r2, #0x0
+ bne _020E703C
+ bx lr
+ arm_func_end wcscpy
+
+ arm_func_start wcschr
+wcschr: ; 0x020E7058
+ ldrh r2, [r0], #0x2
+ cmp r2, #0x0
+ beq _020E707C
+_020E7064:
+ cmp r2, r1
+ subeq r0, r0, #0x2
+ bxeq lr
+ ldrh r2, [r0], #0x2
+ cmp r2, #0x0
+ bne _020E7064
+_020E707C:
+ cmp r1, #0x0
+ movne r0, #0x0
+ subeq r0, r0, #0x2
+ bx lr
+ arm_func_end wcschr
diff --git a/arm9/asm/MSL_DPMath_e_pow.s b/arm9/asm/MSL_DPMath_e_pow.s new file mode 100644 index 00000000..fedcbb10 --- /dev/null +++ b/arm9/asm/MSL_DPMath_e_pow.s @@ -0,0 +1,1193 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .rodata
+
+ .global UNK_02104744
+UNK_02104744: ; 0x02104744
+ .word 0x00000000, 0x00000000
+ .word 0x40000000, 0x3FE2B803
+ .size UNK_02104744,.-UNK_02104744
+
+ .global UNK_02104754
+UNK_02104754: ; 0x02104754
+ .word 0x00000000, 0x3FF00000
+ .word 0x00000000, 0x3FF80000
+ .size UNK_02104754,.-UNK_02104754
+
+ .global UNK_02104764
+UNK_02104764: ; 0x02104764
+ .word 0x00000000, 0x00000000
+ .word 0x43CFD006, 0x3E4CFDEB
+ .size UNK_02104764,.-UNK_02104764
+
+ .text
+
+ arm_func_start __ieee754_pow
+__ieee754_pow: ; 0x020E708C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x80
+ ldr r8, [sp, #0xb4]
+ ldr r6, [sp, #0xac]
+ ldr r0, [sp, #0xb0]
+ bic r9, r8, #0x80000000
+ orrs r1, r9, r0
+ ldr r7, [sp, #0xa8]
+ bic r4, r6, #0x80000000
+ addeq sp, sp, #0x80
+ moveq r0, #0x0
+ ldreq r1, _020E7638 ; =0x3FF00000
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r4, r1
+ bgt _020E70FC
+ bne _020E70E4
+ cmp r7, #0x0
+ bne _020E70FC
+_020E70E4:
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r9, r1
+ bgt _020E70FC
+ bne _020E7120
+ cmp r0, #0x0
+ beq _020E7120
+_020E70FC:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ ldr r2, [sp, #0xb0]
+ ldr r3, [sp, #0xb4]
+ bl _dadd
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7120:
+ cmp r6, #0x0
+ mov r5, #0x0
+ bge _020E7188
+ ldr r1, _020E7640 ; =0x43400000
+ cmp r9, r1
+ movge r5, #0x2
+ bge _020E7188
+ sub r1, r1, #0x3500000
+ cmp r9, r1
+ blt _020E7188
+ ldr r1, _020E7644 ; =0xFFFFFC01
+ add r1, r1, r9, asr #0x14
+ cmp r1, #0x14
+ ble _020E7170
+ rsb r2, r1, #0x34
+ mov r1, r0, lsr r2
+ cmp r0, r1, lsl r2
+ andeq r1, r1, #0x1
+ rsbeq r5, r1, #0x2
+ b _020E7188
+_020E7170:
+ cmp r0, #0x0
+ rsbeq r2, r1, #0x14
+ moveq r1, r9, asr r2
+ cmpeq r9, r1, lsl r2
+ andeq r1, r1, #0x1
+ rsbeq r5, r1, #0x2
+_020E7188:
+ cmp r0, #0x0
+ bne _020E72E4
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r9, r1
+ bne _020E723C
+ add r0, r4, #0x100000
+ add r0, r0, #0xc0000000
+ orrs r0, r0, r7
+ bne _020E71D0
+ ldr r0, [sp, #0xb0]
+ ldr r1, [sp, #0xb4]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E71D0:
+ sub r0, r1, #0x40000000
+ cmp r4, r0
+ blt _020E7200
+ cmp r8, #0x0
+ ldrge r0, [sp, #0xb0]
+ ldrge r1, [sp, #0xb4]
+ movlt r0, #0x0
+ add sp, sp, #0x80
+ movlt r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7200:
+ cmp r8, #0x0
+ mov r0, #0x0
+ addge sp, sp, #0x80
+ movge r1, r0
+ ldmgeia sp!, {r3-r11,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r2, [sp, #0xb0]
+ ldr r3, [sp, #0xb4]
+ mov r1, r0
+ bl _dsub
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E723C:
+ sub r0, r1, #0x40000000
+ cmp r9, r0
+ bne _020E7288
+ cmp r8, #0x0
+ ldrge r0, [sp, #0xa8]
+ ldrge r1, [sp, #0xac]
+ addge sp, sp, #0x80
+ ldmgeia sp!, {r3-r11,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r2, [sp, #0xa8]
+ ldr r3, [sp, #0xac]
+ sub r1, r1, #0x40000000
+ mov r0, #0x0
+ bl _ddiv
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7288:
+ cmp r8, #0x40000000
+ bne _020E72B4
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E72B4:
+ ldr r0, _020E7648 ; =0x3FE00000
+ cmp r8, r0
+ bne _020E72E4
+ cmp r6, #0x0
+ blt _020E72E4
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ bl _dsqrt
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E72E4:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ bl fabs
+ str r0, [sp, #0x70]
+ str r1, [sp, #0x74]
+ cmp r7, #0x0
+ bne _020E73E8
+ ldr r0, _020E763C ; =0x7FF00000
+ cmp r4, r0
+ cmpne r4, #0x0
+ subne r0, r0, #0x40000000
+ cmpne r4, r0
+ bne _020E73E8
+ ldr r2, [sp, #0x70]
+ ldr r3, [sp, #0x74]
+ str r2, [sp, #0x78]
+ str r3, [sp, #0x7c]
+ cmp r8, #0x0
+ bge _020E7344
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _ddiv
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E7344:
+ cmp r6, #0x0
+ bge _020E73D0
+ add r0, r4, #0x100000
+ add r0, r0, #0xc0000000
+ orrs r0, r0, r5
+ bne _020E73AC
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ mov r4, r0
+ mov r5, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r5
+ bl _ddiv
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+ b _020E73D0
+_020E73AC:
+ cmp r5, #0x1
+ bne _020E73D0
+ mov r0, #0x0
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ mov r1, r0
+ bl _dsub
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E73D0:
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E73E8:
+ mov r0, r6, asr #0x1f
+ add r7, r0, #0x1
+ orrs r0, r7, r5
+ bne _020E7420
+ ldr r0, _020E764C ; =__float_nan
+ ldr r1, _020E7650 ; =errno
+ ldr r0, [r0, #0x0]
+ mov r2, #0x21
+ str r2, [r1, #0x0]
+ bl _f2d
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7420:
+ ldr r3, _020E7654 ; =0x41E00000
+ cmp r9, r3
+ ble _020E7724
+ add r0, r3, #0x2100000
+ cmp r9, r0
+ ble _020E7490
+ ldr r1, _020E7658 ; =0x3FEFFFFF
+ cmp r4, r1
+ bgt _020E7464
+ cmp r8, #0x0
+ mov r0, #0x0
+ addlt r1, r1, #0x40000001
+ add sp, sp, #0x80
+ movge r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7464:
+ add r0, r1, #0x1
+ cmp r4, r0
+ blt _020E7490
+ cmp r8, #0x0
+ mov r0, #0x0
+ addgt r1, r1, #0x40000001
+ add sp, sp, #0x80
+ movle r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7490:
+ ldr r2, _020E7658 ; =0x3FEFFFFF
+ cmp r4, r2
+ bge _020E74BC
+ cmp r8, #0x0
+ mov r0, #0x0
+ addlt r1, r2, #0x40000001
+ add sp, sp, #0x80
+ movge r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E74BC:
+ add r0, r2, #0x1
+ cmp r4, r0
+ ble _020E74E8
+ cmp r8, #0x0
+ mov r0, #0x0
+ addgt r1, r2, #0x40000001
+ add sp, sp, #0x80
+ movle r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E74E8:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ add r3, r2, #0x1
+ mov r2, #0x0
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ bl _dmul
+ mov r6, r1
+ mov r4, r0
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ ldr r1, _020E765C ; =0x3FD00000
+ mov r0, #0x0
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7660 ; =0x55555555
+ sub r1, r0, #0x15800000
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, #0x0
+ ldr r1, _020E7648 ; =0x3FE00000
+ bl _dsub
+ mov r2, r0
+ mov r0, r4
+ mov r3, r1
+ mov r1, r6
+ bl _dmul
+ mov r6, r0
+ mov r8, r1
+ mov r0, #0x60000000
+ ldr r1, _020E7664 ; =0x3FF71547
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ ldr r0, _020E7668 ; =0xF85DDF44
+ ldr r1, _020E766C ; =0x3E54AE0B
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r11, r0
+ mov r10, r1
+ ldr r0, _020E7670 ; =0x652B82FE
+ ldr r1, _020E7664 ; =0x3FF71547
+ mov r2, r6
+ mov r3, r8
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r11
+ mov r1, r10
+ bl _dsub
+ mov r6, r0
+ mov r8, r1
+ mov r0, r4
+ mov r1, r9
+ mov r2, r6
+ mov r3, r8
+ bl _dadd
+ mov r2, r4
+ mov r3, r9
+ str r1, [sp, #0x5c]
+ mov r0, #0x0
+ str r0, [sp, #0x58]
+ bl _dsub
+ mov r2, r0
+ mov r0, r6
+ mov r3, r1
+ mov r1, r8
+ bl _dsub
+ mov r4, r0
+ mov r8, r1
+ b _020E7C80
+ .balign 4
+_020E7638: .word 0x3FF00000
+_020E763C: .word 0x7FF00000
+_020E7640: .word 0x43400000
+_020E7644: .word 0xFFFFFC01
+_020E7648: .word 0x3FE00000
+_020E764C: .word __float_nan
+_020E7650: .word errno
+_020E7654: .word 0x41E00000
+_020E7658: .word 0x3FEFFFFF
+_020E765C: .word 0x3FD00000
+_020E7660: .word 0x55555555
+_020E7664: .word 0x3FF71547
+_020E7668: .word 0xF85DDF44
+_020E766C: .word 0x3E54AE0B
+_020E7670: .word 0x652B82FE
+_020E7674: .word 0x0003988E
+_020E7678: .word 0x000BB67A
+_020E767C: .word UNK_02104754
+_020E7680: .word 0x4A454EEF
+_020E7684: .word 0x3FCA7E28
+_020E7688: .word 0x93C9DB65
+_020E768C: .word 0x3FCD864A
+_020E7690: .word 0xA91D4101
+_020E7694: .word 0x3FD17460
+_020E7698: .word 0x518F264D
+_020E769C: .word 0x3FD55555
+_020E76A0: .word 0xDB6FABFF
+_020E76A4: .word 0x3FDB6DB6
+_020E76A8: .word 0x33333303
+_020E76AC: .word 0x3FE33333
+_020E76B0: .word 0x40080000
+_020E76B4: .word 0x3FEEC709
+_020E76B8: .word 0x145B01F5
+_020E76BC: .word 0xBE3E2FE0
+_020E76C0: .word 0xDC3A03FD
+_020E76C4: .word UNK_02104764
+_020E76C8: .word UNK_02104744
+_020E76CC: .word 0x40900000
+_020E76D0: .word 0x8800759C
+_020E76D4: .word 0x7E37E43C
+_020E76D8: .word 0x3C971547
+_020E76DC: .word 0x3F6F3400
+_020E76E0: .word 0xC2F8F359
+_020E76E4: .word 0x01A56E1F
+_020E76E8: .word 0x3FE62E43
+_020E76EC: .word 0xFEFA39EF
+_020E76F0: .word 0x3FE62E42
+_020E76F4: .word 0x0CA86C39
+_020E76F8: .word 0xBE205C61
+_020E76FC: .word 0x72BEA4D0
+_020E7700: .word 0x3E663769
+_020E7704: .word 0xC5D26BF1
+_020E7708: .word 0xBEBBBD41
+_020E770C: .word 0xAF25DE2C
+_020E7710: .word 0x3F11566A
+_020E7714: .word 0x16BEBD93
+_020E7718: .word 0xBF66C16C
+_020E771C: .word 0x5555553E
+_020E7720: .word 0x3FC55555
+_020E7724:
+ cmp r4, #0x100000
+ mov r6, #0x0
+ bge _020E7754
+ ldr r0, [sp, #0x70]
+ ldr r1, [sp, #0x74]
+ mov r2, r6
+ add r3, r3, #0x1600000
+ bl _dmul
+ mov r4, r1
+ str r0, [sp, #0x70]
+ str r4, [sp, #0x74]
+ sub r6, r6, #0x35
+_020E7754:
+ ldr r0, _020E7644 ; =0xFFFFFC01
+ ldr r1, _020E7674 ; =0x0003988E
+ and r2, r4, r0, lsr #0xc
+ add r0, r0, r4, asr #0x14
+ orr r9, r2, #0xff00000
+ cmp r2, r1
+ add r6, r6, r0
+ orr r9, r9, #0x30000000
+ movle r8, #0x0
+ ble _020E7794
+ ldr r0, _020E7678 ; =0x000BB67A
+ cmp r2, r0
+ movlt r8, #0x1
+ addge r6, r6, #0x1
+ subge r9, r9, #0x100000
+ movge r8, #0x0
+_020E7794:
+ ldr r2, _020E767C ; =UNK_02104754
+ ldr r0, [sp, #0x70]
+ add r1, r2, r8, lsl #0x3
+ ldr r3, [r1, #0x4]
+ ldr r2, [r2, r8, lsl #0x3]
+ mov r1, r9
+ str r9, [sp, #0x74]
+ bl _dsub
+ ldr r2, _020E767C ; =UNK_02104754
+ mov r10, r0
+ add r3, r2, r8, lsl #0x3
+ mov r4, r1
+ ldr r0, [sp, #0x70]
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ mov r1, r9
+ bl _dadd
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _ddiv
+ str r1, [sp, #0x24]
+ mov r11, r0
+ ldr r3, [sp, #0x24]
+ mov r0, r10
+ mov r1, r4
+ mov r2, r11
+ bl _dmul
+ mov r2, r9, asr #0x1
+ orr r2, r2, #0x20000000
+ mov r9, r1
+ add r2, r2, #0x80000
+ add r1, r2, r8, lsl #0x12
+ ldr r2, _020E767C ; =UNK_02104754
+ str r0, [sp, #0x28]
+ add r3, r2, r8, lsl #0x3
+ mov r0, #0x0
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ str r9, [sp, #0x4c]
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x40]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x70]
+ ldr r1, [sp, #0x74]
+ bl _dsub
+ str r0, [sp, #0x2c]
+ str r1, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ mov r1, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r10
+ mov r1, r4
+ bl _dsub
+ mov r10, r0
+ mov r4, r1
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ mov r1, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r10
+ mov r1, r4
+ bl _dsub
+ mov r3, r1
+ mov r2, r0
+ ldr r1, [sp, #0x24]
+ mov r0, r11
+ bl _dmul
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x14]
+ mov r1, r9
+ mov r2, r0
+ mov r3, r9
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ mov r2, r4
+ mov r3, r10
+ bl _dmul
+ str r0, [sp, #0x34]
+ mov r11, r1
+ ldr r0, _020E7680 ; =0x4A454EEF
+ ldr r1, _020E7684 ; =0x3FCA7E28
+ mov r2, r4
+ mov r3, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7688 ; =0x93C9DB65
+ ldr r1, _020E768C ; =0x3FCD864A
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7690 ; =0xA91D4101
+ ldr r1, _020E7694 ; =0x3FD17460
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7698 ; =0x518F264D
+ ldr r1, _020E769C ; =0x3FD55555
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76A0 ; =0xDB6FABFF
+ ldr r1, _020E76A4 ; =0x3FDB6DB6
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76A8 ; =0x33333303
+ ldr r1, _020E76AC ; =0x3FE33333
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x34]
+ mov r1, r11
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x28]
+ mov r1, r9
+ mov r3, r9
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dadd
+ mov r4, r0
+ ldr r0, [sp, #0x48]
+ mov r10, r1
+ mov r1, r9
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ str r1, [sp, #0xc]
+ mov r11, r0
+ ldr r1, _020E76B0 ; =0x40080000
+ ldr r3, [sp, #0xc]
+ mov r0, #0x0
+ mov r2, r11
+ bl _dadd
+ mov r2, r4
+ mov r3, r10
+ bl _dadd
+ mov r0, #0x0
+ ldr r3, _020E76B0 ; =0x40080000
+ mov r2, r0
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+ bl _dsub
+ ldr r3, [sp, #0xc]
+ mov r2, r11
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dsub
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ mov r1, r9
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ bl _dmul
+ str r0, [sp, #0x3c]
+ mov r11, r1
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x28]
+ mov r3, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x3c]
+ mov r1, r11
+ bl _dadd
+ mov r9, r0
+ mov r11, r1
+ mov r0, r4
+ mov r1, r10
+ mov r2, r9
+ mov r3, r11
+ bl _dadd
+ mov r0, #0x0
+ mov r2, r4
+ mov r3, r10
+ str r1, [sp, #0x6c]
+ str r0, [sp, #0x68]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r9
+ mov r1, r11
+ bl _dsub
+ mov r10, r1
+ mov r11, r0
+ ldr r1, _020E76B4 ; =0x3FEEC709
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r0, #0xe0000000
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ ldr r0, _020E76B8 ; =0x145B01F5
+ ldr r1, _020E76BC ; =0xBE3E2FE0
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dmul
+ mov r2, r11
+ mov r3, r10
+ mov r11, r0
+ mov r10, r1
+ ldr r0, _020E76C0 ; =0xDC3A03FD
+ ldr r1, _020E76B4 ; =0x3FEEC709
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r11
+ mov r1, r10
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76C4 ; =UNK_02104764
+ add r1, r0, r8, lsl #0x3
+ ldr r0, [r0, r8, lsl #0x3]
+ ldr r1, [r1, #0x4]
+ bl _dadd
+ mov r11, r0
+ mov r10, r1
+ mov r0, r6
+ bl _dflt
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ mov r0, r4
+ mov r1, r9
+ mov r2, r11
+ mov r3, r10
+ bl _dadd
+ ldr r2, _020E76C8 ; =UNK_02104744
+ add r3, r2, r8, lsl #0x3
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dadd
+ str r1, [sp, #0x5c]
+ mov r0, #0x0
+ str r0, [sp, #0x58]
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dsub
+ ldr r2, _020E76C8 ; =UNK_02104744
+ add r3, r2, r8, lsl #0x3
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ bl _dsub
+ mov r2, r4
+ mov r3, r9
+ bl _dsub
+ mov r2, r0
+ mov r0, r11
+ mov r3, r1
+ mov r1, r10
+ bl _dsub
+ mov r4, r0
+ mov r8, r1
+_020E7C80:
+ sub r0, r5, #0x1
+ ldr r1, [sp, #0xb4]
+ orrs r0, r7, r0
+ ldr r5, _020E7638 ; =0x3FF00000
+ mov r2, #0x0
+ ldr r0, [sp, #0xb0]
+ mov r3, r1
+ mov r6, #0x0
+ subeq r5, r5, #0x80000000
+ str r1, [sp, #0x64]
+ str r2, [sp, #0x60]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x58]
+ ldr r1, [sp, #0x5c]
+ bl _dmul
+ mov r7, r0
+ mov r9, r1
+ ldr r0, [sp, #0xb0]
+ ldr r1, [sp, #0xb4]
+ mov r2, r4
+ mov r3, r8
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r9
+ bl _dadd
+ mov r7, r0
+ mov r8, r1
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x64]
+ ldr r2, [sp, #0x58]
+ ldr r3, [sp, #0x5c]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ str r2, [sp, #0x68]
+ str r3, [sp, #0x6c]
+ bl _dadd
+ mov r9, r1
+ ldr r2, _020E76CC ; =0x40900000
+ str r0, [sp, #0x78]
+ str r9, [sp, #0x7c]
+ cmp r9, r2
+ blt _020E7E0C
+ add r1, r9, #0xf700000
+ add r1, r1, #0xb0000000
+ orrs r0, r1, r0
+ beq _020E7D8C
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7D8C:
+ ldr r0, _020E7670 ; =0x652B82FE
+ ldr r1, _020E76D8 ; =0x3C971547
+ mov r2, r7
+ mov r3, r8
+ bl _dadd
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x78]
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r1, r9
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dgr
+ bls _020E7EC0
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7E0C:
+ bic r3, r9, #0x80000000
+ add r2, r2, #0xcc00
+ cmp r3, r2
+ blt _020E7EC0
+ ldr r2, _020E76DC ; =0x3F6F3400
+ add r2, r9, r2
+ orrs r2, r2, r0
+ beq _020E7E64
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7E64:
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ bl _dleq
+ bhi _020E7EC0
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7EC0:
+ ldr r0, _020E7644 ; =0xFFFFFC01
+ bic r3, r9, #0x80000000
+ ldr r1, _020E7648 ; =0x3FE00000
+ add r2, r0, r3, asr #0x14
+ cmp r3, r1
+ mov r4, #0x0
+ ble _020E7F3C
+ mov r1, #0x100000
+ add r2, r2, #0x1
+ add r2, r9, r1, asr r2
+ bic r3, r2, #0x80000000
+ add r0, r0, r3, asr #0x14
+ sub r3, r1, #0x1
+ mvn r3, r3, asr r0
+ sub r1, r1, #0x1
+ and r1, r2, r1
+ and r2, r2, r3
+ str r2, [sp, #0x54]
+ str r4, [sp, #0x50]
+ orr r1, r1, #0x100000
+ rsb r0, r0, #0x14
+ mov r4, r1, asr r0
+ cmp r9, #0x0
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ rsblt r4, r4, #0x0
+ bl _dsub
+ str r0, [sp, #0x68]
+ str r1, [sp, #0x6c]
+_020E7F3C:
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r0, r7
+ mov r1, r8
+ bl _dadd
+ mov r3, r1
+ mov r0, #0x0
+ ldr r1, _020E76E8 ; =0x3FE62E43
+ mov r2, r0
+ str r3, [sp, #0x54]
+ str r0, [sp, #0x50]
+ bl _dmul
+ mov r9, r0
+ mov r10, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dsub
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r8
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76EC ; =0xFEFA39EF
+ ldr r1, _020E76F0 ; =0x3FE62E42
+ bl _dmul
+ mov r7, r0
+ mov r8, r1
+ ldr r0, _020E76F4 ; =0x0CA86C39
+ ldr r1, _020E76F8 ; =0xBE205C61
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r8
+ bl _dadd
+ mov r7, r0
+ mov r8, r1
+ mov r0, r9
+ mov r1, r10
+ mov r2, r7
+ mov r3, r8
+ bl _dadd
+ mov r2, r9
+ mov r3, r10
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ bl _dsub
+ mov r8, r0
+ mov r9, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ mov r2, r0
+ str r2, [sp, #0x50]
+ mov r3, r1
+ str r3, [sp, #0x54]
+ ldr r0, _020E76FC ; =0x72BEA4D0
+ ldr r1, _020E7700 ; =0x3E663769
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7704 ; =0xC5D26BF1
+ ldr r1, _020E7708 ; =0xBEBBBD41
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E770C ; =0xAF25DE2C
+ ldr r1, _020E7710 ; =0x3F11566A
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7714 ; =0x16BEBD93
+ ldr r1, _020E7718 ; =0xBF66C16C
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E771C ; =0x5555553E
+ ldr r1, _020E7720 ; =0x3FC55555
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ bl _dsub
+ mov r2, r0
+ str r2, [sp, #0x58]
+ mov r3, r1
+ str r3, [sp, #0x5c]
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ bl _dmul
+ mov r7, r0
+ mov r10, r1
+ ldr r0, [sp, #0x58]
+ ldr r1, [sp, #0x5c]
+ mov r2, #0x0
+ mov r3, #0x40000000
+ bl _dsub
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r10
+ bl _ddiv
+ mov r7, r0
+ mov r10, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r8
+ mov r3, r9
+ bl _dmul
+ mov r2, r0
+ mov r0, r8
+ mov r3, r1
+ mov r1, r9
+ bl _dadd
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r10
+ bl _dsub
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ bl _dsub
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _dsub
+ add r3, r1, r4, lsl #0x14
+ mov r2, r3, asr #0x14
+ str r0, [sp, #0x78]
+ cmp r2, #0x0
+ str r1, [sp, #0x7c]
+ addgt r0, sp, #0x78
+ strgt r3, [r0, #0x4]
+ bgt _020E81F0
+ mov r2, r4
+ bl scalbn
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E81F0:
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ mov r0, r6
+ mov r1, r5
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end __ieee754_pow
+
+ .section .exceptix,4
+ .word __ieee754_pow
+ .short 4488
+ .word UNK_020EC738
+
+ .section .exception,8
+
+ .global UNK_020EC738
+UNK_020EC738: ; 0x020EC738
+ .byte 0x20, 0xFF, 0x01, 0xB8
+ .balign 8
diff --git a/arm9/asm/MSL_DPMath_s_copysign.s b/arm9/asm/MSL_DPMath_s_copysign.s new file mode 100644 index 00000000..b8afdb31 --- /dev/null +++ b/arm9/asm/MSL_DPMath_s_copysign.s @@ -0,0 +1,18 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start copysign
+copysign: ; 0x020E8214
+ stmdb sp!, {r0-r3}
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ bic r1, r1, #0x80000000
+ and r0, r0, #0x80000000
+ orr r1, r1, r0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end copysign
diff --git a/arm9/asm/MSL_DPMath_s_fabs.s b/arm9/asm/MSL_DPMath_s_fabs.s new file mode 100644 index 00000000..049675a4 --- /dev/null +++ b/arm9/asm/MSL_DPMath_s_fabs.s @@ -0,0 +1,16 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start fabs
+fabs: ; 0x020E823C
+ stmdb sp!, {r0-r3}
+ add r2, sp, #0x0
+ ldr r1, [r2, #0x4]
+ ldr r0, [sp, #0x0]
+ bic r1, r1, #0x80000000
+ str r1, [r2, #0x4]
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end fabs
diff --git a/arm9/asm/MSL_DPMath_s_frexp.s b/arm9/asm/MSL_DPMath_s_frexp.s new file mode 100644 index 00000000..b0c22aac --- /dev/null +++ b/arm9/asm/MSL_DPMath_s_frexp.s @@ -0,0 +1,65 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start frexp
+frexp: ; 0x020E825C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r1, [sp, #0xc]
+ ldr r0, _020E8308 ; =0x7FF00000
+ mov r4, r2
+ bic r3, r1, #0x80000000
+ mov r2, #0x0
+ str r2, [r4, #0x0]
+ cmp r3, r0
+ ldr r0, [sp, #0x8]
+ bge _020E8290
+ orrs r0, r3, r0
+ bne _020E82A4
+_020E8290:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E82A4:
+ cmp r3, #0x100000
+ bge _020E82D0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r3, _020E830C ; =0x43500000
+ bl _dmul
+ mvn r2, #0x35
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ str r2, [r4, #0x0]
+ bic r3, r1, #0x80000000
+_020E82D0:
+ ldr r2, _020E8310 ; =0x800FFFFF
+ ldr r0, _020E8314 ; =0xFFFFFC02
+ and r1, r1, r2
+ orr r1, r1, #0xfe00000
+ orr r1, r1, #0x30000000
+ ldr r2, [r4, #0x0]
+ add r0, r0, r3, asr #0x14
+ add r2, r2, r0
+ ldr r0, [sp, #0x8]
+ str r2, [r4, #0x0]
+ str r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E8308: .word 0x7FF00000
+_020E830C: .word 0x43500000
+_020E8310: .word 0x800FFFFF
+_020E8314: .word 0xFFFFFC02
+ arm_func_end frexp
+
+ .section .exceptix,4
+
+ .word frexp
+ .short 189
+ .word 0x00300120
diff --git a/arm9/asm/MSL_DPMath_s_ldexp.s b/arm9/asm/MSL_DPMath_s_ldexp.s new file mode 100644 index 00000000..fc3a4713 --- /dev/null +++ b/arm9/asm/MSL_DPMath_s_ldexp.s @@ -0,0 +1,170 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start ldexp
+ldexp: ; 0x020E8318
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r4, r2
+ bl __fpclassifyf
+ cmp r0, #0x2
+ ble _020E8350
+ mov r0, #0x0
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r1, r0
+ bl _deq
+ bne _020E8364
+_020E8350:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8364:
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8538 ; =0x7FF00000
+ ldr r1, [sp, #0x8]
+ and r0, r3, r0
+ movs r12, r0, asr #0x14
+ bne _020E83F0
+ bic r0, r3, #0x80000000
+ orrs r0, r1, r0
+ ldreq r0, [sp, #0x8]
+ ldreq r1, [sp, #0xc]
+ ldmeqia sp!, {r4,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r3, _020E853C ; =0x43500000
+ mov r2, #0x0
+ bl _dmul
+ mov r3, r1
+ ldr r1, _020E8538 ; =0x7FF00000
+ ldr ip, _020E8540 ; =0xFFFF3CB0
+ and r1, r3, r1
+ mov r2, r0
+ mov r0, r1, asr #0x14
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ cmp r4, r12
+ sub r12, r0, #0x36
+ bge _020E83F0
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E83F0:
+ ldr r0, _020E854C ; =0x000007FF
+ cmp r12, r0
+ bne _020E841C
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r2, r0
+ mov r3, r1
+ bl _dadd
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E841C:
+ add r2, r12, r4
+ sub r0, r0, #0x1
+ cmp r2, r0
+ ble _020E8460
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8460:
+ cmp r2, #0x0
+ ble _020E8488
+ ldr r1, _020E8558 ; =0x800FFFFF
+ ldr r0, [sp, #0x8]
+ and r1, r3, r1
+ orr r1, r1, r2, lsl #0x14
+ str r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8488:
+ mvn r0, #0x35
+ cmp r2, r0
+ bgt _020E8508
+ ldr r0, _020E855C ; =0x0000C350
+ cmp r4, r0
+ ble _020E84D4
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E84D4:
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8508:
+ ldr r0, _020E8558 ; =0x800FFFFF
+ add r1, r2, #0x36
+ and r0, r3, r0
+ orr r3, r0, r1, lsl #0x14
+ ldr r2, [sp, #0x8]
+ ldr r1, _020E8560 ; =0x3C900000
+ mov r0, #0x0
+ str r3, [sp, #0xc]
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E8538: .word 0x7FF00000
+_020E853C: .word 0x43500000
+_020E8540: .word 0xFFFF3CB0
+_020E8544: .word 0xC2F8F359
+_020E8548: .word 0x01A56E1F
+_020E854C: .word 0x000007FF
+_020E8550: .word 0x8800759C
+_020E8554: .word 0x7E37E43C
+_020E8558: .word 0x800FFFFF
+_020E855C: .word 0x0000C350
+_020E8560: .word 0x3C900000
+ arm_func_end ldexp
+
+ .section .exceptix,4
+
+ .word ldexp
+ .short 589
+ .word 0x00300120
diff --git a/arm9/asm/MSL_DPMath_w_pow.s b/arm9/asm/MSL_DPMath_w_pow.s new file mode 100644 index 00000000..8a6625ad --- /dev/null +++ b/arm9/asm/MSL_DPMath_w_pow.s @@ -0,0 +1,18 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start pow
+pow: ; 0x020E8564
+ ldr ip, _020E856C ; =__ieee754_pow
+ bx r12
+ .balign 4
+_020E856C: .word __ieee754_pow
+ arm_func_end pow
+
+ .section .exceptix,4
+
+ .word pow
+ .short 13
+ .word 0x00000000
diff --git a/arm9/asm/MSL_fp_ansi.s b/arm9/asm/MSL_fp_ansi.s new file mode 100644 index 00000000..b10a364e --- /dev/null +++ b/arm9/asm/MSL_fp_ansi.s @@ -0,0 +1,1627 @@ + .include "global.inc"
+ .include "asm/macros.inc"
+
+ .data
+
+ .global UNK_02106E48
+UNK_02106E48: ; 0x02106E48
+ .word 0x00000000, 0x40240000
+ .word 0x00000000, 0x40590000
+ .word 0x00000000, 0x408F4000
+ .word 0x00000000, 0x40C38800
+ .word 0x00000000, 0x40F86A00
+ .word 0x00000000, 0x412E8480
+ .word 0x00000000, 0x416312D0
+ .word 0x00000000, 0x4197D784
+
+ .global UNK_02106E88
+UNK_02106E88: ; 0x02106E88
+ .asciz "542101086242752217003726400434970855712890625"
+
+ .balign 4, 0
+ .global UNK_02106EB8
+UNK_02106EB8: ; 0x02106EB8
+ .asciz "11102230246251565404236316680908203125"
+
+ .balign 4, 0
+ .global UNK_02106EE0
+UNK_02106EE0: ; 0x02106EE0
+ .asciz "23283064365386962890625"
+
+ .balign 4, 0
+ .global UNK_02106EF8
+UNK_02106EF8: ; 0x02106EF8
+ .asciz "152587890625"
+
+ .balign 4, 0
+ .global UNK_02106F08
+UNK_02106F08: ; 0x02106F08
+ .asciz "390625"
+
+ .balign 4, 0
+ .global UNK_02106F10
+UNK_02106F10: ; 0x02106F10
+ .asciz "78125"
+
+ .balign 4, 0
+ .global UNK_02106F18
+UNK_02106F18: ; 0x02106F18
+ .asciz "15625"
+
+ .balign 4, 0
+ .global UNK_02106F20
+UNK_02106F20: ; 0x02106F20
+ .asciz "3125"
+
+ .balign 4, 0
+ .global UNK_02106F28
+UNK_02106F28: ; 0x02106F28
+ .asciz "625"
+
+ .balign 4, 0
+ .global UNK_02106F2C
+UNK_02106F2C: ; 0x02106F2C
+ .asciz "125"
+
+ .balign 4, 0
+ .global UNK_02106F30
+UNK_02106F30: ; 0x02106F30
+ .asciz "25"
+
+ .balign 4, 0
+ .global UNK_02106F34
+UNK_02106F34: ; 0x02106F34
+ .asciz "5"
+
+ .balign 4, 0
+ .global UNK_02106F38
+UNK_02106F38: ; 0x02106F38
+ .asciz "1"
+
+ .balign 4, 0
+ .global UNK_02106F3C
+UNK_02106F3C: ; 0x02106F3C
+ .asciz "2"
+
+ .balign 4, 0
+ .global UNK_02106F40
+UNK_02106F40: ; 0x02106F40
+ .asciz "4"
+
+ .balign 4, 0
+ .global UNK_02106F44
+UNK_02106F44: ; 0x02106F44
+ .asciz "8"
+
+ .balign 4, 0
+ .global UNK_02106F48
+UNK_02106F48: ; 0x02106F48
+ .asciz "16"
+
+ .balign 4, 0
+ .global UNK_02106F4C
+UNK_02106F4C: ; 0x02106F4C
+ .asciz "32"
+
+ .balign 4, 0
+ .global UNK_02106F50
+UNK_02106F50: ; 0x02106F50
+ .asciz "64"
+
+ .balign 4, 0
+ .global UNK_02106F54
+UNK_02106F54: ; 0x02106F54
+ .asciz "128"
+
+ .balign 4, 0
+ .global UNK_02106F58
+UNK_02106F58: ; 0x02106F58
+ .asciz "256"
+
+ .balign 4, 0
+ .global UNK_02106F5C
+UNK_02106F5C: ; 0x02106F5C
+ .asciz "179769313486231580793728714053034151"
+
+ .text
+
+ arm_func_start __must_round
+__must_round: ; 0x020E8570
+ add r3, r0, #0x5
+ ldrb r2, [r3, r1]
+ add r12, r3, r1
+ cmp r2, #0x5
+ movhi r0, #0x1
+ bxhi lr
+ mvncc r0, #0x0
+ bxcc lr
+ ldrb r2, [r0, #0x4]
+ add r12, r12, #0x1
+ add r3, r3, r2
+ cmp r12, r3
+ bhs _020E85C0
+_020E85A4:
+ ldrb r2, [r12, #0x0]
+ cmp r2, #0x0
+ movne r0, #0x1
+ bxne lr
+ add r12, r12, #0x1
+ cmp r12, r3
+ blo _020E85A4
+_020E85C0:
+ sub r1, r1, #0x1
+ add r0, r0, r1
+ ldrb r0, [r0, #0x5]
+ tst r0, #0x1
+ movne r0, #0x1
+ mvneq r0, #0x0
+ bx lr
+ arm_func_end __must_round
+
+ arm_func_start __dorounddecup
+__dorounddecup: ; 0x020E85DC
+ add r3, r0, #0x5
+ add r1, r3, r1
+ sub r12, r1, #0x1
+ mov r1, #0x0
+_020E85EC:
+ ldrb r2, [r12, #0x0]
+ cmp r2, #0x9
+ addcc r0, r2, #0x1
+ strccb r0, [r12, #0x0]
+ bxcc lr
+ cmp r12, r3
+ bne _020E8620
+ mov r1, #0x1
+ strb r1, [r12, #0x0]
+ ldrsh r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x2]
+ bx lr
+_020E8620:
+ strb r1, [r12], #-0x1
+ b _020E85EC
+ bx lr
+ arm_func_end __dorounddecup
+
+ arm_func_start __rounddec
+__rounddec: ; 0x020E862C
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r1
+ mov r5, r0
+ cmp r4, #0x0
+ ldmleia sp!, {r3-r5,pc}
+ ldrb r2, [r5, #0x4]
+ cmp r4, r2
+ ldmgeia sp!, {r3-r5,pc}
+ bl __must_round
+ strb r4, [r5, #0x4]
+ cmp r0, #0x0
+ ldmltia sp!, {r3-r5,pc}
+ mov r0, r5
+ mov r1, r4
+ bl __dorounddecup
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __rounddec
+
+ arm_func_start __ull2dec
+__ull2dec: ; 0x020E866C
+ stmdb sp!, {r3-r11,lr}
+ mov r10, r0
+ mov r0, #0x0
+ mov r8, r2
+ strb r0, [r10, #0x0]
+ mov r9, r1
+ cmp r8, #0x0
+ strb r0, [r10, #0x4]
+ cmpeq r9, #0x0
+ beq _020E86F8
+ mov r6, #0xa
+ mov r11, r0
+ mov r5, r0
+ mov r4, r0
+_020E86A4:
+ ldrb r1, [r10, #0x4]
+ mov r0, r9
+ mov r2, r6
+ add r3, r1, #0x1
+ mov r7, r1
+ strb r3, [r10, #0x4]
+ mov r1, r8
+ mov r3, r11
+ bl _ull_mod
+ add r1, r10, r7
+ strb r0, [r1, #0x5]
+ mov r0, r9
+ mov r1, r8
+ mov r2, #0xa
+ mov r3, #0x0
+ bl _ll_udiv
+ mov r8, r1
+ mov r9, r0
+ cmp r8, r5
+ cmpeq r9, r4
+ bne _020E86A4
+_020E86F8:
+ ldrb r0, [r10, #0x4]
+ add r2, r10, #0x5
+ add r0, r2, r0
+ sub r3, r0, #0x1
+ cmp r2, r3
+ bhs _020E8728
+_020E8710:
+ ldrb r0, [r3, #0x0]
+ ldrb r1, [r2, #0x0]
+ strb r0, [r2], #0x1
+ strb r1, [r3], #-0x1
+ cmp r2, r3
+ blo _020E8710
+_020E8728:
+ ldrb r0, [r10, #0x4]
+ sub r0, r0, #0x1
+ strh r0, [r10, #0x2]
+ ldmia sp!, {r3-r11,pc}
+ arm_func_end __ull2dec
+
+ arm_func_start __timesdec
+__timesdec: ; 0x020E8738
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x40
+ ldrb r6, [r1, #0x4]
+ ldrb r5, [r2, #0x4]
+ mov r4, #0x0
+ add r3, sp, #0x0
+ add r5, r6, r5
+ sub r5, r5, #0x1
+ add r3, r3, r5
+ add r6, r3, #0x1
+ mov r7, r6
+ strb r4, [r0, #0x0]
+ cmp r5, #0x0
+ ble _020E8800
+ add lr, r1, #0x5
+ add r11, r2, #0x5
+_020E8778:
+ ldrb r3, [r2, #0x4]
+ sub r10, r3, #0x1
+ sub r3, r5, r10
+ subs r9, r3, #0x1
+ ldrb r3, [r1, #0x4]
+ movmi r9, #0x0
+ submi r10, r5, #0x1
+ add r8, r10, #0x1
+ sub r3, r3, r9
+ cmp r8, r3
+ movgt r8, r3
+ add r10, r11, r10
+ add r9, lr, r9
+ cmp r8, #0x0
+ ble _020E87CC
+_020E87B4:
+ ldrb r12, [r9], #0x1
+ ldrb r3, [r10], #-0x1
+ sub r8, r8, #0x1
+ cmp r8, #0x0
+ mla r4, r12, r3, r4
+ bgt _020E87B4
+_020E87CC:
+ ldr r3, _020E88B8 ; =0xCCCCCCCD
+ sub r5, r5, #0x1
+ umull r8, r9, r4, r3
+ mov r9, r9, lsr #0x3
+ cmp r5, #0x0
+ mov r10, #0xa
+ umull r8, r9, r10, r9
+ sub r9, r4, r8
+ strb r9, [r6, #-0x1]!
+ mov r8, r4
+ umull r3, r4, r8, r3
+ mov r4, r4, lsr #0x3
+ bgt _020E8778
+_020E8800:
+ ldrsh r3, [r1, #0x2]
+ ldrsh r1, [r2, #0x2]
+ cmp r4, #0x0
+ add r1, r3, r1
+ strh r1, [r0, #0x2]
+ beq _020E8828
+ strb r4, [r6, #-0x1]!
+ ldrsh r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x2]
+_020E8828:
+ mov r3, #0x0
+ b _020E8840
+_020E8830:
+ ldrb r2, [r6], #0x1
+ add r1, r0, r3
+ add r3, r3, #0x1
+ strb r2, [r1, #0x5]
+_020E8840:
+ cmp r3, #0x20
+ bge _020E8850
+ cmp r6, r7
+ blo _020E8830
+_020E8850:
+ cmp r6, r7
+ addcs sp, sp, #0x40
+ strb r3, [r0, #0x4]
+ ldmcsia sp!, {r3-r11,pc}
+ ldrb r1, [r6, #0x0]
+ cmp r1, #0x5
+ addcc sp, sp, #0x40
+ ldmccia sp!, {r3-r11,pc}
+ bne _020E88A8
+ add r2, r6, #0x1
+ cmp r2, r7
+ bhs _020E8898
+_020E8880:
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020E88A8
+ add r2, r2, #0x1
+ cmp r2, r7
+ blo _020E8880
+_020E8898:
+ ldrb r1, [r6, #-0x1]
+ tst r1, #0x1
+ addeq sp, sp, #0x40
+ ldmeqia sp!, {r3-r11,pc}
+_020E88A8:
+ ldrb r1, [r0, #0x4]
+ bl __dorounddecup
+ add sp, sp, #0x40
+ ldmia sp!, {r3-r11,pc}
+ .balign 4
+_020E88B8: .word 0xCCCCCCCD
+ arm_func_end __timesdec
+
+ arm_func_start __str2dec
+__str2dec: ; 0x020E88BC
+ stmdb sp!, {r3,lr}
+ strh r2, [r0, #0x2]
+ mov r12, #0x0
+ strb r12, [r0, #0x0]
+ b _020E88E4
+_020E88D0:
+ ldrsb r3, [r1], #0x1
+ add r2, r0, r12
+ add r12, r12, #0x1
+ sub r3, r3, #0x30
+ strb r3, [r2, #0x5]
+_020E88E4:
+ cmp r12, #0x20
+ bge _020E88F8
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020E88D0
+_020E88F8:
+ strb r12, [r0, #0x4]
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ ldmeqia sp!, {r3,pc}
+ cmp r2, #0x5
+ ldmltia sp!, {r3,pc}
+ bgt _020E894C
+ ldrsb r2, [r1, #0x1]
+ add r1, r1, #0x1
+ cmp r2, #0x0
+ beq _020E8938
+_020E8924:
+ cmp r2, #0x30
+ bne _020E894C
+ ldrsb r2, [r1, #0x1]!
+ cmp r2, #0x0
+ bne _020E8924
+_020E8938:
+ sub r1, r12, #0x1
+ add r1, r0, r1
+ ldrb r1, [r1, #0x5]
+ tst r1, #0x1
+ ldmeqia sp!, {r3,pc}
+_020E894C:
+ ldrb r1, [r0, #0x4]
+ bl __dorounddecup
+ ldmia sp!, {r3,pc}
+ arm_func_end __str2dec
+
+ arm_func_start __two_exp
+__two_exp: ; 0x020E8958
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4c
+ mov r4, r1
+ mvn r2, #0x34
+ mov r5, r0
+ cmp r4, r2
+ bgt _020E8988
+ bge _020E8A54
+ sub r0, r2, #0xb
+ cmp r4, r0
+ beq _020E8A3C
+ b _020E8BE4
+_020E8988:
+ add r1, r4, #0x20
+ cmp r1, #0x28
+ addls pc, pc, r1, lsl #0x2
+ b _020E8BE4
+ b _020E8A68 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8A7C ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8BE4 ; case
+ b _020E8A90 ; case
+ b _020E8AA4 ; case
+ b _020E8AB8 ; case
+ b _020E8ACC ; case
+ b _020E8AE0 ; case
+ b _020E8AF4 ; case
+ b _020E8B08 ; case
+ b _020E8B1C ; case
+ b _020E8B30 ; case
+ b _020E8B44 ; case
+ b _020E8B58 ; case
+ b _020E8B6C ; case
+ b _020E8B80 ; case
+ b _020E8B94 ; case
+ b _020E8BA8 ; case
+ b _020E8BBC ; case
+ b _020E8BD0 ; case
+_020E8A3C:
+ ldr r1, _020E8C88 ; =UNK_02106E88
+ mov r0, r5
+ mvn r2, #0x13
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A54:
+ ldr r1, _020E8C8C ; =UNK_02106EB8
+ add r2, r2, #0x25
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A68:
+ ldr r1, _020E8C90 ; =UNK_02106EE0
+ add r2, r2, #0x2b
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A7C:
+ ldr r1, _020E8C94 ; =UNK_02106EF8
+ add r2, r2, #0x30
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A90:
+ ldr r1, _020E8C98 ; =UNK_02106F08
+ add r2, r2, #0x32
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AA4:
+ ldr r1, _020E8C9C ; =UNK_02106F10
+ add r2, r2, #0x32
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AB8:
+ ldr r1, _020E8CA0 ; =UNK_02106F18
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8ACC:
+ ldr r1, _020E8CA4 ; =UNK_02106F20
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AE0:
+ ldr r1, _020E8CA8 ; =UNK_02106F28
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AF4:
+ ldr r1, _020E8CAC ; =UNK_02106F2C
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B08:
+ ldr r1, _020E8CB0 ; =UNK_02106F30
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B1C:
+ ldr r1, _020E8CB4 ; =UNK_02106F34
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B30:
+ ldr r1, _020E8CB8 ; =UNK_02106F38
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B44:
+ ldr r1, _020E8CBC ; =UNK_02106F3C
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B58:
+ ldr r1, _020E8CC0 ; =UNK_02106F40
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B6C:
+ ldr r1, _020E8CC4 ; =UNK_02106F44
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B80:
+ ldr r1, _020E8CC8 ; =UNK_02106F48
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B94:
+ ldr r1, _020E8CCC ; =UNK_02106F4C
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BA8:
+ ldr r1, _020E8CD0 ; =UNK_02106F50
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BBC:
+ ldr r1, _020E8CD4 ; =UNK_02106F54
+ mov r2, #0x2
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BD0:
+ ldr r1, _020E8CD8 ; =UNK_02106F58
+ mov r2, #0x2
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BE4:
+ and r0, r4, #0x80000000
+ add r1, r4, r0, lsr #0x1f
+ add r0, sp, #0x26
+ mov r1, r1, asr #0x1
+ bl __two_exp
+ add r1, sp, #0x26
+ mov r0, r5
+ mov r2, r1
+ bl __timesdec
+ tst r4, #0x1
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r5,pc}
+ add r3, sp, #0x0
+ mov r12, r5
+ mov r2, #0x9
+_020E8C20:
+ ldrh r1, [r12, #0x0]
+ ldrh r0, [r12, #0x2]
+ add r12, r12, #0x4
+ subs r2, r2, #0x1
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ bne _020E8C20
+ ldrh r0, [r12, #0x0]
+ cmp r4, #0x0
+ strh r0, [r3, #0x0]
+ add r0, sp, #0x26
+ ble _020E8C64
+ ldr r1, _020E8CBC ; =UNK_02106F3C
+ mov r2, #0x0
+ bl __str2dec
+ b _020E8C70
+_020E8C64:
+ ldr r1, _020E8CB4 ; =UNK_02106F34
+ mvn r2, #0x0
+ bl __str2dec
+_020E8C70:
+ add r1, sp, #0x0
+ add r2, sp, #0x26
+ mov r0, r5
+ bl __timesdec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E8C88: .word UNK_02106E88
+_020E8C8C: .word UNK_02106EB8
+_020E8C90: .word UNK_02106EE0
+_020E8C94: .word UNK_02106EF8
+_020E8C98: .word UNK_02106F08
+_020E8C9C: .word UNK_02106F10
+_020E8CA0: .word UNK_02106F18
+_020E8CA4: .word UNK_02106F20
+_020E8CA8: .word UNK_02106F28
+_020E8CAC: .word UNK_02106F2C
+_020E8CB0: .word UNK_02106F30
+_020E8CB4: .word UNK_02106F34
+_020E8CB8: .word UNK_02106F38
+_020E8CBC: .word UNK_02106F3C
+_020E8CC0: .word UNK_02106F40
+_020E8CC4: .word UNK_02106F44
+_020E8CC8: .word UNK_02106F48
+_020E8CCC: .word UNK_02106F4C
+_020E8CD0: .word UNK_02106F50
+_020E8CD4: .word UNK_02106F54
+_020E8CD8: .word UNK_02106F58
+ arm_func_end __two_exp
+
+ arm_func_start __equals_dec
+__equals_dec:
+ stmdb sp!, {r4,lr}
+ ldrb r3, [r0, #0x5]
+ cmp r3, #0x0
+ bne _020E8D00
+ ldrb r0, [r1, #0x5]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020E8D00:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x0
+ bne _020E8D1C
+ cmp r3, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020E8D1C:
+ ldrsh r3, [r0, #0x2]
+ ldrsh r2, [r1, #0x2]
+ cmp r3, r2
+ bne _020E8DB4
+ ldrb r4, [r0, #0x4]
+ ldrb r2, [r1, #0x4]
+ mov r12, #0x0
+ mov lr, r4
+ cmp r4, r2
+ movgt lr, r2
+ cmp lr, #0x0
+ ble _020E8D74
+_020E8D4C:
+ add r3, r0, r12
+ add r2, r1, r12
+ ldrb r3, [r3, #0x5]
+ ldrb r2, [r2, #0x5]
+ cmp r3, r2
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ add r12, r12, #0x1
+ cmp r12, lr
+ blt _020E8D4C
+_020E8D74:
+ cmp lr, r4
+ moveq r0, r1
+ ldrb r1, [r0, #0x4]
+ cmp r12, r1
+ bge _020E8DAC
+_020E8D88:
+ add r1, r0, r12
+ ldrb r1, [r1, #0x5]
+ cmp r1, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldrb r1, [r0, #0x4]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blt _020E8D88
+_020E8DAC:
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020E8DB4:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ arm_func_end __equals_dec
+
+ arm_func_start __less_dec
+__less_dec:
+ stmdb sp!, {r3-r5,lr}
+ ldrb r2, [r0, #0x5]
+ cmp r2, #0x0
+ bne _020E8DE0
+ ldrb r0, [r1, #0x5]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E8DE0:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+ ldrsh r3, [r1, #0x2]
+ ldrsh r2, [r0, #0x2]
+ cmp r2, r3
+ bne _020E8E90
+ ldrb r5, [r0, #0x4]
+ ldrb r4, [r1, #0x4]
+ mov r12, #0x0
+ mov lr, r5
+ cmp r5, r4
+ movgt lr, r4
+ cmp lr, #0x0
+ ble _020E8E54
+_020E8E20:
+ add r3, r1, r12
+ add r2, r0, r12
+ ldrb r3, [r3, #0x5]
+ ldrb r2, [r2, #0x5]
+ cmp r2, r3
+ movcc r0, #0x1
+ ldmccia sp!, {r3-r5,pc}
+ cmp r3, r2
+ movcc r0, #0x0
+ ldmccia sp!, {r3-r5,pc}
+ add r12, r12, #0x1
+ cmp r12, lr
+ blt _020E8E20
+_020E8E54:
+ cmp lr, r5
+ bne _020E8E88
+ cmp r12, r4
+ bge _020E8E88
+_020E8E64:
+ add r0, r1, r12
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x0
+ movne r0, #0x1
+ ldmneia sp!, {r3-r5,pc}
+ ldrb r0, [r1, #0x4]
+ add r12, r12, #0x1
+ cmp r12, r0
+ blt _020E8E64
+_020E8E88:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E8E90:
+ movlt r0, #0x1
+ movge r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __less_dec
+
+ arm_func_start __minus_dec
+__minus_dec: ; 0x020E8E9C
+ stmdb sp!, {r3-r7,lr}
+ mov r6, r0
+ mov r5, #0x9
+_020E8EA8:
+ ldrh r4, [r1, #0x0]
+ ldrh r3, [r1, #0x2]
+ add r1, r1, #0x4
+ subs r5, r5, #0x1
+ strh r4, [r6, #0x0]
+ strh r3, [r6, #0x2]
+ add r6, r6, #0x4
+ bne _020E8EA8
+ ldrh r1, [r1, #0x0]
+ strh r1, [r6, #0x0]
+ ldrb r1, [r2, #0x5]
+ cmp r1, #0x0
+ ldmeqia sp!, {r3-r7,pc}
+ ldrb r7, [r0, #0x4]
+ ldrb r3, [r2, #0x4]
+ ldrsh r4, [r0, #0x2]
+ mov r1, r7
+ cmp r7, r3
+ movlt r1, r3
+ ldrsh r3, [r2, #0x2]
+ sub r6, r4, r3
+ add r1, r1, r6
+ cmp r1, #0x20
+ movgt r1, #0x20
+ cmp r7, r1
+ bge _020E8F34
+ mov r4, #0x0
+_020E8F14:
+ ldrb r5, [r0, #0x4]
+ add r3, r0, r7
+ add r5, r5, #0x1
+ strb r5, [r0, #0x4]
+ strb r4, [r3, #0x5]
+ ldrb r7, [r0, #0x4]
+ cmp r7, r1
+ blt _020E8F14
+_020E8F34:
+ ldrb r4, [r2, #0x4]
+ add r3, r0, #0x5
+ add r12, r3, r1
+ add r4, r4, r6
+ cmp r4, r1
+ addlt r12, r3, r4
+ sub r4, r12, r3
+ add r1, r2, #0x5
+ sub r4, r4, r6
+ add lr, r1, r4
+ mov r4, lr
+ b _020E8FC8
+_020E8F64:
+ ldrb r7, [r12, #-0x1]!
+ ldrb r5, [lr, #-0x1]!
+ cmp r7, r5
+ bhs _020E8FB8
+ ldrb r7, [r12, #-0x1]
+ sub r5, r12, #0x1
+ cmp r7, #0x0
+ bne _020E8F90
+_020E8F84:
+ ldrb r7, [r5, #-0x1]!
+ cmp r7, #0x0
+ beq _020E8F84
+_020E8F90:
+ cmp r5, r12
+ beq _020E8FB8
+_020E8F98:
+ ldrb r7, [r5, #0x0]
+ sub r7, r7, #0x1
+ strb r7, [r5, #0x0]
+ ldrb r7, [r5, #0x1]!
+ cmp r5, r12
+ add r7, r7, #0xa
+ strb r7, [r5, #0x0]
+ bne _020E8F98
+_020E8FB8:
+ ldrb r7, [r12, #0x0]
+ ldrb r5, [lr, #0x0]
+ sub r5, r7, r5
+ strb r5, [r12, #0x0]
+_020E8FC8:
+ cmp r12, r3
+ cmphi lr, r1
+ bhi _020E8F64
+ ldrb r5, [r2, #0x4]
+ sub lr, r4, r1
+ cmp lr, r5
+ bge _020E90A4
+ ldrb r1, [r4, #0x0]
+ mov r7, #0x0
+ cmp r1, #0x5
+ movcc r7, #0x1
+ blo _020E9040
+ bne _020E9040
+ add r1, r2, #0x5
+ add r2, r1, r5
+ add r4, r4, #0x1
+ cmp r4, r2
+ bhs _020E9028
+_020E9010:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _020E90A4
+ add r4, r4, #0x1
+ cmp r4, r2
+ blo _020E9010
+_020E9028:
+ add r1, r3, lr
+ add r2, r1, r6
+ ldrb r1, [r2, #-0x1]
+ sub r12, r2, #0x1
+ tst r1, #0x1
+ movne r7, #0x1
+_020E9040:
+ cmp r7, #0x0
+ beq _020E90A4
+ ldrb r1, [r12, #0x0]
+ cmp r1, #0x1
+ bhs _020E9098
+ ldrb r1, [r12, #-0x1]
+ sub r2, r12, #0x1
+ cmp r1, #0x0
+ bne _020E9070
+_020E9064:
+ ldrb r1, [r2, #-0x1]!
+ cmp r1, #0x0
+ beq _020E9064
+_020E9070:
+ cmp r2, r12
+ beq _020E9098
+_020E9078:
+ ldrb r1, [r2, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r2, #0x0]
+ ldrb r1, [r2, #0x1]!
+ cmp r2, r12
+ add r1, r1, #0xa
+ strb r1, [r2, #0x0]
+ bne _020E9078
+_020E9098:
+ ldrb r1, [r12, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r12, #0x0]
+_020E90A4:
+ ldrb r1, [r3, #0x0]
+ mov r5, r3
+ cmp r1, #0x0
+ bne _020E90C0
+_020E90B4:
+ ldrb r1, [r5, #0x1]!
+ cmp r1, #0x0
+ beq _020E90B4
+_020E90C0:
+ cmp r5, r3
+ bls _020E9108
+ ldrsh r1, [r0, #0x2]
+ sub r2, r5, r3
+ and r4, r2, #0xff
+ sub r1, r1, r4
+ strh r1, [r0, #0x2]
+ ldrb r1, [r0, #0x4]
+ add r2, r3, r1
+ cmp r5, r2
+ bhs _020E90FC
+_020E90EC:
+ ldrb r1, [r5], #0x1
+ cmp r5, r2
+ strb r1, [r3], #0x1
+ blo _020E90EC
+_020E90FC:
+ ldrb r1, [r0, #0x4]
+ sub r1, r1, r4
+ strb r1, [r0, #0x4]
+_020E9108:
+ ldrb r1, [r0, #0x4]
+ add r2, r0, #0x5
+ add r3, r2, r1
+ cmp r3, r2
+ bls _020E9130
+_020E911C:
+ ldrb r1, [r3, #-0x1]!
+ cmp r1, #0x0
+ bne _020E9130
+ cmp r3, r2
+ bhi _020E911C
+_020E9130:
+ sub r1, r3, r2
+ add r1, r1, #0x1
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r7,pc}
+ arm_func_end __minus_dec
+
+ arm_func_start __num2dec_internal
+__num2dec_internal:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x58
+ mov r8, r1
+ mov r6, r2
+ mov r7, r0
+ mov r0, r8
+ mov r1, r6
+ bl __signbitf
+ cmp r0, #0x0
+ movne r1, #0x1
+ moveq r1, #0x0
+ mov r4, r1, lsl #0x18
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r8
+ mov r3, r6
+ mov r5, r4, asr #0x18
+ bl _deq
+ bne _020E91AC
+ strb r5, [r7, #0x0]
+ mov r1, #0x0
+ strh r1, [r7, #0x2]
+ mov r0, #0x1
+ strb r0, [r7, #0x4]
+ add sp, sp, #0x58
+ strb r1, [r7, #0x5]
+ ldmia sp!, {r4-r8,pc}
+_020E91AC:
+ mov r0, r8
+ mov r1, r6
+ bl __fpclassifyf
+ cmp r0, #0x2
+ bgt _020E91F8
+ strb r5, [r7, #0x0]
+ mov r2, #0x0
+ strh r2, [r7, #0x2]
+ mov r2, #0x1
+ mov r0, r8
+ mov r1, r6
+ strb r2, [r7, #0x4]
+ bl __fpclassifyf
+ cmp r0, #0x1
+ moveq r0, #0x4e
+ movne r0, #0x49
+ add sp, sp, #0x58
+ strb r0, [r7, #0x5]
+ ldmia sp!, {r4-r8,pc}
+_020E91F8:
+ cmp r5, #0x0
+ beq _020E921C
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r8
+ mov r3, r6
+ bl _dsub
+ mov r8, r0
+ mov r6, r1
+_020E921C:
+ add r2, sp, #0x8
+ mov r0, r8
+ mov r1, r6
+ bl frexp
+ mov r4, r0
+ mov r6, r1
+ orr r12, r4, #0x0
+ rsbs r2, r12, #0x0
+ orr r3, r6, #0x100000
+ rsc r1, r3, #0x0
+ mov r0, #0x0
+ and r3, r3, r1
+ sub r1, r0, #0x1
+ and r12, r12, r2
+ mov r2, r1
+ adds r0, r12, r1
+ adc r1, r3, r2
+ str r4, [sp, #0x0]
+ str r6, [sp, #0x4]
+ bl __msl_generic_count_bits64
+ rsb r8, r0, #0x35
+ ldr r1, [sp, #0x8]
+ add r0, sp, #0xc
+ sub r1, r1, r8
+ bl __two_exp
+ mov r0, r4
+ mov r1, r6
+ mov r2, r8
+ bl ldexp
+ bl _ll_ufrom_d
+ mov r2, r1
+ mov r1, r0
+ add r0, sp, #0x32
+ bl __ull2dec
+ mov r0, r7
+ add r1, sp, #0x32
+ add r2, sp, #0xc
+ bl __timesdec
+ strb r5, [r7, #0x0]
+ add sp, sp, #0x58
+ ldmia sp!, {r4-r8,pc}
+ arm_func_end __num2dec_internal
+
+ arm_func_start __num2dec_internal2
+__num2dec_internal2: ; 0x020E92C0
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r3
+ ldrsh r5, [r0, #0x2]
+ mov r0, r4
+ bl __num2dec_internal
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x9
+ ldmhiia sp!, {r3-r5,pc}
+ cmp r5, #0x20
+ movgt r5, #0x20
+ mov r0, r4
+ mov r1, r5
+ bl __rounddec
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ bge _020E9324
+ mov r1, #0x0
+_020E9304:
+ ldrb r2, [r4, #0x4]
+ add r0, r4, r0
+ add r2, r2, #0x1
+ strb r2, [r4, #0x4]
+ strb r1, [r0, #0x5]
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ blt _020E9304
+_020E9324:
+ ldrsh r1, [r4, #0x2]
+ sub r0, r0, #0x1
+ mov r2, #0x0
+ sub r0, r1, r0
+ strh r0, [r4, #0x2]
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x0
+ ldmleia sp!, {r3-r5,pc}
+_020E9344:
+ add r1, r4, r2
+ ldrb r0, [r1, #0x5]
+ add r2, r2, #0x1
+ add r0, r0, #0x30
+ strb r0, [r1, #0x5]
+ ldrb r0, [r4, #0x4]
+ cmp r2, r0
+ blt _020E9344
+ ldmia sp!, {r3-r5,pc}
+ arm_func_end __num2dec_internal2
+
+ arm_func_start __dec2num
+__dec2num: ; 0x020E9368
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xfc
+ mov r4, r0
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _020E93A8
+ ldrsb r0, [r4, #0x0]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ldreq r3, _020E996C ; =0x3FF00000
+ mov r0, #0x0
+ ldrne r3, _020E9970 ; =0xBFF00000
+ mov r1, r0
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E93A8:
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x30
+ beq _020E93C8
+ cmp r0, #0x49
+ beq _020E93F0
+ cmp r0, #0x4e
+ beq _020E9424
+ b _020E946C
+_020E93C8:
+ ldrsb r0, [r4, #0x0]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ldreq r3, _020E996C ; =0x3FF00000
+ mov r0, #0x0
+ ldrne r3, _020E9970 ; =0xBFF00000
+ mov r1, r0
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E93F0:
+ ldrsb r0, [r4, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldreq r4, _020E996C ; =0x3FF00000
+ ldr r0, _020E9974 ; =__float_huge
+ ldrne r4, _020E9970 ; =0xBFF00000
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ mov r2, r5
+ mov r3, r4
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E9424:
+ ldr r1, _020E9978 ; =0x7FF00000
+ add r3, sp, #0x10
+ mov r2, #0x0
+ str r2, [r3, #0x0]
+ str r1, [r3, #0x4]
+ ldrsb r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020E9454
+ orr r0, r1, #0x80000000
+ orr r1, r2, r2
+ str r1, [r3, #0x0]
+ str r0, [r3, #0x4]
+_020E9454:
+ ldmia r3, {r0-r1}
+ orr r0, r0, #0x0
+ orr r1, r1, #0x80000
+ stmia r3, {r0-r1}
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E946C:
+ add r3, sp, #0xd6
+ mov r5, r4
+ mov r2, #0x9
+_020E9478:
+ ldrh r1, [r5, #0x0]
+ ldrh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ bne _020E9478
+ ldrh r0, [r5, #0x0]
+ add r1, sp, #0xdb
+ strh r0, [r3, #0x0]
+ ldrb r0, [sp, #0xda]
+ add r5, r1, r0
+ cmp r1, r5
+ bhs _020E94C8
+_020E94B4:
+ ldrb r0, [r1, #0x0]
+ sub r0, r0, #0x30
+ strb r0, [r1], #0x1
+ cmp r1, r5
+ blo _020E94B4
+_020E94C8:
+ ldrb r1, [sp, #0xda]
+ ldrsh r2, [sp, #0xd8]
+ add r0, sp, #0xb0
+ sub r1, r1, #0x1
+ add r1, r2, r1
+ strh r1, [sp, #0xd8]
+ ldr r1, _020E997C ; =UNK_02106F5C
+ mov r2, #0x134
+ ldrsh r11, [sp, #0xd8]
+ bl __str2dec
+ add r0, sp, #0xb0
+ add r1, sp, #0xd6
+ bl __less_dec
+ cmp r0, #0x0
+ beq _020E9538
+ ldrsb r0, [r4, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldreq r4, _020E996C ; =0x3FF00000
+ ldr r0, _020E9974 ; =__float_huge
+ ldrne r4, _020E9970 ; =0xBFF00000
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ mov r2, r5
+ mov r3, r4
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E9538:
+ add r1, sp, #0xdb
+ ldrb r0, [r1, #0x0]
+ add r8, r1, #0x1
+ bl _dfltu
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ cmp r8, r5
+ bhs _020E9610
+_020E9558:
+ sub r0, r5, r8
+ mov r1, r0, lsr #0x1f
+ rsb r0, r1, r0, lsl #0x1d
+ adds r7, r1, r0, ror #0x1d
+ moveq r7, #0x8
+ mov r6, #0x0
+ mov r2, #0x0
+ cmp r7, #0x0
+ ble _020E9594
+ mov r0, #0xa
+_020E9580:
+ ldrb r1, [r8], #0x1
+ add r2, r2, #0x1
+ cmp r2, r7
+ mla r6, r0, r6, r1
+ blt _020E9580
+_020E9594:
+ ldr r0, _020E9980 ; =UNK_02106E48
+ ldr r1, [sp, #0xc]
+ add r3, r0, r7, lsl #0x3
+ ldr r2, [r3, #-0x8]
+ ldr r0, [sp, #0x8]
+ ldr r3, [r3, #-0x4]
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ mov r0, r6
+ bl _dfltu
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r9
+ bl _dadd
+ cmp r6, #0x0
+ mov r6, r0
+ mov r10, r1
+ beq _020E95FC
+ mov r0, r4
+ mov r1, r9
+ mov r2, r6
+ mov r3, r10
+ bl _deq
+ beq _020E9610
+_020E95FC:
+ str r6, [sp, #0x8]
+ str r10, [sp, #0xc]
+ cmp r8, r5
+ sub r11, r11, r7
+ blo _020E9558
+_020E9610:
+ cmp r11, #0x0
+ bge _020E9654
+ rsb r0, r11, #0x0
+ bl _dflt
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E9984 ; =0x40140000
+ mov r0, #0x0
+ bl pow
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ bl _ddiv
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ b _020E968C
+_020E9654:
+ mov r0, r11
+ bl _dflt
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E9984 ; =0x40140000
+ mov r0, #0x0
+ bl pow
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ bl _dmul
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+_020E968C:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r2, r11
+ bl ldexp
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ bl __fpclassifyf
+ cmp r0, #0x2
+ bne _020E96C0
+ ldr r0, _020E9988 ; =0x7FEFFFFF
+ mvn r1, #0x0
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020E96C0:
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ add r0, sp, #0x8a
+ add r4, sp, #0x0
+ mov r5, #0x0
+ bl __num2dec_internal
+ add r0, sp, #0x8a
+ add r1, sp, #0xd6
+ bl __equals_dec
+ cmp r0, #0x0
+ bne _020E9934
+ add r0, sp, #0x8a
+ add r1, sp, #0xd6
+ bl __less_dec
+ cmp r0, #0x0
+ movne r5, #0x1
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ cmp r5, #0x0
+ moveq r6, #0x1
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ movne r6, #0x0
+_020E971C:
+ cmp r6, #0x0
+ bne _020E9744
+ ldmia r4, {r0-r1}
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ stmia r4, {r0-r1}
+ bl __fpclassifyf
+ cmp r0, #0x2
+ beq _020E9934
+ b _020E975C
+_020E9744:
+ ldr r1, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ subs r1, r1, #0x1
+ sbc r0, r0, #0x0
+ str r1, [r4, #0x0]
+ str r0, [r4, #0x4]
+_020E975C:
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, sp, #0x64
+ bl __num2dec_internal
+ cmp r5, #0x0
+ beq _020E9788
+ add r0, sp, #0x64
+ add r1, sp, #0xd6
+ bl __less_dec
+ cmp r0, #0x0
+ beq _020E98AC
+_020E9788:
+ cmp r5, #0x0
+ bne _020E9864
+ add r0, sp, #0xd6
+ add r1, sp, #0x64
+ bl __less_dec
+ cmp r0, #0x0
+ bne _020E9864
+ add r3, sp, #0x8a
+ add r5, sp, #0x3e
+ mov r2, #0x9
+_020E97B0:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r5, #0x0]
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ bne _020E97B0
+ ldrh r0, [r3, #0x0]
+ add r3, sp, #0x64
+ add r4, sp, #0x8a
+ strh r0, [r5, #0x0]
+ mov r2, #0x9
+_020E97E4:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r4, #0x0]
+ strh r0, [r4, #0x2]
+ add r4, r4, #0x4
+ subs r2, r2, #0x1
+ bne _020E97E4
+ ldrh r0, [r3, #0x0]
+ add r3, sp, #0x3e
+ add r5, sp, #0x64
+ strh r0, [r4, #0x0]
+ mov r2, #0x9
+_020E9818:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r5, #0x0]
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ bne _020E9818
+ ldrh r4, [r3, #0x0]
+ ldr r3, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ strh r4, [r5, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x0]
+ str r2, [sp, #0x4]
+ b _020E98AC
+_020E9864:
+ add r7, sp, #0x64
+ add r3, sp, #0x8a
+ mov r2, #0x9
+_020E9870:
+ ldrh r1, [r7, #0x0]
+ ldrh r0, [r7, #0x2]
+ add r7, r7, #0x4
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ subs r2, r2, #0x1
+ bne _020E9870
+ ldrh r2, [r7, #0x0]
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r2, [r3, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ b _020E971C
+_020E98AC:
+ add r0, sp, #0x3e
+ add r1, sp, #0xd6
+ add r2, sp, #0x8a
+ bl __minus_dec
+ add r0, sp, #0x18
+ add r1, sp, #0x64
+ add r2, sp, #0xd6
+ bl __minus_dec
+ add r0, sp, #0x3e
+ add r1, sp, #0x18
+ bl __equals_dec
+ cmp r0, #0x0
+ beq _020E9910
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ and r1, r1, #0x1
+ and r0, r0, #0x0
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ beq _020E9934
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ b _020E9934
+_020E9910:
+ add r0, sp, #0x3e
+ add r1, sp, #0x18
+ bl __less_dec
+ cmp r0, #0x0
+ bne _020E9934
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020E9934:
+ ldrsb r0, [sp, #0xd6]
+ cmp r0, #0x0
+ beq _020E995C
+ mov r0, #0x0
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r1, r0
+ bl _dsub
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+_020E995C:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E996C: .word 0x3FF00000
+_020E9970: .word 0xBFF00000
+_020E9974: .word __float_huge
+_020E9978: .word 0x7FF00000
+_020E997C: .word UNK_02106F5C
+_020E9980: .word UNK_02106E48
+_020E9984: .word 0x40140000
+_020E9988: .word 0x7FEFFFFF
+ arm_func_end __dec2num
+
+ .section .exception,8
+
+ .global UNK_020EC740
+UNK_020EC740: ; 0x020EC740
+ .byte 0x00, 0xFF, 0x05, 0x20
+ .balign 8
+
+ .section .exceptix,4
+
+ .word __rounddec
+ .short 65
+ .word 0x00200300
+ .word __ull2dec
+ .short 205
+ .word 0x0050FF00
+ .word __timesdec
+ .short 389
+ .word 0x00D0FF00
+ .word __str2dec
+ .short 157
+ .word 0x00100000
+ .word __two_exp
+ .short 901
+ .word 0x00B00300
+ .word __num2dec_internal
+ .short 385
+ .word 0x00E01F00
+ .word __num2dec_internal2
+ .short 169
+ .word 0x00200300
+ .word __dec2num
+ .short 1572
+ .word UNK_020EC740
diff --git a/arm9/asm/MSL_math.s b/arm9/asm/MSL_math.s new file mode 100644 index 00000000..260034e5 --- /dev/null +++ b/arm9/asm/MSL_math.s @@ -0,0 +1,110 @@ + .include "global.inc"
+ .include "asm/macros.inc"
+
+ .text
+
+ arm_func_start __msl_generic_count_bits64
+__msl_generic_count_bits64: ; 0x020E998C
+ mov r3, r0, lsr #0x1
+ ldr r2, _020E9A14 ; =0x55555555
+ orr r3, r3, r1, lsl #0x1f
+ and r3, r3, r2
+ subs r12, r0, r3
+ and r2, r2, r1, lsr #0x1
+ ldr r0, _020E9A18 ; =0x33333333
+ sbc r3, r1, r2
+ mov r1, r12, lsr #0x2
+ orr r1, r1, r3, lsl #0x1e
+ and r2, r12, r0
+ and r1, r1, r0
+ adds r2, r2, r1
+ and r1, r3, r0
+ and r0, r0, r3, lsr #0x2
+ adc r1, r1, r0
+ mov r0, r2, lsr #0x4
+ orr r0, r0, r1, lsl #0x1c
+ adds r2, r2, r0
+ ldr r0, _020E9A1C ; =0x0F0F0F0F
+ adc r1, r1, r1, lsr #0x4
+ and r3, r2, r0
+ and r2, r1, r0
+ mov r0, r3, lsr #0x8
+ orr r0, r0, r2, lsl #0x18
+ adds r1, r3, r0
+ adc r2, r2, r2, lsr #0x8
+ mov r0, r1, lsr #0x10
+ orr r0, r0, r2, lsl #0x10
+ adds r1, r1, r0
+ adc r0, r2, r2, lsr #0x10
+ adds r0, r1, r0
+ and r0, r0, #0xff
+ bx lr
+ .balign 4
+_020E9A14: .word 0x55555555
+_020E9A18: .word 0x33333333
+_020E9A1C: .word 0x0F0F0F0F
+ arm_func_end __msl_generic_count_bits64
+
+ arm_func_start __signbitf
+__signbitf:
+ stmdb sp!, {r0-r3}
+ ldr r0, [sp, #0x4]
+ and r0, r0, #0x80000000
+ add sp, sp, #0x10
+ bx lr
+ arm_func_end __signbitf
+
+ arm_func_start __fpclassifyf
+__fpclassifyf: ; 0x020E9A34
+ stmdb sp!, {r0-r3}
+ ldr r2, [sp, #0x4]
+ ldr r0, _020E9A9C ; =0x7FF00000
+ ands r1, r2, r0
+ beq _020E9A70
+ cmp r1, r0
+ bne _020E9A90
+ ldr r0, _020E9AA0 ; =0x000FFFFF
+ tst r2, r0
+ ldreq r0, [sp, #0x0]
+ add sp, sp, #0x10
+ cmpeq r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x2
+ bx lr
+_020E9A70:
+ ldr r0, _020E9AA0 ; =0x000FFFFF
+ tst r2, r0
+ ldreq r0, [sp, #0x0]
+ add sp, sp, #0x10
+ cmpeq r0, #0x0
+ movne r0, #0x5
+ moveq r0, #0x3
+ bx lr
+_020E9A90:
+ mov r0, #0x4
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E9A9C: .word 0x7FF00000
+_020E9AA0: .word 0x000FFFFF
+ arm_func_end __fpclassifyf
+
+ arm_func_start scalbn
+scalbn: ; 0x020E9AA4
+ stmdb sp!, {r3-r4,lr}
+ sub sp, sp, #0x4
+ mov r4, r2
+ add r2, sp, #0x0
+ bl frexp
+ ldr r2, [sp, #0x0]
+ add r2, r2, r4
+ str r2, [sp, #0x0]
+ bl ldexp
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r4,pc}
+ arm_func_end scalbn
+
+ .section .exceptix,4
+ .word scalbn
+ .short 45
+ .word 0x00200100
diff --git a/arm9/asm/MSL_string_extras.s b/arm9/asm/MSL_string_extras.s new file mode 100644 index 00000000..c3b09fe9 --- /dev/null +++ b/arm9/asm/MSL_string_extras.s @@ -0,0 +1,46 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start stricmp +stricmp: ; 0x020E9AD0 + stmdb sp!, {r3,lr} + ldr r3, _020E9B34 ; =__lower_mapC +_020E9AD8: + ldrb r2, [r0], #0x1 + cmp r2, #0x0 + blt _020E9AF0 + cmp r2, #0x80 + bge _020E9AF0 + ldrb r2, [r3, r2] +_020E9AF0: + ldrb lr, [r1], #0x1 + and r12, r2, #0xff + cmp lr, #0x0 + blt _020E9B0C + cmp lr, #0x80 + bge _020E9B0C + ldrb lr, [r3, lr] +_020E9B0C: + and r2, lr, #0xff + cmp r12, r2 + mvncc r0, #0x0 + ldmccia sp!, {r3,pc} + movhi r0, #0x1 + ldmhiia sp!, {r3,pc} + cmp r12, #0x0 + bne _020E9AD8 + mov r0, #0x0 + ldmia sp!, {r3,pc} + .balign 4 +_020E9B34: .word __lower_mapC + arm_func_end stricmp + + arm_func_start strnicmp +strnicmp: ; 0x020E9B38 + ldr ip, _020E9B40 ; =stricmp + bx r12 + .balign 4 +_020E9B40: .word stricmp + arm_func_end strnicmp diff --git a/arm9/asm/NNS_SND_sndarc_stream.s b/arm9/asm/NNS_SND_sndarc_stream.s index 1962bdcc..9ae2274f 100644 --- a/arm9/asm/NNS_SND_sndarc_stream.s +++ b/arm9/asm/NNS_SND_sndarc_stream.s @@ -10,8 +10,8 @@ sPrepareThread: ; 0x021D2900 .global sFreeCommandList sFreeCommandList: ; 0x021D2904 .space 0xC - ; sStrmThread - .global sStrmThread + ; sStrmThread + .global sStrmThread sStrmThread: ; 0x021D2910 .space 0x4EC diff --git a/arm9/asm/RTC_external.s b/arm9/asm/RTC_external.s index 91605f14..f5124044 100644 --- a/arm9/asm/RTC_external.s +++ b/arm9/asm/RTC_external.s @@ -11,7 +11,7 @@ UNK_021D5534: ; 0x021D5534 UNK_021D5538: ; 0x021D5538 .space 0x24 - .text + .text arm_func_start RtcWaitBusy RtcWaitBusy: ; 0x020D5914 diff --git a/arm9/asm/RUNTIME_ARM_semihosted_console_io.s b/arm9/asm/RUNTIME_ARM_semihosted_console_io.s new file mode 100644 index 00000000..7bd44bdb --- /dev/null +++ b/arm9/asm/RUNTIME_ARM_semihosted_console_io.s @@ -0,0 +1,84 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start sys_writec
+sys_writec: ; 0x020EC5D0
+ str lr, [sp, #-0x4]!
+ mov r1, r0
+ mov r0, #0x3
+ swi 0x123456
+ ldr pc, [sp], #0x4
+
+ arm_func_start sys_readc
+sys_readc: ; 0x020EC5E4
+ str lr, [sp, #-0x4]!
+ mov r1, #0x0
+ mov r0, #0x7
+ swi 0x123456
+ ldr pc, [sp], #0x4
+
+ arm_func_start sys_exit
+sys_exit: ; 0x020EC5F8
+ mov r1, #0x0
+ mov r0, #0x18
+ swi 0x123456
+ mov pc, lr
+
+ arm_func_start __read_console
+__read_console: ; 0x020EC608
+ stmdb sp!, {r3-r7,lr}
+ mov r6, r2
+ ldr r5, [r6, #0x0]
+ mov r7, r1
+ cmp r5, #0x0
+ mov r4, #0x0
+ bls _020EC650
+_020EC624:
+ bl sys_readc
+ and r1, r0, #0xff
+ cmp r1, #0xd
+ strb r0, [r7, r4]
+ cmpne r1, #0xa
+ addeq r0, r4, #0x1
+ streq r0, [r6, #0x0]
+ beq _020EC650
+ add r4, r4, #0x1
+ cmp r4, r5
+ blo _020EC624
+_020EC650:
+ mov r0, #0x0
+ ldmia sp!, {r3-r7,pc}
+
+ arm_func_start __write_console
+__write_console: ; 0x020EC658
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r2, #0x0]
+ mov r6, r1
+ cmp r5, #0x0
+ mov r4, #0x0
+ bls _020EC684
+_020EC670:
+ add r0, r6, r4
+ bl sys_writec
+ add r4, r4, #0x1
+ cmp r4, r5
+ blo _020EC670
+_020EC684:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start __close_console
+__close_console: ; 0x020EC68C
+ mov r0, #0x0
+ bx lr
+
+ .section .exceptix,4
+
+ .word __read_console
+ .short 81
+ .word 0x00300F00
+ .word __write_console
+ .short 53
+ .word 0x00200700
\ No newline at end of file diff --git a/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s b/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s new file mode 100644 index 00000000..c1446521 --- /dev/null +++ b/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s @@ -0,0 +1,60 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .bss
+
+ .global __global_destructor_chain
+__global_destructor_chain: ; 0x021D74C8
+ .space 0xC
+
+ .text
+
+ .extern __sinit__
+ arm_func_start __call_static_initializers
+__call_static_initializers: ; 0x020EC694
+ stmdb sp!, {r4,lr}
+ ldr r4, _020EC6BC ; =__sinit__
+ b _020EC6A8
+_020EC6A0:
+ blx r0
+ add r4, r4, #0x4
+_020EC6A8:
+ cmp r4, #0x0
+ ldrne r0, [r4, #0x0]
+ cmpne r0, #0x0
+ bne _020EC6A0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020EC6BC: .word __sinit__
+
+ arm_func_start __destroy_global_chain
+__destroy_global_chain: ; 0x020EC6C0
+ stmdb sp!, {r3-r5,lr}
+ ldr r4, _020EC700 ; =__global_destructor_chain
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020EC6D4: ; 0x020EC6D4
+ mvn r5, #0x0
+_020EC6D8:
+ ldr r0, [r2, #0x0]
+ mov r1, r5
+ str r0, [r4, #0x0]
+ ldr r0, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ blx r2
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ bne _020EC6D8
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020EC700: .word __global_destructor_chain
+
+ .section .exceptix,4
+
+ .word __call_static_initializers
+ .short 45
+ .word 0x00100100
+ .word __destroy_global_chain
+ .short 69
+ .word 0x00200300
diff --git a/arm9/asm/RUNTIME_NITRO_eabi_init.s b/arm9/asm/RUNTIME_NITRO_eabi_init.s new file mode 100644 index 00000000..1bd26818 --- /dev/null +++ b/arm9/asm/RUNTIME_NITRO_eabi_init.s @@ -0,0 +1,17 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start _ExitProcess +_ExitProcess: ; 0x020EC704 + ldr ip, _020EC70C ; =sys_exit + bx r12 + .balign 4 +_020EC70C: .word sys_exit + + .section .exceptix,4 + + .word _ExitProcess + .short 13 + .word 0x00000000 diff --git a/arm9/asm/RUNTIME_d_add.s b/arm9/asm/RUNTIME_d_add.s new file mode 100644 index 00000000..3d2e24b1 --- /dev/null +++ b/arm9/asm/RUNTIME_d_add.s @@ -0,0 +1,231 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern __dsub_start
+
+ .text
+
+ arm_func_start _dadd
+_dadd:
+ stmdb sp!, {r4,lr}
+ eors r12, r1, r3
+ eormi r3, r3, #0x80000000
+ bmi __dsub_start
+ .global __dadd_start
+__dadd_start:
+ subs r12, r0, r2
+ sbcs lr, r1, r3
+ bhs _020E9B70
+ adds r2, r2, r12
+ adc r3, r3, lr
+ subs r0, r0, r12
+ sbc r1, r1, lr
+_020E9B70:
+ mov lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ orr r1, lr, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r4, r12, lsl #0x15
+ cmnne r4, #0x200000
+ beq _020E9C6C
+ mov r4, r3, lsr #0x14
+ orr r3, lr, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs lr, r4, lsl #0x15
+ beq _020E9CB4
+_020E9BA8:
+ subs r4, r12, r4
+ beq _020E9C00
+ cmp r4, #0x20
+ ble _020E9BE4
+ cmp r4, #0x38
+ movge r4, #0x3f
+ sub r4, r4, #0x20
+ rsb lr, r4, #0x20
+ orrs lr, r2, r3, lsl lr
+ mov r2, r3, lsr r4
+ orrne r2, r2, #0x1
+ adds r0, r0, r2
+ adcs r1, r1, #0x0
+ blo _020E9C28
+ b _020E9C0C
+_020E9BE4:
+ rsb lr, r4, #0x20
+ movs lr, r2, lsl lr
+ rsb lr, r4, #0x20
+ mov r2, r2, lsr r4
+ orr r2, r2, r3, lsl lr
+ mov r3, r3, lsr r4
+ orrne r2, r2, #0x1
+_020E9C00:
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ blo _020E9C28
+_020E9C0C:
+ add r12, r12, #0x1
+ and r4, r0, #0x1
+ movs r1, r1, rrx
+ orr r0, r4, r0, rrx
+ mov lr, r12, lsl #0x15
+ cmn lr, #0x200000
+ beq _020E9E38
+_020E9C28:
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9C6C:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bics r12, r12, #0x800
+ beq _020E9CD8
+ orrs r4, r0, r1, lsl #0x1
+ bne _020E9E14
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ beq _020E9E00
+ cmn r4, #0x200000
+ bne _020E9E00
+ orrs r4, r2, r3, lsl #0x1
+ beq _020E9E00
+ b _020E9E14
+_020E9CB4:
+ cmp r4, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bic r12, r12, #0x800
+ bics r4, r4, #0x800
+ beq _020E9D44
+ orrs r4, r2, r3, lsl #0x1
+ bne _020E9E14
+ b _020E9E00
+_020E9CD8:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020E9D18
+ mov r12, #0x1
+ bic r1, r1, #0x80000000
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ cmnne r4, #0x200000
+ mov r4, r4, lsr #0x15
+ orr r4, r4, lr, lsr #0x14
+ beq _020E9CB4
+ orr r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ b _020E9BA8
+_020E9D18:
+ mov r12, r3, lsr #0x14
+ mov r1, r3, lsl #0xb
+ orr r1, r1, r2, lsr #0x15
+ mov r0, r2, lsl #0xb
+ movs r4, r12, lsl #0x15
+ beq _020E9DCC
+ cmn r4, #0x200000
+ bne _020E9DCC
+ orrs r4, r0, r1, lsl #0x1
+ beq _020E9E00
+ b _020E9E18
+_020E9D44:
+ orrs r4, r2, r3, lsl #0x1
+ beq _020E9DDC
+ mov r4, #0x1
+ bic r3, r3, #0x80000000
+ cmp r1, #0x0
+ bpl _020E9D68
+ orr r12, r12, lr, lsr #0x14
+ orr r4, r4, lr, lsr #0x14
+ b _020E9BA8
+_020E9D68:
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ blo _020E9D88
+ add r12, r12, #0x1
+ and r4, r0, #0x1
+ movs r1, r1, rrx
+ mov r0, r0, rrx
+ orr r0, r0, r4
+_020E9D88:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020E9DCC:
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9DDC:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E00:
+ ldr r1, _020E9E58 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E14:
+ mov r1, r3
+_020E9E18:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E28: ; 0x020E9E28
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E38:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ ldr r1, _020E9E58 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020E9E58: .word 0x7FF00000
+ arm_func_end _dadd
diff --git a/arm9/asm/RUNTIME_d_div.s b/arm9/asm/RUNTIME_d_div.s new file mode 100644 index 00000000..0259c528 --- /dev/null +++ b/arm9/asm/RUNTIME_d_div.s @@ -0,0 +1,333 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _drdiv
+_drdiv: ; 0x020EC070
+ eor r1, r1, r3
+ eor r3, r1, r3
+ eor r1, r1, r3
+ eor r0, r0, r2
+ eor r2, r0, r2
+ eor r0, r0, r2
+
+ arm_func_start _ddiv
+_ddiv: ; 0x020EC088
+ stmdb sp!, {r4-r6,lr}
+ ldr lr, _020EC5C8 ; =0x00000FFE
+ eor r4, r1, r3
+ ands r12, lr, r1, lsr #0x13
+ cmpne r12, lr
+ beq _020EC434
+ bic r1, r1, lr, lsl #0x14
+ orr r1, r1, #0x100000
+ add r12, r12, r4, lsr #0x1f
+_020EC0AC:
+ ands r4, lr, r3, lsr #0x13
+ cmpne r4, lr
+ beq _020EC4CC
+ bic r3, r3, lr, lsl #0x14
+ orr r3, r3, #0x100000
+_020EC0C0:
+ sub r12, r12, r4
+ cmp r1, r3
+ cmpeq r0, r2
+ bhs _020EC0DC
+ adds r0, r0, r0
+ adc r1, r1, r1
+ sub r12, r12, #0x2
+_020EC0DC:
+ sub r4, pc, #0x24 ; _020EC1C0 - #0x100
+ ldrb lr, [r4, r3, lsr #0xc]
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+ mov r4, #0x20000000
+ mla r5, lr, r3, r4
+ mov r6, r3, lsl #0xa
+ mov r5, r5, lsr #0x7
+ mul lr, r5, lr
+ orr r6, r6, r2, lsr #0x16
+ mov lr, lr, lsr #0xd
+ mul r5, lr, r6
+ mov r6, r1, lsl #0xa
+ orr r6, r6, r0, lsr #0x16
+ mov r5, r5, lsr #0x10
+ mul r5, lr, r5
+ mov lr, lr, lsl #0xe
+ add lr, lr, r5, lsr #0x10
+ umull r5, r6, lr, r6
+ umull r4, r5, r6, r2
+ mla r5, r3, r6, r5
+ mov r4, r4, lsr #0x1a
+ orr r4, r4, r5, lsl #0x6
+ add r4, r4, r0, lsl #0x2
+ umull lr, r5, r4, lr
+ mov r4, #0x0
+ adds r5, r5, r6, lsl #0x18
+ adc r4, r4, r6, lsr #0x8
+ cmp r12, #0x800
+ bge _020EC2C0
+ add r12, r12, #0x7f0
+ adds r12, r12, #0xc
+ bmi _020EC2D8
+ orr r1, r4, r12, lsl #0x1f
+ bic r12, r12, #0x1
+ add r1, r1, r12, lsl #0x13
+ tst lr, #0x80000000
+ bne _020EC1B0
+ rsbs r2, r2, #0x0
+ mov r4, r4, lsl #0x1
+ add r4, r4, r5, lsr #0x1f
+ mul lr, r2, r4
+ mov r6, #0x0
+ mov r4, r5, lsl #0x1
+ orr r4, r4, #0x1
+ umlal r6, lr, r4, r2
+ rsc r3, r3, #0x0
+ mla lr, r4, r3, lr
+ cmp lr, r0, lsl #0x15
+ bmi _020EC1B0
+ mov r0, r5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC1B0:
+ adds r0, r5, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC1C0: ; not code
+ .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1
+ .byte 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA, 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4
+ .byte 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE, 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8
+ .byte 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2, 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD
+ .byte 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8, 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3
+ .byte 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF, 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA
+ .byte 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6, 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2
+ .byte 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF, 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB
+ .byte 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4
+ .byte 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1, 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E
+ .byte 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98
+ .byte 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92
+ .byte 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90, 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D
+ .byte 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89
+ .byte 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84
+ .byte 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80
+_020EC2C0:
+ movs r1, r12, lsl #0x1f
+ orr r1, r1, #0x7f000000
+ orr r1, r1, #0xf00000
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC2D8:
+ mvn r6, r12, asr #0x1
+ cmp r6, #0x34
+ bgt _020EC424
+ beq _020EC400
+ cmp r6, #0x14
+ bge _020EC320
+ rsb r6, r6, #0x13
+ mov lr, r0, lsl r6
+ rsb r6, r6, #0x14
+ mov r0, r5, lsr r6
+ rsb r6, r6, #0x20
+ orr r0, r0, r4, lsl r6
+ rsb r6, r6, #0x20
+ mov r4, r4, lsr r6
+ orr r1, r4, r12, lsl #0x1f
+ mov r12, lr
+ mov lr, #0x0
+ b _020EC350
+_020EC320:
+ rsb r6, r6, #0x33
+ mov lr, r1, lsl r6
+ mov r1, r12, lsl #0x1f
+ rsb r6, r6, #0x20
+ orr r12, lr, r0, lsr r6
+ rsb r6, r6, #0x20
+ mov lr, r0, lsl r6
+ mov r5, r5, lsr #0x15
+ orr r5, r5, r4, lsl #0xb
+ rsb r6, r6, #0x1f
+ mov r0, r5, lsr r6
+ mov r4, #0x0
+_020EC350:
+ rsbs r2, r2, #0x0
+ mul r4, r2, r4
+ mov r5, #0x0
+ umlal r5, r4, r2, r0
+ rsc r3, r3, #0x0
+ mla r4, r0, r3, r4
+ cmp r4, r12
+ cmpeq r5, lr
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ adds r5, r5, r2
+ adc r4, r4, r3
+ cmp r4, r12
+ bmi _020EC3F4
+ bne _020EC398
+ cmp r5, lr
+ beq _020EC3E4
+ blo _020EC3F4
+_020EC398:
+ subs r5, r5, r2
+ sbc r4, r4, r3
+_020EC3A0:
+ adds r5, r5, r5
+ adc r4, r4, r4
+ adds r5, r5, r2
+ adc r4, r4, r3
+ adds lr, lr, lr
+ adc r12, r12, r12
+ cmp r4, r12
+ bmi _020EC3E4
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r5, lr
+ blo _020EC3E4
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ tst r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020EC3E4:
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC3F4:
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ b _020EC3A0
+_020EC400:
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+ cmp r1, r3
+ cmpeq r0, r2
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ movne r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC424:
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC434:
+ orrs r5, r0, r1, lsl #0x1
+ beq _020EC558
+ cmp r12, lr
+ beq _020EC49C
+ movs r1, r1, lsl #0xc
+ beq _020EC478
+ clz r5, r1
+ movs r1, r1, lsl r5
+ sub r12, r12, r5
+ add r5, r12, #0x1f
+ mov r1, r1, lsr #0xb
+ orr r1, r1, r0, lsr r5
+ rsb r5, r5, #0x20
+ mov r0, r0, lsl r5
+ mov r12, r12, lsl #0x1
+ orr r12, r12, r4, lsr #0x1f
+ b _020EC0AC
+_020EC478:
+ mvn r12, #0x13
+ clz r5, r0
+ movs r0, r0, lsl r5
+ sub r12, r12, r5
+ mov r1, r0, lsr #0xb
+ mov r0, r0, lsl #0x15
+ mov r12, r12, lsl #0x1
+ orr r12, r12, r4, lsr #0x1f
+ b _020EC0AC
+_020EC49C:
+ orrs r5, r0, r1, lsl #0xc
+ bne _020EC580
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ bhs _020EC4C0
+ and r5, r3, #0x80000000
+ eor r1, r5, r1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC4C0:
+ orrs r5, r2, r3, lsl #0xc
+ bne _020EC5A0
+ b _020EC5B8
+_020EC4CC:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EC544
+ cmp r4, lr
+ beq _020EC52C
+ movs r3, r3, lsl #0xc
+ beq _020EC50C
+ clz r5, r3
+ movs r3, r3, lsl r5
+ sub r4, r4, r5
+ add r5, r4, #0x1f
+ mov r3, r3, lsr #0xb
+ orr r3, r3, r2, lsr r5
+ rsb r5, r5, #0x20
+ mov r2, r2, lsl r5
+ mov r4, r4, lsl #0x1
+ b _020EC0C0
+_020EC50C:
+ mvn r4, #0x13
+ clz r5, r2
+ movs r2, r2, lsl r5
+ sub r4, r4, r5
+ mov r3, r2, lsr #0xb
+ mov r2, r2, lsl #0x15
+ mov r4, r4, lsl #0x1
+ b _020EC0C0
+_020EC52C:
+ orrs r5, r2, r3, lsl #0xc
+ bne _020EC5A0
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC544:
+ mov r1, r12, lsl #0x1f
+ orr r1, r1, lr, lsl #0x13
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC558:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EC5B8
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ cmpeq r2, #0x0
+ bhi _020EC5A0
+ eor r1, r1, r3
+ and r1, r1, #0x80000000
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC580:
+ tst r1, #0x80000
+ beq _020EC5B8
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ cmpeq r2, #0x0
+ bhi _020EC5A0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC5A0:
+ tst r3, #0x80000
+ beq _020EC5B8
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC5B8:
+ orr r1, r1, #0x7f000000
+ orr r1, r1, #0xf80000
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020EC5C8: .word 0x00000FFE
diff --git a/arm9/asm/RUNTIME_d_dtof.s b/arm9/asm/RUNTIME_d_dtof.s new file mode 100644 index 00000000..b4e98ca9 --- /dev/null +++ b/arm9/asm/RUNTIME_d_dtof.s @@ -0,0 +1,85 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _d2f
+_d2f:
+ and r2, r1, #0x80000000
+ mov r12, r1, lsr #0x14
+ bics r12, r12, #0x800
+ beq _020E9ED4
+ mov r3, r12, lsl #0x15
+ cmn r3, #0x200000
+ bhs _020E9EB8
+ subs r12, r12, #0x380
+ bls _020E9EE4
+ cmp r12, #0xff
+ bge _020E9F54
+ mov r1, r1, lsl #0xc
+ orr r3, r2, r1, lsr #0x9
+ orr r3, r3, r0, lsr #0x1d
+ movs r1, r0, lsl #0x3
+ orr r0, r3, r12, lsl #0x17
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020E9EB8:
+ orrs r3, r0, r1, lsl #0xc
+ bne _020E9ECC
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020E9ECC:
+ mvn r0, #0x80000000
+ bx lr
+_020E9ED4:
+ orrs r3, r0, r1, lsl #0xc
+ bne __f_underflow
+ .global __f_result_zero
+__f_result_zero:
+ mov r0, r2
+ bx lr
+_020E9EE4:
+ cmn r12, #0x17
+ beq _020E9F38
+ bmi __f_underflow
+ mov r1, r1, lsl #0xb
+ orr r1, r1, #0x80000000
+ mov r3, r1, lsr #0x8
+ orr r3, r3, r0, lsr #0x1d
+ rsb r12, r12, #0x1
+ movs r1, r0, lsl #0x3
+ orr r0, r2, r3, lsr r12
+ rsb r12, r12, #0x20
+ mov r3, r3, lsl r12
+ orrne r3, r3, #0x1
+ movs r1, r3
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020E9F38:
+ orr r0, r0, r1, lsl #0xc
+ .global __f_very_tiny_result
+__f_very_tiny_result:
+ movs r1, r0
+ mov r0, r2
+ addne r0, r0, #0x1
+ bx lr
+ .global __f_underflow
+__f_underflow:
+ mov r0, r2
+ bx lr
+_020E9F54:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+ arm_func_end _d2f
diff --git a/arm9/asm/RUNTIME_d_dtoi.s b/arm9/asm/RUNTIME_d_dtoi.s new file mode 100644 index 00000000..825c11cd --- /dev/null +++ b/arm9/asm/RUNTIME_d_dtoi.s @@ -0,0 +1,30 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _dfix
+_dfix: ; 0x020E9F60
+ bic r3, r1, #0x80000000
+ ldr r2, _020E9FA8 ; =0x0000041E
+ subs r2, r2, r3, lsr #0x14
+ ble _020E9F9C
+ cmp r2, #0x20
+ bge _020E9F94
+ mov r3, r1, lsl #0xb
+ orr r3, r3, #0x80000000
+ orr r3, r3, r0, lsr #0x15
+ cmp r1, #0x0
+ mov r0, r3, lsr r2
+ rsbmi r0, r0, #0x0
+ bx lr
+_020E9F94:
+ mov r0, #0x0
+ bx lr
+_020E9F9C:
+ mvn r0, r1, asr #0x1f
+ add r0, r0, #0x80000000
+ bx lr
+ .balign 4
+_020E9FA8: .word 0x0000041E
+ arm_func_end _dfix
diff --git a/arm9/asm/RUNTIME_d_dtoull.s b/arm9/asm/RUNTIME_d_dtoull.s new file mode 100644 index 00000000..c9ef3f7b --- /dev/null +++ b/arm9/asm/RUNTIME_d_dtoull.s @@ -0,0 +1,48 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ll_ufrom_d
+_ll_ufrom_d: ; 0x020E9FAC
+ tst r1, #0x80000000
+ bne _020EA010
+ ldr r2, _020EA034 ; =0x0000043E
+ subs r2, r2, r1, lsr #0x14
+ blt _020EA028
+ cmp r2, #0x40
+ bge _020EA004
+ mov r12, r1, lsl #0xb
+ orr r12, r12, #0x80000000
+ orr r12, r12, r0, lsr #0x15
+ cmp r2, #0x20
+ ble _020E9FEC
+ sub r2, r2, #0x20
+ mov r1, #0x0
+ mov r0, r12, lsr r2
+ bx lr
+_020E9FEC:
+ mov r3, r0, lsl #0xb
+ mov r1, r12, lsr r2
+ mov r0, r3, lsr r2
+ rsb r2, r2, #0x20
+ orr r0, r0, r12, lsl r2
+ bx lr
+_020EA004:
+ mov r1, #0x0
+ mov r0, #0x0
+ bx lr
+_020EA010:
+ cmn r1, #0x100000
+ cmpeq r0, #0x0
+ bhi _020EA028
+ mov r1, #0x0
+ mov r0, #0x0
+ bx lr
+_020EA028:
+ mvn r1, #0x0
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020EA034: .word 0x0000043E
+ arm_func_end _ll_ufrom_d
diff --git a/arm9/asm/RUNTIME_d_itod.s b/arm9/asm/RUNTIME_d_itod.s new file mode 100644 index 00000000..5a9c241d --- /dev/null +++ b/arm9/asm/RUNTIME_d_itod.s @@ -0,0 +1,48 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _dflt
+_dflt: ; 0x020EA038
+ ands r2, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x0
+ .global __d_itod_common
+__d_itod_common:
+ mov r1, #0x0
+ bxeq lr
+ mov r3, #0x400
+ add r3, r3, #0x1e
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ movs r1, r0
+ mov r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, r2, r1, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ bx lr
+ arm_func_end _dflt
+
+ arm_func_start _dfltu
+_dfltu: ; 0x020EA078
+ cmp r0, #0x0
+ .global __d_utod_common
+__d_utod_common:
+ mov r1, #0x0
+ bxeq lr
+ mov r3, #0x400
+ add r3, r3, #0x1e
+ bmi _020EA09C
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+_020EA09C:
+ mov r1, r0
+ mov r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ bx lr
+ arm_func_end _dfltu
diff --git a/arm9/asm/RUNTIME_d_mul.s b/arm9/asm/RUNTIME_d_mul.s new file mode 100644 index 00000000..eb46c3ab --- /dev/null +++ b/arm9/asm/RUNTIME_d_mul.s @@ -0,0 +1,246 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _dmul
+_dmul: ; 0x020EA0B4
+ stmdb sp!, {r4-r7,lr}
+ eor lr, r1, r3
+ and lr, lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ mov r1, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r6, r12, lsl #0x15
+ cmnne r6, #0x200000
+ beq _020EA1BC
+ orr r1, r1, #0x80000000
+ bic r12, r12, #0x800
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ cmnne r5, #0x200000
+ beq _020EA204
+ orr r3, r3, #0x80000000
+ bic r4, r4, #0x800
+_020EA108:
+ add r12, r4, r12
+ umull r5, r4, r0, r2
+ umull r7, r6, r0, r3
+ adds r4, r7, r4
+ adc r6, r6, #0x0
+ umull r7, r0, r1, r2
+ adds r4, r7, r4
+ adcs r0, r0, r6
+ umull r7, r2, r1, r3
+ adc r1, r2, #0x0
+ adds r0, r0, r7
+ adc r1, r1, #0x0
+ orrs r4, r4, r5
+ orrne r0, r0, #0x1
+ cmp r1, #0x0
+ blt _020EA154
+ sub r12, r12, #0x1
+ adds r0, r0, r0
+ adc r1, r1, r1
+_020EA154:
+ add r12, r12, #0x2
+ subs r12, r12, #0x400
+ bmi _020EA2F0
+ beq _020EA2F0
+ mov r6, r12, lsl #0x14
+ cmn r6, #0x100000
+ bmi _020EA3F0
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA1BC:
+ bics r12, r12, #0x800
+ beq _020EA218
+ orrs r6, r0, r1, lsl #0x1
+ bne _020EA3A4
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ beq _020EA1F8
+ cmn r5, #0x200000
+ bne _020EA390
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EA390
+ b _020EA3A4
+_020EA1F8:
+ orrs r5, r3, r2
+ beq _020EA3B8
+ b _020EA390
+_020EA204:
+ bics r4, r4, #0x800
+ beq _020EA2AC
+ orrs r6, r2, r3, lsl #0x1
+ bne _020EA3A4
+ b _020EA390
+_020EA218:
+ orrs r6, r0, r1, lsl #0x1
+ beq _020EA280
+ mov r12, #0x1
+ cmp r1, #0x0
+ bne _020EA23C
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA258
+_020EA23C:
+ clz r6, r1
+ movs r1, r1, lsl r6
+ rsb r6, r6, #0x20
+ orr r1, r1, r0, lsr r6
+ rsb r6, r6, #0x20
+ mov r0, r0, lsl r6
+ sub r12, r12, r6
+_020EA258:
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ cmnne r5, #0x200000
+ beq _020EA204
+ orr r3, r3, #0x80000000
+ bic r4, r4, #0x800
+ b _020EA108
+_020EA280:
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ beq _020EA404
+ cmn r5, #0x200000
+ bne _020EA404
+ orrs r6, r2, r3, lsl #0x1
+ beq _020EA3B8
+ b _020EA3A4
+_020EA2AC:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EA404
+ mov r4, #0x1
+ cmp r3, #0x0
+ bne _020EA2D0
+ sub r4, r4, #0x20
+ movs r3, r2
+ mov r2, #0x0
+ bmi _020EA108
+_020EA2D0:
+ clz r6, r3
+ movs r3, r3, lsl r6
+ rsb r6, r6, #0x20
+ orr r3, r3, r2, lsr r6
+ rsb r6, r6, #0x20
+ mov r2, r2, lsl r6
+ sub r4, r4, r6
+ b _020EA108
+_020EA2F0:
+ cmn r12, #0x34
+ beq _020EA388
+ bmi _020EA3E0
+ mov r2, r1
+ mov r3, r0
+ add r4, r12, #0x34
+ cmp r4, #0x20
+ movge r2, r3
+ movge r3, #0x0
+ subge r4, r4, #0x20
+ rsb r5, r4, #0x20
+ mov r2, r2, lsl r4
+ orr r2, r2, r3, lsr r5
+ movs r3, r3, lsl r4
+ orrne r2, r2, #0x1
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ cmp r2, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA388:
+ orr r0, r0, r1, lsl #0x1
+ b _020EA3C8
+_020EA390:
+ ldr r1, _020EA414 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3A4:
+ mov r1, r3
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3B8:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3C8:
+ movs r2, r0
+ mov r1, lr
+ mov r0, #0x0
+ addne r0, r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3E0:
+ mov r1, lr
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3F0:
+ ldr r1, _020EA414 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA404:
+ mov r1, lr
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020EA414: .word 0x7FF00000
+ arm_func_end _dmul
diff --git a/arm9/asm/RUNTIME_d_sqrt.s b/arm9/asm/RUNTIME_d_sqrt.s new file mode 100644 index 00000000..8cc562a7 --- /dev/null +++ b/arm9/asm/RUNTIME_d_sqrt.s @@ -0,0 +1,123 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _dsqrt
+_dsqrt: ; 0x020EA418
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020EA5A8 ; =0x7FF00000
+ cmp r1, r2
+ bhs _020EA564
+ movs r12, r1, lsr #0x14
+ beq _020EA510
+ bic r1, r1, r2
+ orr r1, r1, #0x100000
+_020EA438:
+ movs r12, r12, asr #0x1
+ bhs _020EA44C
+ sub r12, r12, #0x1
+ movs r0, r0, lsl #0x1
+ adc r1, r1, r1
+_020EA44C:
+ movs r3, r0, lsl #0x1
+ adc r1, r1, r1
+ mov r2, #0x0
+ mov r4, #0x0
+ mov lr, #0x200000
+_020EA460:
+ add r6, r4, lr
+ cmp r6, r1
+ addle r4, r6, lr
+ suble r1, r1, r6
+ addle r2, r2, lr
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ movs lr, lr, lsr #0x1
+ bne _020EA460
+ mov r0, #0x0
+ mov r5, #0x0
+ cmp r1, r4
+ cmpeq r3, #0x80000000
+ blo _020EA4A8
+ subs r3, r3, #0x80000000
+ sbc r1, r1, r4
+ add r4, r4, #0x1
+ mov r0, #0x80000000
+_020EA4A8:
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ mov lr, #0x40000000
+_020EA4B4:
+ add r6, r5, lr
+ cmp r4, r1
+ cmpeq r6, r3
+ bhi _020EA4D4
+ add r5, r6, lr
+ subs r3, r3, r6
+ sbc r1, r1, r4
+ add r0, r0, lr
+_020EA4D4:
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ movs lr, lr, lsr #0x1
+ bne _020EA4B4
+ orrs r1, r1, r3
+ biceq r0, r0, #0x1
+ movs r1, r2, lsr #0x1
+ movs r0, r0, rrx
+ adcs r0, r0, #0x0
+ adc r1, r1, #0x0
+ add r1, r1, #0x20000000
+ sub r1, r1, #0x100000
+ add r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EA510:
+ cmp r1, #0x0
+ bne _020EA540
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mvn r12, #0x13
+ clz r5, r0
+ movs r0, r0, lsl r5
+ sub r12, r12, r5
+ mov r1, r0, lsr #0xb
+ mov r0, r0, lsl #0x15
+ b _020EA438
+_020EA540:
+ clz r2, r1
+ movs r1, r1, lsl r2
+ rsb r2, r2, #0x2b
+ mov r1, r1, lsr #0xb
+ orr r1, r1, r0, lsr r2
+ rsb r2, r2, #0x20
+ mov r0, r0, lsl r2
+ rsb r12, r2, #0x1
+ b _020EA438
+_020EA564:
+ tst r1, #0x80000000
+ beq _020EA580
+ bics r3, r1, #0x80000000
+ cmpeq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ b _020EA58C
+_020EA580:
+ orrs r2, r0, r1, lsl #0xc
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020EA58C:
+ ldr r2, _020EA5AC ; =0x7FF80000
+ orr r1, r1, r2
+ ldr r3, _020EA5B0 ; =errno
+ mov r4, #0x21
+ str r4, [r3, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020EA5A8: .word 0x7FF00000
+_020EA5AC: .word 0x7FF80000
+_020EA5B0: .word errno
+ arm_func_end _dsqrt
diff --git a/arm9/asm/RUNTIME_d_sub.s b/arm9/asm/RUNTIME_d_sub.s new file mode 100644 index 00000000..c9388ffa --- /dev/null +++ b/arm9/asm/RUNTIME_d_sub.s @@ -0,0 +1,283 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern __dadd_start
+
+ .text
+
+ arm_func_start _drsb
+_drsb: ; 0x020EA5B4
+ eor r1, r1, r3
+ eor r3, r1, r3
+ eor r1, r1, r3
+ eor r0, r0, r2
+ eor r2, r0, r2
+ eor r0, r0, r2
+
+ arm_func_start _dsub
+_dsub:
+ stmdb sp!, {r4,lr}
+ eors r12, r1, r3
+ eormi r3, r3, #0x80000000
+ bmi __dadd_start
+ .global __dsub_start
+__dsub_start:
+ subs r12, r0, r2
+ sbcs lr, r1, r3
+ bhs _020EA5FC
+ eor lr, lr, #0x80000000
+ adds r2, r2, r12
+ adc r3, r3, lr
+ subs r0, r0, r12
+ sbc r1, r1, lr
+_020EA5FC:
+ mov lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ orr r1, lr, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r4, r12, lsl #0x15
+ cmnne r4, #0x200000
+ beq _020EA800
+ mov r4, r3, lsr #0x14
+ orr r3, lr, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs lr, r4, lsl #0x15
+ beq _020EA848
+_020EA634:
+ subs r4, r12, r4
+ beq _020EA6DC
+ cmp r4, #0x20
+ ble _020EA670
+ cmp r4, #0x38
+ movge r4, #0x3f
+ sub r4, r4, #0x20
+ rsb lr, r4, #0x20
+ orrs lr, r2, r3, lsl lr
+ mov r2, r3, lsr r4
+ orrne r2, r2, #0x1
+ subs r0, r0, r2
+ sbcs r1, r1, #0x0
+ bmi _020EA698
+ b _020EA788
+_020EA670:
+ rsb lr, r4, #0x20
+ movs lr, r2, lsl lr
+ rsb lr, r4, #0x20
+ mov r2, r2, lsr r4
+ orr r2, r2, r3, lsl lr
+ mov r3, r3, lsr r4
+ orrne r2, r2, #0x1
+ subs r0, r0, r2
+ sbcs r1, r1, r3
+ bpl _020EA788
+_020EA698:
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA6DC:
+ subs r0, r0, r2
+ sbc r1, r1, r3
+ orrs lr, r1, r0
+ beq _020EA96C
+ mov lr, r12, lsl #0x14
+ and lr, lr, #0x80000000
+ bic r12, r12, #0x800
+ cmp r1, #0x0
+ bmi _020EA764
+ bne _020EA714
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA730
+_020EA714:
+ clz r4, r1
+ movs r1, r1, lsl r4
+ rsb r4, r4, #0x20
+ orr r1, r1, r0, lsr r4
+ rsb r4, r4, #0x20
+ mov r0, r0, lsl r4
+ sub r12, r12, r4
+_020EA730:
+ cmp r12, #0x0
+ bgt _020EA76C
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA764:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+_020EA76C:
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA788:
+ mov lr, r12, lsl #0x14
+ and lr, lr, #0x80000000
+ bic r12, r12, #0x800
+ cmp r1, #0x0
+ bne _020EA7AC
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA7C8
+_020EA7AC:
+ clz r4, r1
+ movs r1, r1, lsl r4
+ rsb r4, r4, #0x20
+ orr r1, r1, r0, lsr r4
+ rsb r4, r4, #0x20
+ mov r0, r0, lsl r4
+ sub r12, r12, r4
+_020EA7C8:
+ cmp r12, #0x0
+ orrgt r12, r12, lr, lsr #0x14
+ bgt _020EA698
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA800:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bics r12, r12, #0x800
+ beq _020EA86C
+ orrs r4, r0, r1, lsl #0x1
+ bne _020EA948
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ beq _020EA934
+ cmn r4, #0x200000
+ bne _020EA934
+ orrs r4, r2, r3, lsl #0x1
+ beq _020EA95C
+ b _020EA948
+_020EA848:
+ cmp r4, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bic r12, r12, #0x800
+ bics r4, r4, #0x800
+ beq _020EA8E4
+ orrs r4, r2, r3, lsl #0x1
+ bne _020EA948
+ b _020EA934
+_020EA86C:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020EA8AC
+ mov r12, #0x1
+ bic r1, r1, #0x80000000
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ cmnne r4, #0x200000
+ mov r4, r4, lsr #0x15
+ orr r4, r4, lr, lsr #0x14
+ beq _020EA848
+ orr r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ b _020EA634
+_020EA8AC:
+ mov r12, r3, lsr #0x14
+ mov r1, r3, lsl #0xb
+ orr r1, r1, r2, lsr #0x15
+ mov r0, r2, lsl #0xb
+ movs r4, r12, lsl #0x15
+ beq _020EA8D8
+ cmn r4, #0x200000
+ bne _020EA900
+ orrs r4, r0, r1, lsl #0x1
+ bne _020EA94C
+ b _020EA934
+_020EA8D8:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020EA96C
+ b _020EA900
+_020EA8E4:
+ orrs r4, r2, r3, lsl #0x1
+ beq _020EA910
+ mov r4, #0x1
+ bic r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ orr r4, r4, lr, lsr #0x14
+ b _020EA634
+_020EA900:
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA910:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA934:
+ ldr r1, _020EA97C ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA948:
+ mov r1, r3
+_020EA94C:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA95C:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA96C:
+ mov r1, #0x0
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020EA97C: .word 0x7FF00000
diff --git a/arm9/asm/RUNTIME_f_add.s b/arm9/asm/RUNTIME_f_add.s new file mode 100644 index 00000000..f54dfb58 --- /dev/null +++ b/arm9/asm/RUNTIME_f_add.s @@ -0,0 +1,165 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern __fsub_start
+
+ .text
+
+ arm_func_start _fadd
+_fadd: ; 0x020EA980
+ eors r2, r0, r1
+ eormi r1, r1, #0x80000000
+ bmi __fsub_start
+ .global __fadd_start
+__fadd_start:
+ subs r12, r0, r1
+ subcc r0, r0, r12
+ addcc r1, r1, r12
+ mov r2, #0x80000000
+ mov r3, r0, lsr #0x17
+ orr r0, r2, r0, lsl #0x8
+ ands r12, r3, #0xff
+ cmpne r12, #0xff
+ beq _020EAA20
+ mov r12, r1, lsr #0x17
+ orr r1, r2, r1, lsl #0x8
+ ands r2, r12, #0xff
+ beq _020EAA60
+_020EA9C0:
+ subs r12, r3, r12
+ beq _020EA9D8
+ rsb r2, r12, #0x20
+ movs r2, r1, lsl r2
+ mov r1, r1, lsr r12
+ orrne r1, r1, #0x1
+_020EA9D8:
+ adds r0, r0, r1
+ blo _020EA9F8
+ and r1, r0, #0x1
+ orr r0, r1, r0, rrx
+ add r3, r3, #0x1
+ and r2, r3, #0xff
+ cmp r2, #0xff
+ beq _020EAB68
+_020EA9F8:
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EAA20:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ ands r3, r3, #0xff
+ beq _020EAA84
+ movs r0, r0, lsl #0x1
+ bne _020EAB94
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EAB88
+ cmp r12, #0xff
+ blt _020EAB88
+ cmp r1, #0x0
+ beq _020EAB88
+ b _020EAB94
+_020EAA60:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ and r3, r3, #0xff
+ ands r12, r12, #0xff
+ beq _020EAAE0
+_020EAA78:
+ movs r1, r1, lsl #0x1
+ bne _020EAB94
+ b _020EAB88
+_020EAA84:
+ movs r0, r0, lsl #0x1
+ beq _020EAABC
+ mov r3, #0x1
+ mov r0, r0, lsr #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EAAE0
+ cmp r12, #0xff
+ beq _020EAA78
+ orr r1, r1, #0x80000000
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ b _020EA9C0
+_020EAABC:
+ mov r3, r1, lsr #0x17
+ mov r0, r1, lsl #0x9
+ ands r3, r3, #0xff
+ beq _020EAB48
+ cmp r3, #0xff
+ blt _020EAB48
+ cmp r0, #0x0
+ beq _020EAB88
+ b _020EAB80
+_020EAAE0:
+ movs r1, r1, lsl #0x1
+ beq _020EAB50
+ mov r1, r1, lsr #0x1
+ mov r12, #0x1
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ cmp r0, #0x0
+ bmi _020EA9C0
+ adds r0, r0, r1
+ blo _020EAB14
+ and r1, r0, #0x1
+ orr r0, r1, r0, rrx
+ add r12, r12, #0x1
+_020EAB14:
+ cmp r0, #0x0
+ subge r12, r12, #0x1
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r12, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EAB48:
+ mov r0, r1
+ bx lr
+_020EAB50:
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EAB68:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EAB80:
+ mvn r0, #0x80000000
+ bx lr
+_020EAB88:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EAB94:
+ mvn r0, #0x80000000
+ bx lr
+_020EAB9C: ; 0x020EAB9C
+ mvn r0, #0x80000000
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_cmp.s b/arm9/asm/RUNTIME_f_cmp.s new file mode 100644 index 00000000..696d0af1 --- /dev/null +++ b/arm9/asm/RUNTIME_f_cmp.s @@ -0,0 +1,376 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _dgr
+_dgr: ; 0x020EABA4
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAC18
+ cmn r12, r3, lsl #0x1
+ bhs _020EAC2C
+_020EABB8:
+ orrs r12, r3, r1
+ bmi _020EABE8
+ cmp r1, r3
+ cmpeq r0, r2
+ movhi r0, #0x1
+ movls r0, #0x0
+ bx lr
+_020EABD4:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EABE8:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ movhi r0, #0x1
+ movls r0, #0x0
+ bx lr
+_020EAC18:
+ bne _020EABD4
+ cmp r0, #0x0
+ bhi _020EABD4
+ cmn r12, r3, lsl #0x1
+ blo _020EABB8
+_020EAC2C:
+ bne _020EABD4
+ cmp r2, #0x0
+ bhi _020EABD4
+ b _020EABB8
+
+ arm_func_start _dleq
+_dleq: ; 0x020EAC3C
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EACBC
+ cmn r12, r3, lsl #0x1
+ bhs _020EACD0
+_020EAC50:
+ orrs r12, r3, r1
+ bmi _020EAC84
+ cmp r1, r3
+ cmpeq r0, r2
+ movls r0, #0x1
+ movhi r0, #0x0
+ bx lr
+_020EAC6C:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAC84:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x1
+ bne _020EACA8
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ orr r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bxeq lr
+_020EACA8:
+ cmp r3, r1
+ cmpeq r2, r0
+ movls r0, #0x1
+ movhi r0, #0x0
+ bx lr
+_020EACBC:
+ bne _020EAC6C
+ cmp r0, #0x0
+ bhi _020EAC6C
+ cmn r12, r3, lsl #0x1
+ blo _020EAC50
+_020EACD0:
+ bne _020EAC6C
+ cmp r2, #0x0
+ bhi _020EAC6C
+ b _020EAC50
+
+ arm_func_start _dls
+_dls: ; 0x020EACE0
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAD58
+ cmn r12, r3, lsl #0x1
+ bhs _020EAD6C
+_020EACF4:
+ orrs r12, r3, r1
+ bmi _020EAD24
+ cmp r1, r3
+ cmpeq r0, r2
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+_020EAD10:
+ mov r0, #0x0
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAD24:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ bne _020EAD44
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bxeq lr
+_020EAD44:
+ cmp r3, r1
+ cmpeq r2, r0
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+_020EAD58:
+ bne _020EAD10
+ cmp r0, #0x0
+ bhi _020EAD10
+ cmn r12, r3, lsl #0x1
+ blo _020EACF4
+_020EAD6C:
+ bne _020EAD10
+ cmp r2, #0x0
+ bhi _020EAD10
+ b _020EACF4
+
+ arm_func_start _deq
+_deq: ; 0x020EAD7C
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EADE4
+ cmn r12, r3, lsl #0x1
+ bhs _020EADF8
+_020EAD90:
+ orrs r12, r3, r1
+ bmi _020EADC0
+ cmp r1, r3
+ cmpeq r0, r2
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+_020EADAC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EADC0:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x1
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+_020EADE4:
+ bne _020EADAC
+ cmp r0, #0x0
+ bhi _020EADAC
+ cmn r12, r3, lsl #0x1
+ blo _020EAD90
+_020EADF8:
+ bne _020EADAC
+ cmp r2, #0x0
+ bhi _020EADAC
+ b _020EAD90
+
+ arm_func_start _dneq
+_dneq: ; 0x020EAE08
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAE70
+ cmn r12, r3, lsl #0x1
+ bhs _020EAE84
+_020EAE1C:
+ orrs r12, r3, r1
+ bmi _020EAE4C
+ cmp r1, r3
+ cmpeq r0, r2
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+_020EAE38:
+ mov r0, #0x1
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EAE4C:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+_020EAE70:
+ bne _020EAE38
+ cmp r0, #0x0
+ bhi _020EAE38
+ cmn r12, r3, lsl #0x1
+ blo _020EAE1C
+_020EAE84:
+ bne _020EAE38
+ cmp r2, #0x0
+ bhi _020EAE38
+ b _020EAE1C
+
+ arm_func_start _fgeq
+_fgeq: ; 0x020EAE94
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAEDC
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movge r0, #0x1
+ movlt r0, #0x0
+ mrs r12, cpsr
+ biclt r12, r12, #0x20000000
+ orrge r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAEDC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fgr
+_fgr: ; 0x020EAEF0
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAF38
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movgt r0, #0x1
+ movle r0, #0x0
+ mrs r12, cpsr
+ bicle r12, r12, #0x20000000
+ orrgt r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAF38:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fleq
+_fleq: ; 0x020EAF4C
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAF9C
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movle r0, #0x1
+ movgt r0, #0x0
+ mrs r12, cpsr
+ orrgt r12, r12, #0x20000000
+ bicgt r12, r12, #0x40000000
+ bicle r12, r12, #0x20000000
+ orrle r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EAF9C:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fls
+_fls: ; 0x020EAFB4
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAFFC
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movlt r0, #0x1
+ movge r0, #0x0
+ mrs r12, cpsr
+ orrge r12, r12, #0x20000000
+ biclt r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAFFC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _feq
+_feq: ; 0x020EB010
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ blo _020EB064
+ cmp r3, r1, lsl #0x1
+ blo _020EB064
+ orr r3, r0, r1
+ movs r3, r3, lsl #0x1
+ moveq r0, #0x0
+ bne _020EB044
+ mrs r12, cpsr
+ orr r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EB044:
+ cmp r0, r1
+ movne r0, #0x1
+ moveq r0, #0x0
+ mrs r12, cpsr
+ bicne r12, r12, #0x40000000
+ orreq r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EB064:
+ mov r0, #0x1
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_div.s b/arm9/asm/RUNTIME_f_div.s new file mode 100644 index 00000000..4f7c6d15 --- /dev/null +++ b/arm9/asm/RUNTIME_f_div.s @@ -0,0 +1,225 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _frdiv
+_frdiv: ; 0x020EB078
+ eor r0, r0, r1
+ eor r1, r0, r1
+ eor r0, r0, r1
+
+ arm_func_start _fdiv
+_fdiv: ; 0x020EB084
+ stmdb sp!, {lr}
+ mov r12, #0xff
+ ands r3, r12, r0, lsr #0x17
+ cmpne r3, #0xff
+ beq _020EB258
+ ands r12, r12, r1, lsr #0x17
+ cmpne r12, #0xff
+ beq _020EB294
+ orr r1, r1, #0x800000
+ orr r0, r0, #0x800000
+ bic r2, r0, #0xff000000
+ bic lr, r1, #0xff000000
+_020EB0B4:
+ cmp r2, lr
+ movcc r2, r2, lsl #0x1
+ subcc r3, r3, #0x1
+ teq r0, r1
+ sub r0, pc, #0x94 ; _020EB138 - #0x100
+ ldrb r1, [r0, lr, lsr #0xf]
+ rsb lr, lr, #0x0
+ mov r0, lr, asr #0x1
+ mul r0, r1, r0
+ add r0, r0, #0x80000000
+ mov r0, r0, lsr #0x6
+ mul r0, r1, r0
+ mov r0, r0, lsr #0xe
+ mul r1, lr, r0
+ sub r12, r3, r12
+ mov r1, r1, lsr #0xc
+ mul r1, r0, r1
+ mov r0, r0, lsl #0xe
+ add r0, r0, r1, lsr #0xf
+ umull r1, r0, r2, r0
+ mov r3, r0
+ orrmi r0, r0, #0x80000000
+ adds r12, r12, #0x7e
+ bmi _020EB35C
+ cmp r12, #0xfe
+ bge _020EB410
+ add r0, r0, r12, lsl #0x17
+ mov r12, r1, lsr #0x1c
+ cmp r12, #0x7
+ beq _020EB238
+ add r0, r0, r1, lsr #0x1f
+ ldmia sp!, {lr}
+ bx lr
+_020EB138: ; not code
+ .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9
+ .byte 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA
+ .byte 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE
+ .byte 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2
+ .byte 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8
+ .byte 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF
+ .byte 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6
+ .byte 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF
+ .byte 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7
+ .byte 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1
+ .byte 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B
+ .byte 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95
+ .byte 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90
+ .byte 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B
+ .byte 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86
+ .byte 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82
+ .byte 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80
+_020EB238:
+ mov r1, r3, lsl #0x1
+ add r1, r1, #0x1
+ rsb lr, lr, #0x0
+ mul r1, lr, r1
+ cmp r1, r2, lsl #0x18
+ addmi r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB258:
+ eor lr, r0, r1
+ and lr, lr, #0x80000000
+ cmp r3, #0x0
+ beq _020EB2B0
+ movs r0, r0, lsl #0x9
+ bne _020EB3F8
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB3E8
+ cmp r12, #0xff
+ blt _020EB3E8
+ cmp r1, #0x0
+ beq _020EB404
+ b _020EB3E0
+_020EB294:
+ eor lr, r0, r1
+ and lr, lr, #0x80000000
+ cmp r12, #0x0
+ beq _020EB314
+_020EB2A4:
+ movs r1, r1, lsl #0x9
+ bne _020EB3E0
+ b _020EB430
+_020EB2B0:
+ movs r2, r0, lsl #0x9
+ beq _020EB2E4
+ clz r3, r2
+ movs r2, r2, lsl r3
+ rsb r3, r3, #0x0
+ mov r2, r2, lsr #0x8
+ ands r12, r12, r1, lsr #0x17
+ beq _020EB33C
+ cmp r12, #0xff
+ beq _020EB2A4
+ orr r1, r1, #0x800000
+ bic lr, r1, #0xff000000
+ b _020EB0B4
+_020EB2E4:
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB308
+ cmp r12, #0xff
+ blt _020EB430
+ cmp r1, #0x0
+ beq _020EB430
+ b _020EB3E0
+_020EB308:
+ cmp r1, #0x0
+ beq _020EB404
+ b _020EB430
+_020EB314:
+ movs r12, r1, lsl #0x9
+ beq _020EB3E8
+ mov lr, r12
+ clz r12, lr
+ movs lr, lr, lsl r12
+ rsb r12, r12, #0x0
+ mov lr, lr, lsr #0x8
+ orr r0, r0, #0x800000
+ bic r2, r0, #0xff000000
+ b _020EB0B4
+_020EB33C:
+ movs r12, r1, lsl #0x9
+ beq _020EB3E8
+ mov lr, r12
+ clz r12, lr
+ movs lr, lr, lsl r12
+ rsb r12, r12, #0x0
+ mov lr, lr, lsr #0x8
+ b _020EB0B4
+_020EB35C:
+ and r0, r0, #0x80000000
+ cmn r12, #0x18
+ beq _020EB3D0
+ bmi _020EB428
+ add r1, r12, #0x17
+ mov r2, r2, lsl r1
+ rsb r12, r12, #0x0
+ mov r3, r3, lsr r12
+ orr r0, r0, r3
+ rsb lr, lr, #0x0
+ mul r1, lr, r3
+ cmp r1, r2
+ ldmeqia sp!, {lr}
+ bxeq lr
+ add r1, r1, lr
+ cmp r1, r2
+ beq _020EB3C4
+ addmi r0, r0, #0x1
+ subpl r1, r1, lr
+ add r1, lr, r1, lsl #0x1
+ cmp r1, r2, lsl #0x1
+ and r3, r0, #0x1
+ addmi r0, r0, #0x1
+ addeq r0, r0, r3
+ ldmia sp!, {lr}
+ bx lr
+_020EB3C4:
+ add r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3D0:
+ cmn r2, lr
+ addne r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3E0:
+ mov r0, r1
+ b _020EB3F8
+_020EB3E8:
+ mov r0, #0xff000000
+ orr r0, lr, r0, lsr #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3F8:
+ mvn r0, #0x80000000
+ ldmia sp!, {lr}
+ bx lr
+_020EB404:
+ mvn r0, #0x80000000
+ ldmia sp!, {lr}
+ bx lr
+_020EB410:
+ tst r0, #0x80000000
+ mov r0, #0xff000000
+ movne r0, r0, asr #0x1
+ moveq r0, r0, lsr #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB428:
+ ldmia sp!, {lr}
+ bx lr
+_020EB430:
+ mov r0, lr
+ ldmia sp!, {lr}
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_ftod.s b/arm9/asm/RUNTIME_f_ftod.s new file mode 100644 index 00000000..fe3a7224 --- /dev/null +++ b/arm9/asm/RUNTIME_f_ftod.s @@ -0,0 +1,46 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _f2d
+_f2d:
+ and r2, r0, #0x80000000
+ mov r12, r0, lsr #0x17
+ mov r3, r0, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB46C
+ cmp r12, #0xff
+ beq _020EB498
+_020EB458:
+ add r12, r12, #0x380
+ mov r0, r3, lsl #0x14
+ orr r1, r2, r3, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ bx lr
+_020EB46C:
+ cmp r3, #0x0
+ bne _020EB480
+ mov r1, r2
+ mov r0, #0x0
+ bx lr
+_020EB480:
+ mov r3, r3, lsr #0x1
+ clz r12, r3
+ movs r3, r3, lsl r12
+ rsb r12, r12, #0x1
+ add r3, r3, r3
+ b _020EB458
+_020EB498:
+ cmp r3, #0x0
+ bhi _020EB4B0
+ ldr r1, _020EB4BC ; =0x7FF00000
+ orr r1, r1, r2
+ mov r0, #0x0
+ bx lr
+_020EB4B0:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ bx lr
+ .balign 4
+_020EB4BC: .word 0x7FF00000
diff --git a/arm9/asm/RUNTIME_f_ftoi.s b/arm9/asm/RUNTIME_f_ftoi.s new file mode 100644 index 00000000..d7503ede --- /dev/null +++ b/arm9/asm/RUNTIME_f_ftoi.s @@ -0,0 +1,21 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ffix
+_ffix: ; 0x020EB4C0
+ bic r1, r0, #0x80000000
+ mov r2, #0x9e
+ subs r2, r2, r1, lsr #0x17
+ ble _020EB4E8
+ mov r1, r1, lsl #0x8
+ orr r1, r1, #0x80000000
+ cmp r0, #0x0
+ mov r0, r1, lsr r2
+ rsbmi r0, r0, #0x0
+ bx lr
+_020EB4E8:
+ mvn r0, r0, asr #0x1f
+ add r0, r0, #0x80000000
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_ftou.s b/arm9/asm/RUNTIME_f_ftou.s new file mode 100644 index 00000000..74c7277f --- /dev/null +++ b/arm9/asm/RUNTIME_f_ftou.s @@ -0,0 +1,25 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ffixu
+_ffixu: ; 0x020EB4F4
+ tst r0, #0x80000000
+ bne _020EB518
+ mov r1, #0x9e
+ subs r1, r1, r0, lsr #0x17
+ blt _020EB52C
+ mov r2, r0, lsl #0x8
+ orr r0, r2, #0x80000000
+ mov r0, r0, lsr r1
+ bx lr
+_020EB518:
+ mov r2, #0xff000000
+ cmp r2, r0, lsl #0x1
+ movcs r0, #0x0
+ mvncc r0, #0x0
+ bx lr
+_020EB52C:
+ mvn r0, #0x0
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_itof.s b/arm9/asm/RUNTIME_f_itof.s new file mode 100644 index 00000000..370e7ea1 --- /dev/null +++ b/arm9/asm/RUNTIME_f_itof.s @@ -0,0 +1,51 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _fflt
+_fflt: ; 0x020EB534
+ ands r2, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x0
+ .global __f_itof_common
+__f_itof_common:
+ bxeq lr
+ clz r3, r0
+ movs r0, r0, lsl r3
+ rsb r3, r3, #0x9e
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r3, r1, #0x7f
+ andeqs r3, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+
+ arm_func_start _ffltu
+_ffltu: ; 0x020EB57C
+ cmp r0, #0x0
+ .global __f_utof_common
+__f_utof_common:
+ bxeq lr
+ mov r3, #0x9e
+ bmi _020EB598
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+_020EB598:
+ ands r2, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r2, #0x80
+ bxeq lr
+ ands r1, r2, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_mul.s b/arm9/asm/RUNTIME_f_mul.s new file mode 100644 index 00000000..ef48250f --- /dev/null +++ b/arm9/asm/RUNTIME_f_mul.s @@ -0,0 +1,147 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _fmul
+_fmul: ; 0x020EB5C4
+ eor r2, r0, r1
+ and r2, r2, #0x80000000
+ mov r12, #0xff
+ ands r3, r12, r0, lsr #0x17
+ mov r0, r0, lsl #0x8
+ cmpne r3, #0xff
+ beq _020EB640
+ orr r0, r0, #0x80000000
+ ands r12, r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ cmpne r12, #0xff
+ beq _020EB680
+ orr r1, r1, #0x80000000
+_020EB5F8:
+ add r12, r3, r12
+ umull r1, r3, r0, r1
+ movs r0, r3
+ addpl r0, r0, r0
+ subpl r12, r12, #0x1
+ subs r12, r12, #0x7f
+ bmi _020EB70C
+ cmp r12, #0xfe
+ bge _020EB778
+ ands r3, r0, #0xff
+ orr r0, r2, r0, lsr #0x8
+ add r0, r0, r12, lsl #0x17
+ tst r3, #0x80
+ bxeq lr
+ orrs r1, r1, r3, lsl #0x19
+ andeqs r3, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB640:
+ cmp r3, #0x0
+ beq _020EB694
+ movs r0, r0, lsl #0x1
+ bne __f_result_x_NaN
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB674
+ cmp r12, #0xff
+ blt __f_result_INF
+ cmp r1, #0x0
+ beq __f_result_INF
+ b __f_result_x_NaN
+_020EB674:
+ cmp r1, #0x0
+ beq __f_result_invalid
+ b __f_result_INF
+_020EB680:
+ cmp r12, #0x0
+ beq _020EB6F0
+_020EB688:
+ movs r1, r1, lsl #0x1
+ bne __f_result_x_NaN
+ b __f_result_INF
+_020EB694:
+ movs r0, r0, lsl #0x1
+ beq _020EB6CC
+ mov r0, r0, lsr #0x1
+ clz r3, r0
+ movs r0, r0, lsl r3
+ rsb r3, r3, #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EB6F0
+ cmp r12, #0xff
+ beq _020EB688
+ orr r1, r1, #0x80000000
+ b _020EB5F8
+_020EB6CC:
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB79C
+ cmp r12, #0xff
+ blt _020EB79C
+ cmp r1, #0x0
+ beq __f_result_invalid
+ b __f_result_x_NaN
+_020EB6F0:
+ movs r1, r1, lsl #0x1
+ beq _020EB79C
+ mov r1, r1, lsr #0x1
+ clz r12, r1
+ movs r1, r1, lsl r12
+ rsb r12, r12, #0x1
+ b _020EB5F8
+_020EB70C:
+ cmn r12, #0x18
+ beq _020EB754
+ bmi _020EB794
+ cmp r1, #0x0
+ orrne r0, r0, #0x1
+ mov r3, r0
+ mov r0, r0, lsr #0x8
+ rsb r12, r12, #0x0
+ orr r0, r2, r0, lsr r12
+ rsb r12, r12, #0x18
+ movs r1, r3, lsl r12
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB754:
+ mov r0, r0, lsl #0x1
+ b _020EB784
+ .global __f_result_INF
+__f_result_INF:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+ .global __f_result_x_NaN
+__f_result_x_NaN:
+ mvn r0, #0x80000000
+ bx lr
+ .global __f_result_invalid
+__f_result_invalid:
+ mvn r0, #0x80000000
+ bx lr
+_020EB778:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EB784:
+ movs r1, r0
+ mov r0, r2
+ addne r0, r0, #0x1
+ bx lr
+_020EB794:
+ mov r0, r2
+ bx lr
+_020EB79C:
+ mov r0, r2
+ bx lr
diff --git a/arm9/asm/RUNTIME_f_sub.s b/arm9/asm/RUNTIME_f_sub.s new file mode 100644 index 00000000..e3c6560e --- /dev/null +++ b/arm9/asm/RUNTIME_f_sub.s @@ -0,0 +1,195 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern __fadd_start
+
+ .text
+
+ arm_func_start _frsb
+_frsb: ; 0x020EB7A4
+ eor r0, r0, r1
+ eor r1, r0, r1
+ eor r0, r0, r1
+
+ arm_func_start _fsub
+_fsub: ; 0x020EB7B0
+ eors r2, r0, r1
+ eormi r1, r1, #0x80000000
+ bmi __fadd_start
+ .global __fsub_start
+__fsub_start:
+ subs r12, r0, r1
+ eorcc r12, r12, #0x80000000
+ subcc r0, r0, r12
+ addcc r1, r1, r12
+ mov r2, #0x80000000
+ mov r3, r0, lsr #0x17
+ orr r0, r2, r0, lsl #0x8
+ ands r12, r3, #0xff
+ cmpne r12, #0xff
+ beq _020EB8D8
+ mov r12, r1, lsr #0x17
+ orr r1, r2, r1, lsl #0x8
+ ands r2, r12, #0xff
+ beq _020EB918
+_020EB7F4:
+ subs r12, r3, r12
+ beq _020EB83C
+ rsb r2, r12, #0x20
+ movs r2, r1, lsl r2
+ mov r1, r1, lsr r12
+ orrne r1, r1, #0x1
+ subs r0, r0, r1
+ bpl _020EB880
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB83C:
+ subs r0, r0, r1
+ beq _020EB9E4
+ mov r2, r3, lsl #0x17
+ and r2, r2, #0x80000000
+ bic r3, r3, #0x100
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ cmp r3, #0x0
+ bgt _020EB870
+ rsb r3, r3, #0x9
+ orr r0, r2, r0, lsr r3
+ bx lr
+_020EB870:
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EB880:
+ mov r2, r3, lsl #0x17
+ and r2, r2, #0x80000000
+ bic r3, r3, #0x100
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ cmp r3, #0x0
+ bgt _020EB8AC
+ rsb r3, r3, #0x9
+ orr r0, r2, r0, lsr r3
+ bx lr
+_020EB8AC:
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB8D8:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ ands r3, r3, #0xff
+ beq _020EB940
+ movs r0, r0, lsl #0x1
+ bne _020EBA18
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EBA0C
+ cmp r12, #0xff
+ blt _020EBA0C
+ cmp r1, #0x0
+ beq _020EBA20
+ b _020EBA18
+_020EB918:
+ cmp r12, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ and r3, r3, #0xff
+ ands r12, r12, #0xff
+ beq _020EB9A8
+_020EB930:
+ eor r2, r2, #0x80000000
+ movs r1, r1, lsl #0x1
+ bne _020EBA18
+ b _020EBA0C
+_020EB940:
+ movs r0, r0, lsl #0x1
+ beq _020EB978
+ mov r0, r0, lsr #0x1
+ mov r3, #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EB9A8
+ cmp r12, #0xff
+ beq _020EB930
+ orr r1, r1, #0x80000000
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ b _020EB7F4
+_020EB978:
+ mov r3, r1, lsr #0x17
+ mov r0, r1, lsl #0x9
+ ands r2, r3, #0xff
+ beq _020EB99C
+ cmp r2, #0xff
+ blt _020EB9C4
+ cmp r0, #0x0
+ bne _020EBA04
+ b _020EBA0C
+_020EB99C:
+ cmp r0, #0x0
+ beq _020EB9E4
+ b _020EB9C4
+_020EB9A8:
+ movs r1, r1, lsl #0x1
+ beq _020EB9CC
+ mov r1, r1, lsr #0x1
+ mov r12, #0x1
+ orr r12, r12, r2, lsr #0x17
+ orr r3, r3, r2, lsr #0x17
+ b _020EB7F4
+_020EB9C4:
+ mov r0, r1
+ bx lr
+_020EB9CC:
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EB9E4:
+ mov r0, #0x0
+ bx lr
+_020EB9EC: ; 0x020EB9EC
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EBA04:
+ mvn r0, #0x80000000
+ bx lr
+_020EBA0C:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EBA18:
+ mvn r0, #0x80000000
+ bx lr
+_020EBA20:
+ mvn r0, #0x80000000
+ bx lr
diff --git a/arm9/asm/RUNTIME_ieee_status.s b/arm9/asm/RUNTIME_ieee_status.s new file mode 100644 index 00000000..652bb8e3 --- /dev/null +++ b/arm9/asm/RUNTIME_ieee_status.s @@ -0,0 +1,8 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _fp_init
+_fp_init: ; 0x020EC5CC
+ bx lr
diff --git a/arm9/asm/RUNTIME_ll_div.s b/arm9/asm/RUNTIME_ll_div.s new file mode 100644 index 00000000..9b53d21b --- /dev/null +++ b/arm9/asm/RUNTIME_ll_div.s @@ -0,0 +1,167 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ll_mod
+_ll_mod: ; 0x020EBA28
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, r1
+ orr r4, r4, #0x1
+ b _020EBA48
+
+ arm_func_start _ll_sdiv
+_ll_sdiv: ; 0x020EBA38
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ eor r4, r1, r3
+ mov r4, r4, asr #0x1
+ mov r4, r4, lsl #0x1
+_020EBA48:
+ orrs r5, r3, r2
+ bne _020EBA58
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBA58:
+ mov r5, r0, lsr #0x1f
+ add r5, r5, r1
+ mov r6, r2, lsr #0x1f
+ add r6, r6, r3
+ orrs r6, r5, r6
+ bne _020EBA8C
+ mov r1, r2
+ bl _s32_div_f
+ ands r4, r4, #0x1
+ movne r0, r1
+ mov r1, r0, asr #0x1f
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBA8C:
+ cmp r1, #0x0
+ bge _020EBA9C
+ rsbs r0, r0, #0x0
+ rsc r1, r1, #0x0
+_020EBA9C:
+ cmp r3, #0x0
+ bge _020EBAAC
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+_020EBAAC:
+ orrs r5, r1, r0
+ beq _020EBBD0
+ mov r5, #0x0
+ mov r6, #0x1
+ cmp r3, #0x0
+ bmi _020EBAD8
+_020EBAC4:
+ add r5, r5, #0x1
+ adds r2, r2, r2
+ adcs r3, r3, r3
+ bpl _020EBAC4
+ add r6, r6, r5
+_020EBAD8:
+ cmp r1, #0x0
+ blt _020EBAF8
+_020EBAE0:
+ cmp r6, #0x1
+ beq _020EBAF8
+ sub r6, r6, #0x1
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ bpl _020EBAE0
+_020EBAF8:
+ mov r7, #0x0
+ mov r12, #0x0
+ mov r11, #0x0
+ b _020EBB20
+_020EBB08:
+ orr r12, r12, #0x1
+ subs r6, r6, #0x1
+ beq _020EBB78
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ adcs r7, r7, r7
+_020EBB20:
+ subs r0, r0, r2
+ sbcs r1, r1, r3
+ sbcs r7, r7, #0x0
+ adds r12, r12, r12
+ adc r11, r11, r11
+ cmp r7, #0x0
+ bge _020EBB08
+_020EBB3C:
+ subs r6, r6, #0x1
+ beq _020EBB70
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ adc r7, r7, r7
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ adc r7, r7, #0x0
+ adds r12, r12, r12
+ adc r11, r11, r11
+ cmp r7, #0x0
+ bge _020EBB08
+ b _020EBB3C
+_020EBB70:
+ adds r0, r0, r2
+ adc r1, r1, r3
+_020EBB78:
+ ands r7, r4, #0x1
+ moveq r0, r12
+ moveq r1, r11
+ beq _020EBBB0
+ subs r7, r5, #0x20
+ movge r0, r1, lsr r7
+ bge _020EBBD4
+ rsb r7, r5, #0x20
+ mov r0, r0, lsr r5
+ orr r0, r0, r1, lsl r7
+ mov r1, r1, lsr r5
+ b _020EBBB0
+_020EBBA8: ; 0x020EBBA8
+ mov r0, r1, lsr r7
+ mov r1, #0x0
+_020EBBB0:
+ cmp r4, #0x0
+ blt _020EBBC0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBBC0:
+ rsbs r0, r0, #0x0
+ rsc r1, r1, #0x0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBBD0:
+ mov r0, #0x0
+_020EBBD4:
+ mov r1, #0x0
+ cmp r4, #0x0
+ blt _020EBBC0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+
+ arm_func_start _ll_udiv
+_ll_udiv: ; 0x020EBBE8
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, #0x0
+ b _020EBBFC
+
+ arm_func_start _ull_mod
+_ull_mod: ; 0x020EBBF4
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, #0x1
+_020EBBFC:
+ orrs r5, r3, r2
+ bne _020EBC0C
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBC0C:
+ orrs r5, r1, r3
+ bne _020EBAAC
+ mov r1, r2
+ bl _u32_div_not_0_f
+ cmp r4, #0x0
+ movne r0, r1
+ mov r1, #0x0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
diff --git a/arm9/asm/RUNTIME_ll_mul.s b/arm9/asm/RUNTIME_ll_mul.s new file mode 100644 index 00000000..965efe9e --- /dev/null +++ b/arm9/asm/RUNTIME_ll_mul.s @@ -0,0 +1,15 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ll_mul
+_ll_mul: ; 0x020EBC30
+ stmdb sp!, {r4-r5,lr}
+ umull r5, r4, r0, r2
+ mla r4, r0, r3, r4
+ mla r4, r2, r1, r4
+ mov r1, r4
+ mov r0, r5
+ ldmia sp!, {r4-r5,lr}
+ bx lr
diff --git a/arm9/asm/RUNTIME_ll_sll.s b/arm9/asm/RUNTIME_ll_sll.s new file mode 100644 index 00000000..c4f37ead --- /dev/null +++ b/arm9/asm/RUNTIME_ll_sll.s @@ -0,0 +1,20 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _ll_shl
+_ll_shl: ; 0x020EBC50
+ ands r2, r2, #0x3f
+ bxeq lr
+ subs r3, r2, #0x20
+ bge _020EBC74
+ rsb r3, r2, #0x20
+ mov r1, r1, lsl r2
+ orr r1, r1, r0, lsr r3
+ mov r0, r0, lsl r2
+ bx lr
+_020EBC74:
+ mov r1, r0, lsl r3
+ mov r0, #0x0
+ bx lr
diff --git a/arm9/asm/RUNTIME_s32_div_f.s b/arm9/asm/RUNTIME_s32_div_f.s new file mode 100644 index 00000000..2dc6cc7e --- /dev/null +++ b/arm9/asm/RUNTIME_s32_div_f.s @@ -0,0 +1,139 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _s32_div_f
+_s32_div_f: ; 0x020EBC80
+ eor r12, r0, r1
+ and r12, r12, #0x80000000
+ cmp r0, #0x0
+ rsblt r0, r0, #0x0
+ addlt r12, r12, #0x1
+ cmp r1, #0x0
+ rsblt r1, r1, #0x0
+ beq _020EBE78
+ cmp r0, r1
+ movcc r1, r0
+ movcc r0, #0x0
+ blo _020EBE78
+ mov r2, #0x1c
+ mov r3, r0, lsr #0x4
+ cmp r1, r3, lsr #0xc
+ suble r2, r2, #0x10
+ movle r3, r3, lsr #0x10
+ cmp r1, r3, lsr #0x4
+ suble r2, r2, #0x8
+ movle r3, r3, lsr #0x8
+ cmp r1, r3
+ suble r2, r2, #0x4
+ movle r3, r3, lsr #0x4
+ mov r0, r0, lsl r2
+ rsb r1, r1, #0x0
+ adds r0, r0, r0
+ add r2, r2, r2, lsl #0x1
+ add pc, pc, r2, lsl #0x2
+ mov r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ mov r1, r3
+_020EBE78:
+ ands r3, r12, #0x80000000
+ rsbne r0, r0, #0x0
+ ands r3, r12, #0x1
+ rsbne r1, r1, #0x0
+ bx lr
diff --git a/arm9/asm/RUNTIME_u32_div_f.s b/arm9/asm/RUNTIME_u32_div_f.s new file mode 100644 index 00000000..5042c504 --- /dev/null +++ b/arm9/asm/RUNTIME_u32_div_f.s @@ -0,0 +1,131 @@ + .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _u32_div_f
+_u32_div_f: ; 0x020EBE8C
+ cmp r1, #0x0
+ bxeq lr
+
+ arm_func_start _u32_div_not_0_f
+_u32_div_not_0_f:
+ cmp r0, r1
+ movcc r1, r0
+ movcc r0, #0x0
+ bxcc lr
+ mov r2, #0x1c
+ mov r3, r0, lsr #0x4
+ cmp r1, r3, lsr #0xc
+ suble r2, r2, #0x10
+ movle r3, r3, lsr #0x10
+ cmp r1, r3, lsr #0x4
+ suble r2, r2, #0x8
+ movle r3, r3, lsr #0x8
+ cmp r1, r3
+ suble r2, r2, #0x4
+ movle r3, r3, lsr #0x4
+ mov r0, r0, lsl r2
+ rsb r1, r1, #0x0
+ adds r0, r0, r0
+ add r2, r2, r2, lsl #0x1
+ add pc, pc, r2, lsl #0x2
+ mov r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ mov r1, r3
+ bx lr
diff --git a/arm9/asm/SPI_tp.s b/arm9/asm/SPI_tp.s index 233da29f..7766abdd 100644 --- a/arm9/asm/SPI_tp.s +++ b/arm9/asm/SPI_tp.s @@ -15,7 +15,7 @@ UNK_021D5474: ; 0x021D5474 UNK_021D548C: ; 0x021D548C .space 0x20 - .text + .text arm_func_start TP_CheckError TP_CheckError: ; 0x020D36C4 diff --git a/arm9/asm/WM_dcf.s b/arm9/asm/WM_dcf.s index eb802550..779bb2ec 100644 --- a/arm9/asm/WM_dcf.s +++ b/arm9/asm/WM_dcf.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .text + .text arm_func_start WM_EndDCF WM_EndDCF: ; 0x020D9DDC diff --git a/arm9/asm/WM_ds.s b/arm9/asm/WM_ds.s index c2a26eb4..f83211ee 100644 --- a/arm9/asm/WM_ds.s +++ b/arm9/asm/WM_ds.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .text + .text arm_func_start WmGetSharedDataAddress WmGetSharedDataAddress: ; 0x020DA00C diff --git a/arm9/asm/WM_ks.s b/arm9/asm/WM_ks.s index ba5fdb5c..3dd46c1b 100644 --- a/arm9/asm/WM_ks.s +++ b/arm9/asm/WM_ks.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .text + .text arm_func_start WM_EndKeySharing WM_EndKeySharing: ; 0x020DAD3C diff --git a/arm9/asm/WM_mp.s b/arm9/asm/WM_mp.s index 0c2fca76..46b44fed 100644 --- a/arm9/asm/WM_mp.s +++ b/arm9/asm/WM_mp.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .text + .text arm_func_start WM_EndMP WM_EndMP: ; 0x020D9960 diff --git a/arm9/asm/WM_standard.s b/arm9/asm/WM_standard.s index 5d7e8db9..869015a6 100644 --- a/arm9/asm/WM_standard.s +++ b/arm9/asm/WM_standard.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .text + .text arm_func_start WM_Disconnect WM_Disconnect: ; 0x020D9060 diff --git a/arm9/asm/WM_sync.s b/arm9/asm/WM_sync.s index 65163b4f..c50663c4 100644 --- a/arm9/asm/WM_sync.s +++ b/arm9/asm/WM_sync.s @@ -7,7 +7,7 @@ UNK_02106A54: ; 0x02106A54 .word 0x00010000 - .text + .text arm_func_start WM_GetNextTgid WM_GetNextTgid: ; 0x020D8868 diff --git a/arm9/asm/WM_system.s b/arm9/asm/WM_system.s index e3792814..9b77b7c4 100644 --- a/arm9/asm/WM_system.s +++ b/arm9/asm/WM_system.s @@ -35,7 +35,7 @@ UNK_021D5E9C: ; 0x021D5E9C UNK_021D5EC0: ; 0x021D5EC0 .space 0xa00 - .text + .text arm_func_start WMi_GetMPReadyAIDs WMi_GetMPReadyAIDs: ; 0x020D7DE0 diff --git a/arm9/asm/libc.s b/arm9/asm/libc.s deleted file mode 100644 index 39c2decb..00000000 --- a/arm9/asm/libc.s +++ /dev/null @@ -1,14430 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .extern OSi_ThreadInfo - - .section .rodata - - .global UNK_0210420C -UNK_0210420C: ; 0x0210420C - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - - .global UNK_0210428C -UNK_0210428C: ; 0x0210428C - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - - .global UNK_0210430C -UNK_0210430C: ; 0x0210430C - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x06, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x42, 0x01, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04 - .byte 0x58, 0x04, 0x58, 0x04, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0x04, 0x00 - - .global UNK_0210440C -UNK_0210440C: ; 0x0210440C - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02104434 -UNK_02104434: ; 0x02104434 - .asciz "NAN(" - - .global UNK_02104439 -UNK_02104439: ; 0x02104439 - .asciz "INFINITY" - .balign 4 - .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007 - .short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F - .short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017 - .short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F - .short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027 - .short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F - .short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037 - .short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F - .short 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067 - .short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F - .short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077 - .short 0x0078, 0x0079, 0x007A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F - .short 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067 - .short 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F - .short 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077 - .short 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F - - .global UNK_02104544 -UNK_02104544: ; 0x02104544 - .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004 - .short 0x0004, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0004, 0x0004 - .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004 - .short 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004 - .short 0x0142, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0 - .short 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0 - .short 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458, 0x0458 - .short 0x0458, 0x0458, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0 - .short 0x00D0, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0651, 0x0251 - .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251 - .short 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251, 0x0251 - .short 0x0251, 0x0251, 0x0251, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x00D0 - .short 0x00D0, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0471, 0x0071 - .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071 - .short 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071, 0x0071 - .short 0x0071, 0x0071, 0x0071, 0x00D0, 0x00D0, 0x00D0, 0x00D0, 0x0004 - .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007 - .short 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F - .short 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017 - .short 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F - .short 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027 - .short 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F - .short 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037 - .short 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F - .short 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047 - .short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F - .short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 - .short 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F - .short 0x0060, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047 - .short 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F - .short 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057 - .short 0x0058, 0x0059, 0x005A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F - - .global UNK_02104744 -UNK_02104744: ; 0x02104744 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0xB8, 0xE2, 0x3F - - .global UNK_02104754 -UNK_02104754: ; 0x02104754 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F - - .global UNK_02104764 -UNK_02104764: ; 0x02104764 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xD0, 0xCF, 0x43, 0xEB, 0xFD, 0x4C, 0x3E - - .section .data - - .global UNK_02106A58 -UNK_02106A58: ; 0x02106A58 - .byte 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK_021D73A8 - .byte 0x00, 0x01, 0x00, 0x00 - .word UNK_021D73A8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word __read_console - .word __write_console - .word __close_console - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106AA4 -UNK_02106AA4: ; 0x02106AA4 - .byte 0x01, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK_021D72A8 - .byte 0x00, 0x01, 0x00, 0x00 - .word UNK_021D72A8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word __read_console - .word __write_console - .word __close_console - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106AF0 -UNK_02106AF0: ; 0x02106AF0 - .byte 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK_021D71A8 - .byte 0x00, 0x01, 0x00, 0x00 - .word UNK_021D71A8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word __read_console - .word __write_console - .word __close_console - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106B3C -UNK_02106B3C: ; 0x02106B3C - .asciz "Assertion (%s) failed in \"%s\", function \"%s\", line %d\n" - - .balign 4, 0 - .global UNK_02106B74 -UNK_02106B74: ; 0x02106B74 - .word 0x7F800000 ; inf - - .global UNK_02106B78 -UNK_02106B78: ; 0x02106B78 - .word 0x7FFFFFFF ; nan - - .global UNK_02106B7C -UNK_02106B7C: ; 0x02106B7C - .word 0x00000000, 0x7FF00000 ; 1.06047983e-314 - - .global UNK_02106B84 -UNK_02106B84: ; 0x02106B84 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106B88 -UNK_02106B88: ; 0x02106B88 - .byte 0x25, 0x54, 0x00, 0x00 - - .global UNK_02106B8C -UNK_02106B8C: ; 0x02106B8C - .asciz "AM|PM" - - .balign 4, 0 - .global UNK_02106B94 -UNK_02106B94: ; 0x02106B94 - .word __mbtowc_noconv - .word __wctomb_noconv - - .global UNK_02106B9C -UNK_02106B9C: ; 0x02106B9C - .byte 0x20, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word UNK_02106BCC - - .global UNK_02106BAC -UNK_02106BAC: ; 0x02106BAC - .word UNK_02106B8C - .word UNK_02106CB0 - .word UNK_02106CA4 - .word UNK_02106C8C - .word UNK_02106B88 - .word UNK_02106CC0 - .word UNK_02106D18 - .word UNK_02106B84 - - .global UNK_02106BCC -UNK_02106BCC: ; 0x02106BCC - .byte 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00 - .byte 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00 - .byte 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00 - .byte 0x29, 0x00, 0x2A, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00 - .byte 0x17, 0x00, 0x2B, 0x00, 0x2D, 0x00, 0x2F, 0x00, 0x31, 0x00, 0x33, 0x00, 0x35, 0x00, 0x37, 0x00 - .byte 0x39, 0x00, 0x3B, 0x00, 0x3D, 0x00, 0x3F, 0x00, 0x41, 0x00, 0x43, 0x00, 0x45, 0x00, 0x47, 0x00 - .byte 0x49, 0x00, 0x4B, 0x00, 0x4D, 0x00, 0x4F, 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x00, 0x57, 0x00 - .byte 0x59, 0x00, 0x5B, 0x00, 0x5D, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00 - .byte 0x00, 0x00, 0x2C, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x32, 0x00, 0x34, 0x00, 0x36, 0x00, 0x38, 0x00 - .byte 0x3A, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x40, 0x00, 0x42, 0x00, 0x44, 0x00, 0x46, 0x00, 0x48, 0x00 - .byte 0x4A, 0x00, 0x4C, 0x00, 0x4E, 0x00, 0x50, 0x00, 0x52, 0x00, 0x54, 0x00, 0x56, 0x00, 0x58, 0x00 - .byte 0x5A, 0x00, 0x5C, 0x00, 0x5E, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x00, 0x00 - - .global UNK_02106C8C -UNK_02106C8C: ; 0x02106C8C - .asciz "%m/%d/%y" - - .balign 4, 0 - .global UNK_02106C98 -UNK_02106C98: ; 0x02106C98 - .word UNK_02106BAC - .word UNK_02106B9C - .word UNK_02106B94 - - .global UNK_02106CA4 -UNK_02106CA4: ; 0x02106CA4 - .asciz "%I:%M:%S %p" - - .balign 4, 0 - .global UNK_02106CB0 -UNK_02106CB0: ; 0x02106CB0 - .asciz "%a %b %e %T %Y" - - .balign 4, 0 - .global UNK_02106CC0 -UNK_02106CC0: ; 0x02106CC0 - .asciz "Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thu|Thursday|Fri|Friday|Sat|Saturday" - - .balign 4, 0 - .global UNK_02106D18 -UNK_02106D18: ; 0x02106D18 - .asciz "Jan|January|Feb|February|Mar|March|Apr|April|May|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December" - - .balign 4, 0 - .global UNK_02106DA0 -UNK_02106DA0: ; 0x02106DA0 - .byte 0x30, 0x78, 0x30, 0x70, 0x30, 0x00, 0x00, 0x00 - - .global UNK_02106DA8 -UNK_02106DA8: ; 0x02106DA8 - .asciz "-INF" - - .balign 4, 0 - .global UNK_02106DB0 -UNK_02106DB0: ; 0x02106DB0 - .asciz "-inf" - - .balign 4, 0 - .global UNK_02106DB8 -UNK_02106DB8: ; 0x02106DB8 - .asciz "INF" - - .balign 4, 0 - .global UNK_02106DBC -UNK_02106DBC: ; 0x02106DBC - .asciz "inf" - - .balign 4, 0 - .global UNK_02106DC0 -UNK_02106DC0: ; 0x02106DC0 - .asciz "-NAN" - - .balign 4, 0 - .global UNK_02106DC8 -UNK_02106DC8: ; 0x02106DC8 - .asciz "-nan" - - .balign 4, 0 - .global UNK_02106DD0 -UNK_02106DD0: ; 0x02106DD0 - .asciz "NAN" - - .balign 4, 0 - .global UNK_02106DD4 -UNK_02106DD4: ; 0x02106DD4 - .asciz "nan" - - .balign 4, 0 - .global UNK_02106DD8 -UNK_02106DD8: ; 0x02106DD8 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106DDC -UNK_02106DDC: ; 0x02106DDC - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106DE0 -UNK_02106DE0: ; 0x02106DE0 - .byte 0x01, 0x00, 0x00, 0x00 - - .global UNK_02106DE4 -UNK_02106DE4: ; 0x02106DE4 - .byte 0x30, 0x00, 0x78, 0x00, 0x30, 0x00, 0x70, 0x00, 0x30, 0x00, 0x00, 0x00 - - .global UNK_02106DF0 -UNK_02106DF0: ; 0x02106DF0 - .byte 0x2D, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106DFC -UNK_02106DFC: ; 0x02106DFC - .byte 0x2D, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106E08 -UNK_02106E08: ; 0x02106E08 - .byte 0x49, 0x00, 0x4E, 0x00, 0x46, 0x00, 0x00, 0x00 - - .global UNK_02106E10 -UNK_02106E10: ; 0x02106E10 - .byte 0x69, 0x00, 0x6E, 0x00, 0x66, 0x00, 0x00, 0x00 - - .global UNK_02106E18 -UNK_02106E18: ; 0x02106E18 - .byte 0x2D, 0x00, 0x4E, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106E24 -UNK_02106E24: ; 0x02106E24 - .byte 0x2D, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106E30 -UNK_02106E30: ; 0x02106E30 - .byte 0x4E, 0x00, 0x41, 0x00, 0x4E, 0x00, 0x00, 0x00 - - .global UNK_02106E38 -UNK_02106E38: ; 0x02106E38 - .byte 0x6E, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x00, 0x00 - - .global UNK_02106E40 -UNK_02106E40: ; 0x02106E40 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106E44 -UNK_02106E44: ; 0x02106E44 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106E48 -UNK_02106E48: ; 0x02106E48 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xC3, 0x40 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xF8, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2E, 0x41 - .byte 0x00, 0x00, 0x00, 0x00, 0xD0, 0x12, 0x63, 0x41, 0x00, 0x00, 0x00, 0x00, 0x84, 0xD7, 0x97, 0x41 - - .global UNK_02106E88 -UNK_02106E88: ; 0x02106E88 - .asciz "542101086242752217003726400434970855712890625" - - .balign 4, 0 - .global UNK_02106EB8 -UNK_02106EB8: ; 0x02106EB8 - .asciz "11102230246251565404236316680908203125" - - .balign 4, 0 - .global UNK_02106EE0 -UNK_02106EE0: ; 0x02106EE0 - .asciz "23283064365386962890625" - - .balign 4, 0 - .global UNK_02106EF8 -UNK_02106EF8: ; 0x02106EF8 - .asciz "152587890625" - - .balign 4, 0 - .global UNK_02106F08 -UNK_02106F08: ; 0x02106F08 - .asciz "390625" - - .balign 4, 0 - .global UNK_02106F10 -UNK_02106F10: ; 0x02106F10 - .asciz "78125" - - .balign 4, 0 - .global UNK_02106F18 -UNK_02106F18: ; 0x02106F18 - .asciz "15625" - - .balign 4, 0 - .global UNK_02106F20 -UNK_02106F20: ; 0x02106F20 - .asciz "3125" - - .balign 4, 0 - .global UNK_02106F28 -UNK_02106F28: ; 0x02106F28 - .asciz "625" - - .balign 4, 0 - .global UNK_02106F2C -UNK_02106F2C: ; 0x02106F2C - .asciz "125" - - .balign 4, 0 - .global UNK_02106F30 -UNK_02106F30: ; 0x02106F30 - .asciz "25" - - .balign 4, 0 - .global UNK_02106F34 -UNK_02106F34: ; 0x02106F34 - .asciz "5" - - .balign 4, 0 - .global UNK_02106F38 -UNK_02106F38: ; 0x02106F38 - .asciz "1" - - .balign 4, 0 - .global UNK_02106F3C -UNK_02106F3C: ; 0x02106F3C - .asciz "2" - - .balign 4, 0 - .global UNK_02106F40 -UNK_02106F40: ; 0x02106F40 - .asciz "4" - - .balign 4, 0 - .global UNK_02106F44 -UNK_02106F44: ; 0x02106F44 - .asciz "8" - - .balign 4, 0 - .global UNK_02106F48 -UNK_02106F48: ; 0x02106F48 - .asciz "16" - - .balign 4, 0 - .global UNK_02106F4C -UNK_02106F4C: ; 0x02106F4C - .asciz "32" - - .balign 4, 0 - .global UNK_02106F50 -UNK_02106F50: ; 0x02106F50 - .asciz "64" - - .balign 4, 0 - .global UNK_02106F54 -UNK_02106F54: ; 0x02106F54 - .asciz "128" - - .balign 4, 0 - .global UNK_02106F58 -UNK_02106F58: ; 0x02106F58 - .asciz "256" - - .balign 4, 0 - .global UNK_02106F5C -UNK_02106F5C: ; 0x02106F5C - .asciz "179769313486231580793728714053034151" - - .section .bss - - .global UNK_021D6F78 -UNK_021D6F78: ; 0x021D6F78 - .space 0x10 - - .global UNK_021D6F88 -UNK_021D6F88: ; 0x021D6F88 - .space 0x100 - - .global UNK_021D7088 -UNK_021D7088: ; 0x021D7088 - .space 0x24 - - .global UNK_021D70AC -UNK_021D70AC: ; 0x021D70AC - .space 0x24 - - .global UNK_021D70D0 -UNK_021D70D0: ; 0x021D70D0 - .space 0x48 - - .global UNK_021D7118 -UNK_021D7118: ; 0x021D7118 - .space 0x60 - - .global UNK_021D7178 -UNK_021D7178: ; 0x021D7178 - .space 0x30 - - .global UNK_021D71A8 -UNK_021D71A8: ; 0x021D71A8 - .space 0x100 - - .global UNK_021D72A8 -UNK_021D72A8: ; 0x021D72A8 - .space 0x100 - - .global UNK_021D73A8 -UNK_021D73A8: ; 0x021D73A8 - .space 0x100 - - .global UNK_021D74A8 -UNK_021D74A8: ; 0x021D74A8 - .space 0x4 - - .global UNK_021D74AC -UNK_021D74AC: ; 0x021D74AC - .space 0x1c - - .section .text - .balign 4, 0 - - arm_func_start abort -abort: ; 0x020DE14C - stmdb sp!, {r3,lr} - mov r0, #0x1 - bl raise - ldr r1, _020DE16C ; =UNK_021D6F78 - mov r0, #0x1 - str r0, [r1, #0xc] - bl exit - ldmia sp!, {r3,pc} - .balign 4 -_020DE16C: .word UNK_021D6F78 - - arm_func_start exit -exit: ; 0x020DE170 - stmdb sp!, {r4,lr} - ldr r1, _020DE1B8 ; =UNK_021D6F78 - mov r4, r0 - ldr r0, [r1, #0xc] - cmp r0, #0x0 - bne _020DE1AC - bl __destroy_global_chain - ldr r0, _020DE1B8 ; =UNK_021D6F78 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _020DE1AC - blx r0 - ldr r0, _020DE1B8 ; =UNK_021D6F78 - mov r1, #0x0 - str r1, [r0, #0x4] -_020DE1AC: - mov r0, r4 - bl __exit - ldmia sp!, {r4,pc} - .balign 4 -_020DE1B8: .word UNK_021D6F78 - - arm_func_start __exit -__exit: ; 0x020DE1BC - stmdb sp!, {r3-r5,lr} - ldr r0, _020DE2CC ; =UNK_021D70D0 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020DE1F4 - ldr r0, _020DE2D0 ; =OSi_ThreadInfo - ldr r1, _020DE2D4 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020DE2D8 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - b _020DE24C -_020DE1F4: - ldr r0, _020DE2D0 ; =OSi_ThreadInfo - ldr r1, _020DE2D4 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, #0x0] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020DE224 - ldr r0, _020DE2D8 ; =UNK_021D70AC - ldr r1, [r0, #0x0] - add r1, r1, #0x1 - str r1, [r0, #0x0] - b _020DE24C -_020DE224: - ldr r0, _020DE2CC ; =UNK_021D70D0 - bl OS_LockMutex - ldr r0, _020DE2D0 ; =OSi_ThreadInfo - ldr r1, _020DE2D4 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020DE2D8 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0x0] - str r2, [r0, #0x0] -_020DE24C: - ldr r4, _020DE2DC ; =UNK_021D6F78 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - ble _020DE280 - ldr r5, _020DE2E0 ; =UNK_021D6F88 -_020DE260: - ldr r0, [r4, #0x8] - sub r1, r0, #0x1 - ldr r0, [r5, r1, lsl #0x2] - str r1, [r4, #0x8] - blx r0 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - bgt _020DE260 -_020DE280: - ldr r0, _020DE2D8 ; =UNK_021D70AC - ldr r1, [r0, #0x0] - subs r1, r1, #0x1 - str r1, [r0, #0x0] - bne _020DE29C - ldr r0, _020DE2CC ; =UNK_021D70D0 - bl OS_UnlockMutex -_020DE29C: - ldr r0, _020DE2DC ; =UNK_021D6F78 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020DE2BC - blx r0 - ldr r0, _020DE2DC ; =UNK_021D6F78 - mov r1, #0x0 - str r1, [r0, #0x0] -_020DE2BC: - mov r0, #0x0 - bl fflush - bl _ExitProcess - ldmia sp!, {r3-r5,pc} - .balign 4 -_020DE2CC: .word UNK_021D70D0 -_020DE2D0: .word OSi_ThreadInfo -_020DE2D4: .word UNK_021D7088 -_020DE2D8: .word UNK_021D70AC -_020DE2DC: .word UNK_021D6F78 -_020DE2E0: .word UNK_021D6F88 - - arm_func_start nan -nan: ; 0x020DE2E4 - ldr r0, _020DE2F4 ; =UNK_02106B78 - ldr ip, _020DE2F8 ; =_f2d - ldr r0, [r0, #0x0] - bx r12 - .balign 4 -_020DE2F4: .word UNK_02106B78 -_020DE2F8: .word _f2d - - arm_func_start __flush_line_buffered_output_files -__flush_line_buffered_output_files: - stmdb sp!, {r3-r9,lr} - ldr r0, _020DE384 ; =UNK_02106A58 - mov r4, #0x0 - mov r5, #0x1 - mov r8, r0 - mvn r9, #0x0 - mov r7, r4 - mov r6, #0x4c -_020DE31C: - ldr r1, [r0, #0x4] - mov r2, r1, lsl #0x16 - movs r2, r2, lsr #0x1d - beq _020DE35C - mov r1, r1, lsl #0x19 - mov r1, r1, lsr #0x1e - tst r1, #0x1 - beq _020DE35C - ldr r1, [r0, #0x8] - mov r1, r1, lsl #0x1d - mov r1, r1, lsr #0x1d - cmp r1, #0x1 - bne _020DE35C - bl fflush - cmp r0, #0x0 - movne r4, r9 -_020DE35C: - cmp r5, #0x3 - movge r0, r7 - bge _020DE374 - mul r0, r5, r6 - add r5, r5, #0x1 - add r0, r8, r0 -_020DE374: - cmp r0, #0x0 - bne _020DE31C - mov r0, r4 - ldmia sp!, {r3-r9,pc} - .balign 4 -_020DE384: .word UNK_02106A58 - - arm_func_start __flush_all -__flush_all: ; 0x020DE388 - stmdb sp!, {r3-r9,lr} - ldr r0, _020DE3EC ; =UNK_02106A58 - mov r4, #0x0 - mov r5, #0x1 - mov r8, r0 - mvn r9, #0x0 - mov r7, r4 - mov r6, #0x4c -_020DE3A8: - ldr r1, [r0, #0x4] - mov r1, r1, lsl #0x16 - movs r1, r1, lsr #0x1d - beq _020DE3C4 - bl fflush - cmp r0, #0x0 - movne r4, r9 -_020DE3C4: - cmp r5, #0x3 - movge r0, r7 - bge _020DE3DC - mul r0, r5, r6 - add r5, r5, #0x1 - add r0, r8, r0 -_020DE3DC: - cmp r0, #0x0 - bne _020DE3A8 - mov r0, r4 - ldmia sp!, {r3-r9,pc} - .balign 4 -_020DE3EC: .word UNK_02106A58 - - arm_func_start abs -abs: ; 0x020DE3F0 - cmp r0, #0x0 - rsblt r0, r0, #0x0 - bx lr - - arm_func_start __msl_assertion_failed -__msl_assertion_failed: ; 0x020DE3FC - stmdb sp!, {r3-r4,lr} - sub sp, sp, #0x4 - mov r4, r0 - mov lr, r1 - mov r12, r2 - str r3, [sp, #0x0] - ldr r0, _020DE434 ; =UNK_02106B3C - mov r1, r4 - mov r2, lr - mov r3, r12 - bl printf - bl abort - add sp, sp, #0x4 - ldmia sp!, {r3-r4,pc} - .balign 4 -_020DE434: .word UNK_02106B3C - - arm_func_start __convert_from_newlines -__convert_from_newlines: - bx lr - - arm_func_start __convert_to_newlines -__convert_to_newlines: - bx lr - - arm_func_start __prep_buffer -__prep_buffer: - ldr r1, [r0, #0x1c] - str r1, [r0, #0x24] - ldr r3, [r0, #0x20] - str r3, [r0, #0x28] - ldr r2, [r0, #0x18] - ldr r1, [r0, #0x2c] - and r1, r2, r1 - sub r1, r3, r1 - str r1, [r0, #0x28] - ldr r1, [r0, #0x18] - str r1, [r0, #0x34] - bx lr - - arm_func_start __load_buffer -__load_buffer: - stmdb sp!, {r4-r6,lr} - mov r5, r2 - mov r4, r0 - mov r6, r1 - bl __prep_buffer - cmp r5, #0x1 - ldreq r0, [r4, #0x20] - add r2, r4, #0x28 - streq r0, [r4, #0x28] - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x1c] - ldr r3, [r4, #0x48] - ldr r12, [r4, #0x3c] - blx r12 - cmp r0, #0x2 - moveq r1, #0x0 - streq r1, [r4, #0x28] - cmp r6, #0x0 - ldrne r1, [r4, #0x28] - strne r1, [r6, #0x0] - cmp r0, #0x0 - ldmneia sp!, {r4-r6,pc} - ldr r1, [r4, #0x18] - ldr r0, [r4, #0x28] - add r0, r1, r0 - str r0, [r4, #0x18] - ldr r0, [r4, #0x4] - mov r0, r0, lsl #0x13 - movs r0, r0, lsr #0x1f - bne _020DE4F4 - ldr r0, [r4, #0x1c] - add r1, r4, #0x28 - bl __convert_to_newlines -_020DE4F4: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start __flush_buffer -__flush_buffer: - stmdb sp!, {r3-r5,lr} - mov r5, r0 - ldr r2, [r5, #0x24] - ldr r0, [r5, #0x1c] - mov r4, r1 - subs r0, r2, r0 - beq _020DE574 - str r0, [r5, #0x28] - ldr r0, [r5, #0x4] - mov r0, r0, lsl #0x13 - movs r0, r0, lsr #0x1f - bne _020DE538 - ldr r0, [r5, #0x1c] - add r1, r5, #0x28 - bl __convert_from_newlines -_020DE538: - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x1c] - ldr r3, [r5, #0x48] - ldr r12, [r5, #0x40] - add r2, r5, #0x28 - blx r12 - cmp r4, #0x0 - ldrne r1, [r5, #0x28] - strne r1, [r4, #0x0] - cmp r0, #0x0 - ldmneia sp!, {r3-r5,pc} - ldr r1, [r5, #0x18] - ldr r0, [r5, #0x28] - add r0, r1, r0 - str r0, [r5, #0x18] -_020DE574: - mov r0, r5 - bl __prep_buffer - mov r0, #0x0 - ldmia sp!, {r3-r5,pc} - - arm_func_start fread -fread: ; 0x020DE584 - stmdb sp!, {r4-r10,lr} - ldr r4, _020DE67C ; =UNK_02106A58 - mov r7, r3 - cmp r7, r4 - moveq r6, #0x2 - mov r10, r0 - movne r6, #0x5 - mov r0, #0x18 - mul r4, r6, r0 - ldr r5, _020DE680 ; =UNK_021D70D0 - mov r9, r1 - add r0, r5, r4 - mov r8, r2 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020DE5E8 - ldr r0, _020DE684 ; =OSi_ThreadInfo - ldr r2, _020DE688 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DE68C ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] - b _020DE640 -_020DE5E8: - ldr r0, _020DE684 ; =OSi_ThreadInfo - ldr r1, _020DE688 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, r6, lsl #0x2] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020DE618 - ldr r1, _020DE68C ; =UNK_021D70AC - ldr r0, [r1, r6, lsl #0x2] - add r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - b _020DE640 -_020DE618: - add r0, r5, r4 - bl OS_LockMutex - ldr r0, _020DE684 ; =OSi_ThreadInfo - ldr r2, _020DE688 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DE68C ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] -_020DE640: - mov r0, r10 - mov r1, r9 - mov r2, r8 - mov r3, r7 - bl __fread - ldr r1, _020DE68C ; =UNK_021D70AC - mov r7, r0 - ldr r0, [r1, r6, lsl #0x2] - subs r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - bne _020DE674 - add r0, r5, r4 - bl OS_UnlockMutex -_020DE674: - mov r0, r7 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020DE67C: .word UNK_02106A58 -_020DE680: .word UNK_021D70D0 -_020DE684: .word OSi_ThreadInfo -_020DE688: .word UNK_021D7088 -_020DE68C: .word UNK_021D70AC - - arm_func_start __fread -__fread: ; 0x020DE690 - stmdb sp!, {r3-r10,lr} - sub sp, sp, #0x4 - mov r7, r3 - mov r9, r0 - mov r8, r1 - mov r0, r7 - mov r1, #0x0 - mov r4, r2 - bl fwide - cmp r0, #0x0 - bne _020DE6C8 - mov r0, r7 - mvn r1, #0x0 - bl fwide -_020DE6C8: - muls r4, r8, r4 - beq _020DE6EC - ldrb r0, [r7, #0xd] - cmp r0, #0x0 - bne _020DE6EC - ldr r1, [r7, #0x4] - mov r0, r1, lsl #0x16 - movs r0, r0, lsr #0x1d - bne _020DE6F8 -_020DE6EC: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r3-r10,pc} -_020DE6F8: - mov r0, r1, lsl #0x13 - movs r0, r0, lsr #0x1f - movne r0, r1, lsl #0x19 - movne r0, r0, lsr #0x1e - ldr r1, [r7, #0x8] - cmpne r0, #0x2 - mov r6, #0x1 - mov r0, r1, lsl #0x1d - movne r6, #0x0 - movs r0, r0, lsr #0x1d - bne _020DE74C - ldr r0, [r7, #0x4] - mov r0, r0, lsl #0x1b - mov r0, r0, lsr #0x1d - tst r0, #0x1 - beq _020DE74C - bic r0, r1, #0x7 - orr r0, r0, #0x2 - str r0, [r7, #0x8] - mov r0, #0x0 - str r0, [r7, #0x28] -_020DE74C: - ldr r0, [r7, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x2 - bhs _020DE778 - mov r0, #0x1 - strb r0, [r7, #0xd] - mov r0, #0x0 - add sp, sp, #0x4 - str r0, [r7, #0x28] - ldmia sp!, {r3-r10,pc} -_020DE778: - ldr r0, [r7, #0x4] - mov r0, r0, lsl #0x19 - mov r0, r0, lsr #0x1e - tst r0, #0x1 - beq _020DE7B0 - bl __flush_line_buffered_output_files - cmp r0, #0x0 - beq _020DE7B0 - mov r0, #0x1 - strb r0, [r7, #0xd] - mov r0, #0x0 - add sp, sp, #0x4 - str r0, [r7, #0x28] - ldmia sp!, {r3-r10,pc} -_020DE7B0: - cmp r4, #0x0 - mov r5, #0x0 - beq _020DE874 - ldr r0, [r7, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x3 - blo _020DE874 - mov r10, r5 -_020DE7D4: - mov r0, r7 - mov r1, r10 - bl fwide - cmp r0, #0x1 - ldr r0, [r7, #0x8] - bne _020DE808 - mov r0, r0, lsl #0x1d - add r0, r7, r0, lsr #0x1c - ldrh r0, [r0, #0xe] - add r5, r5, #0x2 - sub r4, r4, #0x2 - strh r0, [r9], #0x2 - b _020DE820 -_020DE808: - mov r0, r0, lsl #0x1d - add r0, r7, r0, lsr #0x1d - ldrb r0, [r0, #0xf] - add r5, r5, #0x1 - sub r4, r4, #0x1 - strb r0, [r9], #0x1 -_020DE820: - ldr r1, [r7, #0x8] - cmp r4, #0x0 - mov r0, r1, lsl #0x1d - mov r0, r0, lsr #0x1d - sub r0, r0, #0x1 - bic r1, r1, #0x7 - and r0, r0, #0x7 - orr r0, r1, r0 - str r0, [r7, #0x8] - beq _020DE85C - ldr r0, [r7, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x3 - bhs _020DE7D4 -_020DE85C: - ldr r0, [r7, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x2 - ldreq r0, [r7, #0x30] - streq r0, [r7, #0x28] -_020DE874: - cmp r4, #0x0 - beq _020DE938 - ldr r0, [r7, #0x28] - cmp r0, #0x0 - cmpeq r6, #0x0 - beq _020DE938 - mov r10, #0x0 -_020DE890: - ldr r0, [r7, #0x28] - cmp r0, #0x0 - bne _020DE8E4 - mov r0, r7 - mov r1, r10 - mov r2, r10 - bl __load_buffer - cmp r0, #0x0 - beq _020DE8E4 - cmp r0, #0x1 - mov r0, #0x1 - streqb r0, [r7, #0xd] - beq _020DE8D4 - ldr r1, [r7, #0x8] - bic r1, r1, #0x7 - str r1, [r7, #0x8] - strb r0, [r7, #0xc] -_020DE8D4: - mov r0, #0x0 - str r0, [r7, #0x28] - mov r4, #0x0 - b _020DE938 -_020DE8E4: - ldr r0, [r7, #0x28] - str r0, [sp, #0x0] - cmp r0, r4 - strhi r4, [sp, #0x0] - ldr r1, [r7, #0x24] - ldr r2, [sp, #0x0] - mov r0, r9 - bl memcpy - ldr r2, [sp, #0x0] - ldr r0, [r7, #0x24] - subs r4, r4, r2 - add r0, r0, r2 - str r0, [r7, #0x24] - ldr r1, [r7, #0x28] - ldr r0, [sp, #0x0] - add r9, r9, r2 - sub r0, r1, r0 - add r5, r5, r2 - str r0, [r7, #0x28] - cmpne r6, #0x0 - bne _020DE890 -_020DE938: - cmp r4, #0x0 - beq _020DE9C4 - cmp r6, #0x0 - bne _020DE9C4 - ldr r6, [r7, #0x1c] - ldr r10, [r7, #0x20] - add r1, sp, #0x0 - str r9, [r7, #0x1c] - mov r0, r7 - mov r2, #0x1 - str r4, [r7, #0x20] - bl __load_buffer - cmp r0, #0x0 - beq _020DE9A4 - cmp r0, #0x1 - mov r0, #0x1 - bne _020DE98C - strb r0, [r7, #0xd] - mov r0, #0x0 - str r0, [r7, #0x28] - b _020DE9A4 -_020DE98C: - ldr r1, [r7, #0x8] - bic r1, r1, #0x7 - str r1, [r7, #0x8] - strb r0, [r7, #0xc] - mov r0, #0x0 - str r0, [r7, #0x28] -_020DE9A4: - ldr r1, [sp, #0x0] - mov r0, r7 - str r6, [r7, #0x1c] - str r10, [r7, #0x20] - add r5, r5, r1 - bl __prep_buffer - mov r0, #0x0 - str r0, [r7, #0x28] -_020DE9C4: - mov r0, r5 - mov r1, r8 - bl _u32_div_f - add sp, sp, #0x4 - ldmia sp!, {r3-r10,pc} - - arm_func_start __fwrite -__fwrite: - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x8 - mov r9, r3 - mov r10, r0 - str r1, [sp, #0x0] - mov r0, r9 - mov r1, #0x0 - mov r4, r2 - bl fwide - cmp r0, #0x0 - bne _020DEA10 - mov r0, r9 - mvn r1, #0x0 - bl fwide -_020DEA10: - ldr r0, [sp, #0x0] - muls r5, r0, r4 - beq _020DEA38 - ldrb r0, [r9, #0xd] - cmp r0, #0x0 - bne _020DEA38 - ldr r1, [r9, #0x4] - mov r0, r1, lsl #0x16 - movs r0, r0, lsr #0x1d - bne _020DEA44 -_020DEA38: - add sp, sp, #0x8 - mov r0, #0x0 - ldmia sp!, {r3-r11,pc} -_020DEA44: - mov r0, r1, lsl #0x13 - movs r0, r0, lsr #0x1f - movne r0, r1, lsl #0x19 - movne r0, r0, lsr #0x1e - cmpne r0, #0x2 - ldr r1, [r9, #0x8] - cmpne r0, #0x1 - mov r8, #0x1 - mov r0, r1, lsl #0x1d - movne r8, #0x0 - movs r0, r0, lsr #0x1d - bne _020DEA9C - ldr r0, [r9, #0x4] - mov r0, r0, lsl #0x1b - mov r0, r0, lsr #0x1d - tst r0, #0x2 - beq _020DEA9C - bic r0, r1, #0x7 - orr r1, r0, #0x1 - mov r0, r9 - str r1, [r9, #0x8] - bl __prep_buffer -_020DEA9C: - ldr r0, [r9, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x1 - beq _020DEAC8 - mov r0, #0x1 - strb r0, [r9, #0xd] - mov r0, #0x0 - add sp, sp, #0x8 - str r0, [r9, #0x28] - ldmia sp!, {r3-r11,pc} -_020DEAC8: - cmp r5, #0x0 - mov r6, #0x0 - beq _020DEBF0 - ldr r0, [r9, #0x1c] - ldr r2, [r9, #0x24] - cmp r2, r0 - cmpeq r8, #0x0 - beq _020DEBF0 - ldr r1, [r9, #0x20] - sub r0, r2, r0 - sub r0, r1, r0 - str r0, [r9, #0x28] - mov r11, #0xa - mov r4, #0x0 -_020DEB00: - ldr r0, [r9, #0x28] - mov r7, r4 - str r0, [sp, #0x4] - cmp r0, r5 - strhi r5, [sp, #0x4] - ldr r0, [r9, #0x4] - mov r0, r0, lsl #0x19 - mov r0, r0, lsr #0x1e - cmp r0, #0x1 - bne _020DEB50 - ldr r2, [sp, #0x4] - cmp r2, #0x0 - beq _020DEB50 - mov r0, r10 - mov r1, r11 - bl __memrchr - movs r7, r0 - addne r0, r7, #0x1 - subne r0, r0, r10 - strne r0, [sp, #0x4] -_020DEB50: - ldr r2, [sp, #0x4] - cmp r2, #0x0 - beq _020DEB90 - ldr r0, [r9, #0x24] - mov r1, r10 - bl memcpy - ldr r2, [sp, #0x4] - ldr r0, [r9, #0x24] - add r10, r10, r2 - add r0, r0, r2 - str r0, [r9, #0x24] - ldr r1, [r9, #0x28] - ldr r0, [sp, #0x4] - sub r5, r5, r2 - sub r0, r1, r0 - str r0, [r9, #0x28] -_020DEB90: - ldr r0, [r9, #0x28] - cmp r0, #0x0 - beq _020DEBB4 - cmp r7, #0x0 - bne _020DEBB4 - ldr r0, [r9, #0x4] - mov r0, r0, lsl #0x19 - movs r0, r0, lsr #0x1e - bne _020DEBDC -_020DEBB4: - mov r0, r9 - mov r1, #0x0 - bl __flush_buffer - cmp r0, #0x0 - beq _020DEBDC - mov r0, #0x1 - strb r0, [r9, #0xd] - mov r5, #0x0 - str r5, [r9, #0x28] - b _020DEBF0 -_020DEBDC: - ldr r0, [sp, #0x4] - cmp r5, #0x0 - add r6, r6, r0 - cmpne r8, #0x0 - bne _020DEB00 -_020DEBF0: - cmp r5, #0x0 - beq _020DEC5C - cmp r8, #0x0 - bne _020DEC5C - ldr r4, [r9, #0x1c] - ldr r7, [r9, #0x20] - add r2, r10, r5 - str r10, [r9, #0x1c] - str r5, [r9, #0x20] - add r1, sp, #0x4 - mov r0, r9 - str r2, [r9, #0x24] - bl __flush_buffer - cmp r0, #0x0 - ldreq r0, [sp, #0x4] - addeq r6, r6, r0 - beq _020DEC44 - mov r0, #0x1 - strb r0, [r9, #0xd] - mov r0, #0x0 - str r0, [r9, #0x28] -_020DEC44: - str r4, [r9, #0x1c] - mov r0, r9 - str r7, [r9, #0x20] - bl __prep_buffer - mov r0, #0x0 - str r0, [r9, #0x28] -_020DEC5C: - ldr r0, [r9, #0x4] - ldr r1, [sp, #0x0] - mov r0, r0, lsl #0x19 - mov r0, r0, lsr #0x1e - cmp r0, #0x2 - movne r0, #0x0 - strne r0, [r9, #0x28] - mov r0, r6 - bl _u32_div_f - add sp, sp, #0x8 - ldmia sp!, {r3-r11,pc} - - arm_func_start fclose -fclose: ; 0x020DEC88 - stmdb sp!, {r3-r5,lr} - movs r5, r0 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r5,pc} - ldr r1, [r5, #0x4] - mov r1, r1, lsl #0x16 - movs r1, r1, lsr #0x1d - moveq r0, #0x0 - ldmeqia sp!, {r3-r5,pc} - bl fflush - mov r4, r0 - ldr r0, [r5, #0x0] - ldr r1, [r5, #0x44] - blx r1 - ldr r1, [r5, #0x4] - mov r2, #0x0 - bic r1, r1, #0x380 - str r1, [r5, #0x4] - str r2, [r5, #0x0] - ldr r1, [r5, #0x8] - mov r1, r1, lsl #0x1c - movs r1, r1, lsr #0x1f - subne r0, r2, #0x1 - ldmneia sp!, {r3-r5,pc} - cmp r4, #0x0 - cmpeq r0, #0x0 - movne r2, #0x1 - rsb r0, r2, #0x0 - ldmia sp!, {r3-r5,pc} - - arm_func_start fflush -fflush: - stmdb sp!, {r4,lr} - movs r4, r0 - bne _020DED10 - bl __flush_all - ldmia sp!, {r4,pc} -_020DED10: - ldrb r0, [r4, #0xd] - cmp r0, #0x0 - bne _020DED2C - ldr r0, [r4, #0x4] - mov r1, r0, lsl #0x16 - movs r1, r1, lsr #0x1d - bne _020DED34 -_020DED2C: - mvn r0, #0x0 - ldmia sp!, {r4,pc} -_020DED34: - mov r0, r0, lsl #0x1b - mov r0, r0, lsr #0x1d - cmp r0, #0x1 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r0, [r4, #0x8] - mov r1, r0, lsl #0x1d - mov r1, r1, lsr #0x1d - cmp r1, #0x3 - biccs r0, r0, #0x7 - orrcs r0, r0, #0x2 - strcs r0, [r4, #0x8] - ldr r0, [r4, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - cmp r0, #0x2 - moveq r0, #0x0 - streq r0, [r4, #0x28] - ldr r0, [r4, #0x8] - mov r1, r0, lsl #0x1d - mov r1, r1, lsr #0x1d - cmp r1, #0x1 - beq _020DEDA0 - bic r0, r0, #0x7 - str r0, [r4, #0x8] - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020DEDA0: - mov r0, r4 - mov r1, #0x0 - bl __flush_buffer - cmp r0, #0x0 - mov r0, #0x0 - beq _020DEDCC - mov r1, #0x1 - strb r1, [r4, #0xd] - str r0, [r4, #0x28] - sub r0, r0, #0x1 - ldmia sp!, {r4,pc} -_020DEDCC: - ldr r1, [r4, #0x8] - bic r1, r1, #0x7 - str r1, [r4, #0x8] - str r0, [r4, #0x18] - str r0, [r4, #0x28] - ldmia sp!, {r4,pc} - - arm_func_start _ftell -_ftell: ; 0x020DEDE4 - ldr r1, [r0, #0x4] - mov r1, r1, lsl #0x16 - mov r1, r1, lsr #0x1d - and r1, r1, #0xff - add r1, r1, #0xff - and r1, r1, #0xff - cmp r1, #0x1 - bhi _020DEE10 - ldrb r1, [r0, #0xd] - cmp r1, #0x0 - beq _020DEE24 -_020DEE10: - ldr r0, _020DEE5C ; =UNK_021D74A8 - mov r1, #0x28 - str r1, [r0, #0x0] - sub r0, r1, #0x29 - bx lr -_020DEE24: - ldr r1, [r0, #0x8] - mov r1, r1, lsl #0x1d - movs r12, r1, lsr #0x1d - ldreq r0, [r0, #0x18] - bxeq lr - ldr r2, [r0, #0x24] - ldr r1, [r0, #0x1c] - ldr r3, [r0, #0x34] - sub r0, r2, r1 - cmp r12, #0x3 - add r0, r3, r0 - subcs r1, r12, #0x2 - subcs r0, r0, r1 - bx lr - .balign 4 -_020DEE5C: .word UNK_021D74A8 - - arm_func_start ftell -ftell: ; 0x020DEE60 - stmdb sp!, {r3-r7,lr} - ldr r1, _020DEF60 ; =UNK_02106A58 - mov r7, r0 - cmp r7, r1 - moveq r6, #0x2 - beq _020DEE98 - ldr r0, _020DEF64 ; =UNK_02106AA4 - cmp r7, r0 - moveq r6, #0x3 - beq _020DEE98 - ldr r0, _020DEF68 ; =UNK_02106AF0 - cmp r7, r0 - moveq r6, #0x4 - movne r6, #0x5 -_020DEE98: - mov r0, #0x18 - mul r4, r6, r0 - ldr r5, _020DEF6C ; =UNK_021D70D0 - add r0, r5, r4 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020DEED8 - ldr r0, _020DEF70 ; =OSi_ThreadInfo - ldr r2, _020DEF74 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DEF78 ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] - b _020DEF30 -_020DEED8: - ldr r0, _020DEF70 ; =OSi_ThreadInfo - ldr r1, _020DEF74 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, r6, lsl #0x2] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020DEF08 - ldr r1, _020DEF78 ; =UNK_021D70AC - ldr r0, [r1, r6, lsl #0x2] - add r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - b _020DEF30 -_020DEF08: - add r0, r5, r4 - bl OS_LockMutex - ldr r0, _020DEF70 ; =OSi_ThreadInfo - ldr r2, _020DEF74 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DEF78 ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] -_020DEF30: - mov r0, r7 - bl _ftell - ldr r1, _020DEF78 ; =UNK_021D70AC - mov r7, r0 - ldr r0, [r1, r6, lsl #0x2] - subs r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - bne _020DEF58 - add r0, r5, r4 - bl OS_UnlockMutex -_020DEF58: - mov r0, r7 - ldmia sp!, {r3-r7,pc} - .balign 4 -_020DEF60: .word UNK_02106A58 -_020DEF64: .word UNK_02106AA4 -_020DEF68: .word UNK_02106AF0 -_020DEF6C: .word UNK_021D70D0 -_020DEF70: .word OSi_ThreadInfo -_020DEF74: .word UNK_021D7088 -_020DEF78: .word UNK_021D70AC - - arm_func_start _fseek -_fseek: ; 0x020DEF7C - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r5,lr} - mov r5, r0 - ldr r1, [r5, #0x4] - mov r4, r2 - mov r1, r1, lsl #0x16 - mov r1, r1, lsr #0x1d - and r1, r1, #0xff - cmp r1, #0x1 - ldreqb r1, [r5, #0xd] - cmpeq r1, #0x0 - beq _020DEFC8 - ldr r0, _020DF160 ; =UNK_021D74A8 - mov r1, #0x28 - str r1, [r0, #0x0] - sub r0, r1, #0x29 - ldmia sp!, {r3-r5,lr} - add sp, sp, #0x10 - bx lr -_020DEFC8: - ldr r1, [r5, #0x8] - mov r1, r1, lsl #0x1d - mov r1, r1, lsr #0x1d - cmp r1, #0x1 - bne _020DF018 - mov r1, #0x0 - bl __flush_buffer - cmp r0, #0x0 - beq _020DF018 - mov r0, #0x1 - strb r0, [r5, #0xd] - mov r2, #0x0 - ldr r0, _020DF160 ; =UNK_021D74A8 - mov r1, #0x28 - str r2, [r5, #0x28] - str r1, [r0, #0x0] - sub r0, r1, #0x29 - ldmia sp!, {r3-r5,lr} - add sp, sp, #0x10 - bx lr -_020DF018: - cmp r4, #0x1 - bne _020DF038 - mov r0, r5 - mov r4, #0x0 - bl _ftell - ldr r1, [sp, #0x14] - add r0, r1, r0 - str r0, [sp, #0x14] -_020DF038: - cmp r4, #0x2 - beq _020DF0CC - ldr r0, [r5, #0x4] - mov r0, r0, lsl #0x1b - mov r0, r0, lsr #0x1d - cmp r0, #0x3 - beq _020DF0CC - ldr r0, [r5, #0x8] - mov r0, r0, lsl #0x1d - mov r0, r0, lsr #0x1d - sub r0, r0, #0x2 - cmp r0, #0x1 - bhi _020DF0CC - ldr r2, [sp, #0x14] - ldr r0, [r5, #0x18] - cmp r2, r0 - bhs _020DF088 - ldr r0, [r5, #0x34] - cmp r2, r0 - bhs _020DF098 -_020DF088: - ldr r0, [r5, #0x8] - bic r0, r0, #0x7 - str r0, [r5, #0x8] - b _020DF0D8 -_020DF098: - ldr r1, [r5, #0x1c] - sub r0, r2, r0 - add r0, r1, r0 - str r0, [r5, #0x24] - ldr r1, [r5, #0x18] - ldr r0, [sp, #0x14] - sub r0, r1, r0 - str r0, [r5, #0x28] - ldr r0, [r5, #0x8] - bic r0, r0, #0x7 - orr r0, r0, #0x2 - str r0, [r5, #0x8] - b _020DF0D8 -_020DF0CC: - ldr r0, [r5, #0x8] - bic r0, r0, #0x7 - str r0, [r5, #0x8] -_020DF0D8: - ldr r0, [r5, #0x8] - mov r0, r0, lsl #0x1d - movs r0, r0, lsr #0x1d - bne _020DF150 - ldr r12, [r5, #0x38] - cmp r12, #0x0 - beq _020DF13C - ldr r0, [r5, #0x0] - ldr r3, [r5, #0x48] - add r1, sp, #0x14 - mov r2, r4 - blx r12 - cmp r0, #0x0 - beq _020DF13C - mov r0, #0x1 - strb r0, [r5, #0xd] - mov r2, #0x0 - ldr r0, _020DF160 ; =UNK_021D74A8 - mov r1, #0x28 - str r2, [r5, #0x28] - str r1, [r0, #0x0] - sub r0, r1, #0x29 - ldmia sp!, {r3-r5,lr} - add sp, sp, #0x10 - bx lr -_020DF13C: - mov r1, #0x0 - strb r1, [r5, #0xc] - ldr r0, [sp, #0x14] - str r0, [r5, #0x18] - str r1, [r5, #0x28] -_020DF150: - mov r0, #0x0 - ldmia sp!, {r3-r5,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020DF160: .word UNK_021D74A8 - - arm_func_start fseek -fseek: - stmdb sp!, {r3-r9,lr} - ldr r3, _020DF274 ; =UNK_02106A58 - mov r9, r0 - cmp r9, r3 - mov r8, r1 - mov r7, r2 - moveq r6, #0x2 - beq _020DF1A4 - ldr r0, _020DF278 ; =UNK_02106AA4 - cmp r9, r0 - moveq r6, #0x3 - beq _020DF1A4 - ldr r0, _020DF27C ; =UNK_02106AF0 - cmp r9, r0 - moveq r6, #0x4 - movne r6, #0x5 -_020DF1A4: - mov r0, #0x18 - mul r4, r6, r0 - ldr r5, _020DF280 ; =UNK_021D70D0 - add r0, r5, r4 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020DF1E4 - ldr r0, _020DF284 ; =OSi_ThreadInfo - ldr r2, _020DF288 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DF28C ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] - b _020DF23C -_020DF1E4: - ldr r0, _020DF284 ; =OSi_ThreadInfo - ldr r1, _020DF288 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, r6, lsl #0x2] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020DF214 - ldr r1, _020DF28C ; =UNK_021D70AC - ldr r0, [r1, r6, lsl #0x2] - add r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - b _020DF23C -_020DF214: - add r0, r5, r4 - bl OS_LockMutex - ldr r0, _020DF284 ; =OSi_ThreadInfo - ldr r2, _020DF288 ; =UNK_021D7088 - ldr r1, [r0, #0x4] - ldr r0, _020DF28C ; =UNK_021D70AC - ldr r3, [r1, #0x6c] - mov r1, #0x1 - str r3, [r2, r6, lsl #0x2] - str r1, [r0, r6, lsl #0x2] -_020DF23C: - mov r0, r9 - mov r1, r8 - mov r2, r7 - bl _fseek - ldr r1, _020DF28C ; =UNK_021D70AC - mov r7, r0 - ldr r0, [r1, r6, lsl #0x2] - subs r0, r0, #0x1 - str r0, [r1, r6, lsl #0x2] - bne _020DF26C - add r0, r5, r4 - bl OS_UnlockMutex -_020DF26C: - mov r0, r7 - ldmia sp!, {r3-r9,pc} - .balign 4 -_020DF274: .word UNK_02106A58 -_020DF278: .word UNK_02106AA4 -_020DF27C: .word UNK_02106AF0 -_020DF280: .word UNK_021D70D0 -_020DF284: .word OSi_ThreadInfo -_020DF288: .word UNK_021D7088 -_020DF28C: .word UNK_021D70AC - - arm_func_start rewind -rewind: ; 0x020DF290 - stmdb sp!, {r4,lr} - mov r1, #0x0 - mov r4, r0 - mov r2, r1 - strb r1, [r4, #0xd] - bl fseek - mov r0, #0x0 - strb r0, [r4, #0xd] - ldmia sp!, {r4,pc} - - arm_func_start mbtowc -mbtowc: - stmdb sp!, {r3,lr} - ldr r3, _020DF2CC ; =UNK_02106C98 - ldr r3, [r3, #0x8] - ldr r3, [r3, #0x0] - blx r3 - ldmia sp!, {r3,pc} - .balign 4 -_020DF2CC: .word UNK_02106C98 - - arm_func_start __mbtowc_noconv -__mbtowc_noconv: ; 0x020DF2D0 - cmp r1, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r2, #0x0 - mvneq r0, #0x0 - bxeq lr - cmp r0, #0x0 - ldrneb r2, [r1, #0x0] - strneh r2, [r0, #0x0] - ldrsb r0, [r1, #0x0] - cmp r0, #0x0 - moveq r0, #0x0 - movne r0, #0x1 - bx lr - - arm_func_start __wctomb_noconv -__wctomb_noconv: ; 0x020DF308 - cmp r0, #0x0 - moveq r0, #0x0 - strneb r1, [r0, #0x0] - movne r0, #0x1 - bx lr - - arm_func_start wctomb -wctomb: ; 0x020DF31C - stmdb sp!, {r3,lr} - ldr r2, _020DF334 ; =UNK_02106C98 - ldr r2, [r2, #0x8] - ldr r2, [r2, #0x4] - blx r2 - ldmia sp!, {r3,pc} - .balign 4 -_020DF334: .word UNK_02106C98 - - arm_func_start mbstowcs -mbstowcs: ; 0x020DF338 - stmdb sp!, {r4-r8,lr} - mov r7, r1 - mov r8, r0 - mov r0, r7 - mov r6, r2 - bl strlen - mov r5, r0 - cmp r8, #0x0 - mov r4, #0x0 - beq _020DF3B8 - cmp r6, #0x0 - bls _020DF3B8 -_020DF368: - ldrsb r0, [r7, #0x0] - cmp r0, #0x0 - beq _020DF3A0 - mov r0, r8 - mov r1, r7 - mov r2, r5 - bl mbtowc - cmp r0, #0x0 - add r8, r8, #0x2 - addgt r7, r7, r0 - subgt r5, r5, r0 - bgt _020DF3AC - mvn r0, #0x0 - ldmia sp!, {r4-r8,pc} -_020DF3A0: - mov r0, #0x0 - strh r0, [r8, #0x0] - b _020DF3B8 -_020DF3AC: - add r4, r4, #0x1 - cmp r4, r6 - blo _020DF368 -_020DF3B8: - mov r0, r4 - ldmia sp!, {r4-r8,pc} - - arm_func_start wcstombs -wcstombs: - stmdb sp!, {r3-r9,lr} - movs r4, r0 - mov r9, r1 - cmpne r9, #0x0 - mov r8, r2 - mov r7, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r3-r9,pc} - add r6, sp, #0x0 -_020DF3E4: - ldrh r1, [r9, #0x0] - cmp r1, #0x0 - moveq r0, #0x0 - streqb r0, [r4, r7] - beq _020DF430 - mov r0, r6 - add r9, r9, #0x2 - bl wctomb - mov r5, r0 - add r0, r7, r5 - cmp r0, r8 - bhi _020DF430 - mov r1, r6 - mov r2, r5 - add r0, r4, r7 - bl strncpy - add r7, r7, r5 - cmp r7, r8 - bls _020DF3E4 -_020DF430: - mov r0, r7 - ldmia sp!, {r3-r9,pc} - - arm_func_start memcpy -memcpy: ; 0x020DF438 - mov r12, r0 - cmp r2, #0x0 - bxeq lr -_020DF444: - ldrsb r3, [r1], #0x1 - subs r2, r2, #0x1 - strb r3, [r12], #0x1 - bne _020DF444 - bx lr - - arm_func_start memmove -memmove: ; 0x020DF458 - cmp r1, r0 - blo _020DF480 - mov r12, r0 - cmp r2, #0x0 - bxeq lr -_020DF46C: - ldrsb r3, [r1], #0x1 - subs r2, r2, #0x1 - strb r3, [r12], #0x1 - bne _020DF46C - bx lr -_020DF480: - cmp r2, #0x0 - add r3, r1, r2 - add r12, r0, r2 - bxeq lr -_020DF490: - ldrsb r1, [r3, #-0x1]! - subs r2, r2, #0x1 - strb r1, [r12, #-0x1]! - bne _020DF490 - bx lr - - arm_func_start memset -memset: ; 0x020DF4A4 - stmdb sp!, {r4,lr} - mov r4, r0 - bl __fill_mem - mov r0, r4 - ldmia sp!, {r4,pc} - - arm_func_start memchr -memchr: - cmp r2, #0x0 - and r3, r1, #0xff - beq _020DF4DC -_020DF4C4: - ldrb r1, [r0], #0x1 - cmp r1, r3 - subeq r0, r0, #0x1 - bxeq lr - subs r2, r2, #0x1 - bne _020DF4C4 -_020DF4DC: - mov r0, #0x0 - bx lr - - arm_func_start __memrchr -__memrchr: ; 0x020DF4E4 - cmp r2, #0x0 - and r3, r1, #0xff - add r0, r0, r2 - beq _020DF508 -_020DF4F4: - ldrb r1, [r0, #-0x1]! - cmp r1, r3 - bxeq lr - subs r2, r2, #0x1 - bne _020DF4F4 -_020DF508: - mov r0, #0x0 - bx lr - - arm_func_start memcmp -memcmp: ; 0x020DF510 - cmp r2, #0x0 - beq _020DF548 -_020DF518: - ldrb r12, [r0], #0x1 - ldrb r3, [r1], #0x1 - cmp r12, r3 - beq _020DF540 - ldrb r2, [r0, #-0x1] - ldrb r0, [r1, #-0x1] - cmp r2, r0 - mvncc r0, #0x0 - movcs r0, #0x1 - bx lr -_020DF540: - subs r2, r2, #0x1 - bne _020DF518 -_020DF548: - mov r0, #0x0 - bx lr - - arm_func_start __fill_mem -__fill_mem: ; 0x020DF550 - cmp r2, #0x20 - and r3, r1, #0xff - blo _020DF5E4 - rsb r1, r0, #0x0 - ands r12, r1, #0x3 - beq _020DF57C - sub r2, r2, r12 - and r1, r3, #0xff -_020DF570: - strb r1, [r0], #0x1 - subs r12, r12, #0x1 - bne _020DF570 -_020DF57C: - cmp r3, #0x0 - beq _020DF594 - mov r1, r3, lsl #0x10 - orr r1, r1, r3, lsl #0x18 - orr r1, r1, r3, lsl #0x8 - orr r3, r3, r1 -_020DF594: - movs r1, r2, lsr #0x5 - beq _020DF5C8 -_020DF59C: - str r3, [r0, #0x0] - str r3, [r0, #0x4] - str r3, [r0, #0x8] - str r3, [r0, #0xc] - str r3, [r0, #0x10] - str r3, [r0, #0x14] - str r3, [r0, #0x18] - str r3, [r0, #0x1c] - add r0, r0, #0x20 - subs r1, r1, #0x1 - bne _020DF59C -_020DF5C8: - and r1, r2, #0x1f - movs r1, r1, lsr #0x2 - beq _020DF5E0 -_020DF5D4: - str r3, [r0], #0x4 - subs r1, r1, #0x1 - bne _020DF5D4 -_020DF5E0: - and r2, r2, #0x3 -_020DF5E4: - cmp r2, #0x0 - bxeq lr - and r1, r3, #0xff -_020DF5F0: - strb r1, [r0], #0x1 - subs r2, r2, #0x1 - bne _020DF5F0 - bx lr - - arm_func_start parse_format_printf -parse_format_printf: ; 0x020DF600 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - ldrsb r3, [r0, #0x1] - mov r4, #0x0 - mov r5, #0x1 - mov lr, r2 - strb r5, [sp, #0x0] - strb r4, [sp, #0x1] - strb r4, [sp, #0x2] - strb r4, [sp, #0x3] - strb r4, [sp, #0x4] - str r4, [sp, #0x8] - str r4, [sp, #0xc] - cmp r3, #0x25 - add r12, r0, #0x1 - bne _020DF65C - add r0, sp, #0x0 - strb r3, [sp, #0x5] - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add sp, sp, #0x10 - add r0, r12, #0x1 - ldmia sp!, {r4-r8,pc} -_020DF65C: - mov r2, #0x2 - mov r0, r4 - mov r5, r2 - mov r6, r4 - mov r7, #0x1 -_020DF670: - mov r8, r7 - cmp r3, #0x2b - bgt _020DF6A0 - bge _020DF6C8 - cmp r3, #0x23 - bgt _020DF6F8 - cmp r3, #0x20 - blt _020DF6F8 - beq _020DF6D0 - cmp r3, #0x23 - beq _020DF6E0 - b _020DF6F8 -_020DF6A0: - cmp r3, #0x30 - bgt _020DF6F8 - cmp r3, #0x2d - blt _020DF6F8 - beq _020DF6C0 - cmp r3, #0x30 - beq _020DF6E8 - b _020DF6F8 -_020DF6C0: - strb r6, [sp, #0x0] - b _020DF6FC -_020DF6C8: - strb r7, [sp, #0x1] - b _020DF6FC -_020DF6D0: - ldrb r4, [sp, #0x1] - cmp r4, #0x1 - strneb r5, [sp, #0x1] - b _020DF6FC -_020DF6E0: - strb r7, [sp, #0x3] - b _020DF6FC -_020DF6E8: - ldrb r4, [sp, #0x0] - cmp r4, #0x0 - strneb r2, [sp, #0x0] - b _020DF6FC -_020DF6F8: - mov r8, r0 -_020DF6FC: - cmp r8, #0x0 - ldrnesb r3, [r12, #0x1]! - bne _020DF670 - cmp r3, #0x2a - bne _020DF744 - ldr r0, [r1, #0x0] - add r0, r0, #0x4 - str r0, [r1, #0x0] - ldr r0, [r0, #-0x4] - str r0, [sp, #0x8] - cmp r0, #0x0 - bge _020DF73C - rsb r0, r0, #0x0 - mov r2, #0x0 - strb r2, [sp, #0x0] - str r0, [sp, #0x8] -_020DF73C: - ldrsb r3, [r12, #0x1]! - b _020DF794 -_020DF744: - ldr r4, _020DFB88 ; =UNK_0210430C - mov r5, #0x0 - mov r0, #0xa - b _020DF768 -_020DF754: - ldr r2, [sp, #0x8] - sub r3, r3, #0x30 - mla r6, r2, r0, r3 - ldrsb r3, [r12, #0x1]! - str r6, [sp, #0x8] -_020DF768: - cmp r3, #0x0 - blt _020DF778 - cmp r3, #0x80 - blt _020DF780 -_020DF778: - mov r2, r5 - b _020DF78C -_020DF780: - mov r2, r3, lsl #0x1 - ldrh r2, [r4, r2] - and r2, r2, #0x8 -_020DF78C: - cmp r2, #0x0 - bne _020DF754 -_020DF794: - ldr r2, [sp, #0x8] - ldr r0, _020DFB8C ; =0x000001FD - cmp r2, r0 - ble _020DF7C4 - mov r1, #0xff - add r0, sp, #0x0 - strb r1, [sp, #0x5] - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add sp, sp, #0x10 - add r0, r12, #0x1 - ldmia sp!, {r4-r8,pc} -_020DF7C4: - cmp r3, #0x2e - bne _020DF858 - ldrsb r3, [r12, #0x1]! - mov r0, #0x1 - strb r0, [sp, #0x2] - cmp r3, #0x2a - bne _020DF808 - ldr r0, [r1, #0x0] - add r0, r0, #0x4 - str r0, [r1, #0x0] - ldr r0, [r0, #-0x4] - ldrsb r3, [r12, #0x1]! - str r0, [sp, #0xc] - cmp r0, #0x0 - movlt r0, #0x0 - strltb r0, [sp, #0x2] - b _020DF858 -_020DF808: - ldr r2, _020DFB88 ; =UNK_0210430C - mov r4, #0x0 - mov r0, #0xa - b _020DF82C -_020DF818: - ldr r1, [sp, #0xc] - sub r3, r3, #0x30 - mla r5, r1, r0, r3 - ldrsb r3, [r12, #0x1]! - str r5, [sp, #0xc] -_020DF82C: - cmp r3, #0x0 - blt _020DF83C - cmp r3, #0x80 - blt _020DF844 -_020DF83C: - mov r1, r4 - b _020DF850 -_020DF844: - mov r1, r3, lsl #0x1 - ldrh r1, [r2, r1] - and r1, r1, #0x8 -_020DF850: - cmp r1, #0x0 - bne _020DF818 -_020DF858: - cmp r3, #0x6c - mov r0, #0x1 - bgt _020DF890 - cmp r3, #0x68 - blt _020DF884 - beq _020DF8AC - cmp r3, #0x6a - beq _020DF8F8 - cmp r3, #0x6c - beq _020DF8C8 - b _020DF91C -_020DF884: - cmp r3, #0x4c - beq _020DF8EC - b _020DF91C -_020DF890: - cmp r3, #0x74 - bgt _020DF8A0 - beq _020DF904 - b _020DF91C -_020DF8A0: - cmp r3, #0x7a - beq _020DF910 - b _020DF91C -_020DF8AC: - ldrsb r1, [r12, #0x1] - mov r2, #0x2 - strb r2, [sp, #0x4] - cmp r1, #0x68 - streqb r0, [sp, #0x4] - ldreqsb r3, [r12, #0x1]! - b _020DF920 -_020DF8C8: - ldrsb r1, [r12, #0x1] - mov r2, #0x3 - strb r2, [sp, #0x4] - cmp r1, #0x6c - bne _020DF920 - mov r1, #0x4 - strb r1, [sp, #0x4] - ldrsb r3, [r12, #0x1]! - b _020DF920 -_020DF8EC: - mov r1, #0x9 - strb r1, [sp, #0x4] - b _020DF920 -_020DF8F8: - mov r1, #0x6 - strb r1, [sp, #0x4] - b _020DF920 -_020DF904: - mov r1, #0x8 - strb r1, [sp, #0x4] - b _020DF920 -_020DF910: - mov r1, #0x7 - strb r1, [sp, #0x4] - b _020DF920 -_020DF91C: - mov r0, #0x0 -_020DF920: - cmp r0, #0x0 - ldrnesb r3, [r12, #0x1]! - strb r3, [sp, #0x5] - cmp r3, #0x61 - bgt _020DF974 - bge _020DFA5C - cmp r3, #0x47 - bgt _020DF968 - subs r0, r3, #0x41 - addpl pc, pc, r0, lsl #0x2 - b _020DFB68 - b _020DFA5C - b _020DFB68 - b _020DFB68 - b _020DFB68 - b _020DFAA4 - b _020DFA24 - b _020DFA94 -_020DF968: - cmp r3, #0x58 - beq _020DF9E8 - b _020DFB68 -_020DF974: - cmp r3, #0x63 - bgt _020DF984 - beq _020DFB04 - b _020DFB68 -_020DF984: - sub r0, r3, #0x64 - cmp r0, #0x14 - addls pc, pc, r0, lsl #0x2 - b _020DFB68 -_020DF994: - b _020DF9E8 -_020DF998: - b _020DFAA4 -_020DF99C: - b _020DFA24 -_020DF9A0: - b _020DFA94 -_020DF9A4: - b _020DFB68 -_020DF9A8: - b _020DF9E8 -_020DF9AC: - b _020DFB68 -_020DF9B0: - b _020DFB68 -_020DF9B4: - b _020DFB68 -_020DF9B8: - b _020DFB68 -_020DF9BC: - b _020DFB54 -_020DF9C0: - b _020DF9E8 -_020DF9C4: - b _020DFAE0 -_020DF9C8: - b _020DFB68 -_020DF9CC: - b _020DFB68 -_020DF9D0: - b _020DFB30 -_020DF9D4: - b _020DFB68 -_020DF9D8: - b _020DF9E8 -_020DF9DC: - b _020DFB68 -_020DF9E0: - b _020DFB68 -_020DF9E4: - b _020DF9E8 -_020DF9E8: - ldrb r0, [sp, #0x4] - cmp r0, #0x9 - moveq r0, #0xff - streqb r0, [sp, #0x5] - beq _020DFB70 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x1 - streq r0, [sp, #0xc] - beq _020DFB70 - ldrb r0, [sp, #0x0] - cmp r0, #0x2 - moveq r0, #0x1 - streqb r0, [sp, #0x0] - b _020DFB70 -_020DFA24: - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - moveq r0, #0xff - streqb r0, [sp, #0x5] - beq _020DFB70 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x6 - streq r0, [sp, #0xc] - b _020DFB70 -_020DFA5C: - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0xd - streq r0, [sp, #0xc] - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - cmpne r0, #0x1 - moveq r0, #0xff - streqb r0, [sp, #0x5] - b _020DFB70 -_020DFA94: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - moveq r0, #0x1 - streq r0, [sp, #0xc] -_020DFAA4: - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - cmpne r0, #0x1 - moveq r0, #0xff - streqb r0, [sp, #0x5] - beq _020DFB70 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x6 - streq r0, [sp, #0xc] - b _020DFB70 -_020DFAE0: - mov r3, #0x78 - mov r2, #0x1 - mov r1, #0x3 - mov r0, #0x8 - strb r3, [sp, #0x5] - strb r2, [sp, #0x3] - strb r1, [sp, #0x4] - str r0, [sp, #0xc] - b _020DFB70 -_020DFB04: - ldrb r1, [sp, #0x4] - cmp r1, #0x3 - moveq r0, #0x5 - streqb r0, [sp, #0x4] - beq _020DFB70 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - cmpeq r1, #0x0 - movne r0, #0xff - strneb r0, [sp, #0x5] - b _020DFB70 -_020DFB30: - ldrb r0, [sp, #0x4] - cmp r0, #0x3 - moveq r0, #0x5 - streqb r0, [sp, #0x4] - beq _020DFB70 - cmp r0, #0x0 - movne r0, #0xff - strneb r0, [sp, #0x5] - b _020DFB70 -_020DFB54: - ldrb r0, [sp, #0x4] - cmp r0, #0x9 - moveq r0, #0xff - streqb r0, [sp, #0x5] - b _020DFB70 -_020DFB68: - mov r0, #0xff - strb r0, [sp, #0x5] -_020DFB70: - add r0, sp, #0x0 - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add r0, r12, #0x1 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020DFB88: .word UNK_0210430C -_020DFB8C: .word 0x000001FD - - arm_func_start long2str -long2str: ; 0x020DFB90 - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x10 - movs r10, r0 - mov r0, #0x0 - mov r5, r1 - str r0, [sp, #0xc] - ldr r7, [sp, #0x4c] - mov r6, r0 - strb r0, [r5, #-0x1]! - ldrb r0, [sp, #0x43] - str r1, [sp, #0x0] - ldrb r8, [sp, #0x45] - str r0, [sp, #0x4] - ldr r0, [sp, #0x48] - ldrb r11, [sp, #0x41] - str r0, [sp, #0x8] - cmpeq r7, #0x0 - bne _020DFC04 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020DFBF0 - cmp r8, #0x6f - beq _020DFC04 -_020DFBF0: - add sp, sp, #0x10 - mov r0, r5 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020DFC04: - cmp r8, #0x69 - bgt _020DFC2C - bge _020DFC60 - cmp r8, #0x58 - bgt _020DFC20 - beq _020DFC8C - b _020DFC94 -_020DFC20: - cmp r8, #0x64 - beq _020DFC60 - b _020DFC94 -_020DFC2C: - cmp r8, #0x6f - bgt _020DFC40 - moveq r4, #0x8 - moveq r11, #0x0 - b _020DFC94 -_020DFC40: - cmp r8, #0x78 - bgt _020DFC94 - cmp r8, #0x75 - blt _020DFC94 - beq _020DFC80 - cmp r8, #0x78 - beq _020DFC8C - b _020DFC94 -_020DFC60: - cmp r10, #0x0 - mov r4, #0xa - bge _020DFC94 - mov r0, #0x1 - cmp r10, #0x80000000 - rsbne r10, r10, #0x0 - str r0, [sp, #0xc] - b _020DFC94 -_020DFC80: - mov r4, #0xa - mov r11, #0x0 - b _020DFC94 -_020DFC8C: - mov r4, #0x10 - mov r11, #0x0 -_020DFC94: - mov r0, r10 - mov r1, r4 - bl _u32_div_f - mov r9, r1 - mov r0, r10 - mov r1, r4 - bl _u32_div_f - cmp r9, #0xa - mov r10, r0 - addlt r9, r9, #0x30 - blt _020DFCCC - cmp r8, #0x78 - addeq r9, r9, #0x57 - addne r9, r9, #0x37 -_020DFCCC: - cmp r10, #0x0 - strb r9, [r5, #-0x1]! - add r6, r6, #0x1 - bne _020DFC94 - cmp r4, #0x8 - bne _020DFD00 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrnesb r0, [r5, #0x0] - cmpne r0, #0x30 - movne r0, #0x30 - strneb r0, [r5, #-0x1]! - addne r6, r6, #0x1 -_020DFD00: - ldrb r0, [sp, #0x40] - cmp r0, #0x2 - bne _020DFD34 - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x8] - cmp r0, #0x0 - cmpeq r11, #0x0 - subne r7, r7, #0x1 - cmp r4, #0x10 - bne _020DFD34 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - subne r7, r7, #0x2 -_020DFD34: - ldr r0, [sp, #0x0] - sub r1, r0, r5 - ldr r0, _020DFDD8 ; =0x000001FD - add r1, r7, r1 - cmp r1, r0 - addgt sp, sp, #0x10 - movgt r0, #0x0 - ldmgtia sp!, {r3-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - cmp r6, r7 - bge _020DFD78 - mov r0, #0x30 -_020DFD68: - add r6, r6, #0x1 - cmp r6, r7 - strb r0, [r5, #-0x1]! - blt _020DFD68 -_020DFD78: - cmp r4, #0x10 - bne _020DFD94 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x30 - strneb r8, [r5, #-0x1] - strneb r0, [r5, #-0x2]! -_020DFD94: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r5, #-0x1]! - bne _020DFDC4 - cmp r11, #0x1 - moveq r0, #0x2b - streqb r0, [r5, #-0x1]! - beq _020DFDC4 - cmp r11, #0x2 - moveq r0, #0x20 - streqb r0, [r5, #-0x1]! -_020DFDC4: - mov r0, r5 - add sp, sp, #0x10 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020DFDD8: .word 0x000001FD - - arm_func_start longlong2str -longlong2str: ; 0x020DFDDC - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x18 - mov r9, r1 - mov r1, #0x0 - mov r10, r0 - mov r6, r2 - mov r0, r1 - strb r0, [r6, #-0x1]! - ldr r0, [sp, #0x58] - cmp r9, #0x0 - str r0, [sp, #0x10] - ldrb r0, [sp, #0x4f] - cmpeq r10, #0x0 - str r2, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x54] - str r1, [sp, #0x14] - str r0, [sp, #0x8] - ldrb r0, [sp, #0x4d] - mov r7, r1 - ldrb r8, [sp, #0x51] - str r0, [sp, #0xc] - ldreq r0, [sp, #0x10] - cmpeq r0, #0x0 - bne _020DFE6C - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020DFE58 - cmp r8, #0x6f - beq _020DFE6C -_020DFE58: - add sp, sp, #0x18 - mov r0, r6 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020DFE6C: - cmp r8, #0x69 - bgt _020DFE94 - bge _020DFEC4 - cmp r8, #0x58 - bgt _020DFE88 - beq _020DFF18 - b _020DFF24 -_020DFE88: - cmp r8, #0x64 - beq _020DFEC4 - b _020DFF24 -_020DFE94: - cmp r8, #0x6f - bgt _020DFEA4 - beq _020DFEF8 - b _020DFF24 -_020DFEA4: - cmp r8, #0x78 - bgt _020DFF24 - cmp r8, #0x75 - blt _020DFF24 - beq _020DFF08 - cmp r8, #0x78 - beq _020DFF18 - b _020DFF24 -_020DFEC4: - subs r0, r10, #0x0 - sbcs r0, r9, #0x0 - mov r11, #0xa - mov r5, #0x0 - bge _020DFF24 - cmp r9, #0x80000000 - cmpeq r10, r5 - beq _020DFEEC - rsbs r10, r10, #0x0 - rsc r9, r9, #0x0 -_020DFEEC: - mov r0, #0x1 - str r0, [sp, #0x14] - b _020DFF24 -_020DFEF8: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0x8 - b _020DFF24 -_020DFF08: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0xa - b _020DFF24 -_020DFF18: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0x10 -_020DFF24: - mov r0, r10 - mov r1, r9 - mov r2, r11 - mov r3, r5 - bl _ull_mod - mov r4, r0 - mov r0, r10 - mov r1, r9 - mov r2, r11 - mov r3, r5 - bl _ll_udiv - mov r10, r0 - cmp r4, #0xa - mov r9, r1 - addlt r0, r4, #0x30 - blt _020DFF70 - cmp r8, #0x78 - addeq r0, r4, #0x57 - addne r0, r4, #0x37 -_020DFF70: - strb r0, [r6, #-0x1]! - mov r0, #0x0 - cmp r9, r0 - cmpeq r10, r0 - add r7, r7, #0x1 - bne _020DFF24 - cmp r5, #0x0 - cmpeq r11, #0x8 - bne _020DFFB0 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrnesb r0, [r6, #0x0] - cmpne r0, #0x30 - movne r0, #0x30 - strneb r0, [r6, #-0x1]! - addne r7, r7, #0x1 -_020DFFB0: - ldrb r0, [sp, #0x4c] - cmp r0, #0x2 - bne _020E0000 - ldr r0, [sp, #0x8] - str r0, [sp, #0x10] - ldr r0, [sp, #0x14] - cmp r0, #0x0 - ldreq r0, [sp, #0xc] - cmpeq r0, #0x0 - ldrne r0, [sp, #0x10] - subne r0, r0, #0x1 - strne r0, [sp, #0x10] - cmp r5, #0x0 - cmpeq r11, #0x10 - bne _020E0000 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrne r0, [sp, #0x10] - subne r0, r0, #0x2 - strne r0, [sp, #0x10] -_020E0000: - ldr r0, [sp, #0x0] - ldr r1, _020E00B8 ; =0x000001FD - sub r2, r0, r6 - ldr r0, [sp, #0x10] - add r0, r0, r2 - cmp r0, r1 - addgt sp, sp, #0x18 - movgt r0, #0x0 - ldmgtia sp!, {r3-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - ldr r0, [sp, #0x10] - cmp r7, r0 - bge _020E0050 - mov r1, #0x30 -_020E003C: - ldr r0, [sp, #0x10] - add r7, r7, #0x1 - cmp r7, r0 - strb r1, [r6, #-0x1]! - blt _020E003C -_020E0050: - cmp r5, #0x0 - cmpeq r11, #0x10 - bne _020E0070 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x30 - strneb r8, [r6, #-0x1] - strneb r0, [r6, #-0x2]! -_020E0070: - ldr r0, [sp, #0x14] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r6, #-0x1]! - bne _020E00A4 - ldr r0, [sp, #0xc] - cmp r0, #0x1 - moveq r0, #0x2b - streqb r0, [r6, #-0x1]! - beq _020E00A4 - cmp r0, #0x2 - moveq r0, #0x20 - streqb r0, [r6, #-0x1]! -_020E00A4: - mov r0, r6 - add sp, sp, #0x18 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E00B8: .word 0x000001FD - - arm_func_start double2hex -double2hex: ; 0x020E00BC - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r10,lr} - sub sp, sp, #0x44 - ldr r7, [sp, #0x80] - ldr r0, _020E056C ; =0x000001FD - mov r8, r2 - cmp r7, r0 - ldrb r6, [sp, #0x79] - ldrb r5, [sp, #0x77] - ldrb r4, [sp, #0x75] - ldr r1, [sp, #0x68] - ldr r2, [sp, #0x6c] - addgt sp, sp, #0x44 - movgt r0, #0x0 - ldmgtia sp!, {r3-r10,lr} - addgt sp, sp, #0x10 - bxgt lr - mov r10, #0x0 - mov r9, #0x20 - add r0, sp, #0x8 - add r3, sp, #0xc - strb r10, [sp, #0x8] - strh r9, [sp, #0xa] - bl __num2dec_internal2 - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x6c] - bl fabs - mov r2, r0 - mov r0, r10 - mov r3, r1 - mov r1, r0 - bl _deq - bne _020E0188 - ldr r3, _020E0570 ; =UNK_02106DA0 - sub r0, r8, #0x6 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - add sp, sp, #0x44 - strb r2, [r8, #-0x6] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r2, [r3, #0x4] - ldrb r1, [r3, #0x5] - strb r2, [r0, #0x4] - strb r1, [r0, #0x5] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0188: - ldrb r0, [sp, #0x11] - cmp r0, #0x49 - bne _020E0298 - ldrsb r0, [sp, #0xc] - cmp r0, #0x0 - beq _020E0224 - cmp r6, #0x41 - sub r0, r8, #0x5 - bne _020E01E8 - ldr r3, _020E0574 ; =UNK_02106DA8 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E01E8: - ldr r3, _020E0578 ; =UNK_02106DB0 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0224: - cmp r6, #0x41 - sub r0, r8, #0x4 - bne _020E0264 - ldr r3, _020E057C ; =UNK_02106DB8 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0264: - ldr r3, _020E0580 ; =UNK_02106DBC - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0298: - cmp r0, #0x4e - bne _020E03A4 - ldrsb r0, [sp, #0xc] - cmp r0, #0x0 - beq _020E0330 - cmp r6, #0x41 - sub r0, r8, #0x5 - bne _020E02F4 - ldr r3, _020E0584 ; =UNK_02106DC0 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E02F4: - ldr r3, _020E0588 ; =UNK_02106DC8 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0330: - cmp r6, #0x41 - sub r0, r8, #0x4 - bne _020E0370 - ldr r3, _020E058C ; =UNK_02106DD0 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E0370: - ldr r3, _020E0590 ; =UNK_02106DD4 - add sp, sp, #0x44 - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E03A4: - mov r3, r10 - mov r1, #0x1 - mov r0, #0x64 - add r9, sp, #0x68 - strb r1, [sp, #0x34] - strb r1, [sp, #0x35] - strb r3, [sp, #0x36] - strb r3, [sp, #0x37] - strb r3, [sp, #0x38] - str r3, [sp, #0x3c] - str r1, [sp, #0x40] - strb r0, [sp, #0x39] -_020E03D4: - rsb r1, r3, #0x7 - ldrsb r2, [r9, r3] - ldrsb r0, [r9, r1] - strb r0, [r9, r3] - add r3, r3, #0x1 - strb r2, [r9, r1] - cmp r3, #0x4 - blt _020E03D4 - ldrb r0, [sp, #0x69] - ldrb r1, [sp, #0x68] - ldr sb, _020E0594 ; =0x000007FF - mov r0, r0, lsl #0x11 - orr r1, r0, r1, lsl #0x19 - add r0, sp, #0x34 - and lr, r9, r1, lsr #0x15 - sub r12, sp, #0x8 - ldmia r0, {r0-r3} - stmia r12, {r0-r3} - rsb r0, r9, #0x400 - mov r1, r8 - add r0, lr, r0 - ldmia r12, {r2-r3} - bl long2str - cmp r6, #0x61 - moveq r1, #0x70 - movne r1, #0x50 - strb r1, [r0, #-0x1]! - mov r1, r7, lsl #0x2 - mov lr, r7 - cmp r7, #0x1 - add r8, r1, #0xb - add r12, sp, #0x68 - blt _020E04E4 - mov r9, #0x30 -_020E045C: - cmp r8, #0x40 - bge _020E04CC - ldrb r1, [r12, r8, asr #0x3] - and r2, r8, #0x7 - rsb r3, r2, #0x7 - mov r2, r1, asr r3 - sub r10, r8, #0x4 - bic r1, r8, #0x7 - bic r10, r10, #0x7 - cmp r1, r10 - add r10, r12, r8, asr #0x3 - and r1, r2, #0xff - beq _020E04A0 - ldrb r2, [r10, #-0x1] - mov r2, r2, lsl #0x8 - orr r1, r1, r2, asr r3 - and r1, r1, #0xff -_020E04A0: - and r1, r1, #0xf - cmp r1, #0xa - addcc r1, r1, #0x30 - andcc r1, r1, #0xff - blo _020E04D0 - cmp r6, #0x61 - addeq r1, r1, #0x57 - andeq r1, r1, #0xff - addne r1, r1, #0x37 - andne r1, r1, #0xff - b _020E04D0 -_020E04CC: - mov r1, r9 -_020E04D0: - sub lr, lr, #0x1 - cmp lr, #0x1 - strb r1, [r0, #-0x1]! - sub r8, r8, #0x4 - bge _020E045C -_020E04E4: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r1, #0x2e - strneb r1, [r0, #-0x1]! - mov r1, #0x31 - strb r1, [r0, #-0x1] - cmp r6, #0x61 - moveq r1, #0x78 - movne r1, #0x58 - strb r1, [r0, #-0x2]! - mov r1, #0x30 - strb r1, [r0, #-0x1]! - ldrsb r1, [sp, #0xc] - cmp r1, #0x0 - movne r1, #0x2d - strneb r1, [r0, #-0x1]! - addne sp, sp, #0x44 - ldmneia sp!, {r3-r10,lr} - addne sp, sp, #0x10 - bxne lr - cmp r4, #0x1 - moveq r1, #0x2b - streqb r1, [r0, #-0x1]! - addeq sp, sp, #0x44 - ldmeqia sp!, {r3-r10,lr} - addeq sp, sp, #0x10 - bxeq lr - cmp r4, #0x2 - moveq r1, #0x20 - streqb r1, [r0, #-0x1]! - add sp, sp, #0x44 - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E056C: .word 0x000001FD -_020E0570: .word UNK_02106DA0 -_020E0574: .word UNK_02106DA8 -_020E0578: .word UNK_02106DB0 -_020E057C: .word UNK_02106DB8 -_020E0580: .word UNK_02106DBC -_020E0584: .word UNK_02106DC0 -_020E0588: .word UNK_02106DC8 -_020E058C: .word UNK_02106DD0 -_020E0590: .word UNK_02106DD4 -_020E0594: .word 0x000007FF - - arm_func_start round_decimal -round_decimal: ; 0x020E0598 - stmdb sp!, {r4,lr} - cmp r1, #0x0 - bge _020E05C0 -_020E05A4: - mov r1, #0x0 - strh r1, [r0, #0x2] - mov r1, #0x1 - strb r1, [r0, #0x4] - mov r1, #0x30 - strb r1, [r0, #0x5] - ldmia sp!, {r4,pc} -_020E05C0: - ldrb lr, [r0, #0x4] - cmp r1, lr - ldmgeia sp!, {r4,pc} - add r12, r0, #0x5 - add r2, r12, r1 - add r2, r2, #0x1 - ldrsb r3, [r2, #-0x1]! - sub r3, r3, #0x30 - mov r3, r3, lsl #0x18 - mov r3, r3, asr #0x18 - cmp r3, #0x5 - bne _020E0620 - add r12, r12, lr -_020E05F4: - sub r12, r12, #0x1 - cmp r12, r2 - bls _020E060C - ldrsb r3, [r12, #0x0] - cmp r3, #0x30 - beq _020E05F4 -_020E060C: - cmp r12, r2 - ldreqsb r3, [r2, #-0x1] - andeq r4, r3, #0x1 - movne r4, #0x1 - b _020E0628 -_020E0620: - movgt r4, #0x1 - movle r4, #0x0 -_020E0628: - cmp r1, #0x0 - beq _020E0684 - mov r12, #0x0 - mov lr, #0x1 -_020E0638: - ldrsb r3, [r2, #-0x1]! - sub r3, r3, #0x30 - add r3, r3, r4 - mov r3, r3, lsl #0x18 - mov r3, r3, asr #0x18 - cmp r3, #0x9 - movgt r4, lr - movle r4, r12 - cmp r4, #0x0 - bne _020E0668 - cmp r3, #0x0 - bne _020E0670 -_020E0668: - sub r1, r1, #0x1 - b _020E067C -_020E0670: - add r3, r3, #0x30 - strb r3, [r2, #0x0] - b _020E0684 -_020E067C: - cmp r1, #0x0 - bne _020E0638 -_020E0684: - cmp r4, #0x0 - beq _020E06AC - ldrsh r3, [r0, #0x2] - mov r2, #0x1 - mov r1, #0x31 - add r3, r3, #0x1 - strh r3, [r0, #0x2] - strb r2, [r0, #0x4] - strb r1, [r0, #0x5] - ldmia sp!, {r4,pc} -_020E06AC: - cmp r1, #0x0 - beq _020E05A4 - strb r1, [r0, #0x4] - ldmia sp!, {r4,pc} - - arm_func_start float2str -float2str: ; 0x020E06BC - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x2c - ldr r7, [sp, #0x68] - ldr r3, _020E0DF4 ; =0x000001FD - ldrb r6, [sp, #0x61] - ldrb r5, [sp, #0x5f] - ldrb r4, [sp, #0x5d] - cmp r7, r3 - mov r10, r0 - mov r8, r1 - mov r9, r2 - addgt sp, sp, #0x2c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - mov r12, #0x0 - mov r11, #0x20 - add r0, sp, #0x0 - add r3, sp, #0x4 - mov r1, r10 - mov r2, r8 - strb r12, [sp, #0x0] - strh r11, [sp, #0x2] - bl __num2dec_internal2 - ldrb r0, [sp, #0x8] - add r1, sp, #0x9 - add r0, r1, r0 - b _020E074C -_020E0734: - ldrb r2, [sp, #0x8] - ldrsh r1, [sp, #0x6] - sub r2, r2, #0x1 - add r1, r1, #0x1 - strb r2, [sp, #0x8] - strh r1, [sp, #0x6] -_020E074C: - ldrb r1, [sp, #0x8] - cmp r1, #0x1 - bls _020E0764 - ldrsb r1, [r0, #-0x1]! - cmp r1, #0x30 - beq _020E0734 -_020E0764: - ldrb r0, [sp, #0x9] - cmp r0, #0x30 - beq _020E0784 - cmp r0, #0x49 - beq _020E0790 - cmp r0, #0x4e - beq _020E08F0 - b _020E0A44 -_020E0784: - mov r0, #0x0 - strh r0, [sp, #0x6] - b _020E0A44 -_020E0790: - mov r2, #0x0 - mov r0, r10 - mov r1, r8 - mov r3, r2 - bl _dls - bhs _020E0854 - cmp r6, #0x0 - sub r0, r9, #0x5 - blt _020E07BC - cmp r6, #0x80 - blt _020E07C4 -_020E07BC: - mov r1, #0x0 - b _020E07D4 -_020E07C4: - ldr r1, _020E0DF8 ; =UNK_0210430C - mov r2, r6, lsl #0x1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_020E07D4: - cmp r1, #0x0 - beq _020E0818 - ldr r3, _020E0DFC ; =UNK_02106DA8 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E0818: - ldr r3, _020E0E00 ; =UNK_02106DB0 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E0854: - cmp r6, #0x0 - sub r0, r9, #0x4 - blt _020E0868 - cmp r6, #0x80 - blt _020E0870 -_020E0868: - mov r1, #0x0 - b _020E0880 -_020E0870: - ldr r1, _020E0DF8 ; =UNK_0210430C - mov r2, r6, lsl #0x1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_020E0880: - cmp r1, #0x0 - beq _020E08BC - ldr r3, _020E0E04 ; =UNK_02106DB8 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E08BC: - ldr r3, _020E0E08 ; =UNK_02106DBC - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E08F0: - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - beq _020E09A8 - cmp r6, #0x0 - sub r0, r9, #0x5 - blt _020E0910 - cmp r6, #0x80 - blt _020E0918 -_020E0910: - mov r1, #0x0 - b _020E0928 -_020E0918: - ldr r1, _020E0DF8 ; =UNK_0210430C - mov r2, r6, lsl #0x1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_020E0928: - cmp r1, #0x0 - beq _020E096C - ldr r3, _020E0E0C ; =UNK_02106DC0 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E096C: - ldr r3, _020E0E10 ; =UNK_02106DC8 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldrb r1, [r3, #0x4] - strb r1, [r0, #0x4] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E09A8: - cmp r6, #0x0 - sub r0, r9, #0x4 - blt _020E09BC - cmp r6, #0x80 - blt _020E09C4 -_020E09BC: - mov r1, #0x0 - b _020E09D4 -_020E09C4: - ldr r1, _020E0DF8 ; =UNK_0210430C - mov r2, r6, lsl #0x1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_020E09D4: - cmp r1, #0x0 - beq _020E0A10 - ldr r3, _020E0E14 ; =UNK_02106DD0 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E0A10: - ldr r3, _020E0E18 ; =UNK_02106DD4 - add sp, sp, #0x2c - ldrb r2, [r3, #0x0] - ldrb r1, [r3, #0x1] - strb r2, [r0, #0x0] - strb r1, [r0, #0x1] - ldrb r2, [r3, #0x2] - ldrb r1, [r3, #0x3] - strb r2, [r0, #0x2] - strb r1, [r0, #0x3] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E0A44: - ldrb r0, [sp, #0x8] - ldrsh r1, [sp, #0x6] - sub r8, r9, #0x1 - sub r0, r0, #0x1 - add r0, r1, r0 - strh r0, [sp, #0x6] - mov r0, #0x0 - strb r0, [r8, #0x0] - cmp r6, #0x65 - bgt _020E0A98 - bge _020E0B24 - cmp r6, #0x47 - bgt _020E0DE0 - cmp r6, #0x45 - blt _020E0DE0 - beq _020E0B24 - cmp r6, #0x46 - beq _020E0C6C - cmp r6, #0x47 - beq _020E0AB0 - b _020E0DE0 -_020E0A98: - cmp r6, #0x66 - bgt _020E0AA8 - beq _020E0C6C - b _020E0DE0 -_020E0AA8: - cmp r6, #0x67 - bne _020E0DE0 -_020E0AB0: - ldrb r0, [sp, #0x8] - cmp r0, r7 - ble _020E0AC8 - add r0, sp, #0x4 - mov r1, r7 - bl round_decimal -_020E0AC8: - ldrsh r2, [sp, #0x6] - mvn r0, #0x3 - cmp r2, r0 - blt _020E0AE0 - cmp r2, r7 - blt _020E0B00 -_020E0AE0: - cmp r5, #0x0 - ldreqb r0, [sp, #0x8] - subne r7, r7, #0x1 - subeq r7, r0, #0x1 - cmp r6, #0x67 - moveq r6, #0x65 - movne r6, #0x45 - b _020E0B24 -_020E0B00: - cmp r5, #0x0 - addne r0, r2, #0x1 - subne r7, r7, r0 - bne _020E0C6C - ldrb r1, [sp, #0x8] - add r0, r2, #0x1 - subs r7, r1, r0 - movmi r7, #0x0 - b _020E0C6C -_020E0B24: - ldrb r0, [sp, #0x8] - add r1, r7, #0x1 - cmp r0, r1 - ble _020E0B3C - add r0, sp, #0x4 - bl round_decimal -_020E0B3C: - ldrsh lr, [sp, #0x6] - mov r11, #0x2b - mov r10, #0x0 - cmp lr, #0x0 - rsblt lr, lr, #0x0 - movlt r11, #0x2d - ldr r3, _020E0E1C ; =0x66666667 - mov r0, #0xa - b _020E0B90 -_020E0B60: - mov r1, lr, lsr #0x1f - smull r2, r12, r3, lr - add r12, r1, r12, asr #0x2 - smull r1, r2, r0, r12 - sub r12, lr, r1 - add r1, r12, #0x30 - strb r1, [r8, #-0x1]! - mov r2, lr - smull r1, lr, r3, r2 - mov r1, r2, lsr #0x1f - add lr, r1, lr, asr #0x2 - add r10, r10, #0x1 -_020E0B90: - cmp lr, #0x0 - bne _020E0B60 - cmp r10, #0x2 - blt _020E0B60 - strb r11, [r8, #-0x1] - strb r6, [r8, #-0x2]! - sub r1, r9, r8 - ldr r0, _020E0DF4 ; =0x000001FD - add r1, r7, r1 - cmp r1, r0 - addgt sp, sp, #0x2c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - ldrb r1, [sp, #0x8] - add r0, r7, #0x1 - cmp r1, r0 - bge _020E0BFC - add r0, r7, #0x2 - sub r0, r0, r1 - subs r1, r0, #0x1 - beq _020E0BFC - mov r0, #0x30 -_020E0BF0: - strb r0, [r8, #-0x1]! - subs r1, r1, #0x1 - bne _020E0BF0 -_020E0BFC: - ldrb r1, [sp, #0x8] - add r0, sp, #0x9 - add r2, r0, r1 - subs r1, r1, #0x1 - beq _020E0C20 -_020E0C10: - ldrsb r0, [r2, #-0x1]! - subs r1, r1, #0x1 - strb r0, [r8, #-0x1]! - bne _020E0C10 -_020E0C20: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r0, #0x2e - strneb r0, [r8, #-0x1]! - ldrb r0, [sp, #0x9] - strb r0, [r8, #-0x1]! - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r8, #-0x1]! - bne _020E0DE0 - cmp r4, #0x1 - moveq r0, #0x2b - streqb r0, [r8, #-0x1]! - beq _020E0DE0 - cmp r4, #0x2 - moveq r0, #0x20 - streqb r0, [r8, #-0x1]! - b _020E0DE0 -_020E0C6C: - ldrsh r3, [sp, #0x6] - ldrb r2, [sp, #0x8] - sub r0, r2, r3 - subs r1, r0, #0x1 - movmi r1, #0x0 - cmp r1, r7 - ble _020E0CAC - sub r1, r1, r7 - add r0, sp, #0x4 - sub r1, r2, r1 - bl round_decimal - ldrsh r3, [sp, #0x6] - ldrb r2, [sp, #0x8] - sub r0, r2, r3 - subs r1, r0, #0x1 - movmi r1, #0x0 -_020E0CAC: - adds r0, r3, #0x1 - movmi r0, #0x0 - ldr r3, _020E0DF4 ; =0x000001FD - add r6, r0, r1 - cmp r6, r3 - addgt sp, sp, #0x2c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - add r3, sp, #0x9 - sub r6, r7, r1 - cmp r6, #0x0 - add r2, r3, r2 - mov r9, #0x0 - ble _020E0D00 - mov r3, #0x30 -_020E0CF0: - add r9, r9, #0x1 - cmp r9, r6 - strb r3, [r8, #-0x1]! - blt _020E0CF0 -_020E0D00: - mov r6, #0x0 - b _020E0D14 -_020E0D08: - ldrsb r3, [r2, #-0x1]! - add r6, r6, #0x1 - strb r3, [r8, #-0x1]! -_020E0D14: - cmp r6, r1 - ldrltb r3, [sp, #0x8] - cmplt r6, r3 - blt _020E0D08 - cmp r6, r1 - bge _020E0D40 - mov r3, #0x30 -_020E0D30: - add r6, r6, #0x1 - cmp r6, r1 - strb r3, [r8, #-0x1]! - blt _020E0D30 -_020E0D40: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r1, #0x2e - strneb r1, [r8, #-0x1]! - cmp r0, #0x0 - beq _020E0DA8 - ldrb r1, [sp, #0x8] - mov r5, #0x0 - sub r1, r0, r1 - cmp r1, #0x0 - ble _020E0D88 - mov r3, #0x30 -_020E0D70: - strb r3, [r8, #-0x1]! - ldrb r1, [sp, #0x8] - add r5, r5, #0x1 - sub r1, r0, r1 - cmp r5, r1 - blt _020E0D70 -_020E0D88: - cmp r5, r0 - bge _020E0DB0 -_020E0D90: - ldrsb r1, [r2, #-0x1]! - add r5, r5, #0x1 - cmp r5, r0 - strb r1, [r8, #-0x1]! - blt _020E0D90 - b _020E0DB0 -_020E0DA8: - mov r0, #0x30 - strb r0, [r8, #-0x1]! -_020E0DB0: - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r8, #-0x1]! - bne _020E0DE0 - cmp r4, #0x1 - moveq r0, #0x2b - streqb r0, [r8, #-0x1]! - beq _020E0DE0 - cmp r4, #0x2 - moveq r0, #0x20 - streqb r0, [r8, #-0x1]! -_020E0DE0: - mov r0, r8 - add sp, sp, #0x2c - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E0DF4: .word 0x000001FD -_020E0DF8: .word UNK_0210430C -_020E0DFC: .word UNK_02106DA8 -_020E0E00: .word UNK_02106DB0 -_020E0E04: .word UNK_02106DB8 -_020E0E08: .word UNK_02106DBC -_020E0E0C: .word UNK_02106DC0 -_020E0E10: .word UNK_02106DC8 -_020E0E14: .word UNK_02106DD0 -_020E0E18: .word UNK_02106DD4 -_020E0E1C: .word 0x66666667 - - arm_func_start __pformatter -__pformatter: - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x22c - mov r3, #0x20 - mov r11, r2 - strb r3, [sp, #0x19] - ldrsb r2, [r11, #0x0] - mov r9, r0 - mov r8, r1 - cmp r2, #0x0 - mov r10, #0x0 - beq _020E1628 -_020E0E50: - mov r0, r11 - mov r1, #0x25 - bl strchr - str r0, [sp, #0xc] - cmp r0, #0x0 - bne _020E0EA4 - mov r0, r11 - bl strlen - movs r2, r0 - add r10, r10, r2 - beq _020E1628 - mov r0, r8 - mov r1, r11 - blx r9 - cmp r0, #0x0 - bne _020E1628 - add sp, sp, #0x22c - mvn r0, #0x0 - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E0EA4: - subs r2, r0, r11 - add r10, r10, r2 - beq _020E0ED4 - mov r0, r8 - mov r1, r11 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E0ED4: - ldr r0, [sp, #0xc] - add r1, sp, #0x25c - add r2, sp, #0x1c - bl parse_format_printf - ldrb r1, [sp, #0x21] - mov r11, r0 - cmp r1, #0x61 - bgt _020E0F40 - bge _020E12A4 - cmp r1, #0x47 - bgt _020E0F34 - subs r0, r1, #0x41 - addpl pc, pc, r0, lsl #0x2 - b _020E0F28 - b _020E12A4 - b _020E148C - b _020E148C - b _020E148C - b _020E123C - b _020E123C - b _020E123C -_020E0F28: - cmp r1, #0x25 - beq _020E1478 - b _020E148C -_020E0F34: - cmp r1, #0x58 - beq _020E1100 - b _020E148C -_020E0F40: - cmp r1, #0x75 - bgt _020E0FA8 - subs r0, r1, #0x64 - addpl pc, pc, r0, lsl #0x2 - b _020E0F9C - b _020E0FC0 - b _020E123C - b _020E123C - b _020E123C - b _020E148C - b _020E0FC0 - b _020E148C - b _020E148C - b _020E148C - b _020E148C - b _020E13CC - b _020E1100 - b _020E148C - b _020E148C - b _020E148C - b _020E130C - b _020E148C - b _020E1100 -_020E0F9C: - cmp r1, #0x63 - beq _020E1458 - b _020E148C -_020E0FA8: - cmp r1, #0x78 - bgt _020E0FB8 - beq _020E1100 - b _020E148C -_020E0FB8: - cmp r1, #0xff - b _020E148C -_020E0FC0: - ldrb r0, [sp, #0x20] - cmp r0, #0x3 - bne _020E0FE0 - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E1078 -_020E0FE0: - cmp r0, #0x4 - bne _020E1008 - ldr r1, [sp, #0x25c] - add r2, r1, #0x8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E1078 -_020E1008: - cmp r0, #0x6 - bne _020E1030 - ldr r1, [sp, #0x25c] - add r2, r1, #0x8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E1078 -_020E1030: - cmp r0, #0x7 - bne _020E104C - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E1078 -_020E104C: - cmp r0, #0x8 - bne _020E1068 - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E1078 -_020E1068: - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] -_020E1078: - cmp r0, #0x2 - moveq r1, r5, lsl #0x10 - moveq r5, r1, asr #0x10 - cmp r0, #0x1 - moveq r1, r5, lsl #0x18 - moveq r5, r1, asr #0x18 - cmp r0, #0x4 - cmpne r0, #0x6 - add r0, sp, #0x1c - bne _020E10CC - sub r4, sp, #0x4 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - ldr r3, [r4, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x22c - bl longlong2str - movs r7, r0 - beq _020E148C - b _020E10F0 -_020E10CC: - sub r4, sp, #0x8 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - add r1, sp, #0x22c - mov r0, r5 - ldmia r4, {r2-r3} - bl long2str - movs r7, r0 - beq _020E148C -_020E10F0: - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _020E14D8 -_020E1100: - ldrb r0, [sp, #0x20] - cmp r0, #0x3 - bne _020E1120 - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E11B8 -_020E1120: - cmp r0, #0x4 - bne _020E1148 - ldr r1, [sp, #0x25c] - add r2, r1, #0x8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E11B8 -_020E1148: - cmp r0, #0x6 - bne _020E1170 - ldr r1, [sp, #0x25c] - add r2, r1, #0x8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E11B8 -_020E1170: - cmp r0, #0x7 - bne _020E118C - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E11B8 -_020E118C: - cmp r0, #0x8 - bne _020E11A8 - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] - b _020E11B8 -_020E11A8: - ldr r1, [sp, #0x25c] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-0x4] -_020E11B8: - cmp r0, #0x2 - moveq r1, r5, lsl #0x10 - moveq r5, r1, lsr #0x10 - cmp r0, #0x1 - andeq r5, r5, #0xff - cmp r0, #0x4 - cmpne r0, #0x6 - add r0, sp, #0x1c - bne _020E1208 - sub r4, sp, #0x4 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - ldr r3, [r4, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x22c - bl longlong2str - movs r7, r0 - beq _020E148C - b _020E122C -_020E1208: - sub r4, sp, #0x8 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - add r1, sp, #0x22c - mov r0, r5 - ldmia r4, {r2-r3} - bl long2str - movs r7, r0 - beq _020E148C -_020E122C: - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _020E14D8 -_020E123C: - ldrb r0, [sp, #0x20] - cmp r0, #0x9 - ldrne r0, [sp, #0x25c] - addne r0, r0, #0x8 - strne r0, [sp, #0x25c] - bne _020E1260 - ldr r0, [sp, #0x25c] - add r0, r0, #0x8 - str r0, [sp, #0x25c] -_020E1260: - ldr r7, [r0, #-0x8] - ldr r6, [r0, #-0x4] - add r0, sp, #0x1c - sub r4, sp, #0x4 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - ldr r3, [r4, #0x0] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x22c - bl float2str - movs r7, r0 - beq _020E148C - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _020E14D8 -_020E12A4: - ldrb r0, [sp, #0x20] - cmp r0, #0x9 - ldrne r0, [sp, #0x25c] - addne r0, r0, #0x8 - strne r0, [sp, #0x25c] - bne _020E12C8 - ldr r0, [sp, #0x25c] - add r0, r0, #0x8 - str r0, [sp, #0x25c] -_020E12C8: - ldr r7, [r0, #-0x8] - ldr r6, [r0, #-0x4] - add r0, sp, #0x1c - sub r4, sp, #0x4 - ldmia r0, {r0-r3} - stmia r4, {r0-r3} - ldr r3, [r4, #0x0] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x22c - bl double2hex - movs r7, r0 - beq _020E148C - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _020E14D8 -_020E130C: - ldrb r0, [sp, #0x20] - cmp r0, #0x5 - bne _020E134C - ldr r0, [sp, #0x25c] - mov r2, #0x200 - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r1, [r0, #-0x4] - add r0, sp, #0x2c - cmp r1, #0x0 - ldreq r1, _020E163C ; =UNK_02106DD8 - bl wcstombs - cmp r0, #0x0 - blt _020E148C - add r7, sp, #0x2c - b _020E135C -_020E134C: - ldr r0, [sp, #0x25c] - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r7, [r0, #-0x4] -_020E135C: - ldrb r0, [sp, #0x1f] - cmp r7, #0x0 - ldreq r7, _020E1640 ; =UNK_02106DDC - cmp r0, #0x0 - beq _020E1390 - ldrb r0, [sp, #0x1e] - ldrb r6, [r7], #0x1 - cmp r0, #0x0 - beq _020E14D8 - ldr r0, [sp, #0x28] - cmp r6, r0 - movgt r6, r0 - b _020E14D8 -_020E1390: - ldrb r0, [sp, #0x1e] - cmp r0, #0x0 - beq _020E13BC - ldr r6, [sp, #0x28] - mov r0, r7 - mov r2, r6 - mov r1, #0x0 - bl memchr - cmp r0, #0x0 - subne r6, r0, r7 - b _020E14D8 -_020E13BC: - mov r0, r7 - bl strlen - mov r6, r0 - b _020E14D8 -_020E13CC: - ldr r1, [sp, #0x25c] - ldrb r0, [sp, #0x20] - add r1, r1, #0x4 - str r1, [sp, #0x25c] - ldr r1, [r1, #-0x4] - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020E161C -_020E13EC: - b _020E1410 -_020E13F0: - b _020E161C -_020E13F4: - b _020E1418 -_020E13F8: - b _020E1420 -_020E13FC: - b _020E1448 -_020E1400: - b _020E161C -_020E1404: - b _020E1428 -_020E1408: - b _020E1438 -_020E140C: - b _020E1440 -_020E1410: - str r10, [r1, #0x0] - b _020E161C -_020E1418: - strh r10, [r1, #0x0] - b _020E161C -_020E1420: - str r10, [r1, #0x0] - b _020E161C -_020E1428: - str r10, [r1, #0x0] - mov r0, r10, asr #0x1f - str r0, [r1, #0x4] - b _020E161C -_020E1438: - str r10, [r1, #0x0] - b _020E161C -_020E1440: - str r10, [r1, #0x0] - b _020E161C -_020E1448: - str r10, [r1, #0x0] - mov r0, r10, asr #0x1f - str r0, [r1, #0x4] - b _020E161C -_020E1458: - ldr r0, [sp, #0x25c] - add r7, sp, #0x2c - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r0, [r0, #-0x4] - mov r6, #0x1 - strb r0, [sp, #0x2c] - b _020E14D8 -_020E1478: - mov r0, #0x25 - strb r0, [sp, #0x2c] - add r7, sp, #0x2c - mov r6, #0x1 - b _020E14D8 -_020E148C: - ldr r0, [sp, #0xc] - bl strlen - movs r4, r0 - beq _020E14C4 - ldr r1, [sp, #0xc] - mov r0, r8 - mov r2, r4 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E14C4: - add sp, sp, #0x22c - add r0, r10, r4 - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E14D8: - ldrb r0, [sp, #0x1c] - mov r4, r6 - cmp r0, #0x0 - beq _020E158C - cmp r0, #0x2 - moveq r0, #0x30 - movne r0, #0x20 - strb r0, [sp, #0x19] - ldrsb r0, [r7, #0x0] - cmp r0, #0x2b - cmpne r0, #0x2d - cmpne r0, #0x20 - bne _020E1548 - ldrsb r0, [sp, #0x19] - cmp r0, #0x30 - bne _020E1548 - mov r0, r8 - mov r1, r7 - mov r2, #0x1 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - add r7, r7, #0x1 - sub r6, r6, #0x1 -_020E1548: - ldr r0, [sp, #0x24] - cmp r4, r0 - bge _020E158C -_020E1554: - mov r0, r8 - add r1, sp, #0x19 - mov r2, #0x1 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x24] - add r4, r4, #0x1 - cmp r4, r0 - blt _020E1554 -_020E158C: - cmp r6, #0x0 - beq _020E15BC - mov r0, r8 - mov r1, r7 - mov r2, r6 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E15BC: - ldrb r0, [sp, #0x1c] - cmp r0, #0x0 - bne _020E1618 - ldr r0, [sp, #0x24] - cmp r4, r0 - bge _020E1618 - mov r6, #0x20 - add r7, sp, #0x18 -_020E15DC: - mov r0, r8 - mov r1, r7 - mov r2, #0x1 - strb r6, [sp, #0x18] - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x22c - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x24] - add r4, r4, #0x1 - cmp r4, r0 - blt _020E15DC -_020E1618: - add r10, r10, r4 -_020E161C: - ldrsb r0, [r11, #0x0] - cmp r0, #0x0 - bne _020E0E50 -_020E1628: - mov r0, r10 - add sp, sp, #0x22c - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E163C: .word UNK_02106DD8 -_020E1640: .word UNK_02106DDC - - arm_func_start __FileWrite -__FileWrite: ; 0x020E1644 - stmdb sp!, {r3-r5,lr} - mov r5, r0 - mov r0, r1 - mov r3, r5 - mov r1, #0x1 - mov r4, r2 - bl __fwrite - cmp r4, r0 - movne r5, #0x0 - mov r0, r5 - ldmia sp!, {r3-r5,pc} - - arm_func_start __StringWrite -__StringWrite: ; 0x020E1670 - stmdb sp!, {r3-r5,lr} - mov r4, r0 - ldr r3, [r4, #0x8] - mov r5, r2 - ldr r2, [r4, #0x4] - add r0, r3, r5 - cmp r0, r2 - ldr r0, [r4, #0x0] - subhi r5, r2, r3 - mov r2, r5 - add r0, r0, r3 - bl memcpy - ldr r1, [r4, #0x8] - mov r0, #0x1 - add r1, r1, r5 - str r1, [r4, #0x8] - ldmia sp!, {r3-r5,pc} - - arm_func_start printf -printf: ; 0x020E16B4 - stmdb sp!, {r0-r3} - stmdb sp!, {r4,lr} - ldr r0, _020E17B4 ; =UNK_02106AA4 - mvn r1, #0x0 - bl fwide - cmp r0, #0x0 - mvnge r0, #0x0 - ldmgeia sp!, {r4,lr} - addge sp, sp, #0x10 - bxge lr - ldr r0, _020E17B8 ; =UNK_021D7118 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020E1710 - ldr r0, _020E17BC ; =OSi_ThreadInfo - ldr r1, _020E17C0 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020E17C4 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0xc] - str r2, [r0, #0xc] - b _020E1768 -_020E1710: - ldr r0, _020E17BC ; =OSi_ThreadInfo - ldr r1, _020E17C0 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, #0xc] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020E1740 - ldr r0, _020E17C4 ; =UNK_021D70AC - ldr r1, [r0, #0xc] - add r1, r1, #0x1 - str r1, [r0, #0xc] - b _020E1768 -_020E1740: - ldr r0, _020E17B8 ; =UNK_021D7118 - bl OS_LockMutex - ldr r0, _020E17BC ; =OSi_ThreadInfo - ldr r1, _020E17C0 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020E17C4 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0xc] - str r2, [r0, #0xc] -_020E1768: - add r0, sp, #0x8 - bic r3, r0, #0x3 - ldr r2, [sp, #0x8] - ldr r0, _020E17C8 ; =__FileWrite - ldr r1, _020E17B4 ; =UNK_02106AA4 - add r3, r3, #0x4 - bl __pformatter - ldr r1, _020E17C4 ; =UNK_021D70AC - mov r4, r0 - ldr r0, [r1, #0xc] - subs r0, r0, #0x1 - str r0, [r1, #0xc] - bne _020E17A4 - ldr r0, _020E17B8 ; =UNK_021D7118 - bl OS_UnlockMutex -_020E17A4: - mov r0, r4 - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E17B4: .word UNK_02106AA4 -_020E17B8: .word UNK_021D7118 -_020E17BC: .word OSi_ThreadInfo -_020E17C0: .word UNK_021D7088 -_020E17C4: .word UNK_021D70AC -_020E17C8: .word __FileWrite - - arm_func_start vsnprintf -vsnprintf: ; 0x020E17CC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r4, r1 - mov r12, #0x0 - ldr r0, _020E1830 ; =__StringWrite - add r1, sp, #0x0 - str r5, [sp, #0x0] - str r4, [sp, #0x4] - str r12, [sp, #0x8] - bl __pformatter - cmp r5, #0x0 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r5,pc} - cmp r0, r4 - movcc r1, #0x0 - addcc sp, sp, #0xc - strccb r1, [r5, r0] - ldmccia sp!, {r4-r5,pc} - cmp r4, #0x0 - addne r1, r5, r4 - movne r2, #0x0 - strneb r2, [r1, #-0x1] - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - .balign 4 -_020E1830: .word __StringWrite - - arm_func_start snprintf -snprintf: ; 0x020E1834 - stmdb sp!, {r0-r3} - stmdb sp!, {r3,lr} - add r3, sp, #0x10 - bic r3, r3, #0x3 - ldr r2, [sp, #0x10] - add r3, r3, #0x4 - bl vsnprintf - ldmia sp!, {r3,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start sprintf -sprintf: ; 0x020E185C - stmdb sp!, {r0-r3} - stmdb sp!, {r3,lr} - add r1, sp, #0xc - bic r1, r1, #0x3 - add r3, r1, #0x4 - ldr r2, [sp, #0xc] - mvn r1, #0x0 - bl vsnprintf - ldmia sp!, {r3,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start qsort -qsort: ; 0x020E1888 - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x10 - mov r9, r1 - cmp r9, #0x2 - mov r10, r0 - mov r8, r2 - mov r7, r3 - addcc sp, sp, #0x10 - ldmccia sp!, {r3-r11,pc} - mov r0, r9, lsr #0x1 - add r11, r0, #0x1 - sub r0, r11, #0x1 - mla r0, r8, r0, r10 - sub r2, r9, #0x1 - str r0, [sp, #0xc] - mla r0, r8, r2, r10 - str r0, [sp, #0x8] - mul r0, r11, r8 - mvn r1, #0x0 - str r0, [sp, #0x4] - mul r0, r8, r1 - str r0, [sp, #0x0] -_020E18E0: - cmp r11, #0x1 - bls _020E1908 - ldr r0, [sp, #0x4] - sub r11, r11, #0x1 - sub r0, r0, r8 - str r0, [sp, #0x4] - ldr r0, [sp, #0xc] - sub r0, r0, r8 - str r0, [sp, #0xc] - b _020E1950 -_020E1908: - mov r2, r8 - ldr r4, [sp, #0x8] - ldr r3, [sp, #0xc] - cmp r8, #0x0 - beq _020E1934 -_020E191C: - ldrsb r0, [r4, #0x0] - ldrsb r1, [r3, #0x0] - subs r2, r2, #0x1 - strb r0, [r3], #0x1 - strb r1, [r4], #0x1 - bne _020E191C -_020E1934: - sub r9, r9, #0x1 - cmp r9, #0x1 - addeq sp, sp, #0x10 - ldmeqia sp!, {r3-r11,pc} - ldr r0, [sp, #0x8] - sub r0, r0, r8 - str r0, [sp, #0x8] -_020E1950: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - mov r4, r11 - add r0, r1, r0 - cmp r9, r11, lsl #0x1 - add r5, r10, r0 - blo _020E18E0 -_020E196C: - mov r4, r4, lsl #0x1 - sub r0, r4, #0x1 - mov r6, r5 - mla r5, r8, r0, r10 - cmp r9, r4 - bls _020E199C - mov r0, r5 - add r1, r5, r8 - blx r7 - cmp r0, #0x0 - addlt r4, r4, #0x1 - addlt r5, r5, r8 -_020E199C: - mov r0, r6 - mov r1, r5 - blx r7 - cmp r0, #0x0 - bge _020E18E0 - mov r2, r8 - mov r3, r5 - cmp r8, #0x0 - beq _020E19D8 -_020E19C0: - ldrsb r1, [r6, #0x0] - ldrsb r0, [r3, #0x0] - subs r2, r2, #0x1 - strb r0, [r6], #0x1 - strb r1, [r3], #0x1 - bne _020E19C0 -_020E19D8: - cmp r9, r4, lsl #0x1 - bhs _020E196C - b _020E18E0 - add sp, sp, #0x10 - ldmia sp!, {r3-r11,pc} - - arm_func_start rand -rand: ; 0x020E19EC - ldr r2, _020E1A14 ; =UNK_02106DE0 - ldr r0, _020E1A18 ; =0x41C64E6D - ldr r3, [r2, #0x0] - ldr r1, _020E1A1C ; =0x00007FFF - mul r0, r3, r0 - add r0, r0, #0x39 - add r0, r0, #0x3000 - str r0, [r2, #0x0] - and r0, r1, r0, lsr #0x10 - bx lr - .balign 4 -_020E1A14: .word UNK_02106DE0 -_020E1A18: .word 0x41C64E6D -_020E1A1C: .word 0x00007FFF - - arm_func_start srand -srand: ; 0x020E1A20 - ldr r1, _020E1A2C ; =UNK_02106DE0 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020E1A2C: .word UNK_02106DE0 - - arm_func_start parse_format_scanf -parse_format_scanf: ; 0x020E1A30 - stmdb sp!, {r3-r7,lr} - sub sp, sp, #0x28 - ldr r6, _020E1F20 ; =UNK_0210440C - add r5, sp, #0x0 - mov r7, r0 - mov lr, r1 - mov r4, r5 - ldmia r6!, {r0-r3} - stmia r5!, {r0-r3} - ldmia r6!, {r0-r3} - stmia r5!, {r0-r3} - ldmia r6, {r0-r1} - stmia r5, {r0-r1} - ldrsb r0, [r7, #0x1] - add r12, r7, #0x1 - cmp r0, #0x25 - bne _020E1A9C - strb r0, [sp, #0x3] - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4, {r0-r1} - stmia lr, {r0-r1} - add sp, sp, #0x28 - add r0, r12, #0x1 - ldmia sp!, {r3-r7,pc} -_020E1A9C: - cmp r0, #0x2a - moveq r0, #0x1 - streqb r0, [sp, #0x0] - ldreqsb r0, [r12, #0x1]! - cmp r0, #0x0 - blt _020E1ABC - cmp r0, #0x80 - blt _020E1AC4 -_020E1ABC: - mov r1, #0x0 - b _020E1AD4 -_020E1AC4: - ldr r1, _020E1F24 ; =UNK_0210430C - mov r2, r0, lsl #0x1 - ldrh r1, [r1, r2] - and r1, r1, #0x8 -_020E1AD4: - cmp r1, #0x0 - beq _020E1B74 - mov r1, #0x0 - ldr r3, _020E1F24 ; =UNK_0210430C - str r1, [sp, #0x4] - mov r4, r1 - mov r1, #0xa -_020E1AF0: - ldr r2, [sp, #0x4] - sub r0, r0, #0x30 - mla r0, r2, r1, r0 - str r0, [sp, #0x4] - ldrsb r0, [r12, #0x1]! - cmp r0, #0x0 - blt _020E1B14 - cmp r0, #0x80 - blt _020E1B1C -_020E1B14: - mov r2, r4 - b _020E1B28 -_020E1B1C: - mov r2, r0, lsl #0x1 - ldrh r2, [r3, r2] - and r2, r2, #0x8 -_020E1B28: - cmp r2, #0x0 - bne _020E1AF0 - ldr r1, [sp, #0x4] - cmp r1, #0x0 - bne _020E1B6C - mov r0, #0xff - add r4, sp, #0x0 - strb r0, [sp, #0x3] - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4, {r0-r1} - stmia lr, {r0-r1} - add sp, sp, #0x28 - add r0, r12, #0x1 - ldmia sp!, {r3-r7,pc} -_020E1B6C: - mov r1, #0x1 - strb r1, [sp, #0x1] -_020E1B74: - cmp r0, #0x6c - mov r1, #0x1 - bgt _020E1BAC - cmp r0, #0x68 - blt _020E1BA0 - beq _020E1BC8 - cmp r0, #0x6a - beq _020E1C14 - cmp r0, #0x6c - beq _020E1BE4 - b _020E1C38 -_020E1BA0: - cmp r0, #0x4c - beq _020E1C08 - b _020E1C38 -_020E1BAC: - cmp r0, #0x74 - bgt _020E1BBC - beq _020E1C2C - b _020E1C38 -_020E1BBC: - cmp r0, #0x7a - beq _020E1C20 - b _020E1C38 -_020E1BC8: - mov r2, #0x2 - strb r2, [sp, #0x2] - ldrsb r2, [r12, #0x1] - cmp r2, #0x68 - streqb r1, [sp, #0x2] - ldreqsb r0, [r12, #0x1]! - b _020E1C3C -_020E1BE4: - mov r2, #0x3 - strb r2, [sp, #0x2] - ldrsb r2, [r12, #0x1] - cmp r2, #0x6c - bne _020E1C3C - mov r0, #0x7 - strb r0, [sp, #0x2] - ldrsb r0, [r12, #0x1]! - b _020E1C3C -_020E1C08: - mov r2, #0x9 - strb r2, [sp, #0x2] - b _020E1C3C -_020E1C14: - mov r2, #0x4 - strb r2, [sp, #0x2] - b _020E1C3C -_020E1C20: - mov r2, #0x5 - strb r2, [sp, #0x2] - b _020E1C3C -_020E1C2C: - mov r2, #0x6 - strb r2, [sp, #0x2] - b _020E1C3C -_020E1C38: - mov r1, #0x0 -_020E1C3C: - cmp r1, #0x0 - ldrnesb r0, [r12, #0x1]! - strb r0, [sp, #0x3] - cmp r0, #0x5b - bgt _020E1C90 - bge _020E1DE0 - cmp r0, #0x47 - bgt _020E1C84 - subs r1, r0, #0x41 - addpl pc, pc, r1, lsl #0x2 - b _020E1EF0 - b _020E1D1C - b _020E1EF0 - b _020E1EF0 - b _020E1EF0 - b _020E1D1C - b _020E1D1C - b _020E1D1C -_020E1C84: - cmp r0, #0x58 - beq _020E1D08 - b _020E1EF0 -_020E1C90: - cmp r0, #0x61 - bgt _020E1CA0 - beq _020E1D1C - b _020E1EF0 -_020E1CA0: - sub r0, r0, #0x63 - cmp r0, #0x15 - addls pc, pc, r0, lsl #0x2 - b _020E1EF0 -_020E1CB0: - b _020E1D6C -_020E1CB4: - b _020E1D08 -_020E1CB8: - b _020E1D1C -_020E1CBC: - b _020E1D1C -_020E1CC0: - b _020E1D1C -_020E1CC4: - b _020E1EF0 -_020E1CC8: - b _020E1D08 -_020E1CCC: - b _020E1EF0 -_020E1CD0: - b _020E1EF0 -_020E1CD4: - b _020E1EF0 -_020E1CD8: - b _020E1EF0 -_020E1CDC: - b _020E1EF8 -_020E1CE0: - b _020E1D08 -_020E1CE4: - b _020E1D58 -_020E1CE8: - b _020E1EF0 -_020E1CEC: - b _020E1EF0 -_020E1CF0: - b _020E1D90 -_020E1CF4: - b _020E1EF0 -_020E1CF8: - b _020E1D08 -_020E1CFC: - b _020E1EF0 -_020E1D00: - b _020E1EF0 -_020E1D04: - b _020E1D08 -_020E1D08: - ldrb r0, [sp, #0x2] - cmp r0, #0x9 - moveq r0, #0xff - streqb r0, [sp, #0x3] - b _020E1EF8 -_020E1D1C: - ldrb r1, [sp, #0x2] - cmp r1, #0x1 - cmpne r1, #0x2 - beq _020E1D3C - add r0, r1, #0xfc - and r0, r0, #0xff - cmp r0, #0x3 - bhi _020E1D48 -_020E1D3C: - mov r0, #0xff - strb r0, [sp, #0x3] - b _020E1EF8 -_020E1D48: - cmp r1, #0x3 - moveq r0, #0x8 - streqb r0, [sp, #0x2] - b _020E1EF8 -_020E1D58: - mov r1, #0x3 - mov r0, #0x78 - strb r1, [sp, #0x2] - strb r0, [sp, #0x3] - b _020E1EF8 -_020E1D6C: - ldrb r0, [sp, #0x2] - cmp r0, #0x3 - moveq r0, #0xa - streqb r0, [sp, #0x2] - beq _020E1EF8 - cmp r0, #0x0 - movne r0, #0xff - strneb r0, [sp, #0x3] - b _020E1EF8 -_020E1D90: - ldrb r0, [sp, #0x2] - cmp r0, #0x3 - moveq r0, #0xa - streqb r0, [sp, #0x2] - beq _020E1DB0 - cmp r0, #0x0 - movne r0, #0xff - strneb r0, [sp, #0x3] -_020E1DB0: - add r2, sp, #0x8 - mov r1, #0x20 - mov r0, #0xff -_020E1DBC: - sub r1, r1, #0x1 - cmp r1, #0x0 - strb r0, [r2], #0x1 - bgt _020E1DBC - mov r1, #0xc1 - mov r0, #0xfe - strb r1, [sp, #0x9] - strb r0, [sp, #0xc] - b _020E1EF8 -_020E1DE0: - ldrb r0, [sp, #0x2] - cmp r0, #0x3 - moveq r0, #0xa - streqb r0, [sp, #0x2] - beq _020E1E00 - cmp r0, #0x0 - movne r0, #0xff - strneb r0, [sp, #0x3] -_020E1E00: - ldrsb r2, [r12, #0x1]! - mov r1, #0x0 - cmp r2, #0x5e - ldreqsb r2, [r12, #0x1]! - moveq r1, #0x1 - cmp r2, #0x5d - bne _020E1EA8 - ldrb r0, [sp, #0x13] - orr r0, r0, #0x20 - strb r0, [sp, #0x13] - ldrsb r2, [r12, #0x1]! - b _020E1EA8 -_020E1E30: - add r0, sp, #0x0 - and r3, r2, #0xff - add r6, r0, r3, asr #0x3 - ldrb r5, [r6, #0x8] - and r3, r2, #0x7 - mov r4, #0x1 - orr r3, r5, r4, lsl r3 - strb r3, [r6, #0x8] - ldrsb r3, [r12, #0x1] - cmp r3, #0x2d - bne _020E1EA4 - ldrsb r7, [r12, #0x2] - cmp r7, #0x0 - cmpne r7, #0x5d - beq _020E1EA4 - add r2, r2, #0x1 - cmp r2, r7 - bgt _020E1E9C -_020E1E78: - and r3, r2, #0xff - add r6, r0, r3, asr #0x3 - ldrb r5, [r6, #0x8] - and r3, r2, #0x7 - add r2, r2, #0x1 - orr r3, r5, r4, lsl r3 - strb r3, [r6, #0x8] - cmp r2, r7 - ble _020E1E78 -_020E1E9C: - ldrsb r2, [r12, #0x3]! - b _020E1EA8 -_020E1EA4: - ldrsb r2, [r12, #0x1]! -_020E1EA8: - cmp r2, #0x0 - cmpne r2, #0x5d - bne _020E1E30 - cmp r2, #0x0 - moveq r0, #0xff - streqb r0, [sp, #0x3] - beq _020E1EF8 - cmp r1, #0x0 - beq _020E1EF8 - add r2, sp, #0x8 - mov r1, #0x20 -_020E1ED4: - ldrb r0, [r2, #0x0] - sub r1, r1, #0x1 - cmp r1, #0x0 - mvn r0, r0 - strb r0, [r2], #0x1 - bgt _020E1ED4 - b _020E1EF8 -_020E1EF0: - mov r0, #0xff - strb r0, [sp, #0x3] -_020E1EF8: - add r4, sp, #0x0 - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r4, {r0-r1} - stmia lr, {r0-r1} - add r0, r12, #0x1 - add sp, sp, #0x28 - ldmia sp!, {r3-r7,pc} - .balign 4 -_020E1F20: .word UNK_0210440C -_020E1F24: .word UNK_0210430C - - arm_func_start __sformatter -__sformatter: ; 0x020E1F28 - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x88 - ldrsb r5, [r2, #0x0] - str r2, [sp, #0xc] - mov r2, #0x0 - mov r9, r0 - mov r0, r2 - str r2, [sp, #0x20] - mov r8, r1 - str r3, [sp, #0x10] - str r0, [sp, #0x24] - cmp r5, #0x0 - ldr r10, [sp, #0xb0] - str r0, [sp, #0x30] - mov r4, r2 - str r0, [sp, #0x44] - str r0, [sp, #0x40] - beq _020E2C3C -_020E1F70: - cmp r5, #0x0 - mov r0, #0x1 - blt _020E1F84 - cmp r5, #0x80 - movlt r0, #0x0 -_020E1F84: - cmp r0, #0x0 - movne r0, #0x0 - bne _020E1FA0 - mov r1, r5, lsl #0x1 - ldr r0, _020E2C74 ; =UNK_0210430C - ldrh r0, [r0, r1] - and r0, r0, #0x100 -_020E1FA0: - cmp r0, #0x0 - beq _020E2060 - mov r2, #0x0 - ldr r1, _020E2C74 ; =UNK_0210430C - mov r12, r2 - mov r3, #0x1 -_020E1FB8: - ldr r0, [sp, #0xc] - ldrsb r5, [r0, #0x1]! - str r0, [sp, #0xc] - mov r0, r3 - cmp r5, #0x0 - blt _020E1FD8 - cmp r5, #0x80 - movlt r0, r2 -_020E1FD8: - cmp r0, #0x0 - movne r0, r12 - moveq r0, r5, lsl #0x1 - ldreqh r0, [r1, r0] - andeq r0, r0, #0x100 - cmp r0, #0x0 - bne _020E1FB8 - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _020E2C2C - ldr r5, _020E2C74 ; =UNK_0210430C - b _020E200C -_020E2008: - add r4, r4, #0x1 -_020E200C: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - strb r0, [sp, #0x50] - ldrsb r1, [sp, #0x50] - cmp r1, #0x0 - blt _020E2034 - cmp r1, #0x80 - blt _020E203C -_020E2034: - mov r0, #0x0 - b _020E2048 -_020E203C: - mov r0, r1, lsl #0x1 - ldrh r0, [r5, r0] - and r0, r0, #0x100 -_020E2048: - cmp r0, #0x0 - bne _020E2008 - mov r0, r8 - mov r2, #0x1 - blx r9 - b _020E2C2C -_020E2060: - cmp r5, #0x25 - beq _020E20D8 - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _020E20D8 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - strb r0, [sp, #0x50] - and r0, r5, #0xff - ldrsb r1, [sp, #0x50] - cmp r0, r1 - beq _020E20C4 - mov r0, r8 - mov r2, #0x1 - blx r9 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - b _020E2C2C -_020E20C4: - ldr r0, [sp, #0xc] - add r4, r4, #0x1 - add r0, r0, #0x1 - str r0, [sp, #0xc] - b _020E2C2C -_020E20D8: - ldr r0, [sp, #0xc] - add r1, sp, #0x60 - bl parse_format_scanf - str r0, [sp, #0xc] - ldrb r0, [sp, #0x60] - cmp r0, #0x0 - bne _020E2114 - ldrb r0, [sp, #0x63] - cmp r0, #0x25 - beq _020E2114 - ldr r0, [sp, #0x10] - add r0, r0, #0x4 - str r0, [sp, #0x10] - ldr r5, [r0, #-0x4] - b _020E2118 -_020E2114: - mov r5, #0x0 -_020E2118: - ldrb r0, [sp, #0x63] - cmp r0, #0x6e - beq _020E2158 - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _020E2158 - mov r0, r8 - mov r1, #0x0 - mov r2, #0x2 - blx r9 - cmp r0, #0x0 - beq _020E2158 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] -_020E2158: - ldrb r1, [sp, #0x63] - cmp r1, #0x5b - bgt _020E21B0 - bge _020E2984 - cmp r1, #0x47 - bgt _020E21A4 - subs r0, r1, #0x41 - addpl pc, pc, r0, lsl #0x2 - b _020E2198 - b _020E2600 - b _020E2C3C - b _020E2C3C - b _020E2C3C - b _020E2600 - b _020E2600 - b _020E2600 -_020E2198: - cmp r1, #0x25 - beq _020E287C - b _020E2C3C -_020E21A4: - cmp r1, #0x58 - beq _020E243C - b _020E2C3C -_020E21B0: - cmp r1, #0x78 - bgt _020E2228 - subs r0, r1, #0x63 - addpl pc, pc, r0, lsl #0x2 - b _020E221C - b _020E26C4 - b _020E2230 - b _020E2600 - b _020E2600 - b _020E2600 - b _020E2C3C - b _020E2238 - b _020E2C3C - b _020E2C3C - b _020E2C3C - b _020E2C3C - b _020E2BC8 - b _020E242C - b _020E2C3C - b _020E2C3C - b _020E2C3C - b _020E2908 - b _020E2C3C - b _020E2434 - b _020E2C3C - b _020E2C3C - b _020E243C -_020E221C: - cmp r1, #0x61 - beq _020E2600 - b _020E2C3C -_020E2228: - cmp r1, #0xff - b _020E2C3C -_020E2230: - mov r0, #0xa - b _020E223C -_020E2238: - mov r0, #0x0 -_020E223C: - ldr r1, [sp, #0x30] - cmp r1, #0x0 - beq _020E225C - mov r0, #0x0 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - str r0, [sp, #0x24] - b _020E2364 -_020E225C: - ldrb r1, [sp, #0x62] - add r2, sp, #0x5c - cmp r1, #0x7 - cmpne r1, #0x4 - add r1, sp, #0x58 - bne _020E22A0 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - add r1, sp, #0x54 - str r1, [sp, #0x8] - ldr r1, [sp, #0x64] - mov r2, r9 - mov r3, r8 - bl __strtoull - str r0, [sp, #0x34] - str r1, [sp, #0x18] - b _020E22C4 -_020E22A0: - str r2, [sp, #0x0] - str r1, [sp, #0x4] - add r1, sp, #0x54 - str r1, [sp, #0x8] - ldr r1, [sp, #0x64] - mov r2, r9 - mov r3, r8 - bl __strtoul - str r0, [sp, #0x3c] -_020E22C4: - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - bne _020E22F4 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] - mov r0, #0x0 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - str r0, [sp, #0x24] - b _020E2364 -_020E22F4: - add r4, r4, r0 - ldrb r0, [sp, #0x62] - cmp r0, #0x7 - cmpne r0, #0x4 - bne _020E2344 - ldr r0, [sp, #0x58] - cmp r0, #0x0 - beq _020E2330 - ldr r0, [sp, #0x34] - rsbs r0, r0, #0x0 - str r0, [sp, #0x20] - ldr r0, [sp, #0x18] - rsc r0, r0, #0x0 - str r0, [sp, #0x24] - b _020E2364 -_020E2330: - ldr r0, [sp, #0x34] - str r0, [sp, #0x20] - ldr r0, [sp, #0x18] - str r0, [sp, #0x24] - b _020E2364 -_020E2344: - ldr r0, [sp, #0x58] - cmp r0, #0x0 - ldreq r0, [sp, #0x3c] - streq r0, [sp, #0x1c] - beq _020E2364 - ldr r0, [sp, #0x3c] - rsb r0, r0, #0x0 - str r0, [sp, #0x1c] -_020E2364: - cmp r5, #0x0 - beq _020E241C - ldrb r0, [sp, #0x62] - cmp r0, #0x7 - addls pc, pc, r0, lsl #0x2 - b _020E2408 -_020E237C: - b _020E239C -_020E2380: - b _020E23A8 -_020E2384: - b _020E23B4 -_020E2388: - b _020E23C0 -_020E238C: - b _020E23CC -_020E2390: - b _020E23E0 -_020E2394: - b _020E23EC -_020E2398: - b _020E23F8 -_020E239C: - ldr r0, [sp, #0x1c] - str r0, [r5, #0x0] - b _020E2408 -_020E23A8: - ldr r0, [sp, #0x1c] - strb r0, [r5, #0x0] - b _020E2408 -_020E23B4: - ldr r0, [sp, #0x1c] - strh r0, [r5, #0x0] - b _020E2408 -_020E23C0: - ldr r0, [sp, #0x1c] - str r0, [r5, #0x0] - b _020E2408 -_020E23CC: - ldr r0, [sp, #0x20] - str r0, [r5, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x4] - b _020E2408 -_020E23E0: - ldr r0, [sp, #0x1c] - str r0, [r5, #0x0] - b _020E2408 -_020E23EC: - ldr r0, [sp, #0x1c] - str r0, [r5, #0x0] - b _020E2408 -_020E23F8: - ldr r0, [sp, #0x20] - str r0, [r5, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x4] -_020E2408: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - ldreq r0, [sp, #0x44] - addeq r0, r0, #0x1 - streq r0, [sp, #0x44] -_020E241C: - ldr r0, [sp, #0x40] - add r0, r0, #0x1 - str r0, [sp, #0x40] - b _020E2C2C -_020E242C: - mov r0, #0x8 - b _020E2440 -_020E2434: - mov r0, #0xa - b _020E2440 -_020E243C: - mov r0, #0x10 -_020E2440: - ldr r1, [sp, #0x30] - cmp r1, #0x0 - beq _020E2460 - mov r0, #0x0 - str r0, [sp, #0x3c] - str r0, [sp, #0x34] - str r0, [sp, #0x18] - b _020E2538 -_020E2460: - ldrb r1, [sp, #0x62] - add r2, sp, #0x5c - cmp r1, #0x7 - cmpne r1, #0x4 - add r1, sp, #0x58 - bne _020E24A4 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - add r1, sp, #0x54 - str r1, [sp, #0x8] - ldr r1, [sp, #0x64] - mov r2, r9 - mov r3, r8 - bl __strtoull - str r0, [sp, #0x34] - str r1, [sp, #0x18] - b _020E24C8 -_020E24A4: - str r2, [sp, #0x0] - str r1, [sp, #0x4] - add r1, sp, #0x54 - str r1, [sp, #0x8] - ldr r1, [sp, #0x64] - mov r2, r9 - mov r3, r8 - bl __strtoul - str r0, [sp, #0x3c] -_020E24C8: - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - bne _020E24F8 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] - mov r0, #0x0 - str r0, [sp, #0x3c] - str r0, [sp, #0x34] - str r0, [sp, #0x18] - b _020E2538 -_020E24F8: - add r4, r4, r0 - ldr r0, [sp, #0x58] - cmp r0, #0x0 - beq _020E2538 - ldrb r0, [sp, #0x62] - cmp r0, #0x7 - ldrne r0, [sp, #0x3c] - rsbne r0, r0, #0x0 - strne r0, [sp, #0x3c] - bne _020E2538 - ldr r0, [sp, #0x34] - rsbs r0, r0, #0x0 - str r0, [sp, #0x34] - ldr r0, [sp, #0x18] - rsc r0, r0, #0x0 - str r0, [sp, #0x18] -_020E2538: - cmp r5, #0x0 - beq _020E25F0 - ldrb r0, [sp, #0x62] - cmp r0, #0x7 - addls pc, pc, r0, lsl #0x2 - b _020E25DC -_020E2550: - b _020E2570 -_020E2554: - b _020E257C -_020E2558: - b _020E2588 -_020E255C: - b _020E2594 -_020E2560: - b _020E25A0 -_020E2564: - b _020E25B4 -_020E2568: - b _020E25C0 -_020E256C: - b _020E25CC -_020E2570: - ldr r0, [sp, #0x3c] - str r0, [r5, #0x0] - b _020E25DC -_020E257C: - ldr r0, [sp, #0x3c] - strb r0, [r5, #0x0] - b _020E25DC -_020E2588: - ldr r0, [sp, #0x3c] - strh r0, [r5, #0x0] - b _020E25DC -_020E2594: - ldr r0, [sp, #0x3c] - str r0, [r5, #0x0] - b _020E25DC -_020E25A0: - ldr r0, [sp, #0x34] - str r0, [r5, #0x0] - ldr r0, [sp, #0x18] - str r0, [r5, #0x4] - b _020E25DC -_020E25B4: - ldr r0, [sp, #0x3c] - str r0, [r5, #0x0] - b _020E25DC -_020E25C0: - ldr r0, [sp, #0x3c] - str r0, [r5, #0x0] - b _020E25DC -_020E25CC: - ldr r0, [sp, #0x34] - str r0, [r5, #0x0] - ldr r0, [sp, #0x18] - str r0, [r5, #0x4] -_020E25DC: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - ldreq r0, [sp, #0x44] - addeq r0, r0, #0x1 - streq r0, [sp, #0x44] -_020E25F0: - ldr r0, [sp, #0x40] - add r0, r0, #0x1 - str r0, [sp, #0x40] - b _020E2C2C -_020E2600: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - beq _020E261C - ldr r0, _020E2C78 ; =UNK_02106B78 - ldr r0, [r0, #0x0] - bl _f2d - b _020E2668 -_020E261C: - add r0, sp, #0x54 - str r0, [sp, #0x0] - ldr r0, [sp, #0x64] - mov r1, r9 - mov r2, r8 - add r3, sp, #0x5c - bl __strtold - ldr r2, [sp, #0x5c] - cmp r2, #0x0 - bne _020E2664 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] - ldr r0, _020E2C78 ; =UNK_02106B78 - ldr r0, [r0, #0x0] - bl _f2d - b _020E2668 -_020E2664: - add r4, r4, r2 -_020E2668: - cmp r5, #0x0 - beq _020E26B4 - ldrb r2, [sp, #0x62] - cmp r2, #0x0 - beq _020E2690 - cmp r2, #0x8 - beq _020E269C - cmp r2, #0x9 - stmeqia r5, {r0-r1} - b _020E26A0 -_020E2690: - bl _d2f - str r0, [r5, #0x0] - b _020E26A0 -_020E269C: - stmia r5, {r0-r1} -_020E26A0: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - ldreq r0, [sp, #0x44] - addeq r0, r0, #0x1 - streq r0, [sp, #0x44] -_020E26B4: - ldr r0, [sp, #0x40] - add r0, r0, #0x1 - str r0, [sp, #0x40] - b _020E2C2C -_020E26C4: - ldrb r0, [sp, #0x61] - cmp r0, #0x0 - moveq r0, #0x1 - streq r0, [sp, #0x64] - cmp r5, #0x0 - beq _020E280C - cmp r10, #0x0 - beq _020E26F8 - ldr r0, [sp, #0x10] - mov r7, #0x1 - add r0, r0, #0x4 - ldr r11, [r0, #-0x4] - str r0, [sp, #0x10] -_020E26F8: - ldr r0, [sp, #0x30] - mov r1, #0x0 - cmp r0, #0x0 - str r1, [sp, #0x5c] - beq _020E2718 - cmp r11, #0x0 - strneb r1, [r5, #0x0] - b _020E2C2C -_020E2718: - mvn r0, #0x0 - str r5, [sp, #0x2c] - str r0, [sp, #0x48] - b _020E2760 -_020E2728: - ldrb r0, [sp, #0x62] - strb r6, [sp, #0x50] - cmp r0, #0xa - ldrnesb r0, [sp, #0x50] - strneb r0, [r5], #0x1 - bne _020E2754 - mov r0, r5 - add r1, sp, #0x50 - mov r2, #0x1 - bl mbtowc - add r5, r5, #0x1 -_020E2754: - ldr r0, [sp, #0x5c] - add r1, r0, #0x1 - str r1, [sp, #0x5c] -_020E2760: - ldr r0, [sp, #0x64] - cmp r0, #0x0 - sub r0, r0, #0x1 - str r0, [sp, #0x64] - beq _020E27B0 - cmp r10, #0x0 - beq _020E2790 - cmp r11, r1 - movhi r7, #0x1 - movls r7, #0x0 - cmp r7, #0x0 - beq _020E27B0 -_020E2790: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r6, r0 - ldr r0, [sp, #0x48] - cmp r6, r0 - bne _020E2728 -_020E27B0: - strb r6, [sp, #0x50] - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - beq _020E27D0 - cmp r10, #0x0 - beq _020E27F8 - cmp r7, #0x0 - bne _020E27F8 -_020E27D0: - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - cmp r11, #0x0 - str r0, [sp, #0x30] - beq _020E2C2C - ldr r0, [sp, #0x2c] - mov r1, #0x0 - strb r1, [r0, #0x0] - b _020E2C2C -_020E27F8: - add r4, r4, r0 - ldr r0, [sp, #0x44] - add r0, r0, #0x1 - str r0, [sp, #0x44] - b _020E286C -_020E280C: - mov r0, #0x0 - str r0, [sp, #0x5c] - mvn r5, #0x0 - b _020E282C -_020E281C: - strb r6, [sp, #0x50] - ldr r0, [sp, #0x5c] - add r0, r0, #0x1 - str r0, [sp, #0x5c] -_020E282C: - ldr r0, [sp, #0x64] - cmp r0, #0x0 - sub r0, r0, #0x1 - str r0, [sp, #0x64] - beq _020E285C - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r6, r0 - cmp r6, r5 - bne _020E281C -_020E285C: - strb r6, [sp, #0x50] - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - beq _020E2C3C -_020E286C: - ldr r0, [sp, #0x40] - add r0, r0, #0x1 - str r0, [sp, #0x40] - b _020E2C2C -_020E287C: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _020E2C2C - ldr r5, _020E2C74 ; =UNK_0210430C - b _020E2894 -_020E2890: - add r4, r4, #0x1 -_020E2894: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - strb r0, [sp, #0x50] - ldrsb r1, [sp, #0x50] - cmp r1, #0x0 - blt _020E28BC - cmp r1, #0x80 - blt _020E28C4 -_020E28BC: - mov r0, #0x0 - b _020E28D0 -_020E28C4: - mov r0, r1, lsl #0x1 - ldrh r0, [r5, r0] - and r0, r0, #0x100 -_020E28D0: - cmp r0, #0x0 - bne _020E2890 - cmp r1, #0x25 - beq _020E2900 - mov r0, r8 - mov r2, #0x1 - blx r9 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - str r0, [sp, #0x30] - b _020E2C2C -_020E2900: - add r4, r4, #0x1 - b _020E2C2C -_020E2908: - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _020E2984 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - strb r0, [sp, #0x50] - b _020E2944 -_020E292C: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - strb r0, [sp, #0x50] -_020E2944: - ldrsb r1, [sp, #0x50] - cmp r1, #0x0 - blt _020E2958 - cmp r1, #0x80 - blt _020E2960 -_020E2958: - mov r0, #0x0 - b _020E2970 -_020E2960: - ldr r0, _020E2C74 ; =UNK_0210430C - mov r2, r1, lsl #0x1 - ldrh r0, [r0, r2] - and r0, r0, #0x100 -_020E2970: - cmp r0, #0x0 - bne _020E292C - mov r0, r8 - mov r2, #0x1 - blx r9 -_020E2984: - cmp r5, #0x0 - beq _020E2B00 - cmp r10, #0x0 - beq _020E29AC - ldr r0, [sp, #0x10] - mov r7, #0x1 - add r0, r0, #0x4 - str r0, [sp, #0x10] - ldr r0, [r0, #-0x4] - sub r11, r0, #0x1 -_020E29AC: - ldr r0, [sp, #0x30] - mov r1, #0x0 - cmp r0, #0x0 - str r1, [sp, #0x5c] - beq _020E29CC - cmp r11, #0x0 - strneb r1, [r5, #0x0] - b _020E2C2C -_020E29CC: - mvn r0, #0x0 - str r5, [sp, #0x28] - str r0, [sp, #0x4c] - b _020E2A30 -_020E29DC: - strb r6, [sp, #0x50] - ldrsb r1, [sp, #0x50] - add r2, sp, #0x60 - and r3, r1, #0xff - add r2, r2, r3, asr #0x3 - ldrb r3, [r2, #0x8] - and r0, r1, #0x7 - mov r2, #0x1 - tst r3, r2, lsl r0 - beq _020E2A80 - ldrb r0, [sp, #0x62] - cmp r0, #0xa - strneb r1, [r5], #0x1 - bne _020E2A24 - mov r0, r5 - add r1, sp, #0x50 - bl mbtowc - add r5, r5, #0x2 -_020E2A24: - ldr r0, [sp, #0x5c] - add r1, r0, #0x1 - str r1, [sp, #0x5c] -_020E2A30: - ldr r0, [sp, #0x64] - cmp r0, #0x0 - sub r0, r0, #0x1 - str r0, [sp, #0x64] - beq _020E2A80 - cmp r10, #0x0 - beq _020E2A60 - cmp r11, r1 - movcs r7, #0x1 - movcc r7, #0x0 - cmp r7, #0x0 - beq _020E2A80 -_020E2A60: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r6, r0 - ldr r0, [sp, #0x4c] - cmp r6, r0 - bne _020E29DC -_020E2A80: - strb r6, [sp, #0x50] - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - beq _020E2AA0 - cmp r10, #0x0 - beq _020E2AD8 - cmp r7, #0x0 - bne _020E2AD8 -_020E2AA0: - mov r0, r8 - ldrsb r1, [sp, #0x50] - mov r2, #0x1 - blx r9 - cmp r10, #0x0 - beq _020E2C3C - mov r0, #0x1 - cmp r11, #0x0 - str r0, [sp, #0x30] - beq _020E2C2C - ldr r0, [sp, #0x28] - mov r1, #0x0 - strb r1, [r0, #0x0] - b _020E2C2C -_020E2AD8: - add r4, r4, r0 - ldrb r0, [sp, #0x62] - cmp r0, #0xa - mov r0, #0x0 - streqh r0, [r5, #0x0] - strneb r0, [r5, #0x0] - ldr r0, [sp, #0x44] - add r0, r0, #0x1 - str r0, [sp, #0x44] - b _020E2B9C -_020E2B00: - mov r0, #0x0 - str r0, [sp, #0x5c] - mvn r5, #0x0 - b _020E2B44 -_020E2B10: - strb r6, [sp, #0x50] - ldrsb r1, [sp, #0x50] - and r0, r1, #0x7 - and r2, r1, #0xff - add r1, sp, #0x60 - add r1, r1, r2, asr #0x3 - ldrb r2, [r1, #0x8] - mov r1, #0x1 - tst r2, r1, lsl r0 - beq _020E2B74 - ldr r0, [sp, #0x5c] - add r0, r0, #0x1 - str r0, [sp, #0x5c] -_020E2B44: - ldr r0, [sp, #0x64] - cmp r0, #0x0 - sub r0, r0, #0x1 - str r0, [sp, #0x64] - beq _020E2B74 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r6, r0 - cmp r6, r5 - bne _020E2B10 -_020E2B74: - strb r6, [sp, #0x50] - ldr r0, [sp, #0x5c] - cmp r0, #0x0 - bne _020E2B98 - mov r0, r8 - ldrsb r1, [sp, #0x50] - mov r2, #0x1 - blx r9 - b _020E2C2C -_020E2B98: - add r4, r4, r0 -_020E2B9C: - ldr r0, [sp, #0x64] - cmp r0, #0x0 - blt _020E2BB8 - mov r0, r8 - ldrsb r1, [sp, #0x50] - mov r2, #0x1 - blx r9 -_020E2BB8: - ldr r0, [sp, #0x40] - add r0, r0, #0x1 - str r0, [sp, #0x40] - b _020E2C2C -_020E2BC8: - cmp r5, #0x0 - beq _020E2C2C - ldrb r0, [sp, #0x62] - cmp r0, #0x7 - addls pc, pc, r0, lsl #0x2 - b _020E2C2C -_020E2BE0: - b _020E2C00 -_020E2BE4: - b _020E2C18 -_020E2BE8: - b _020E2C08 -_020E2BEC: - b _020E2C10 -_020E2BF0: - b _020E2C2C -_020E2BF4: - b _020E2C2C -_020E2BF8: - b _020E2C2C -_020E2BFC: - b _020E2C20 -_020E2C00: - str r4, [r5, #0x0] - b _020E2C2C -_020E2C08: - strh r4, [r5, #0x0] - b _020E2C2C -_020E2C10: - str r4, [r5, #0x0] - b _020E2C2C -_020E2C18: - strb r4, [r5, #0x0] - b _020E2C2C -_020E2C20: - str r4, [r5, #0x0] - mov r0, r4, asr #0x1f - str r0, [r5, #0x4] -_020E2C2C: - ldr r0, [sp, #0xc] - ldrsb r5, [r0, #0x0] - cmp r5, #0x0 - bne _020E1F70 -_020E2C3C: - mov r0, r8 - mov r1, #0x0 - mov r2, #0x2 - blx r9 - cmp r0, #0x0 - beq _020E2C68 - ldr r0, [sp, #0x40] - cmp r0, #0x0 - addeq sp, sp, #0x88 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,pc} -_020E2C68: - ldr r0, [sp, #0x44] - add sp, sp, #0x88 - ldmia sp!, {r3-r11,pc} - .balign 4 -_020E2C74: .word UNK_0210430C -_020E2C78: .word UNK_02106B78 - - arm_func_start __StringRead -__StringRead: ; 0x020E2C7C - cmp r2, #0x0 - beq _020E2C98 - cmp r2, #0x1 - beq _020E2CC8 - cmp r2, #0x2 - beq _020E2CF0 - b _020E2CF8 -_020E2C98: - ldr r1, [r0, #0x0] - ldrsb r2, [r1, #0x0] - cmp r2, #0x0 - bne _020E2CB8 - mov r1, #0x1 - str r1, [r0, #0x4] - sub r0, r1, #0x2 - bx lr -_020E2CB8: - add r1, r1, #0x1 - str r1, [r0, #0x0] - and r0, r2, #0xff - bx lr -_020E2CC8: - ldr r2, [r0, #0x4] - cmp r2, #0x0 - movne r2, #0x0 - strne r2, [r0, #0x4] - bne _020E2CE8 - ldr r2, [r0, #0x0] - sub r2, r2, #0x1 - str r2, [r0, #0x0] -_020E2CE8: - mov r0, r1 - bx lr -_020E2CF0: - ldr r0, [r0, #0x4] - bx lr -_020E2CF8: - mov r0, #0x0 - bx lr - - arm_func_start vsscanf -vsscanf: ; 0x020E2D00 - stmdb sp!, {lr} - sub sp, sp, #0xc - str r0, [sp, #0x4] - cmp r0, #0x0 - ldrnesb r0, [r0, #0x0] - mov lr, r1 - mov r3, r2 - cmpne r0, #0x0 - addeq sp, sp, #0xc - mvneq r0, #0x0 - ldmeqia sp!, {pc} - mov r12, #0x0 - str r12, [sp, #0x8] - ldr r0, _020E2D50 ; =__StringRead - add r1, sp, #0x4 - mov r2, lr - str r12, [sp, #0x0] - bl __sformatter - add sp, sp, #0xc - ldmia sp!, {pc} - .balign 4 -_020E2D50: .word __StringRead - - arm_func_start sscanf -sscanf: ; 0x020E2D54 - stmdb sp!, {r0-r3} - stmdb sp!, {r3,lr} - add r2, sp, #0xc - bic r2, r2, #0x3 - ldr r1, [sp, #0xc] - add r2, r2, #0x4 - bl vsscanf - ldmia sp!, {r3,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start raise -raise: ; 0x020E2D7C - stmdb sp!, {r3-r5,lr} - mov r5, r0 - cmp r5, #0x1 - blt _020E2D94 - cmp r5, #0x7 - ble _020E2D9C -_020E2D94: - mvn r0, #0x0 - ldmia sp!, {r3-r5,pc} -_020E2D9C: - ldr r0, _020E2E98 ; =UNK_021D7178 - bl OS_TryLockMutex - cmp r0, #0x0 - bne _020E2DD0 - ldr r0, _020E2E9C ; =OSi_ThreadInfo - ldr r1, _020E2EA0 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020E2EA4 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0x1c] - str r2, [r0, #0x1c] - b _020E2E28 -_020E2DD0: - ldr r0, _020E2E9C ; =OSi_ThreadInfo - ldr r1, _020E2EA0 ; =UNK_021D7088 - ldr r0, [r0, #0x4] - ldr r1, [r1, #0x1c] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _020E2E00 - ldr r0, _020E2EA4 ; =UNK_021D70AC - ldr r1, [r0, #0x1c] - add r1, r1, #0x1 - str r1, [r0, #0x1c] - b _020E2E28 -_020E2E00: - ldr r0, _020E2E98 ; =UNK_021D7178 - bl OS_LockMutex - ldr r0, _020E2E9C ; =OSi_ThreadInfo - ldr r1, _020E2EA0 ; =UNK_021D7088 - ldr r2, [r0, #0x4] - ldr r0, _020E2EA4 ; =UNK_021D70AC - ldr r3, [r2, #0x6c] - mov r2, #0x1 - str r3, [r1, #0x1c] - str r2, [r0, #0x1c] -_020E2E28: - ldr r1, _020E2EA8 ; =UNK_021D74AC - sub r2, r5, #0x1 - ldr r4, [r1, r2, lsl #0x2] - cmp r4, #0x1 - movne r0, #0x0 - strne r0, [r1, r2, lsl #0x2] - ldr r0, _020E2EA4 ; =UNK_021D70AC - ldr r1, [r0, #0x1c] - subs r1, r1, #0x1 - str r1, [r0, #0x1c] - bne _020E2E5C - ldr r0, _020E2E98 ; =UNK_021D7178 - bl OS_UnlockMutex -_020E2E5C: - cmp r4, #0x1 - beq _020E2E70 - cmp r4, #0x0 - cmpeq r5, #0x1 - bne _020E2E78 -_020E2E70: - mov r0, #0x0 - ldmia sp!, {r3-r5,pc} -_020E2E78: - cmp r4, #0x0 - bne _020E2E88 - mov r0, #0x0 - bl exit -_020E2E88: - mov r0, r5 - blx r4 - mov r0, #0x0 - ldmia sp!, {r3-r5,pc} - .balign 4 -_020E2E98: .word UNK_021D7178 -_020E2E9C: .word OSi_ThreadInfo -_020E2EA0: .word UNK_021D7088 -_020E2EA4: .word UNK_021D70AC -_020E2EA8: .word UNK_021D74AC - - arm_func_start strlen -strlen: ; 0x020E2EAC - mvn r2, #0x0 -_020E2EB0: - ldrsb r1, [r0], #0x1 - add r2, r2, #0x1 - cmp r1, #0x0 - bne _020E2EB0 - mov r0, r2 - bx lr - - arm_func_start strcpy -strcpy: ; 0x020E2EC8 - stmdb sp!, {r3-r5,lr} - and r4, r1, #0x3 - and r3, r0, #0x3 - mov r2, r0 - cmp r3, r4 - bne _020E2F64 - cmp r4, #0x0 - beq _020E2F20 - ldrb r3, [r1, #0x0] - strb r3, [r0, #0x0] - cmp r3, #0x0 - ldmeqia sp!, {r3-r5,pc} - rsbs r4, r4, #0x3 - beq _020E2F18 -_020E2F00: - ldrb r3, [r1, #0x1]! - cmp r3, #0x0 - strb r3, [r2, #0x1]! - ldmeqia sp!, {r3-r5,pc} - subs r4, r4, #0x1 - bne _020E2F00 -_020E2F18: - add r2, r2, #0x1 - add r1, r1, #0x1 -_020E2F20: - ldr r5, [r1, #0x0] - ldr r3, _020E2F88 ; =0xFEFEFEFF - mvn r4, r5 - add lr, r5, r3 - ldr ip, _020E2F8C ; =0x80808080 - and r4, lr, r4 - tst r4, r12 - bne _020E2F64 - sub r2, r2, #0x4 -_020E2F44: - str r5, [r2, #0x4]! - ldr r5, [r1, #0x4]! - add r4, r5, r3 - mvn lr, r5 - and lr, r4, lr - tst lr, r12 - beq _020E2F44 - add r2, r2, #0x4 -_020E2F64: - ldrb r3, [r1, #0x0] - strb r3, [r2, #0x0] - cmp r3, #0x0 - ldmeqia sp!, {r3-r5,pc} -_020E2F74: - ldrb r3, [r1, #0x1]! - cmp r3, #0x0 - strb r3, [r2, #0x1]! - bne _020E2F74 - ldmia sp!, {r3-r5,pc} - .balign 4 -_020E2F88: .word 0xFEFEFEFF -_020E2F8C: .word 0x80808080 - - arm_func_start strncpy -strncpy: ; 0x020E2F90 - stmdb sp!, {r3,lr} - mov lr, r0 - cmp r2, #0x0 - ldmeqia sp!, {r3,pc} -_020E2FA0: - ldrsb r3, [r1], #0x1 - mov r12, lr - strb r3, [lr], #0x1 - ldrsb r3, [r12, #0x0] - cmp r3, #0x0 - bne _020E2FD4 - subs r2, r2, #0x1 - ldmeqia sp!, {r3,pc} - mov r1, #0x0 -_020E2FC4: - strb r1, [lr], #0x1 - subs r2, r2, #0x1 - bne _020E2FC4 - ldmia sp!, {r3,pc} -_020E2FD4: - subs r2, r2, #0x1 - bne _020E2FA0 - ldmia sp!, {r3,pc} - - arm_func_start strcat -strcat: ; 0x020E2FE0 - mov r3, r0 -_020E2FE4: - ldrsb r2, [r3], #0x1 - cmp r2, #0x0 - bne _020E2FE4 - sub r3, r3, #0x1 -_020E2FF4: - ldrsb r2, [r1], #0x1 - mov r12, r3 - strb r2, [r3], #0x1 - ldrsb r2, [r12, #0x0] - cmp r2, #0x0 - bne _020E2FF4 - bx lr - - arm_func_start strncat -strncat: ; 0x020E3010 - stmdb sp!, {r3,lr} - mov r12, r0 -_020E3018: - ldrsb r3, [r12], #0x1 - cmp r3, #0x0 - bne _020E3018 - cmp r2, #0x0 - sub r12, r12, #0x1 - beq _020E3054 -_020E3030: - ldrsb r3, [r1], #0x1 - mov lr, r12 - strb r3, [r12], #0x1 - ldrsb r3, [lr, #0x0] - cmp r3, #0x0 - subeq r12, r12, #0x1 - beq _020E3054 - subs r2, r2, #0x1 - bne _020E3030 -_020E3054: - mov r1, #0x0 - strb r1, [r12, #0x0] - ldmia sp!, {r3,pc} - - arm_func_start strcmp -strcmp: ; 0x020E3060 - stmdb sp!, {r4,lr} - ldrb r2, [r0, #0x0] - ldrb r3, [r1, #0x0] - subs r3, r2, r3 - movne r0, r3 - ldmneia sp!, {r4,pc} - and r4, r0, #0x3 - and r3, r1, #0x3 - cmp r3, r4 - bne _020E313C - cmp r4, #0x0 - beq _020E30D4 - cmp r2, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - rsbs r4, r4, #0x3 - beq _020E30CC -_020E30A4: - ldrb r3, [r0, #0x1]! - ldrb r2, [r1, #0x1]! - subs r2, r3, r2 - movne r0, r2 - ldmneia sp!, {r4,pc} - cmp r3, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - subs r4, r4, #0x1 - bne _020E30A4 -_020E30CC: - add r0, r0, #0x1 - add r1, r1, #0x1 -_020E30D4: - ldr r2, [r0, #0x0] - ldr r3, _020E316C ; =0xFEFEFEFF - mvn r4, r2 - add lr, r2, r3 - ldr ip, _020E3170 ; =0x80808080 - and r4, lr, r4 - tst r4, r12 - ldr r4, [r1, #0x0] - bne _020E3128 - cmp r2, r4 - bne _020E311C -_020E3100: - ldr r2, [r0, #0x4]! - ldr r4, [r1, #0x4]! - add lr, r2, r3 - tst lr, r12 - bne _020E3128 - cmp r2, r4 - beq _020E3100 -_020E311C: - sub r0, r0, #0x1 - sub r1, r1, #0x1 - b _020E313C -_020E3128: - ldrb r2, [r0, #0x0] - ldrb r3, [r1, #0x0] - subs r3, r2, r3 - movne r0, r3 - ldmneia sp!, {r4,pc} -_020E313C: - cmp r2, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020E3148: - ldrb r3, [r0, #0x1]! - ldrb r2, [r1, #0x1]! - subs r2, r3, r2 - movne r0, r2 - ldmneia sp!, {r4,pc} - cmp r3, #0x0 - bne _020E3148 - mov r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020E316C: .word 0xFEFEFEFF -_020E3170: .word 0x80808080 - - arm_func_start strncmp -strncmp: ; 0x020E3174 - cmp r2, #0x0 - beq _020E31A0 -_020E317C: - ldrb r12, [r1], #0x1 - ldrb r3, [r0], #0x1 - cmp r3, r12 - subne r0, r3, r12 - bxne lr - cmp r3, #0x0 - beq _020E31A0 - subs r2, r2, #0x1 - bne _020E317C -_020E31A0: - mov r0, #0x0 - bx lr - - arm_func_start strchr -strchr: ; 0x020E31A8 - ldrsb r2, [r0], #0x1 - mov r1, r1, lsl #0x18 - mov r1, r1, asr #0x18 - cmp r2, #0x0 - beq _020E31D4 -_020E31BC: - cmp r2, r1 - subeq r0, r0, #0x1 - bxeq lr - ldrsb r2, [r0], #0x1 - cmp r2, #0x0 - bne _020E31BC -_020E31D4: - cmp r1, #0x0 - movne r0, #0x0 - subeq r0, r0, #0x1 - bx lr - - arm_func_start strspn -strspn: ; 0x020E31E4 - stmdb sp!, {r4,lr} - sub sp, sp, #0x20 - add r12, sp, #0x0 - mov r3, #0x8 - mov r2, #0x0 -_020E31F8: - strb r2, [r12, #0x0] - strb r2, [r12, #0x1] - strb r2, [r12, #0x2] - strb r2, [r12, #0x3] - add r12, r12, #0x4 - subs r3, r3, #0x1 - bne _020E31F8 - ldrb r3, [r1, #0x0] - add r4, r1, #0x1 - cmp r3, #0x0 - beq _020E3254 - add lr, sp, #0x0 - mov r2, #0x1 -_020E322C: - and r12, r3, #0xff - and r1, r3, #0x7 - mov r1, r2, lsl r1 - ldrb r3, [lr, r12, asr #0x3] - and r1, r1, #0xff - orr r1, r3, r1 - strb r1, [lr, r12, asr #0x3] - ldrb r3, [r4], #0x1 - cmp r3, #0x0 - bne _020E322C -_020E3254: - ldrb r1, [r0, #0x0] - add r4, r0, #0x1 - cmp r1, #0x0 - beq _020E3294 - add r12, sp, #0x0 - mov r2, #0x1 -_020E326C: - and r3, r1, #0xff - and r1, r1, #0x7 - mov r1, r2, lsl r1 - ldrb r3, [r12, r3, asr #0x3] - and r1, r1, #0xff - tst r3, r1 - bne _020E3294 - ldrb r1, [r4], #0x1 - cmp r1, #0x0 - bne _020E326C -_020E3294: - sub r0, r4, r0 - sub r0, r0, #0x1 - add sp, sp, #0x20 - ldmia sp!, {r4,pc} - - arm_func_start strstr -strstr: ; 0x020E32A4 - stmdb sp!, {r4,lr} - cmp r1, #0x0 - ldrneb r2, [r1, #0x0] - cmpne r2, #0x0 - ldmeqia sp!, {r4,pc} - ldrb r3, [r0, #0x0] - add r4, r0, #0x1 - cmp r3, #0x0 - beq _020E3308 -_020E32C8: - cmp r3, r2 - bne _020E32FC - mov lr, r4 - add r12, r1, #0x1 -_020E32D8: - ldrb r3, [r12], #0x1 - ldrb r0, [lr], #0x1 - cmp r0, r3 - bne _020E32F0 - cmp r0, #0x0 - bne _020E32D8 -_020E32F0: - cmp r3, #0x0 - subeq r0, r4, #0x1 - ldmeqia sp!, {r4,pc} -_020E32FC: - ldrb r3, [r4], #0x1 - cmp r3, #0x0 - bne _020E32C8 -_020E3308: - mov r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start __strtold -__strtold: ; 0x020E3310 - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0xa8 - ldr r4, [sp, #0xd0] - mov r10, #0x0 - str r4, [sp, #0xd0] - str r0, [sp, #0x0] - add r6, sp, #0x80 - mov r9, r1 - mov r8, r2 - str r3, [sp, #0x4] - mov r4, r10 - str r10, [sp, #0x2c] - mov r5, #0x1 - mov r0, #0x4 -_020E3348: - strh r10, [r6, #0x0] - strh r10, [r6, #0x2] - strh r10, [r6, #0x4] - strh r10, [r6, #0x6] - add r6, r6, #0x8 - subs r0, r0, #0x1 - bne _020E3348 - mov r0, #0x0 - str r0, [sp, #0x28] - strh r10, [r6, #0x0] - strh r10, [r6, #0x2] - ldr r2, [sp, #0x28] - ldr r1, [sp, #0xd0] - strh r10, [r6, #0x4] - str r2, [r1, #0x0] - mov r1, r2 - mov r0, r8 - str r1, [sp, #0x24] - str r1, [sp, #0x20] - str r1, [sp, #0x1c] - str r1, [sp, #0x18] - str r1, [sp, #0x10] - str r1, [sp, #0xc] - str r1, [sp, #0x8] - add r4, r4, #0x1 - blx r9 - mov r1, r0 - ldr r7, _020E42F0 ; =UNK_02104439 - add r0, sp, #0x4d - mov r6, #0x4 -_020E33C0: - ldrb r3, [r7, #0x0] - ldrb r2, [r7, #0x1] - add r7, r7, #0x2 - strb r3, [r0, #0x0] - strb r2, [r0, #0x1] - add r0, r0, #0x2 - subs r6, r6, #0x1 - bne _020E33C0 - ldrb r3, [r7, #0x0] - ldr r2, _020E42F4 ; =UNK_02104434 - strb r3, [r0, #0x0] - ldrb r3, [r2, #0x1] - ldrb r0, [r2, #0x2] - ldrb r6, [r2, #0x0] - strb r3, [sp, #0x31] - strb r0, [sp, #0x32] - ldrb r3, [r2, #0x3] - ldrb r0, [r2, #0x4] - strb r6, [sp, #0x30] - strb r3, [sp, #0x33] - strb r0, [sp, #0x34] - b _020E4104 -_020E3418: - cmp r5, #0x100 - bgt _020E3490 - bge _020E3B98 - cmp r5, #0x20 - bgt _020E3474 - bge _020E3A6C - cmp r5, #0x8 - bgt _020E3468 - cmp r5, #0x0 - addge pc, pc, r5, lsl #0x2 - b _020E4104 - b _020E4104 - b _020E34D4 - b _020E38B8 - b _020E4104 - b _020E3968 - b _020E4104 - b _020E4104 - b _020E4104 - b _020E3990 -_020E3468: - cmp r5, #0x10 - beq _020E3A34 - b _020E4104 -_020E3474: - cmp r5, #0x40 - bgt _020E3484 - beq _020E3AF8 - b _020E4104 -_020E3484: - cmp r5, #0x80 - beq _020E3B44 - b _020E4104 -_020E3490: - cmp r5, #0x2000 - bgt _020E34B8 - bge _020E36EC - cmp r5, #0x200 - bgt _020E34AC - beq _020E3BF8 - b _020E4104 -_020E34AC: - cmp r5, #0x400 - beq _020E3C20 - b _020E4104 -_020E34B8: - cmp r5, #0x4000 - bgt _020E34C8 - beq _020E35F4 - b _020E4104 -_020E34C8: - cmp r5, #0x8000 - beq _020E3C98 - b _020E4104 -_020E34D4: - cmp r1, #0x0 - blt _020E34E4 - cmp r1, #0x80 - blt _020E34EC -_020E34E4: - mov r0, #0x0 - b _020E34FC -_020E34EC: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x100 -_020E34FC: - cmp r0, #0x0 - beq _020E3528 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r1, r0 - ldr r0, [sp, #0x2c] - add r0, r0, #0x1 - str r0, [sp, #0x2c] - b _020E4104 -_020E3528: - cmp r1, #0x0 - blt _020E3538 - cmp r1, #0x80 - blt _020E3540 -_020E3538: - mov r0, r1 - b _020E3548 -_020E3540: - ldr r0, _020E42FC ; =UNK_0210428C - ldrb r0, [r0, r1] -_020E3548: - cmp r0, #0x49 - bgt _020E3574 - bge _020E35AC - cmp r0, #0x2d - bgt _020E35EC - cmp r0, #0x2b - blt _020E35EC - beq _020E3588 - cmp r0, #0x2d - beq _020E3580 - b _020E35EC -_020E3574: - cmp r0, #0x4e - beq _020E35CC - b _020E35EC -_020E3580: - mov r0, #0x1 - str r0, [sp, #0x28] -_020E3588: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - mov r0, #0x1 - str r0, [sp, #0x18] - b _020E4104 -_020E35AC: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - mov r5, #0x4000 - b _020E4104 -_020E35CC: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - mov r5, #0x2000 - b _020E4104 -_020E35EC: - mov r5, #0x2 - b _020E4104 -_020E35F4: - mov r5, #0x1 - add r7, sp, #0x4d - add r0, sp, #0x76 - mov r6, #0x4 -_020E3604: - ldrb r3, [r7, #0x0] - ldrb r2, [r7, #0x1] - add r7, r7, #0x2 - strb r3, [r0, #0x0] - strb r2, [r0, #0x1] - add r0, r0, #0x2 - subs r6, r6, #0x1 - bne _020E3604 - ldrb r2, [r7, #0x0] - add r6, sp, #0x77 - ldr r7, _020E42FC ; =UNK_0210428C - strb r2, [r0, #0x0] - b _020E3658 -_020E3638: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r6, r6, #0x1 - add r5, r5, #0x1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 -_020E3658: - cmp r5, #0x8 - bge _020E3688 - cmp r1, #0x0 - blt _020E3670 - cmp r1, #0x80 - blt _020E3678 -_020E3670: - mov r2, r1 - b _020E367C -_020E3678: - ldrb r2, [r7, r1] -_020E367C: - ldrsb r0, [r6, #0x0] - cmp r0, r2 - beq _020E3638 -_020E3688: - cmp r5, #0x3 - cmpne r5, #0x8 - bne _020E36E4 - ldr r0, [sp, #0x28] - cmp r0, #0x0 - beq _020E36B8 - ldr r1, _020E4300 ; =UNK_02106B74 - mov r0, #0x0 - ldr r1, [r1, #0x0] - bl _fsub - bl _f2d - b _020E36C4 -_020E36B8: - ldr r0, _020E4300 ; =UNK_02106B74 - ldr r0, [r0, #0x0] - bl _f2d -_020E36C4: - ldr r2, [sp, #0x2c] - add r3, r2, r5 - ldr r2, [sp, #0x18] - add r3, r2, r3 - ldr r2, [sp, #0x4] - add sp, sp, #0xa8 - str r3, [r2, #0x0] - ldmia sp!, {r3-r11,pc} -_020E36E4: - mov r5, #0x1000 - b _020E4104 -_020E36EC: - ldrb r3, [sp, #0x30] - ldrb r0, [sp, #0x32] - ldrb r2, [sp, #0x31] - strb r3, [sp, #0x40] - strb r0, [sp, #0x42] - ldrb r3, [sp, #0x33] - ldrb r0, [sp, #0x34] - strb r2, [sp, #0x41] - mov r5, #0x1 - strb r0, [sp, #0x44] - mov r6, #0x0 - add r2, sp, #0x56 - strb r3, [sp, #0x43] - mov r0, #0x8 -_020E3724: - strb r6, [r2, #0x0] - strb r6, [r2, #0x1] - strb r6, [r2, #0x2] - strb r6, [r2, #0x3] - add r2, r2, #0x4 - subs r0, r0, #0x1 - bne _020E3724 - add r7, sp, #0x41 - b _020E3768 -_020E3748: - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r7, r7, #0x1 - add r5, r5, #0x1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 -_020E3768: - cmp r5, #0x4 - bge _020E379C - cmp r1, #0x0 - blt _020E3780 - cmp r1, #0x80 - blt _020E3788 -_020E3780: - mov r2, r1 - b _020E3790 -_020E3788: - ldr r0, _020E42FC ; =UNK_0210428C - ldrb r2, [r0, r1] -_020E3790: - ldrsb r0, [r7, #0x0] - cmp r0, r2 - beq _020E3748 -_020E379C: - sub r0, r5, #0x3 - cmp r0, #0x1 - bhi _020E38B0 - cmp r5, #0x4 - bne _020E3854 - ldr r7, _020E42F8 ; =UNK_0210430C - b _020E37DC -_020E37B8: - add r0, sp, #0x56 - strb r1, [r0, r6] - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r6, r6, #0x1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 -_020E37DC: - cmp r6, #0x20 - bge _020E3844 - cmp r1, #0x0 - blt _020E37F4 - cmp r1, #0x80 - blt _020E37FC -_020E37F4: - mov r0, #0x0 - b _020E3808 -_020E37FC: - mov r0, r1, lsl #0x1 - ldrh r0, [r7, r0] - and r0, r0, #0x8 -_020E3808: - cmp r0, #0x0 - bne _020E37B8 - cmp r1, #0x0 - blt _020E3820 - cmp r1, #0x80 - blt _020E3828 -_020E3820: - mov r0, #0x0 - b _020E3834 -_020E3828: - mov r0, r1, lsl #0x1 - ldrh r0, [r7, r0] - and r0, r0, #0x1 -_020E3834: - cmp r0, #0x0 - bne _020E37B8 - cmp r1, #0x2e - beq _020E37B8 -_020E3844: - cmp r1, #0x29 - movne r5, #0x1000 - bne _020E4104 - add r6, r6, #0x1 -_020E3854: - add r0, sp, #0x56 - mov r1, #0x0 - strb r1, [r0, r6] - ldr r1, [sp, #0x28] - cmp r1, #0x0 - beq _020E3888 - bl nan - mov r2, r0 - mov r0, #0x0 - mov r3, r1 - mov r1, r0 - bl _dsub - b _020E388C -_020E3888: - bl nan -_020E388C: - ldr r2, [sp, #0x2c] - add r2, r2, r5 - add r3, r6, r2 - ldr r2, [sp, #0x18] - add r3, r2, r3 - ldr r2, [sp, #0x4] - add sp, sp, #0xa8 - str r3, [r2, #0x0] - ldmia sp!, {r3-r11,pc} -_020E38B0: - mov r5, #0x1000 - b _020E4104 -_020E38B8: - cmp r1, #0x2e - bne _020E38E0 - mov r5, #0x10 - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E38E0: - cmp r1, #0x0 - blt _020E38F0 - cmp r1, #0x80 - blt _020E38F8 -_020E38F0: - mov r0, #0x0 - b _020E3908 -_020E38F8: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E3908: - cmp r0, #0x0 - moveq r5, #0x1000 - beq _020E4104 - cmp r1, #0x30 - bne _020E3960 - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - cmp r0, #0x0 - mov r1, r0 - blt _020E394C - cmp r0, #0x80 - bge _020E394C - ldr r2, _020E42FC ; =UNK_0210428C - ldrb r0, [r2, r0] -_020E394C: - cmp r0, #0x58 - moveq r5, #0x8000 - moveq r10, #0x1 - movne r5, #0x4 - b _020E4104 -_020E3960: - mov r5, #0x8 - b _020E4104 -_020E3968: - cmp r1, #0x30 - movne r5, #0x8 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3990: - cmp r1, #0x0 - blt _020E39A0 - cmp r1, #0x80 - blt _020E39A8 -_020E39A0: - mov r0, #0x0 - b _020E39B8 -_020E39A8: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E39B8: - cmp r0, #0x0 - bne _020E39EC - cmp r1, #0x2e - movne r5, #0x40 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r5, #0x20 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E39EC: - ldrb r2, [sp, #0x84] - cmp r2, #0x14 - ldrcs r0, [sp, #0x1c] - addcs r0, r0, #0x1 - strcs r0, [sp, #0x1c] - bhs _020E3A18 - add r0, r2, #0x1 - strb r0, [sp, #0x84] - add r0, sp, #0x80 - add r0, r0, r2 - strb r1, [r0, #0x5] -_020E3A18: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3A34: - cmp r1, #0x0 - blt _020E3A44 - cmp r1, #0x80 - blt _020E3A4C -_020E3A44: - mov r0, #0x0 - b _020E3A5C -_020E3A4C: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E3A5C: - cmp r0, #0x0 - moveq r5, #0x1000 - movne r5, #0x20 - b _020E4104 -_020E3A6C: - cmp r1, #0x0 - blt _020E3A7C - cmp r1, #0x80 - blt _020E3A84 -_020E3A7C: - mov r0, #0x0 - b _020E3A94 -_020E3A84: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E3A94: - cmp r0, #0x0 - moveq r5, #0x40 - beq _020E4104 - ldrb r3, [sp, #0x84] - cmp r3, #0x14 - bhs _020E3ADC - cmp r1, #0x30 - cmpeq r3, #0x0 - beq _020E3AD0 - ldrb r2, [sp, #0x84] - add r0, sp, #0x80 - add r0, r0, r3 - add r2, r2, #0x1 - strb r2, [sp, #0x84] - strb r1, [r0, #0x5] -_020E3AD0: - ldr r0, [sp, #0x1c] - sub r0, r0, #0x1 - str r0, [sp, #0x1c] -_020E3ADC: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3AF8: - cmp r1, #0x0 - blt _020E3B08 - cmp r1, #0x80 - blt _020E3B10 -_020E3B08: - mov r0, r1 - b _020E3B18 -_020E3B10: - ldr r0, _020E42FC ; =UNK_0210428C - ldrb r0, [r0, r1] -_020E3B18: - cmp r0, #0x45 - movne r5, #0x800 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r5, #0x80 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3B44: - cmp r1, #0x2b - bne _020E3B68 - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E3B90 -_020E3B68: - cmp r1, #0x2d - bne _020E3B90 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - mov r0, #0x1 - str r0, [sp, #0x24] -_020E3B90: - mov r5, #0x100 - b _020E4104 -_020E3B98: - cmp r1, #0x0 - blt _020E3BA8 - cmp r1, #0x80 - blt _020E3BB0 -_020E3BA8: - mov r0, #0x0 - b _020E3BC0 -_020E3BB0: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E3BC0: - cmp r0, #0x0 - moveq r5, #0x1000 - beq _020E4104 - cmp r1, #0x30 - movne r5, #0x400 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r5, #0x200 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3BF8: - cmp r1, #0x30 - movne r5, #0x400 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3C20: - cmp r1, #0x0 - blt _020E3C30 - cmp r1, #0x80 - blt _020E3C38 -_020E3C30: - mov r0, #0x0 - b _020E3C48 -_020E3C38: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E3C48: - cmp r0, #0x0 - moveq r5, #0x800 - beq _020E4104 - ldr r0, [sp, #0x20] - sub r2, r1, #0x30 - mov r1, #0xa - mla r0, r1, r0, r2 - ldr r1, _020E4304 ; =0x00007FFF - str r0, [sp, #0x20] - cmp r0, r1 - ldrgt r0, [sp, #0xd0] - movgt r1, #0x1 - strgt r1, [r0, #0x0] - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3C98: - cmp r10, #0x20 - bgt _020E3CE8 - bge _020E3FBC - cmp r10, #0x8 - bgt _020E3CDC - cmp r10, #0x0 - addge pc, pc, r10, lsl #0x2 - b _020E4104 - b _020E4104 - b _020E3D0C - b _020E3D5C - b _020E4104 - b _020E3D84 - b _020E4104 - b _020E4104 - b _020E4104 - b _020E3E94 -_020E3CDC: - cmp r10, #0x10 - beq _020E3F70 - b _020E4104 -_020E3CE8: - cmp r10, #0x80 - bgt _020E3D00 - bge _020E4064 - cmp r10, #0x40 - beq _020E4004 - b _020E4104 -_020E3D00: - cmp r10, #0x100 - beq _020E408C - b _020E4104 -_020E3D0C: - mov r1, #0x0 - add r0, sp, #0x45 - str r0, [sp, #0x14] - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - strb r1, [r0, #0x4] - strb r1, [r0, #0x5] - strb r1, [r0, #0x6] - strb r1, [r0, #0x7] - mov r0, r8 - mov r2, r1 - str r1, [sp, #0x8] - mov r11, r1 - mov r10, #0x2 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3D5C: - cmp r1, #0x30 - movne r10, #0x4 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3D84: - cmp r1, #0x0 - blt _020E3D94 - cmp r1, #0x80 - blt _020E3D9C -_020E3D94: - mov r0, #0x0 - b _020E3DAC -_020E3D9C: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x400 -_020E3DAC: - cmp r0, #0x0 - bne _020E3DE0 - cmp r1, #0x2e - movne r10, #0x10 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r10, #0x8 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3DE0: - ldr r2, [sp, #0x8] - mov r0, #0xe - cmp r2, r0 - bhs _020E3E78 - mov r0, r2 - add r0, r0, #0x1 - str r0, [sp, #0x8] - ldr r0, [sp, #0x14] - add r2, r11, r11, lsr #0x1f - cmp r1, #0x0 - ldrb r0, [r0, r2, asr #0x1] - blt _020E3E20 - cmp r1, #0x80 - bge _020E3E20 - ldr r2, _020E42FC ; =UNK_0210428C - ldrb r1, [r2, r1] -_020E3E20: - cmp r1, #0x41 - subge r1, r1, #0x37 - sublt r1, r1, #0x30 - mov r2, r11, lsr #0x1f - and r3, r1, #0xff - rsb r1, r2, r11, lsl #0x1f - adds r1, r2, r1, ror #0x1f - moveq r1, r3, lsl #0x4 - add r2, r11, r11, lsr #0x1f - orrne r0, r0, r3 - andeq r1, r1, #0xff - orreq r0, r0, r1 - ldr r1, [sp, #0x14] - add r11, r11, #0x1 - strb r0, [r1, r2, asr #0x1] - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3E78: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3E94: - cmp r1, #0x0 - blt _020E3EA4 - cmp r1, #0x80 - blt _020E3EAC -_020E3EA4: - mov r0, #0x0 - b _020E3EBC -_020E3EAC: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x400 -_020E3EBC: - cmp r0, #0x0 - moveq r10, #0x10 - beq _020E4104 - ldr r2, [sp, #0x8] - mov r0, #0xe - cmp r2, r0 - bhs _020E3F54 - ldr r0, [sp, #0x14] - add r2, r11, r11, lsr #0x1f - cmp r1, #0x0 - ldrb r0, [r0, r2, asr #0x1] - blt _020E3EFC - cmp r1, #0x80 - bge _020E3EFC - ldr r2, _020E42FC ; =UNK_0210428C - ldrb r1, [r2, r1] -_020E3EFC: - cmp r1, #0x41 - subge r1, r1, #0x37 - sublt r1, r1, #0x30 - mov r2, r11, lsr #0x1f - and r3, r1, #0xff - rsb r1, r2, r11, lsl #0x1f - adds r1, r2, r1, ror #0x1f - moveq r1, r3, lsl #0x4 - add r2, r11, r11, lsr #0x1f - orrne r0, r0, r3 - andeq r1, r1, #0xff - orreq r0, r0, r1 - ldr r1, [sp, #0x14] - add r11, r11, #0x1 - strb r0, [r1, r2, asr #0x1] - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3F54: - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3F70: - cmp r1, #0x0 - blt _020E3F80 - cmp r1, #0x80 - blt _020E3F88 -_020E3F80: - mov r0, r1 - b _020E3F90 -_020E3F88: - ldr r0, _020E42FC ; =UNK_0210428C - ldrb r0, [r0, r1] -_020E3F90: - cmp r0, #0x50 - movne r5, #0x800 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r10, #0x20 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E3FBC: - cmp r1, #0x2d - moveq r0, #0x1 - streq r0, [sp, #0xc] - beq _020E3FE4 - cmp r1, #0x2b - beq _020E3FE4 - mov r0, r8 - mov r2, #0x1 - blx r9 - sub r4, r4, #0x1 -_020E3FE4: - mov r10, #0x40 - add r4, r4, #0x1 - mov r0, r8 - mov r1, #0x0 - mov r2, r1 - blx r9 - mov r1, r0 - b _020E4104 -_020E4004: - cmp r1, #0x0 - blt _020E4014 - cmp r1, #0x80 - blt _020E401C -_020E4014: - mov r0, #0x0 - b _020E402C -_020E401C: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E402C: - cmp r0, #0x0 - moveq r5, #0x1000 - beq _020E4104 - cmp r1, #0x30 - movne r10, #0x100 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - mov r10, #0x80 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E4064: - cmp r1, #0x30 - movne r10, #0x100 - bne _020E4104 - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - add r4, r4, #0x1 - blx r9 - mov r1, r0 - b _020E4104 -_020E408C: - cmp r1, #0x0 - blt _020E409C - cmp r1, #0x80 - blt _020E40A4 -_020E409C: - mov r0, #0x0 - b _020E40B4 -_020E40A4: - mov r2, r1, lsl #0x1 - ldr r0, _020E42F8 ; =UNK_0210430C - ldrh r0, [r0, r2] - and r0, r0, #0x8 -_020E40B4: - cmp r0, #0x0 - moveq r5, #0x800 - beq _020E4104 - ldr r0, [sp, #0x10] - sub r2, r1, #0x30 - mov r1, #0xa - mla r0, r1, r0, r2 - str r0, [sp, #0x10] - ldr r1, _020E4304 ; =0x00007FFF - ldr r0, [sp, #0x20] - add r4, r4, #0x1 - cmp r0, r1 - ldrgt r0, [sp, #0xd0] - movgt r1, #0x1 - strgt r1, [r0, #0x0] - mov r1, #0x0 - mov r0, r8 - mov r2, r1 - blx r9 - mov r1, r0 -_020E4104: - ldr r0, [sp, #0x0] - cmp r4, r0 - bgt _020E4124 - mvn r0, #0x0 - cmp r1, r0 - beq _020E4124 - tst r5, #0x1800 - beq _020E3418 -_020E4124: - cmp r5, #0x8000 - beq _020E4140 - ldr r0, _020E4308 ; =0x00000E2C - tst r5, r0 - moveq r0, #0x1 - movne r0, #0x0 - b _020E4164 -_020E4140: - sub r0, r4, #0x1 - cmp r0, #0x2 - ble _020E4158 - ldr r0, _020E430C ; =0x0000018E - tst r10, r0 - bne _020E4160 -_020E4158: - mov r0, #0x1 - b _020E4164 -_020E4160: - mov r0, #0x0 -_020E4164: - cmp r0, #0x0 - movne r2, #0x0 - ldrne r0, [sp, #0x4] - bne _020E4184 - ldr r0, [sp, #0x2c] - sub r2, r4, #0x1 - add r2, r2, r0 - ldr r0, [sp, #0x4] -_020E4184: - str r2, [r0, #0x0] - mov r0, r8 - mov r2, #0x1 - blx r9 - cmp r10, #0x0 - bne _020E4388 - ldr r0, [sp, #0x24] - ldrb r2, [sp, #0x84] - cmp r0, #0x0 - ldrne r0, [sp, #0x20] - rsbne r0, r0, #0x0 - strne r0, [sp, #0x20] - add r0, sp, #0x85 - add r1, r0, r2 - b _020E41CC -_020E41C0: - ldr r0, [sp, #0x1c] - add r0, r0, #0x1 - str r0, [sp, #0x1c] -_020E41CC: - cmp r2, #0x0 - sub r2, r2, #0x1 - beq _020E41E4 - ldrb r0, [r1, #-0x1]! - cmp r0, #0x30 - beq _020E41C0 -_020E41E4: - add r0, r2, #0x1 - strb r0, [sp, #0x84] - ands r2, r0, #0xff - bne _020E4208 - add r1, r2, #0x1 - strb r1, [sp, #0x84] - add r0, sp, #0x85 - mov r1, #0x30 - strb r1, [r0, r2] -_020E4208: - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x1c] - mov r2, #0x8000 - add r0, r1, r0 - rsb r2, r2, #0x0 - str r0, [sp, #0x20] - cmp r0, r2 - blt _020E4230 - cmp r0, r2, lsr #0x11 - ble _020E423C -_020E4230: - ldr r0, [sp, #0xd0] - mov r1, #0x1 - str r1, [r0, #0x0] -_020E423C: - ldr r0, [sp, #0xd0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020E4298 - ldr r0, [sp, #0x24] - cmp r0, #0x0 - movne r0, #0x0 - addne sp, sp, #0xa8 - movne r1, r0 - ldmneia sp!, {r3-r11,pc} - ldr r0, [sp, #0x28] - cmp r0, #0x0 - ldreq r1, _020E4310 ; =UNK_02106B7C - addeq sp, sp, #0xa8 - ldmeqia r1, {r0-r1} - ldmeqia sp!, {r3-r11,pc} - ldr r1, _020E4310 ; =UNK_02106B7C - mov r0, #0x0 - ldmia r1, {r2-r3} - mov r1, r0 - bl _dsub - add sp, sp, #0xa8 - ldmia sp!, {r3-r11,pc} -_020E4298: - ldr r1, [sp, #0x20] - add r0, sp, #0x80 - strh r1, [sp, #0x82] - bl __dec2num - mov r4, r0 - mov r6, r1 - mov r0, #0x0 - mov r1, r0 - mov r2, r4 - mov r3, r6 - bl _dneq - beq _020E4318 - mov r0, r4 - mov r1, r6 - mov r2, #0x0 - mov r3, #0x100000 - bl _dls - bhs _020E4318 - ldr r0, [sp, #0xd0] - mov r1, #0x1 - str r1, [r0, #0x0] - b _020E4344 - .balign 4 -_020E42F0: .word UNK_02104439 -_020E42F4: .word UNK_02104434 -_020E42F8: .word UNK_0210430C -_020E42FC: .word UNK_0210428C -_020E4300: .word UNK_02106B74 -_020E4304: .word 0x00007FFF -_020E4308: .word 0x00000E2C -_020E430C: .word 0x0000018E -_020E4310: .word UNK_02106B7C -_020E4314: .word 0x7FEFFFFF -_020E4318: - ldr r3, _020E4314 ; =0x7FEFFFFF - mov r0, r4 - mov r1, r6 - mvn r2, #0x0 - bl _dgr - bls _020E4344 - ldr r0, [sp, #0xd0] - mov r2, #0x1 - ldr r1, _020E4310 ; =UNK_02106B7C - str r2, [r0, #0x0] - ldmia r1, {r4,r6} -_020E4344: - ldr r0, [sp, #0x28] - cmp r0, #0x0 - beq _020E4378 - ldr r0, _020E4308 ; =0x00000E2C - tst r5, r0 - beq _020E4378 - mov r0, #0x0 - mov r1, r0 - mov r2, r4 - mov r3, r6 - bl _dsub - mov r4, r0 - mov r6, r1 -_020E4378: - add sp, sp, #0xa8 - mov r0, r4 - mov r1, r6 - ldmia sp!, {r3-r11,pc} -_020E4388: - ldr r0, [sp, #0xc] - add r4, sp, #0x38 - cmp r0, #0x0 - ldrne r0, [sp, #0x10] - ldrb r3, [sp, #0x45] - rsbne r0, r0, #0x0 - strne r0, [sp, #0x10] - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x8] - mov r2, #0x0 - add r0, r1, r0, lsl #0x2 - str r0, [sp, #0x10] - mov r1, #0x80 - b _020E43D0 -_020E43C0: - ldr r0, [sp, #0x10] - add r2, r2, #0x1 - sub r0, r0, #0x1 - str r0, [sp, #0x10] -_020E43D0: - cmp r2, #0x4 - bhs _020E43E0 - tst r3, r1, asr r2 - beq _020E43C0 -_020E43E0: - adds r5, r2, #0x1 - beq _020E442C - add r0, sp, #0x4c - add r3, sp, #0x45 - str r0, [sp, #0x14] - mov r1, #0x0 - cmp r0, r3 - blo _020E442C - rsb r6, r5, #0x8 -_020E4404: - ldr r0, [sp, #0x14] - ldrb r0, [r0, #0x0] - orr r2, r1, r0, lsl r5 - mov r1, r0, asr r6 - ldr r0, [sp, #0x14] - and r1, r1, #0xff - strb r2, [r0], #-0x1 - str r0, [sp, #0x14] - cmp r0, r3 - bhs _020E4404 -_020E442C: - mov r2, #0x0 - mov r6, r2 - strb r2, [r4, #0x0] - strb r2, [r4, #0x1] - strb r2, [r4, #0x2] - strb r2, [r4, #0x3] - strb r2, [r4, #0x4] - strb r2, [r4, #0x5] - strb r2, [r4, #0x6] - strb r2, [r4, #0x7] - mov r3, #0xc - mov r7, #0x1 - mov r0, #0xff - add r1, sp, #0x45 -_020E4464: - add r5, r2, #0x8 - cmp r5, #0x34 - ldrb r5, [r1, r6] - rsbhi r8, r2, #0x34 - and r11, r3, #0x7 - andhi r5, r5, r0, lsl r8 - andhi r5, r5, #0xff - mov r8, r5, asr r11 - and r9, r8, #0xff - ldrb r10, [r4, r7] - rsb r8, r11, #0x8 - mov r5, r5, lsl r8 - orr r9, r10, r9 - strb r9, [r4, r7] - add r7, r7, #0x1 - add r2, r2, #0x8 - ldrb r8, [r4, r7] - and r5, r5, #0xff - cmp r2, #0x34 - orr r5, r8, r5 - strb r5, [r4, r7] - add r3, r3, #0x8 - add r6, r6, #0x1 - blo _020E4464 - ldr r0, [sp, #0x10] - mov r1, #0x800 - add r0, r0, #0xfe - add r2, r0, #0x300 - rsb r1, r1, #0x0 - tst r2, r1 - beq _020E44FC - ldr r2, [sp, #0xd0] - mov r3, #0x1 - mov r0, #0x0 - add sp, sp, #0xa8 - mov r1, r0 - str r3, [r2, #0x0] - ldmia sp!, {r3-r11,pc} -_020E44FC: - ldrb r0, [r4, #0x1] - mov r2, r2, lsl #0x15 - ldrb r1, [r4, #0x0] - orr r0, r0, r2, lsr #0x11 - strb r0, [r4, #0x1] - ldr r0, [sp, #0x28] - orr r1, r1, r2, lsr #0x19 - cmp r0, #0x0 - andne r0, r1, #0xff - strb r1, [r4, #0x0] - orrne r0, r0, #0x80 - strneb r0, [r4, #0x0] - mov r3, #0x0 -_020E4530: - rsb r1, r3, #0x7 - ldrb r2, [r4, r3] - ldrb r0, [r4, r1] - strb r0, [r4, r3] - add r3, r3, #0x1 - strb r2, [r4, r1] - cmp r3, #0x4 - blt _020E4530 - ldmia r4, {r0-r1} - add sp, sp, #0xa8 - ldmia sp!, {r3-r11,pc} - - arm_func_start strtold -strtold: ; 0x020E455C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r7, r0 - mov r0, #0x0 - mov r6, r1 - str r0, [sp, #0x8] - add r4, sp, #0xc - str r7, [sp, #0x4] - ldr r1, _020E4630 ; =__StringRead - add r2, sp, #0x4 - add r3, sp, #0x10 - sub r0, r0, #0x80000001 - str r4, [sp, #0x0] - bl __strtold - mov r5, r1 - mov r4, r0 - cmp r6, #0x0 - ldrne r0, [sp, #0x10] - mov r1, r5 - addne r0, r7, r0 - strne r0, [r6, #0x0] - mov r0, r4 - bl fabs - ldr r2, [sp, #0xc] - mov r6, r0 - mov r7, r1 - cmp r2, #0x0 - bne _020E4614 - mov r0, #0x0 - mov r1, r0 - mov r2, r4 - mov r3, r5 - bl _dneq - beq _020E4620 - mov r0, r6 - mov r1, r7 - mov r2, #0x0 - mov r3, #0x100000 - bl _dls - blo _020E4614 - ldr r3, _020E4634 ; =0x7FEFFFFF - mov r0, r6 - mov r1, r7 - mvn r2, #0x0 - bl _dgr - bls _020E4620 -_020E4614: - ldr r0, _020E4638 ; =UNK_021D74A8 - mov r1, #0x22 - str r1, [r0, #0x0] -_020E4620: - mov r0, r4 - mov r1, r5 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020E4630: .word __StringRead -_020E4634: .word 0x7FEFFFFF -_020E4638: .word UNK_021D74A8 - - arm_func_start atod -atod: ; 0x020E463C - ldr ip, _020E4648 ; =strtold - mov r1, #0x0 - bx r12 - .balign 4 -_020E4648: .word strtold - - arm_func_start __strtoul -__strtoul: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - ldr r4, [sp, #0x38] - movs r9, r0 - ldr r0, [sp, #0x34] - str r4, [sp, #0x38] - mov r4, #0x0 - str r0, [sp, #0x34] - ldr r0, [sp, #0x38] - str r1, [sp, #0x0] - str r4, [r0, #0x0] - mov r0, r4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x34] - mov r1, r4 - str r1, [r0, #0x0] - ldr r0, [sp, #0x30] - str r4, [sp, #0x8] - mov r8, r2 - mov r7, r3 - mov r5, r4 - mov r10, r4 - str r0, [sp, #0x30] - mov r4, #0x1 - bmi _020E46CC - cmp r9, #0x1 - beq _020E46CC - cmp r9, #0x24 - bgt _020E46CC - ldr r0, [sp, #0x0] - cmp r0, #0x1 - bge _020E46D4 -_020E46CC: - mov r4, #0x40 - b _020E46F0 -_020E46D4: - ldr r1, [sp, #0x8] - mov r0, r7 - mov r3, r1 - mov r2, r1 - add r5, r3, #0x1 - blx r8 - mov r6, r0 -_020E46F0: - cmp r9, #0x0 - beq _020E4708 - mov r1, r9 - mvn r0, #0x0 - bl _u32_div_f - str r0, [sp, #0x4] -_020E4708: - mvn r11, #0x0 - b _020E49C8 -_020E4710: - cmp r4, #0x8 - bgt _020E4748 - cmp r4, #0x0 - addge pc, pc, r4, lsl #0x2 - b _020E49C8 - b _020E49C8 - b _020E4754 - b _020E4800 - b _020E49C8 - b _020E483C - b _020E49C8 - b _020E49C8 - b _020E49C8 - b _020E487C -_020E4748: - cmp r4, #0x10 - beq _020E487C - b _020E49C8 -_020E4754: - cmp r6, #0x0 - blt _020E4764 - cmp r6, #0x80 - blt _020E476C -_020E4764: - mov r0, #0x0 - b _020E477C -_020E476C: - ldr r0, _020E4A2C ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x100 -_020E477C: - cmp r0, #0x0 - beq _020E47A8 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - blx r8 - mov r6, r0 - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - str r0, [sp, #0x8] - b _020E49C8 -_020E47A8: - cmp r6, #0x2b - bne _020E47CC - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E47F8 -_020E47CC: - cmp r6, #0x2d - bne _020E47F8 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - ldr r0, [sp, #0x34] - mov r1, #0x1 - str r1, [r0, #0x0] -_020E47F8: - mov r4, #0x2 - b _020E49C8 -_020E4800: - cmp r9, #0x0 - cmpne r9, #0x10 - bne _020E4834 - cmp r6, #0x30 - bne _020E4834 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - mov r4, #0x4 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E49C8 -_020E4834: - mov r4, #0x8 - b _020E49C8 -_020E483C: - cmp r6, #0x58 - cmpne r6, #0x78 - bne _020E486C - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - mov r9, #0x10 - mov r4, #0x8 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E49C8 -_020E486C: - cmp r9, #0x0 - moveq r9, #0x8 - mov r4, #0x10 - b _020E49C8 -_020E487C: - ldr r0, [sp, #0x4] - cmp r9, #0x0 - moveq r9, #0xa - cmp r0, #0x0 - bne _020E48A0 - mov r0, r11 - mov r1, r9 - bl _u32_div_f - str r0, [sp, #0x4] -_020E48A0: - cmp r6, #0x0 - blt _020E48B0 - cmp r6, #0x80 - blt _020E48B8 -_020E48B0: - mov r0, #0x0 - b _020E48C8 -_020E48B8: - ldr r0, _020E4A2C ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x8 -_020E48C8: - cmp r0, #0x0 - beq _020E48F0 - sub r6, r6, #0x30 - cmp r6, r9 - blt _020E4978 - cmp r4, #0x10 - moveq r4, #0x20 - movne r4, #0x40 - add r6, r6, #0x30 - b _020E49C8 -_020E48F0: - cmp r6, #0x0 - blt _020E4900 - cmp r6, #0x80 - blt _020E4908 -_020E4900: - mov r0, #0x0 - b _020E4918 -_020E4908: - ldr r0, _020E4A2C ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x1 -_020E4918: - cmp r0, #0x0 - beq _020E494C - cmp r6, #0x0 - blt _020E4930 - cmp r6, #0x80 - blt _020E4938 -_020E4930: - mov r0, r6 - b _020E4940 -_020E4938: - ldr r0, _020E4A30 ; =UNK_0210428C - ldrb r0, [r0, r6] -_020E4940: - sub r0, r0, #0x37 - cmp r0, r9 - blt _020E495C -_020E494C: - cmp r4, #0x10 - moveq r4, #0x20 - movne r4, #0x40 - b _020E49C8 -_020E495C: - cmp r6, #0x0 - blt _020E4974 - cmp r6, #0x80 - bge _020E4974 - ldr r0, _020E4A30 ; =UNK_0210428C - ldrb r6, [r0, r6] -_020E4974: - sub r6, r6, #0x37 -_020E4978: - ldr r0, [sp, #0x4] - mov r4, #0x10 - cmp r10, r0 - ldrhi r0, [sp, #0x38] - movhi r1, #0x1 - strhi r1, [r0, #0x0] - mul r0, r10, r9 - mov r10, r0 - sub r0, r11, r0 - cmp r6, r0 - ldrhi r0, [sp, #0x38] - movhi r1, #0x1 - strhi r1, [r0, #0x0] - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - add r10, r10, r6 - add r5, r5, #0x1 - blx r8 - mov r6, r0 -_020E49C8: - ldr r0, [sp, #0x0] - cmp r5, r0 - bgt _020E49E4 - cmp r6, r11 - beq _020E49E4 - tst r4, #0x60 - beq _020E4710 -_020E49E4: - tst r4, #0x34 - bne _020E49FC - ldr r0, [sp, #0x30] - mov r10, #0x0 - str r10, [r0, #0x0] - b _020E4A10 -_020E49FC: - ldr r0, [sp, #0x8] - sub r1, r5, #0x1 - add r1, r1, r0 - ldr r0, [sp, #0x30] - str r1, [r0, #0x0] -_020E4A10: - mov r0, r7 - mov r1, r6 - mov r2, #0x1 - blx r8 - mov r0, r10 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020E4A2C: .word UNK_0210430C -_020E4A30: .word UNK_0210428C - - arm_func_start __strtoull -__strtoull: ; 0x020E4A34 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - ldr r4, [sp, #0x48] - movs r9, r0 - ldr r0, [sp, #0x44] - str r4, [sp, #0x48] - mov r4, #0x0 - str r0, [sp, #0x44] - ldr r0, [sp, #0x48] - str r1, [sp, #0x0] - str r4, [r0, #0x0] - mov r0, r4 - str r0, [sp, #0xc] - str r0, [sp, #0x8] - ldr r0, [sp, #0x44] - mov r1, r4 - str r1, [r0, #0x0] - ldr r0, [sp, #0x40] - str r4, [sp, #0x14] - mov r8, r2 - mov r7, r3 - mov r5, r4 - mov r10, r4 - mov r11, r4 - str r0, [sp, #0x40] - mov r4, #0x1 - bmi _020E4ABC - cmp r9, #0x1 - beq _020E4ABC - cmp r9, #0x24 - bgt _020E4ABC - ldr r0, [sp, #0x0] - cmp r0, #0x1 - bge _020E4AC4 -_020E4ABC: - mov r4, #0x40 - b _020E4ADC -_020E4AC4: - ldr r1, [sp, #0x14] - mov r0, r7 - mov r2, r1 - add r5, r1, #0x1 - blx r8 - mov r6, r0 -_020E4ADC: - cmp r9, #0x0 - beq _020E4B00 - mvn r0, #0x0 - mov r1, r0 - mov r3, r9, asr #0x1f - mov r2, r9 - bl _ll_udiv - str r0, [sp, #0xc] - str r1, [sp, #0x8] -_020E4B00: - mvn r0, #0x0 - str r0, [sp, #0x18] - b _020E4E08 -_020E4B0C: - cmp r4, #0x8 - bgt _020E4B44 - cmp r4, #0x0 - addge pc, pc, r4, lsl #0x2 - b _020E4E08 - b _020E4E08 - b _020E4B50 - b _020E4BFC - b _020E4E08 - b _020E4C38 - b _020E4E08 - b _020E4E08 - b _020E4E08 - b _020E4C78 -_020E4B44: - cmp r4, #0x10 - beq _020E4C78 - b _020E4E08 -_020E4B50: - cmp r6, #0x0 - blt _020E4B60 - cmp r6, #0x80 - blt _020E4B68 -_020E4B60: - mov r0, #0x0 - b _020E4B78 -_020E4B68: - ldr r0, _020E4E78 ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x100 -_020E4B78: - cmp r0, #0x0 - beq _020E4BA4 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - blx r8 - mov r6, r0 - ldr r0, [sp, #0x14] - add r0, r0, #0x1 - str r0, [sp, #0x14] - b _020E4E08 -_020E4BA4: - cmp r6, #0x2b - bne _020E4BC8 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E4BF4 -_020E4BC8: - cmp r6, #0x2d - bne _020E4BF4 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - ldr r0, [sp, #0x44] - mov r1, #0x1 - str r1, [r0, #0x0] -_020E4BF4: - mov r4, #0x2 - b _020E4E08 -_020E4BFC: - cmp r9, #0x0 - cmpne r9, #0x10 - bne _020E4C30 - cmp r6, #0x30 - bne _020E4C30 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - mov r4, #0x4 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E4E08 -_020E4C30: - mov r4, #0x8 - b _020E4E08 -_020E4C38: - cmp r6, #0x58 - cmpne r6, #0x78 - bne _020E4C68 - mov r1, #0x0 - mov r0, r7 - mov r2, r1 - mov r9, #0x10 - mov r4, #0x8 - add r5, r5, #0x1 - blx r8 - mov r6, r0 - b _020E4E08 -_020E4C68: - cmp r9, #0x0 - moveq r9, #0x8 - mov r4, #0x10 - b _020E4E08 -_020E4C78: - ldr r1, [sp, #0x8] - mov r0, #0x0 - cmp r9, #0x0 - moveq r9, #0xa - cmp r1, r0 - ldr r1, [sp, #0xc] - cmpeq r1, r0 - bne _020E4CB4 - ldr r0, [sp, #0x18] - mov r3, r9, asr #0x1f - mov r1, r0 - mov r2, r9 - bl _ll_udiv - str r0, [sp, #0xc] - str r1, [sp, #0x8] -_020E4CB4: - cmp r6, #0x0 - blt _020E4CC4 - cmp r6, #0x80 - blt _020E4CCC -_020E4CC4: - mov r0, #0x0 - b _020E4CDC -_020E4CCC: - ldr r0, _020E4E78 ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x8 -_020E4CDC: - cmp r0, #0x0 - beq _020E4D04 - sub r6, r6, #0x30 - cmp r6, r9 - blt _020E4D8C - cmp r4, #0x10 - moveq r4, #0x20 - movne r4, #0x40 - add r6, r6, #0x30 - b _020E4E08 -_020E4D04: - cmp r6, #0x0 - blt _020E4D14 - cmp r6, #0x80 - blt _020E4D1C -_020E4D14: - mov r0, #0x0 - b _020E4D2C -_020E4D1C: - ldr r0, _020E4E78 ; =UNK_0210430C - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x1 -_020E4D2C: - cmp r0, #0x0 - beq _020E4D60 - cmp r6, #0x0 - blt _020E4D44 - cmp r6, #0x80 - blt _020E4D4C -_020E4D44: - mov r0, r6 - b _020E4D54 -_020E4D4C: - ldr r0, _020E4E7C ; =UNK_0210428C - ldrb r0, [r0, r6] -_020E4D54: - sub r0, r0, #0x37 - cmp r0, r9 - blt _020E4D70 -_020E4D60: - cmp r4, #0x10 - moveq r4, #0x20 - movne r4, #0x40 - b _020E4E08 -_020E4D70: - cmp r6, #0x0 - blt _020E4D88 - cmp r6, #0x80 - bge _020E4D88 - ldr r0, _020E4E7C ; =UNK_0210428C - ldrb r6, [r0, r6] -_020E4D88: - sub r6, r6, #0x37 -_020E4D8C: - ldr r0, [sp, #0x8] - umull r2, r3, r10, r9 - cmp r11, r0 - ldr r0, [sp, #0xc] - mov r4, #0x10 - cmpeq r10, r0 - ldrhi r0, [sp, #0x48] - movhi r1, #0x1 - strhi r1, [r0, #0x0] - mov r1, r9, asr #0x1f - mla r3, r10, r1, r3 - mla r3, r11, r9, r3 - ldr r1, [sp, #0x18] - mov r10, r2 - subs r2, r1, r2 - mov r0, r6, asr #0x1f - sbc r1, r1, r3 - cmp r0, r1 - cmpeq r6, r2 - ldrhi r1, [sp, #0x48] - movhi r2, #0x1 - strhi r2, [r1, #0x0] - mov r1, #0x0 - mov r11, r3 - adds r10, r10, r6 - adc r11, r11, r0 - mov r0, r7 - mov r2, r1 - add r5, r5, #0x1 - blx r8 - mov r6, r0 -_020E4E08: - ldr r0, [sp, #0x0] - cmp r5, r0 - bgt _020E4E28 - ldr r0, [sp, #0x18] - cmp r6, r0 - beq _020E4E28 - tst r4, #0x60 - beq _020E4B0C -_020E4E28: - tst r4, #0x34 - bne _020E4E44 - ldr r0, [sp, #0x40] - mov r10, #0x0 - mov r11, r10 - str r10, [r0, #0x0] - b _020E4E58 -_020E4E44: - ldr r0, [sp, #0x14] - sub r1, r5, #0x1 - add r1, r1, r0 - ldr r0, [sp, #0x40] - str r1, [r0, #0x0] -_020E4E58: - mov r0, r7 - mov r1, r6 - mov r2, #0x1 - blx r8 - mov r0, r10 - mov r1, r11 - add sp, sp, #0x1c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020E4E78: .word UNK_0210430C -_020E4E7C: .word UNK_0210428C - - arm_func_start strtoul -strtoul: ; 0x020E4E80 - stmdb sp!, {r3-r5,lr} - sub sp, sp, #0x20 - mov r5, r0 - mov lr, #0x0 - mov r0, r2 - mov r4, r1 - add r2, sp, #0x1c - str r5, [sp, #0xc] - str lr, [sp, #0x10] - str r2, [sp, #0x0] - add r1, sp, #0x18 - str r1, [sp, #0x4] - add r12, sp, #0x14 - ldr r2, _020E4F10 ; =__StringRead - add r3, sp, #0xc - sub r1, lr, #0x80000001 - str r12, [sp, #0x8] - bl __strtoul - cmp r4, #0x0 - ldrne r1, [sp, #0x1c] - addne r1, r5, r1 - strne r1, [r4, #0x0] - ldr r1, [sp, #0x14] - cmp r1, #0x0 - beq _020E4EFC - ldr r0, _020E4F14 ; =UNK_021D74A8 - mov r1, #0x22 - str r1, [r0, #0x0] - add sp, sp, #0x20 - mvn r0, #0x0 - ldmia sp!, {r3-r5,pc} -_020E4EFC: - ldr r1, [sp, #0x18] - cmp r1, #0x0 - rsbne r0, r0, #0x0 - add sp, sp, #0x20 - ldmia sp!, {r3-r5,pc} - .balign 4 -_020E4F10: .word __StringRead -_020E4F14: .word UNK_021D74A8 - - arm_func_start strtold2 -strtold2: ; 0x020E4F18 - stmdb sp!, {r3-r5,lr} - sub sp, sp, #0x20 - mov r5, r0 - mov lr, #0x0 - mov r0, r2 - mov r4, r1 - add r2, sp, #0x1c - str r5, [sp, #0xc] - str lr, [sp, #0x10] - str r2, [sp, #0x0] - add r1, sp, #0x18 - str r1, [sp, #0x4] - add r12, sp, #0x14 - ldr r2, _020E4FD8 ; =__StringRead - add r3, sp, #0xc - sub r1, lr, #0x80000001 - str r12, [sp, #0x8] - bl __strtoul - cmp r4, #0x0 - ldrne r1, [sp, #0x1c] - addne r1, r5, r1 - strne r1, [r4, #0x0] - ldr r1, [sp, #0x14] - cmp r1, #0x0 - bne _020E4FA4 - ldr r2, [sp, #0x18] - cmp r2, #0x0 - bne _020E4F94 - mvn r1, #0x80000000 - cmp r0, r1 - bhi _020E4FA4 -_020E4F94: - cmp r2, #0x0 - beq _020E4FC8 - cmp r0, #0x80000000 - bls _020E4FC8 -_020E4FA4: - ldr r0, [sp, #0x18] - ldr r1, _020E4FDC ; =UNK_021D74A8 - mov r2, #0x22 - cmp r0, #0x0 - movne r0, #0x80000000 - str r2, [r1, #0x0] - add sp, sp, #0x20 - mvneq r0, #0x80000000 - ldmia sp!, {r3-r5,pc} -_020E4FC8: - cmp r2, #0x0 - rsbne r0, r0, #0x0 - add sp, sp, #0x20 - ldmia sp!, {r3-r5,pc} - .balign 4 -_020E4FD8: .word __StringRead -_020E4FDC: .word UNK_021D74A8 - - arm_func_start atol -atol: ; 0x020E4FE0 - ldr ip, _020E4FF0 ; =strtold - mov r1, #0x0 - mov r2, #0xa - bx r12 - .balign 4 -_020E4FF0: .word strtold2 - - arm_func_start fwide -fwide: - cmp r0, #0x0 - beq _020E500C - ldr r3, [r0, #0x4] - mov r2, r3, lsl #0x16 - movs r2, r2, lsr #0x1d - bne _020E5014 -_020E500C: - mov r0, #0x0 - bx lr -_020E5014: - mov r2, r3, lsl #0x14 - movs r2, r2, lsr #0x1e - beq _020E5034 - cmp r2, #0x1 - beq _020E505C - cmp r2, #0x2 - moveq r1, #0x1 - b _020E5060 -_020E5034: - cmp r1, #0x0 - ble _020E504C - bic r2, r3, #0xc00 - orr r2, r2, #0x800 - str r2, [r0, #0x4] - b _020E5060 -_020E504C: - biclt r2, r3, #0xc00 - orrlt r2, r2, #0x400 - strlt r2, [r0, #0x4] - b _020E5060 -_020E505C: - mvn r1, #0x0 -_020E5060: - mov r0, r1 - bx lr - - arm_func_start wmemcpy -wmemcpy: ; 0x020E5068 - ldr ip, _020E5074 ; =memcpy - mov r2, r2, lsl #0x1 - bx r12 - .balign 4 -_020E5074: .word memcpy - - arm_func_start wmemchr -wmemchr: - cmp r2, #0x0 - beq _020E5098 -_020E5080: - ldrh r3, [r0, #0x0] - cmp r3, r1 - bxeq lr - add r0, r0, #0x2 - subs r2, r2, #0x1 - bne _020E5080 -_020E5098: - mov r0, #0x0 - bx lr - - arm_func_start parse_format_wprintf -parse_format_wprintf: ; 0x020E50A0 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - ldrh r3, [r0, #0x2] - mov r4, #0x0 - mov r5, #0x1 - mov lr, r2 - strb r5, [sp, #0x0] - strb r4, [sp, #0x1] - strb r4, [sp, #0x2] - strb r4, [sp, #0x3] - strb r4, [sp, #0x4] - str r4, [sp, #0x8] - str r4, [sp, #0xc] - cmp r3, #0x25 - add r12, r0, #0x2 - bne _020E50FC - add r0, sp, #0x0 - strh r3, [sp, #0x6] - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add sp, sp, #0x10 - add r0, r12, #0x2 - ldmia sp!, {r4-r8,pc} -_020E50FC: - mov r2, #0x2 - mov r0, r4 - mov r5, r2 - mov r6, r4 - mov r7, #0x1 -_020E5110: - mov r8, r7 - cmp r3, #0x2b - bgt _020E5140 - bge _020E5168 - cmp r3, #0x23 - bgt _020E5198 - cmp r3, #0x20 - blt _020E5198 - beq _020E5170 - cmp r3, #0x23 - beq _020E5180 - b _020E5198 -_020E5140: - cmp r3, #0x30 - bgt _020E5198 - cmp r3, #0x2d - blt _020E5198 - beq _020E5160 - cmp r3, #0x30 - beq _020E5188 - b _020E5198 -_020E5160: - strb r6, [sp, #0x0] - b _020E519C -_020E5168: - strb r7, [sp, #0x1] - b _020E519C -_020E5170: - ldrb r4, [sp, #0x1] - cmp r4, #0x1 - strneb r5, [sp, #0x1] - b _020E519C -_020E5180: - strb r7, [sp, #0x3] - b _020E519C -_020E5188: - ldrb r4, [sp, #0x0] - cmp r4, #0x0 - strneb r2, [sp, #0x0] - b _020E519C -_020E5198: - mov r8, r0 -_020E519C: - cmp r8, #0x0 - ldrneh r3, [r12, #0x2]! - bne _020E5110 - cmp r3, #0x2a - bne _020E51E4 - ldr r0, [r1, #0x0] - add r0, r0, #0x4 - str r0, [r1, #0x0] - ldr r0, [r0, #-0x4] - str r0, [sp, #0x8] - cmp r0, #0x0 - bge _020E51DC - rsb r0, r0, #0x0 - mov r2, #0x0 - strb r2, [sp, #0x0] - str r0, [sp, #0x8] -_020E51DC: - ldrh r3, [r12, #0x2]! - b _020E5228 -_020E51E4: - mov r2, #0x0 - ldr r5, _020E560C ; =UNK_02104544 - mov r0, #0xa - b _020E5208 -_020E51F4: - ldr r4, [sp, #0x8] - sub r3, r3, #0x30 - mla r6, r4, r0, r3 - ldrh r3, [r12, #0x2]! - str r6, [sp, #0x8] -_020E5208: - cmp r3, #0x80 - movcs r4, r2 - bhs _020E5220 - mov r4, r3, lsl #0x1 - ldrh r4, [r5, r4] - and r4, r4, #0x8 -_020E5220: - cmp r4, #0x0 - bne _020E51F4 -_020E5228: - ldr r2, [sp, #0x8] - ldr r0, _020E5610 ; =0x000001FD - cmp r2, r0 - ble _020E5258 - ldr r1, _020E5614 ; =0x0000FFFF - add r0, sp, #0x0 - strh r1, [sp, #0x6] - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add sp, sp, #0x10 - add r0, r12, #0x2 - ldmia sp!, {r4-r8,pc} -_020E5258: - cmp r3, #0x2e - bne _020E52E0 - ldrh r3, [r12, #0x2]! - mov r0, #0x1 - strb r0, [sp, #0x2] - cmp r3, #0x2a - bne _020E529C - ldr r0, [r1, #0x0] - add r0, r0, #0x4 - str r0, [r1, #0x0] - ldr r0, [r0, #-0x4] - ldrh r3, [r12, #0x2]! - str r0, [sp, #0xc] - cmp r0, #0x0 - movlt r0, #0x0 - strltb r0, [sp, #0x2] - b _020E52E0 -_020E529C: - mov r1, #0x0 - ldr r4, _020E560C ; =UNK_02104544 - mov r0, #0xa - b _020E52C0 -_020E52AC: - ldr r2, [sp, #0xc] - sub r3, r3, #0x30 - mla r5, r2, r0, r3 - ldrh r3, [r12, #0x2]! - str r5, [sp, #0xc] -_020E52C0: - cmp r3, #0x80 - movcs r2, r1 - bhs _020E52D8 - mov r2, r3, lsl #0x1 - ldrh r2, [r4, r2] - and r2, r2, #0x8 -_020E52D8: - cmp r2, #0x0 - bne _020E52AC -_020E52E0: - cmp r3, #0x6c - mov r0, #0x1 - bgt _020E5318 - cmp r3, #0x68 - blt _020E530C - beq _020E5334 - cmp r3, #0x6a - beq _020E5380 - cmp r3, #0x6c - beq _020E5350 - b _020E53A4 -_020E530C: - cmp r3, #0x4c - beq _020E5374 - b _020E53A4 -_020E5318: - cmp r3, #0x74 - bgt _020E5328 - beq _020E538C - b _020E53A4 -_020E5328: - cmp r3, #0x7a - beq _020E5398 - b _020E53A4 -_020E5334: - ldrh r1, [r12, #0x2] - mov r2, #0x2 - strb r2, [sp, #0x4] - cmp r1, #0x68 - streqb r0, [sp, #0x4] - ldreqh r3, [r12, #0x2]! - b _020E53A8 -_020E5350: - ldrh r1, [r12, #0x2] - mov r2, #0x3 - strb r2, [sp, #0x4] - cmp r1, #0x6c - bne _020E53A8 - mov r1, #0x4 - strb r1, [sp, #0x4] - ldrh r3, [r12, #0x2]! - b _020E53A8 -_020E5374: - mov r1, #0x9 - strb r1, [sp, #0x4] - b _020E53A8 -_020E5380: - mov r1, #0x6 - strb r1, [sp, #0x4] - b _020E53A8 -_020E538C: - mov r1, #0x8 - strb r1, [sp, #0x4] - b _020E53A8 -_020E5398: - mov r1, #0x7 - strb r1, [sp, #0x4] - b _020E53A8 -_020E53A4: - mov r0, #0x0 -_020E53A8: - cmp r0, #0x0 - ldrneh r3, [r12, #0x2]! - strh r3, [sp, #0x6] - cmp r3, #0x61 - bgt _020E53FC - bge _020E54E0 - cmp r3, #0x47 - bgt _020E53F0 - subs r0, r3, #0x41 - addpl pc, pc, r0, lsl #0x2 - b _020E55EC - b _020E54E0 - b _020E55EC - b _020E55EC - b _020E55EC - b _020E5528 - b _020E54A8 - b _020E5518 -_020E53F0: - cmp r3, #0x58 - beq _020E5470 - b _020E55EC -_020E53FC: - cmp r3, #0x63 - bgt _020E540C - beq _020E5588 - b _020E55EC -_020E540C: - sub r0, r3, #0x64 - cmp r0, #0x14 - addls pc, pc, r0, lsl #0x2 - b _020E55EC -_020E541C: - b _020E5470 -_020E5420: - b _020E5528 -_020E5424: - b _020E54A8 -_020E5428: - b _020E5518 -_020E542C: - b _020E55EC -_020E5430: - b _020E5470 -_020E5434: - b _020E55EC -_020E5438: - b _020E55EC -_020E543C: - b _020E55EC -_020E5440: - b _020E55EC -_020E5444: - b _020E55D8 -_020E5448: - b _020E5470 -_020E544C: - b _020E5564 -_020E5450: - b _020E55EC -_020E5454: - b _020E55EC -_020E5458: - b _020E55B4 -_020E545C: - b _020E55EC -_020E5460: - b _020E5470 -_020E5464: - b _020E55EC -_020E5468: - b _020E55EC -_020E546C: - b _020E5470 -_020E5470: - ldrb r0, [sp, #0x4] - cmp r0, #0x9 - moveq r0, #0x4 - streqb r0, [sp, #0x4] - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x1 - streq r0, [sp, #0xc] - beq _020E55F4 - ldrb r0, [sp, #0x0] - cmp r0, #0x2 - moveq r0, #0x1 - streqb r0, [sp, #0x0] - b _020E55F4 -_020E54A8: - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - ldreq r0, _020E5614 ; =0x0000FFFF - streqh r0, [sp, #0x6] - beq _020E55F4 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x6 - streq r0, [sp, #0xc] - b _020E55F4 -_020E54E0: - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0xd - streq r0, [sp, #0xc] - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - cmpne r0, #0x1 - ldreq r0, _020E5614 ; =0x0000FFFF - streqh r0, [sp, #0x6] - b _020E55F4 -_020E5518: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - moveq r0, #0x1 - streq r0, [sp, #0xc] -_020E5528: - ldrb r0, [sp, #0x4] - cmp r0, #0x2 - cmpne r0, #0x6 - cmpne r0, #0x7 - cmpne r0, #0x8 - cmpne r0, #0x4 - cmpne r0, #0x1 - ldreq r0, _020E5614 ; =0x0000FFFF - streqh r0, [sp, #0x6] - beq _020E55F4 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - moveq r0, #0x6 - streq r0, [sp, #0xc] - b _020E55F4 -_020E5564: - mov r3, #0x3 - mov r2, #0x1 - mov r1, #0x78 - mov r0, #0x8 - strb r3, [sp, #0x4] - strb r2, [sp, #0x3] - strh r1, [sp, #0x6] - str r0, [sp, #0xc] - b _020E55F4 -_020E5588: - ldrb r1, [sp, #0x4] - cmp r1, #0x3 - moveq r0, #0x5 - streqb r0, [sp, #0x4] - beq _020E55F4 - ldrb r0, [sp, #0x2] - cmp r0, #0x0 - cmpeq r1, #0x0 - ldrne r0, _020E5614 ; =0x0000FFFF - strneh r0, [sp, #0x6] - b _020E55F4 -_020E55B4: - ldrb r0, [sp, #0x4] - cmp r0, #0x3 - moveq r0, #0x5 - streqb r0, [sp, #0x4] - beq _020E55F4 - cmp r0, #0x0 - ldrne r0, _020E5614 ; =0x0000FFFF - strneh r0, [sp, #0x6] - b _020E55F4 -_020E55D8: - ldrb r0, [sp, #0x4] - cmp r0, #0x9 - moveq r0, #0x4 - streqb r0, [sp, #0x4] - b _020E55F4 -_020E55EC: - ldr r0, _020E5614 ; =0x0000FFFF - strh r0, [sp, #0x6] -_020E55F4: - add r0, sp, #0x0 - ldmia r0, {r0-r3} - stmia lr, {r0-r3} - add r0, r12, #0x2 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020E560C: .word UNK_02104544 -_020E5610: .word 0x000001FD -_020E5614: .word 0x0000FFFF - - arm_func_start long2str_wide -long2str_wide: ; 0x020E5618 - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x10 - movs r10, r0 - mov r0, #0x0 - mov r5, r1 - str r0, [sp, #0xc] - ldr r7, [sp, #0x4c] - mov r6, r0 - strh r0, [r5, #-0x2]! - ldrb r0, [sp, #0x43] - str r1, [sp, #0x0] - ldrh r8, [sp, #0x46] - str r0, [sp, #0x4] - ldr r0, [sp, #0x48] - ldrb r11, [sp, #0x41] - str r0, [sp, #0x8] - cmpeq r7, #0x0 - bne _020E568C - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020E5678 - cmp r8, #0x6f - beq _020E568C -_020E5678: - add sp, sp, #0x10 - mov r0, r5 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E568C: - cmp r8, #0x69 - bgt _020E56B4 - bge _020E56E8 - cmp r8, #0x58 - bgt _020E56A8 - beq _020E5714 - b _020E571C -_020E56A8: - cmp r8, #0x64 - beq _020E56E8 - b _020E571C -_020E56B4: - cmp r8, #0x6f - bgt _020E56C8 - moveq r4, #0x8 - moveq r11, #0x0 - b _020E571C -_020E56C8: - cmp r8, #0x78 - bgt _020E571C - cmp r8, #0x75 - blt _020E571C - beq _020E5708 - cmp r8, #0x78 - beq _020E5714 - b _020E571C -_020E56E8: - cmp r10, #0x0 - mov r4, #0xa - bge _020E571C - mov r0, #0x1 - cmp r10, #0x80000000 - rsbne r10, r10, #0x0 - str r0, [sp, #0xc] - b _020E571C -_020E5708: - mov r4, #0xa - mov r11, #0x0 - b _020E571C -_020E5714: - mov r4, #0x10 - mov r11, #0x0 -_020E571C: - mov r0, r10 - mov r1, r4 - bl _u32_div_f - mov r9, r1 - mov r0, r10 - mov r1, r4 - bl _u32_div_f - cmp r9, #0xa - mov r10, r0 - addlt r9, r9, #0x30 - blt _020E5754 - cmp r8, #0x78 - addeq r9, r9, #0x57 - addne r9, r9, #0x37 -_020E5754: - cmp r10, #0x0 - strh r9, [r5, #-0x2]! - add r6, r6, #0x1 - bne _020E571C - cmp r4, #0x8 - bne _020E5788 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrneh r0, [r5, #0x0] - cmpne r0, #0x30 - movne r0, #0x30 - strneh r0, [r5, #-0x2]! - addne r6, r6, #0x1 -_020E5788: - ldrb r0, [sp, #0x40] - cmp r0, #0x2 - bne _020E57BC - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x8] - cmp r0, #0x0 - cmpeq r11, #0x0 - subne r7, r7, #0x1 - cmp r4, #0x10 - bne _020E57BC - ldr r0, [sp, #0x4] - cmp r0, #0x0 - subne r7, r7, #0x2 -_020E57BC: - ldr r0, [sp, #0x0] - ldr r1, _020E5864 ; =0x000001FD - sub r0, r0, r5 - add r0, r0, r0, lsr #0x1f - add r0, r7, r0, asr #0x1 - cmp r0, r1 - addgt sp, sp, #0x10 - movgt r0, #0x0 - ldmgtia sp!, {r3-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - cmp r6, r7 - bge _020E5804 - mov r0, #0x30 -_020E57F4: - add r6, r6, #0x1 - cmp r6, r7 - strh r0, [r5, #-0x2]! - blt _020E57F4 -_020E5804: - cmp r4, #0x10 - bne _020E5820 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x30 - strneh r8, [r5, #-0x2] - strneh r0, [r5, #-0x4]! -_020E5820: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - movne r0, #0x2d - strneh r0, [r5, #-0x2]! - bne _020E5850 - cmp r11, #0x1 - moveq r0, #0x2b - streqh r0, [r5, #-0x2]! - beq _020E5850 - cmp r11, #0x2 - moveq r0, #0x20 - streqh r0, [r5, #-0x2]! -_020E5850: - mov r0, r5 - add sp, sp, #0x10 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E5864: .word 0x000001FD - - arm_func_start longlong2str_wide -longlong2str_wide: ; 0x020E5868 - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x18 - mov r9, r1 - mov r1, #0x0 - mov r10, r0 - mov r6, r2 - mov r0, r1 - strh r0, [r6, #-0x2]! - ldr r0, [sp, #0x58] - cmp r9, #0x0 - str r0, [sp, #0x10] - ldrb r0, [sp, #0x4f] - cmpeq r10, #0x0 - str r2, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x54] - str r1, [sp, #0x14] - str r0, [sp, #0x8] - ldrb r0, [sp, #0x4d] - mov r7, r1 - ldrh r8, [sp, #0x52] - str r0, [sp, #0xc] - ldreq r0, [sp, #0x10] - cmpeq r0, #0x0 - bne _020E58F8 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020E58E4 - cmp r8, #0x6f - beq _020E58F8 -_020E58E4: - add sp, sp, #0x18 - mov r0, r6 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E58F8: - cmp r8, #0x69 - bgt _020E5920 - bge _020E5950 - cmp r8, #0x58 - bgt _020E5914 - beq _020E59A4 - b _020E59B0 -_020E5914: - cmp r8, #0x64 - beq _020E5950 - b _020E59B0 -_020E5920: - cmp r8, #0x6f - bgt _020E5930 - beq _020E5984 - b _020E59B0 -_020E5930: - cmp r8, #0x78 - bgt _020E59B0 - cmp r8, #0x75 - blt _020E59B0 - beq _020E5994 - cmp r8, #0x78 - beq _020E59A4 - b _020E59B0 -_020E5950: - subs r0, r10, #0x0 - sbcs r0, r9, #0x0 - mov r11, #0xa - mov r5, #0x0 - bge _020E59B0 - cmp r9, #0x80000000 - cmpeq r10, r5 - beq _020E5978 - rsbs r10, r10, #0x0 - rsc r9, r9, #0x0 -_020E5978: - mov r0, #0x1 - str r0, [sp, #0x14] - b _020E59B0 -_020E5984: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0x8 - b _020E59B0 -_020E5994: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0xa - b _020E59B0 -_020E59A4: - mov r5, #0x0 - str r5, [sp, #0xc] - mov r11, #0x10 -_020E59B0: - mov r0, r10 - mov r1, r9 - mov r2, r11 - mov r3, r5 - bl _ull_mod - mov r4, r0 - mov r0, r10 - mov r1, r9 - mov r2, r11 - mov r3, r5 - bl _ll_udiv - mov r10, r0 - cmp r4, #0xa - mov r9, r1 - addlt r0, r4, #0x30 - blt _020E59FC - cmp r8, #0x78 - addeq r0, r4, #0x57 - addne r0, r4, #0x37 -_020E59FC: - strh r0, [r6, #-0x2]! - mov r0, #0x0 - cmp r9, r0 - cmpeq r10, r0 - add r7, r7, #0x1 - bne _020E59B0 - cmp r5, #0x0 - cmpeq r11, #0x8 - bne _020E5A3C - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrneh r0, [r6, #0x0] - cmpne r0, #0x30 - movne r0, #0x30 - strneh r0, [r6, #-0x2]! - addne r7, r7, #0x1 -_020E5A3C: - ldrb r0, [sp, #0x4c] - cmp r0, #0x2 - bne _020E5A8C - ldr r0, [sp, #0x8] - str r0, [sp, #0x10] - ldr r0, [sp, #0x14] - cmp r0, #0x0 - ldreq r0, [sp, #0xc] - cmpeq r0, #0x0 - ldrne r0, [sp, #0x10] - subne r0, r0, #0x1 - strne r0, [sp, #0x10] - cmp r5, #0x0 - cmpeq r11, #0x10 - bne _020E5A8C - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrne r0, [sp, #0x10] - subne r0, r0, #0x2 - strne r0, [sp, #0x10] -_020E5A8C: - ldr r0, [sp, #0x0] - ldr r2, _020E5B48 ; =0x000001FD - sub r0, r0, r6 - add r1, r0, r0, lsr #0x1f - ldr r0, [sp, #0x10] - add r0, r0, r1, asr #0x1 - cmp r0, r2 - addgt sp, sp, #0x18 - movgt r0, #0x0 - ldmgtia sp!, {r3-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - ldr r0, [sp, #0x10] - cmp r7, r0 - bge _020E5AE0 - mov r1, #0x30 -_020E5ACC: - ldr r0, [sp, #0x10] - add r7, r7, #0x1 - cmp r7, r0 - strh r1, [r6, #-0x2]! - blt _020E5ACC -_020E5AE0: - cmp r5, #0x0 - cmpeq r11, #0x10 - bne _020E5B00 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x30 - strneh r8, [r6, #-0x2] - strneh r0, [r6, #-0x4]! -_020E5B00: - ldr r0, [sp, #0x14] - cmp r0, #0x0 - movne r0, #0x2d - strneh r0, [r6, #-0x2]! - bne _020E5B34 - ldr r0, [sp, #0xc] - cmp r0, #0x1 - moveq r0, #0x2b - streqh r0, [r6, #-0x2]! - beq _020E5B34 - cmp r0, #0x2 - moveq r0, #0x20 - streqh r0, [r6, #-0x2]! -_020E5B34: - mov r0, r6 - add sp, sp, #0x18 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E5B48: .word 0x000001FD - - arm_func_start double2hex_wide -double2hex_wide: ; 0x020E5B4C - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r10,lr} - sub sp, sp, #0x44 - ldr r7, [sp, #0x80] - ldr r0, _020E5EB8 ; =0x000001FD - mov r8, r2 - cmp r7, r0 - ldrh r6, [sp, #0x7a] - ldrb r5, [sp, #0x77] - ldrb r4, [sp, #0x75] - ldr r1, [sp, #0x68] - ldr r2, [sp, #0x6c] - addgt sp, sp, #0x44 - movgt r0, #0x0 - ldmgtia sp!, {r3-r10,lr} - addgt sp, sp, #0x10 - bxgt lr - mov r10, #0x0 - mov r9, #0x20 - add r0, sp, #0x8 - add r3, sp, #0xc - strb r10, [sp, #0x8] - strh r9, [sp, #0xa] - bl __num2dec_internal2 - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x6c] - bl fabs - mov r2, r0 - mov r0, r10 - mov r3, r1 - mov r1, r0 - bl _deq - bne _020E5BF4 - sub r4, r8, #0xc - ldr r1, _020E5EBC ; =UNK_02106DE4 - mov r0, r4 - bl wcscpy - add sp, sp, #0x44 - mov r0, r4 - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E5BF4: - ldrb r0, [sp, #0x11] - cmp r0, #0x49 - bne _020E5C74 - ldrsb r0, [sp, #0xc] - cmp r0, #0x0 - beq _020E5C38 - cmp r6, #0x41 - sub r4, r8, #0xa - bne _020E5C28 - ldr r1, _020E5EC0 ; =UNK_02106DF0 - mov r0, r4 - bl wcscpy - b _020E5C60 -_020E5C28: - ldr r1, _020E5EC4 ; =UNK_02106DFC - mov r0, r4 - bl wcscpy - b _020E5C60 -_020E5C38: - cmp r6, #0x41 - sub r4, r8, #0x8 - bne _020E5C54 - ldr r1, _020E5EC8 ; =UNK_02106E08 - mov r0, r4 - bl wcscpy - b _020E5C60 -_020E5C54: - ldr r1, _020E5ECC ; =UNK_02106E10 - mov r0, r4 - bl wcscpy -_020E5C60: - add sp, sp, #0x44 - mov r0, r4 - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E5C74: - cmp r0, #0x4e - bne _020E5CF0 - ldrsb r0, [sp, #0xc] - cmp r0, #0x0 - beq _020E5CB4 - cmp r6, #0x41 - sub r4, r8, #0xa - bne _020E5CA4 - ldr r1, _020E5ED0 ; =UNK_02106E18 - mov r0, r4 - bl wcscpy - b _020E5CDC -_020E5CA4: - ldr r1, _020E5ED4 ; =UNK_02106E24 - mov r0, r4 - bl wcscpy - b _020E5CDC -_020E5CB4: - cmp r6, #0x41 - sub r4, r8, #0x8 - bne _020E5CD0 - ldr r1, _020E5ED8 ; =UNK_02106E30 - mov r0, r4 - bl wcscpy - b _020E5CDC -_020E5CD0: - ldr r1, _020E5EDC ; =UNK_02106E38 - mov r0, r4 - bl wcscpy -_020E5CDC: - add sp, sp, #0x44 - mov r0, r4 - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr -_020E5CF0: - mov r3, r10 - mov r1, #0x1 - mov r0, #0x64 - add r9, sp, #0x68 - strb r1, [sp, #0x34] - strb r1, [sp, #0x35] - strb r3, [sp, #0x36] - strb r3, [sp, #0x37] - strb r3, [sp, #0x38] - str r3, [sp, #0x3c] - str r1, [sp, #0x40] - strh r0, [sp, #0x3a] -_020E5D20: - rsb r1, r3, #0x7 - ldrsb r2, [r9, r3] - ldrsb r0, [r9, r1] - strb r0, [r9, r3] - add r3, r3, #0x1 - strb r2, [r9, r1] - cmp r3, #0x4 - blt _020E5D20 - ldrb r0, [sp, #0x69] - ldrb r1, [sp, #0x68] - ldr sb, _020E5EE0 ; =0x000007FF - mov r0, r0, lsl #0x11 - orr r1, r0, r1, lsl #0x19 - add r0, sp, #0x34 - and lr, r9, r1, lsr #0x15 - sub r12, sp, #0x8 - ldmia r0, {r0-r3} - stmia r12, {r0-r3} - rsb r0, r9, #0x400 - mov r1, r8 - add r0, lr, r0 - ldmia r12, {r2-r3} - bl long2str_wide - cmp r6, #0x61 - moveq r1, #0x70 - movne r1, #0x50 - strh r1, [r0, #-0x2]! - mov r1, r7, lsl #0x2 - mov lr, r7 - cmp r7, #0x1 - add r8, r1, #0xb - add r12, sp, #0x68 - blt _020E5E30 - mov r9, #0x30 -_020E5DA8: - cmp r8, #0x40 - bge _020E5E18 - ldrb r1, [r12, r8, asr #0x3] - and r2, r8, #0x7 - rsb r3, r2, #0x7 - mov r2, r1, asr r3 - sub r10, r8, #0x4 - bic r1, r8, #0x7 - bic r10, r10, #0x7 - cmp r1, r10 - add r10, r12, r8, asr #0x3 - and r1, r2, #0xff - beq _020E5DEC - ldrb r2, [r10, #-0x1] - mov r2, r2, lsl #0x8 - orr r1, r1, r2, asr r3 - and r1, r1, #0xff -_020E5DEC: - and r1, r1, #0xf - cmp r1, #0xa - addcc r1, r1, #0x30 - andcc r1, r1, #0xff - blo _020E5E1C - cmp r6, #0x61 - addeq r1, r1, #0x57 - andeq r1, r1, #0xff - addne r1, r1, #0x37 - andne r1, r1, #0xff - b _020E5E1C -_020E5E18: - mov r1, r9 -_020E5E1C: - sub lr, lr, #0x1 - cmp lr, #0x1 - strh r1, [r0, #-0x2]! - sub r8, r8, #0x4 - bge _020E5DA8 -_020E5E30: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r1, #0x2e - strneh r1, [r0, #-0x2]! - mov r1, #0x31 - strh r1, [r0, #-0x2] - cmp r6, #0x61 - moveq r1, #0x78 - movne r1, #0x58 - strh r1, [r0, #-0x4]! - mov r1, #0x30 - strh r1, [r0, #-0x2]! - ldrsb r1, [sp, #0xc] - cmp r1, #0x0 - movne r1, #0x2d - strneh r1, [r0, #-0x2]! - addne sp, sp, #0x44 - ldmneia sp!, {r3-r10,lr} - addne sp, sp, #0x10 - bxne lr - cmp r4, #0x1 - moveq r1, #0x2b - streqh r1, [r0, #-0x2]! - addeq sp, sp, #0x44 - ldmeqia sp!, {r3-r10,lr} - addeq sp, sp, #0x10 - bxeq lr - cmp r4, #0x2 - moveq r1, #0x20 - streqh r1, [r0, #-0x2]! - add sp, sp, #0x44 - ldmia sp!, {r3-r10,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E5EB8: .word 0x000001FD -_020E5EBC: .word UNK_02106DE4 -_020E5EC0: .word UNK_02106DF0 -_020E5EC4: .word UNK_02106DFC -_020E5EC8: .word UNK_02106E08 -_020E5ECC: .word UNK_02106E10 -_020E5ED0: .word UNK_02106E18 -_020E5ED4: .word UNK_02106E24 -_020E5ED8: .word UNK_02106E30 -_020E5EDC: .word UNK_02106E38 -_020E5EE0: .word 0x000007FF - - arm_func_start round_decimal_wide -round_decimal_wide: ; 0x020E5EE4 - stmdb sp!, {r4,lr} - cmp r1, #0x0 - bge _020E5F0C -_020E5EF0: - mov r1, #0x0 - strh r1, [r0, #0x2] - mov r1, #0x1 - strb r1, [r0, #0x4] - mov r1, #0x30 - strb r1, [r0, #0x5] - ldmia sp!, {r4,pc} -_020E5F0C: - ldrb lr, [r0, #0x4] - cmp r1, lr - ldmgeia sp!, {r4,pc} - add r12, r0, #0x5 - add r2, r12, r1 - add r2, r2, #0x1 - ldrsb r3, [r2, #-0x1]! - sub r3, r3, #0x30 - mov r3, r3, lsl #0x18 - mov r3, r3, asr #0x18 - cmp r3, #0x5 - bne _020E5F6C - add r12, r12, lr -_020E5F40: - sub r12, r12, #0x1 - cmp r12, r2 - bls _020E5F58 - ldrsb r3, [r12, #0x0] - cmp r3, #0x30 - beq _020E5F40 -_020E5F58: - cmp r12, r2 - ldreqsb r3, [r2, #-0x1] - andeq r4, r3, #0x1 - movne r4, #0x1 - b _020E5F74 -_020E5F6C: - movgt r4, #0x1 - movle r4, #0x0 -_020E5F74: - cmp r1, #0x0 - beq _020E5FD0 - mov r12, #0x0 - mov lr, #0x1 -_020E5F84: - ldrsb r3, [r2, #-0x1]! - sub r3, r3, #0x30 - add r3, r3, r4 - mov r3, r3, lsl #0x18 - mov r3, r3, asr #0x18 - cmp r3, #0x9 - movgt r4, lr - movle r4, r12 - cmp r4, #0x0 - bne _020E5FB4 - cmp r3, #0x0 - bne _020E5FBC -_020E5FB4: - sub r1, r1, #0x1 - b _020E5FC8 -_020E5FBC: - add r3, r3, #0x30 - strb r3, [r2, #0x0] - b _020E5FD0 -_020E5FC8: - cmp r1, #0x0 - bne _020E5F84 -_020E5FD0: - cmp r4, #0x0 - beq _020E5FF8 - ldrsh r3, [r0, #0x2] - mov r2, #0x1 - mov r1, #0x31 - add r3, r3, #0x1 - strh r3, [r0, #0x2] - strb r2, [r0, #0x4] - strb r1, [r0, #0x5] - ldmia sp!, {r4,pc} -_020E5FF8: - cmp r1, #0x0 - beq _020E5EF0 - strb r1, [r0, #0x4] - ldmia sp!, {r4,pc} - - arm_func_start float2str_wide -float2str_wide: ; 0x020E6008 - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x22c - mov r10, r0 - add r0, sp, #0x250 - ldr r7, [sp, #0x268] - ldr r3, _020E6628 ; =0x000001FD - ldrh r6, [r0, #0x12] - cmp r7, r3 - ldrb r5, [sp, #0x25f] - ldrb r4, [sp, #0x25d] - mov r8, r1 - mov r9, r2 - addgt sp, sp, #0x22c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - mov r12, #0x0 - mov r11, #0x20 - add r0, sp, #0x0 - add r3, sp, #0x4 - mov r1, r10 - mov r2, r8 - strb r12, [sp, #0x0] - strh r11, [sp, #0x2] - bl __num2dec_internal2 - ldrb r0, [sp, #0x8] - add r1, sp, #0x9 - add r0, r1, r0 - b _020E609C -_020E6084: - ldrb r2, [sp, #0x8] - ldrsh r1, [sp, #0x6] - sub r2, r2, #0x1 - add r1, r1, #0x1 - strb r2, [sp, #0x8] - strh r1, [sp, #0x6] -_020E609C: - ldrb r1, [sp, #0x8] - cmp r1, #0x1 - bls _020E60B4 - ldrsb r1, [r0, #-0x1]! - cmp r1, #0x30 - beq _020E6084 -_020E60B4: - ldrb r0, [sp, #0x9] - cmp r0, #0x30 - beq _020E60D4 - cmp r0, #0x49 - beq _020E60E0 - cmp r0, #0x4e - beq _020E6198 - b _020E6244 -_020E60D4: - mov r0, #0x0 - strh r0, [sp, #0x6] - b _020E6244 -_020E60E0: - mov r2, #0x0 - mov r0, r10 - mov r1, r8 - mov r3, r2 - bl _dls - bhs _020E6140 - cmp r6, #0x80 - sub r4, r9, #0xa - movcs r0, #0x0 - bhs _020E6118 - ldr r0, _020E662C ; =UNK_02104544 - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x200 -_020E6118: - cmp r0, #0x0 - beq _020E6130 - ldr r1, _020E6630 ; =UNK_02106DF0 - mov r0, r4 - bl wcscpy - b _020E6184 -_020E6130: - ldr r1, _020E6634 ; =UNK_02106DFC - mov r0, r4 - bl wcscpy - b _020E6184 -_020E6140: - cmp r6, #0x80 - sub r4, r9, #0x8 - movcs r0, #0x0 - bhs _020E6160 - ldr r0, _020E662C ; =UNK_02104544 - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x200 -_020E6160: - cmp r0, #0x0 - beq _020E6178 - ldr r1, _020E6638 ; =UNK_02106E08 - mov r0, r4 - bl wcscpy - b _020E6184 -_020E6178: - ldr r1, _020E663C ; =UNK_02106E10 - mov r0, r4 - bl wcscpy -_020E6184: - add sp, sp, #0x22c - mov r0, r4 - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E6198: - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - beq _020E61EC - cmp r6, #0x80 - sub r4, r9, #0xa - movcs r0, #0x0 - bhs _020E61C4 - ldr r0, _020E662C ; =UNK_02104544 - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x200 -_020E61C4: - cmp r0, #0x0 - beq _020E61DC - ldr r1, _020E6640 ; =UNK_02106E18 - mov r0, r4 - bl wcscpy - b _020E6230 -_020E61DC: - ldr r1, _020E6644 ; =UNK_02106E24 - mov r0, r4 - bl wcscpy - b _020E6230 -_020E61EC: - cmp r6, #0x80 - sub r4, r9, #0x8 - movcs r0, #0x0 - bhs _020E620C - ldr r0, _020E662C ; =UNK_02104544 - mov r1, r6, lsl #0x1 - ldrh r0, [r0, r1] - and r0, r0, #0x200 -_020E620C: - cmp r0, #0x0 - beq _020E6224 - ldr r1, _020E6648 ; =UNK_02106E30 - mov r0, r4 - bl wcscpy - b _020E6230 -_020E6224: - ldr r1, _020E664C ; =UNK_02106E38 - mov r0, r4 - bl wcscpy -_020E6230: - add sp, sp, #0x22c - mov r0, r4 - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020E6244: - ldrb r1, [sp, #0x8] - ldrsh r2, [sp, #0x6] - add r0, sp, #0x200 - sub r1, r1, #0x1 - add r0, r0, #0x2a - add r1, r2, r1 - sub r8, r0, #0x1 - strh r1, [sp, #0x6] - mov r0, #0x0 - strb r0, [r8, #0x0] - cmp r6, #0x65 - bgt _020E62A0 - bge _020E632C - cmp r6, #0x47 - bgt _020E65EC - cmp r6, #0x45 - blt _020E65EC - beq _020E632C - cmp r6, #0x46 - beq _020E6478 - cmp r6, #0x47 - beq _020E62B8 - b _020E65EC -_020E62A0: - cmp r6, #0x66 - bgt _020E62B0 - beq _020E6478 - b _020E65EC -_020E62B0: - cmp r6, #0x67 - bne _020E65EC -_020E62B8: - ldrb r0, [sp, #0x8] - cmp r0, r7 - ble _020E62D0 - add r0, sp, #0x4 - mov r1, r7 - bl round_decimal_wide -_020E62D0: - ldrsh r2, [sp, #0x6] - mvn r0, #0x3 - cmp r2, r0 - blt _020E62E8 - cmp r2, r7 - blt _020E6308 -_020E62E8: - cmp r5, #0x0 - ldreqb r0, [sp, #0x8] - subne r7, r7, #0x1 - subeq r7, r0, #0x1 - cmp r6, #0x67 - moveq r6, #0x65 - movne r6, #0x45 - b _020E632C -_020E6308: - cmp r5, #0x0 - addne r0, r2, #0x1 - subne r7, r7, r0 - bne _020E6478 - ldrb r1, [sp, #0x8] - add r0, r2, #0x1 - subs r7, r1, r0 - movmi r7, #0x0 - b _020E6478 -_020E632C: - ldrb r0, [sp, #0x8] - add r1, r7, #0x1 - cmp r0, r1 - ble _020E6344 - add r0, sp, #0x4 - bl round_decimal_wide -_020E6344: - ldrsh lr, [sp, #0x6] - mov r11, #0x2b - mov r10, #0x0 - cmp lr, #0x0 - rsblt lr, lr, #0x0 - movlt r11, #0x2d - ldr r3, _020E6650 ; =0x66666667 - mov r0, #0xa - b _020E6398 -_020E6368: - mov r1, lr, lsr #0x1f - smull r2, r12, r3, lr - add r12, r1, r12, asr #0x2 - smull r1, r2, r0, r12 - sub r12, lr, r1 - add r1, r12, #0x30 - strb r1, [r8, #-0x1]! - mov r2, lr - smull r1, lr, r3, r2 - mov r1, r2, lsr #0x1f - add lr, r1, lr, asr #0x2 - add r10, r10, #0x1 -_020E6398: - cmp lr, #0x0 - bne _020E6368 - cmp r10, #0x2 - blt _020E6368 - add r0, sp, #0x2a - strb r11, [r8, #-0x1] - strb r6, [r8, #-0x2]! - sub r1, r0, r8 - ldr r0, _020E6628 ; =0x000001FD - add r1, r1, r7 - cmp r1, r0 - addgt sp, sp, #0x22c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - ldrb r1, [sp, #0x8] - add r0, r7, #0x1 - cmp r1, r0 - bge _020E6408 - add r0, r7, #0x2 - sub r0, r0, r1 - subs r1, r0, #0x1 - beq _020E6408 - mov r0, #0x30 -_020E63FC: - strb r0, [r8, #-0x1]! - subs r1, r1, #0x1 - bne _020E63FC -_020E6408: - ldrb r1, [sp, #0x8] - add r0, sp, #0x9 - add r2, r0, r1 - subs r1, r1, #0x1 - beq _020E642C -_020E641C: - ldrsb r0, [r2, #-0x1]! - subs r1, r1, #0x1 - strb r0, [r8, #-0x1]! - bne _020E641C -_020E642C: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r0, #0x2e - strneb r0, [r8, #-0x1]! - ldrb r0, [sp, #0x9] - strb r0, [r8, #-0x1]! - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r8, #-0x1]! - bne _020E65EC - cmp r4, #0x1 - moveq r0, #0x2b - streqb r0, [r8, #-0x1]! - beq _020E65EC - cmp r4, #0x2 - moveq r0, #0x20 - streqb r0, [r8, #-0x1]! - b _020E65EC -_020E6478: - ldrsh r3, [sp, #0x6] - ldrb r2, [sp, #0x8] - sub r0, r2, r3 - subs r1, r0, #0x1 - movmi r1, #0x0 - cmp r1, r7 - ble _020E64B8 - sub r1, r1, r7 - add r0, sp, #0x4 - sub r1, r2, r1 - bl round_decimal_wide - ldrsh r3, [sp, #0x6] - ldrb r2, [sp, #0x8] - sub r0, r2, r3 - subs r1, r0, #0x1 - movmi r1, #0x0 -_020E64B8: - adds r0, r3, #0x1 - movmi r0, #0x0 - ldr r3, _020E6628 ; =0x000001FD - add r6, r0, r1 - cmp r6, r3 - addgt sp, sp, #0x22c - movgt r0, #0x0 - ldmgtia sp!, {r4-r11,lr} - addgt sp, sp, #0x10 - bxgt lr - add r3, sp, #0x9 - sub r6, r7, r1 - cmp r6, #0x0 - add r2, r3, r2 - mov r10, #0x0 - ble _020E650C - mov r3, #0x30 -_020E64FC: - add r10, r10, #0x1 - cmp r10, r6 - strb r3, [r8, #-0x1]! - blt _020E64FC -_020E650C: - mov r6, #0x0 - b _020E6520 -_020E6514: - ldrsb r3, [r2, #-0x1]! - add r6, r6, #0x1 - strb r3, [r8, #-0x1]! -_020E6520: - cmp r6, r1 - ldrltb r3, [sp, #0x8] - cmplt r6, r3 - blt _020E6514 - cmp r6, r1 - bge _020E654C - mov r3, #0x30 -_020E653C: - add r6, r6, #0x1 - cmp r6, r1 - strb r3, [r8, #-0x1]! - blt _020E653C -_020E654C: - cmp r7, #0x0 - cmpeq r5, #0x0 - movne r1, #0x2e - strneb r1, [r8, #-0x1]! - cmp r0, #0x0 - beq _020E65B4 - ldrb r1, [sp, #0x8] - mov r5, #0x0 - sub r1, r0, r1 - cmp r1, #0x0 - ble _020E6594 - mov r3, #0x30 -_020E657C: - strb r3, [r8, #-0x1]! - ldrb r1, [sp, #0x8] - add r5, r5, #0x1 - sub r1, r0, r1 - cmp r5, r1 - blt _020E657C -_020E6594: - cmp r5, r0 - bge _020E65BC -_020E659C: - ldrsb r1, [r2, #-0x1]! - add r5, r5, #0x1 - cmp r5, r0 - strb r1, [r8, #-0x1]! - blt _020E659C - b _020E65BC -_020E65B4: - mov r0, #0x30 - strb r0, [r8, #-0x1]! -_020E65BC: - ldrsb r0, [sp, #0x4] - cmp r0, #0x0 - movne r0, #0x2d - strneb r0, [r8, #-0x1]! - bne _020E65EC - cmp r4, #0x1 - moveq r0, #0x2b - streqb r0, [r8, #-0x1]! - beq _020E65EC - cmp r4, #0x2 - moveq r0, #0x20 - streqb r0, [r8, #-0x1]! -_020E65EC: - mov r0, r8 - bl strlen - sub r1, r9, r0, lsl #0x1 - mov r0, r8 - sub r4, r1, #0x2 - bl strlen - mov r2, r0 - mov r0, r4 - mov r1, r8 - bl mbstowcs - mov r0, r4 - add sp, sp, #0x22c - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E6628: .word 0x000001FD -_020E662C: .word UNK_02104544 -_020E6630: .word UNK_02106DF0 -_020E6634: .word UNK_02106DFC -_020E6638: .word UNK_02106E08 -_020E663C: .word UNK_02106E10 -_020E6640: .word UNK_02106E18 -_020E6644: .word UNK_02106E24 -_020E6648: .word UNK_02106E30 -_020E664C: .word UNK_02106E38 -_020E6650: .word 0x66666667 - - arm_func_start __wpformatter -__wpformatter: - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x430 - mov r3, #0x20 - mov r11, r2 - strh r3, [sp, #0x1c] - ldrh r2, [r11, #0x0] - mov r9, r0 - mov r8, r1 - cmp r2, #0x0 - mov r4, #0x0 - beq _020E6F24 -_020E6684: - mov r0, r11 - mov r1, #0x25 - bl wcschr - str r0, [sp, #0xc] - cmp r0, #0x0 - bne _020E66D8 - mov r0, r11 - bl wcslen - movs r2, r0 - add r4, r4, r2 - beq _020E6F24 - mov r0, r8 - mov r1, r11 - blx r9 - cmp r0, #0x0 - bne _020E6F24 - add sp, sp, #0x430 - mvn r0, #0x0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E66D8: - sub r0, r0, r11 - add r0, r0, r0, lsr #0x1f - movs r2, r0, asr #0x1 - add r4, r4, r2 - beq _020E6710 - mov r0, r8 - mov r1, r11 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E6710: - add r1, sp, #0x400 - ldr r0, [sp, #0xc] - add r1, r1, #0x64 - add r2, sp, #0x20 - bl parse_format_wprintf - ldrh r1, [sp, #0x26] - mov r11, r0 - cmp r1, #0x61 - bgt _020E6780 - bge _020E6AEC - cmp r1, #0x47 - bgt _020E6774 - subs r0, r1, #0x41 - addpl pc, pc, r0, lsl #0x2 - b _020E6768 - b _020E6AEC - b _020E6D90 - b _020E6D90 - b _020E6D90 - b _020E6A7C - b _020E6A7C - b _020E6A7C -_020E6768: - cmp r1, #0x25 - beq _020E6D7C - b _020E6D90 -_020E6774: - cmp r1, #0x58 - beq _020E6940 - b _020E6D90 -_020E6780: - cmp r1, #0x75 - bgt _020E67E8 - subs r0, r1, #0x64 - addpl pc, pc, r0, lsl #0x2 - b _020E67DC - b _020E6804 - b _020E6A7C - b _020E6A7C - b _020E6A7C - b _020E6D90 - b _020E6804 - b _020E6D90 - b _020E6D90 - b _020E6D90 - b _020E6D90 - b _020E6C98 - b _020E6940 - b _020E6D90 - b _020E6D90 - b _020E6D90 - b _020E6B5C - b _020E6D90 - b _020E6940 -_020E67DC: - cmp r1, #0x63 - beq _020E6D24 - b _020E6D90 -_020E67E8: - cmp r1, #0x78 - bgt _020E67F8 - beq _020E6940 - b _020E6D90 -_020E67F8: - ldr r0, _020E6F38 ; =0x0000FFFF - cmp r1, r0 - b _020E6D90 -_020E6804: - ldrb r0, [sp, #0x24] - cmp r0, #0x3 - bne _020E6824 - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E68BC -_020E6824: - cmp r0, #0x4 - bne _020E684C - ldr r1, [sp, #0x464] - add r2, r1, #0x8 - str r2, [sp, #0x464] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E68BC -_020E684C: - cmp r0, #0x6 - bne _020E6874 - ldr r1, [sp, #0x464] - add r2, r1, #0x8 - str r2, [sp, #0x464] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E68BC -_020E6874: - cmp r0, #0x7 - bne _020E6890 - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E68BC -_020E6890: - cmp r0, #0x8 - bne _020E68AC - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E68BC -_020E68AC: - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] -_020E68BC: - cmp r0, #0x2 - moveq r1, r10, lsl #0x10 - moveq r10, r1, asr #0x10 - cmp r0, #0x4 - cmpne r0, #0x6 - add r0, sp, #0x20 - bne _020E6904 - sub r5, sp, #0x4 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - ldr r3, [r5, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x430 - bl longlong2str_wide - movs r6, r0 - beq _020E6D90 - b _020E6928 -_020E6904: - sub r5, sp, #0x8 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - add r1, sp, #0x430 - mov r0, r10 - ldmia r5, {r2-r3} - bl long2str_wide - movs r6, r0 - beq _020E6D90 -_020E6928: - add r0, sp, #0x400 - add r0, r0, #0x2e - sub r0, r0, r6 - add r0, r0, r0, lsr #0x1f - mov r7, r0, asr #0x1 - b _020E6DDC -_020E6940: - ldrb r0, [sp, #0x24] - cmp r0, #0x3 - bne _020E6960 - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E69F8 -_020E6960: - cmp r0, #0x4 - bne _020E6988 - ldr r1, [sp, #0x464] - add r2, r1, #0x8 - str r2, [sp, #0x464] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E69F8 -_020E6988: - cmp r0, #0x6 - bne _020E69B0 - ldr r1, [sp, #0x464] - add r2, r1, #0x8 - str r2, [sp, #0x464] - ldr r1, [r2, #-0x8] - str r1, [sp, #0x10] - ldr r1, [r2, #-0x4] - str r1, [sp, #0x14] - b _020E69F8 -_020E69B0: - cmp r0, #0x7 - bne _020E69CC - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E69F8 -_020E69CC: - cmp r0, #0x8 - bne _020E69E8 - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] - b _020E69F8 -_020E69E8: - ldr r1, [sp, #0x464] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r10, [r1, #-0x4] -_020E69F8: - cmp r0, #0x2 - moveq r1, r10, lsl #0x10 - moveq r10, r1, lsr #0x10 - cmp r0, #0x4 - cmpne r0, #0x6 - add r0, sp, #0x20 - bne _020E6A40 - sub r5, sp, #0x4 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - ldr r3, [r5, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x430 - bl longlong2str_wide - movs r6, r0 - beq _020E6D90 - b _020E6A64 -_020E6A40: - sub r5, sp, #0x8 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - add r1, sp, #0x430 - mov r0, r10 - ldmia r5, {r2-r3} - bl long2str_wide - movs r6, r0 - beq _020E6D90 -_020E6A64: - add r0, sp, #0x400 - add r0, r0, #0x2e - sub r0, r0, r6 - add r0, r0, r0, lsr #0x1f - mov r7, r0, asr #0x1 - b _020E6DDC -_020E6A7C: - ldrb r0, [sp, #0x24] - cmp r0, #0x9 - ldrne r0, [sp, #0x464] - addne r0, r0, #0x8 - strne r0, [sp, #0x464] - bne _020E6AA0 - ldr r0, [sp, #0x464] - add r0, r0, #0x8 - str r0, [sp, #0x464] -_020E6AA0: - ldr r7, [r0, #-0x8] - ldr r6, [r0, #-0x4] - add r0, sp, #0x20 - sub r5, sp, #0x4 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - ldr r3, [r5, #0x0] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x430 - bl float2str_wide - movs r6, r0 - beq _020E6D90 - add r0, sp, #0x400 - add r0, r0, #0x2e - sub r0, r0, r6 - add r0, r0, r0, lsr #0x1f - mov r7, r0, asr #0x1 - b _020E6DDC -_020E6AEC: - ldrb r0, [sp, #0x24] - cmp r0, #0x9 - ldrne r0, [sp, #0x464] - addne r0, r0, #0x8 - strne r0, [sp, #0x464] - bne _020E6B10 - ldr r0, [sp, #0x464] - add r0, r0, #0x8 - str r0, [sp, #0x464] -_020E6B10: - ldr r7, [r0, #-0x8] - ldr r6, [r0, #-0x4] - add r0, sp, #0x20 - sub r5, sp, #0x4 - ldmia r0, {r0-r3} - stmia r5, {r0-r3} - ldr r3, [r5, #0x0] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x430 - bl double2hex_wide - movs r6, r0 - beq _020E6D90 - add r0, sp, #0x400 - add r0, r0, #0x2e - sub r0, r0, r6 - add r0, r0, r0, lsr #0x1f - mov r7, r0, asr #0x1 - b _020E6DDC -_020E6B5C: - ldrb r0, [sp, #0x24] - cmp r0, #0x5 - bne _020E6BF8 - ldr r0, [sp, #0x464] - add r0, r0, #0x4 - str r0, [sp, #0x464] - ldr r6, [r0, #-0x4] - ldrb r0, [sp, #0x23] - cmp r6, #0x0 - ldreq r6, _020E6F3C ; =UNK_02106E40 - cmp r0, #0x0 - beq _020E6BB0 - ldrh r1, [r6], #0x2 - ldrb r0, [sp, #0x22] - and r7, r1, #0xff - cmp r0, #0x0 - beq _020E6DDC - ldr r0, [sp, #0x2c] - cmp r7, r0 - movgt r7, r0 - b _020E6DDC -_020E6BB0: - ldrb r0, [sp, #0x22] - cmp r0, #0x0 - beq _020E6BE8 - ldr r7, [sp, #0x2c] - mov r0, r6 - mov r2, r7 - mov r1, #0x0 - bl wmemchr - cmp r0, #0x0 - beq _020E6DDC - sub r0, r0, r6 - add r0, r0, r0, lsr #0x1f - mov r7, r0, asr #0x1 - b _020E6DDC -_020E6BE8: - mov r0, r6 - bl wcslen - mov r7, r0 - b _020E6DDC -_020E6BF8: - ldr r0, [sp, #0x464] - add r0, r0, #0x4 - str r0, [sp, #0x464] - ldr r5, [r0, #-0x4] - ldrb r0, [sp, #0x23] - cmp r5, #0x0 - ldreq r5, _020E6F40 ; =UNK_02106E44 - cmp r0, #0x0 - beq _020E6C40 - ldrh r1, [r6, #0x0] - ldrb r0, [sp, #0x22] - and r6, r1, #0xff - cmp r0, #0x0 - beq _020E6C78 - ldr r0, [sp, #0x2c] - cmp r6, r0 - movgt r6, r0 - b _020E6C78 -_020E6C40: - ldrb r0, [sp, #0x22] - cmp r0, #0x0 - beq _020E6C6C - ldr r6, [sp, #0x2c] - mov r0, r5 - mov r2, r6 - mov r1, #0x0 - bl memchr - cmp r0, #0x0 - subne r6, r0, r5 - b _020E6C78 -_020E6C6C: - mov r0, r5 - bl strlen - mov r6, r0 -_020E6C78: - add r0, sp, #0x30 - mov r1, r5 - mov r2, r6 - bl mbstowcs - movs r7, r0 - bmi _020E6D90 - add r6, sp, #0x30 - b _020E6DDC -_020E6C98: - ldr r1, [sp, #0x464] - ldrb r0, [sp, #0x24] - add r1, r1, #0x4 - str r1, [sp, #0x464] - ldr r6, [r1, #-0x4] - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020E6F18 -_020E6CB8: - b _020E6CDC -_020E6CBC: - b _020E6F18 -_020E6CC0: - b _020E6CE4 -_020E6CC4: - b _020E6CEC -_020E6CC8: - b _020E6D14 -_020E6CCC: - b _020E6F18 -_020E6CD0: - b _020E6CF4 -_020E6CD4: - b _020E6D04 -_020E6CD8: - b _020E6D0C -_020E6CDC: - str r4, [r6, #0x0] - b _020E6F18 -_020E6CE4: - strh r4, [r6, #0x0] - b _020E6F18 -_020E6CEC: - str r4, [r6, #0x0] - b _020E6F18 -_020E6CF4: - str r4, [r6, #0x0] - mov r0, r4, asr #0x1f - str r0, [r6, #0x4] - b _020E6F18 -_020E6D04: - str r4, [r6, #0x0] - b _020E6F18 -_020E6D0C: - str r4, [r6, #0x0] - b _020E6F18 -_020E6D14: - str r4, [r6, #0x0] - mov r0, r4, asr #0x1f - str r0, [r6, #0x4] - b _020E6F18 -_020E6D24: - ldrb r0, [sp, #0x24] - add r6, sp, #0x30 - cmp r0, #0x5 - bne _020E6D50 - ldr r0, [sp, #0x464] - mov r7, #0x1 - add r0, r0, #0x4 - str r0, [sp, #0x464] - ldr r0, [r0, #-0x4] - strh r0, [r6, #0x0] - b _020E6DDC -_020E6D50: - ldr r0, [sp, #0x464] - add r1, sp, #0x18 - add r0, r0, #0x4 - str r0, [sp, #0x464] - ldr r3, [r0, #-0x4] - mov r0, r6 - mov r2, #0x1 - strb r3, [sp, #0x18] - bl mbtowc - mov r7, r0 - b _020E6DDC -_020E6D7C: - mov r0, #0x25 - strh r0, [sp, #0x30] - add r6, sp, #0x30 - mov r7, #0x1 - b _020E6DDC -_020E6D90: - ldr r0, [sp, #0xc] - bl wcslen - movs r5, r0 - beq _020E6DC8 - ldr r1, [sp, #0xc] - mov r0, r8 - mov r2, r5 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E6DC8: - add sp, sp, #0x430 - add r0, r4, r5 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E6DDC: - ldrb r0, [sp, #0x20] - mov r5, r7 - cmp r0, #0x0 - beq _020E6E8C - cmp r0, #0x2 - moveq r1, #0x30 - movne r1, #0x20 - strh r1, [sp, #0x1c] - ldrh r0, [r6, #0x0] - cmp r0, #0x2b - cmpne r0, #0x2d - cmpne r0, #0x20 - bne _020E6E48 - cmp r1, #0x30 - bne _020E6E48 - mov r0, r8 - mov r1, r6 - mov r2, #0x1 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - add r6, r6, #0x2 - sub r7, r7, #0x1 -_020E6E48: - ldr r0, [sp, #0x28] - cmp r5, r0 - bge _020E6E8C -_020E6E54: - mov r0, r8 - add r1, sp, #0x1c - mov r2, #0x1 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x28] - add r5, r5, #0x1 - cmp r5, r0 - blt _020E6E54 -_020E6E8C: - cmp r7, #0x0 - beq _020E6EBC - mov r0, r8 - mov r1, r6 - mov r2, r7 - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr -_020E6EBC: - ldrb r0, [sp, #0x20] - cmp r0, #0x0 - bne _020E6F14 - ldr r0, [sp, #0x28] - cmp r5, r0 - bge _020E6F14 - mov r7, #0x20 -_020E6ED8: - mov r0, r8 - add r1, sp, #0x1a - mov r2, #0x1 - strh r7, [sp, #0x1a] - blx r9 - cmp r0, #0x0 - addeq sp, sp, #0x430 - mvneq r0, #0x0 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x28] - add r5, r5, #0x1 - cmp r5, r0 - blt _020E6ED8 -_020E6F14: - add r4, r4, r5 -_020E6F18: - ldrh r0, [r11, #0x0] - cmp r0, #0x0 - bne _020E6684 -_020E6F24: - mov r0, r4 - add sp, sp, #0x430 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E6F38: .word 0x0000FFFF -_020E6F3C: .word UNK_02106E40 -_020E6F40: .word UNK_02106E44 - - arm_func_start __wStringWrite -__wStringWrite: ; 0x020E6F44 - stmdb sp!, {r3-r5,lr} - mov r4, r0 - ldr r3, [r4, #0x8] - mov r5, r2 - ldr r2, [r4, #0x4] - add r0, r3, r5 - cmp r0, r2 - ldr r0, [r4, #0x0] - subhi r5, r2, r3 - mov r2, r5 - add r0, r0, r3, lsl #0x1 - bl wmemcpy - ldr r1, [r4, #0x8] - add r1, r1, r5 - str r1, [r4, #0x8] - ldmia sp!, {r3-r5,pc} - - arm_func_start swprintf -swprintf: ; 0x020E6F84 - stmdb sp!, {r0-r3} - stmdb sp!, {r3,lr} - add r3, sp, #0x10 - bic r3, r3, #0x3 - ldr r2, [sp, #0x10] - add r3, r3, #0x4 - bl vswprintf - ldmia sp!, {r3,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start vswprintf -vswprintf: ; 0x020E6FAC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r4, r1 - mov r12, #0x0 - ldr r0, _020E7018 ; =__wStringWrite - add r1, sp, #0x0 - str r5, [sp, #0x0] - str r4, [sp, #0x4] - str r12, [sp, #0x8] - bl __wpformatter - cmp r0, #0x0 - addlt sp, sp, #0xc - ldmltia sp!, {r4-r5,pc} - cmp r0, r4 - bhs _020E7000 - mov r1, r0, lsl #0x1 - mov r2, #0x0 - add sp, sp, #0xc - strh r2, [r5, r1] - ldmia sp!, {r4-r5,pc} -_020E7000: - mov r1, #0x0 - add r0, r5, r4, lsl #0x1 - strh r1, [r0, #-0x2] - sub r0, r1, #0x1 - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - .balign 4 -_020E7018: .word __wStringWrite - - arm_func_start wcslen -wcslen: ; 0x020E701C - mvn r2, #0x0 -_020E7020: - ldrh r1, [r0], #0x2 - add r2, r2, #0x1 - cmp r1, #0x0 - bne _020E7020 - mov r0, r2 - bx lr - - arm_func_start wcscpy -wcscpy: ; 0x020E7038 - mov r3, r0 -_020E703C: - ldrh r2, [r1], #0x2 - mov r12, r3 - strh r2, [r3], #0x2 - ldrh r2, [r12, #0x0] - cmp r2, #0x0 - bne _020E703C - bx lr - - arm_func_start wcschr -wcschr: ; 0x020E7058 - ldrh r2, [r0], #0x2 - cmp r2, #0x0 - beq _020E707C -_020E7064: - cmp r2, r1 - subeq r0, r0, #0x2 - bxeq lr - ldrh r2, [r0], #0x2 - cmp r2, #0x0 - bne _020E7064 -_020E707C: - cmp r1, #0x0 - movne r0, #0x0 - subeq r0, r0, #0x2 - bx lr - - arm_func_start __ieee754_pow -__ieee754_pow: ; 0x020E708C - stmdb sp!, {r0-r3} - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x80 - ldr r8, [sp, #0xb4] - ldr r6, [sp, #0xac] - ldr r0, [sp, #0xb0] - bic r9, r8, #0x80000000 - orrs r1, r9, r0 - ldr r7, [sp, #0xa8] - bic r4, r6, #0x80000000 - addeq sp, sp, #0x80 - moveq r0, #0x0 - ldreq r1, _020E7638 ; =0x3FF00000 - ldmeqia sp!, {r3-r11,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r1, _020E763C ; =0x7FF00000 - cmp r4, r1 - bgt _020E70FC - bne _020E70E4 - cmp r7, #0x0 - bne _020E70FC -_020E70E4: - ldr r1, _020E763C ; =0x7FF00000 - cmp r9, r1 - bgt _020E70FC - bne _020E7120 - cmp r0, #0x0 - beq _020E7120 -_020E70FC: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - ldr r2, [sp, #0xb0] - ldr r3, [sp, #0xb4] - bl _dadd - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7120: - cmp r6, #0x0 - mov r5, #0x0 - bge _020E7188 - ldr r1, _020E7640 ; =0x43400000 - cmp r9, r1 - movge r5, #0x2 - bge _020E7188 - sub r1, r1, #0x3500000 - cmp r9, r1 - blt _020E7188 - ldr r1, _020E7644 ; =0xFFFFFC01 - add r1, r1, r9, asr #0x14 - cmp r1, #0x14 - ble _020E7170 - rsb r2, r1, #0x34 - mov r1, r0, lsr r2 - cmp r0, r1, lsl r2 - andeq r1, r1, #0x1 - rsbeq r5, r1, #0x2 - b _020E7188 -_020E7170: - cmp r0, #0x0 - rsbeq r2, r1, #0x14 - moveq r1, r9, asr r2 - cmpeq r9, r1, lsl r2 - andeq r1, r1, #0x1 - rsbeq r5, r1, #0x2 -_020E7188: - cmp r0, #0x0 - bne _020E72E4 - ldr r1, _020E763C ; =0x7FF00000 - cmp r9, r1 - bne _020E723C - add r0, r4, #0x100000 - add r0, r0, #0xc0000000 - orrs r0, r0, r7 - bne _020E71D0 - ldr r0, [sp, #0xb0] - ldr r1, [sp, #0xb4] - mov r2, r0 - mov r3, r1 - bl _dsub - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E71D0: - sub r0, r1, #0x40000000 - cmp r4, r0 - blt _020E7200 - cmp r8, #0x0 - ldrge r0, [sp, #0xb0] - ldrge r1, [sp, #0xb4] - movlt r0, #0x0 - add sp, sp, #0x80 - movlt r1, r0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7200: - cmp r8, #0x0 - mov r0, #0x0 - addge sp, sp, #0x80 - movge r1, r0 - ldmgeia sp!, {r3-r11,lr} - addge sp, sp, #0x10 - bxge lr - ldr r2, [sp, #0xb0] - ldr r3, [sp, #0xb4] - mov r1, r0 - bl _dsub - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E723C: - sub r0, r1, #0x40000000 - cmp r9, r0 - bne _020E7288 - cmp r8, #0x0 - ldrge r0, [sp, #0xa8] - ldrge r1, [sp, #0xac] - addge sp, sp, #0x80 - ldmgeia sp!, {r3-r11,lr} - addge sp, sp, #0x10 - bxge lr - ldr r2, [sp, #0xa8] - ldr r3, [sp, #0xac] - sub r1, r1, #0x40000000 - mov r0, #0x0 - bl _ddiv - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7288: - cmp r8, #0x40000000 - bne _020E72B4 - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - mov r2, r0 - mov r3, r1 - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E72B4: - ldr r0, _020E7648 ; =0x3FE00000 - cmp r8, r0 - bne _020E72E4 - cmp r6, #0x0 - blt _020E72E4 - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - bl _dsqrt - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E72E4: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - bl fabs - str r0, [sp, #0x70] - str r1, [sp, #0x74] - cmp r7, #0x0 - bne _020E73E8 - ldr r0, _020E763C ; =0x7FF00000 - cmp r4, r0 - cmpne r4, #0x0 - subne r0, r0, #0x40000000 - cmpne r4, r0 - bne _020E73E8 - ldr r2, [sp, #0x70] - ldr r3, [sp, #0x74] - str r2, [sp, #0x78] - str r3, [sp, #0x7c] - cmp r8, #0x0 - bge _020E7344 - ldr r1, _020E7638 ; =0x3FF00000 - mov r0, #0x0 - bl _ddiv - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_020E7344: - cmp r6, #0x0 - bge _020E73D0 - add r0, r4, #0x100000 - add r0, r0, #0xc0000000 - orrs r0, r0, r5 - bne _020E73AC - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r0 - mov r3, r1 - bl _dsub - mov r4, r0 - mov r5, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r0 - mov r3, r1 - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r5 - bl _ddiv - str r0, [sp, #0x78] - str r1, [sp, #0x7c] - b _020E73D0 -_020E73AC: - cmp r5, #0x1 - bne _020E73D0 - mov r0, #0x0 - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - mov r1, r0 - bl _dsub - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_020E73D0: - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E73E8: - mov r0, r6, asr #0x1f - add r7, r0, #0x1 - orrs r0, r7, r5 - bne _020E7420 - ldr r0, _020E764C ; =UNK_02106B78 - ldr r1, _020E7650 ; =UNK_021D74A8 - ldr r0, [r0, #0x0] - mov r2, #0x21 - str r2, [r1, #0x0] - bl _f2d - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7420: - ldr r3, _020E7654 ; =0x41E00000 - cmp r9, r3 - ble _020E7724 - add r0, r3, #0x2100000 - cmp r9, r0 - ble _020E7490 - ldr r1, _020E7658 ; =0x3FEFFFFF - cmp r4, r1 - bgt _020E7464 - cmp r8, #0x0 - mov r0, #0x0 - addlt r1, r1, #0x40000001 - add sp, sp, #0x80 - movge r1, r0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7464: - add r0, r1, #0x1 - cmp r4, r0 - blt _020E7490 - cmp r8, #0x0 - mov r0, #0x0 - addgt r1, r1, #0x40000001 - add sp, sp, #0x80 - movle r1, r0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7490: - ldr r2, _020E7658 ; =0x3FEFFFFF - cmp r4, r2 - bge _020E74BC - cmp r8, #0x0 - mov r0, #0x0 - addlt r1, r2, #0x40000001 - add sp, sp, #0x80 - movge r1, r0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E74BC: - add r0, r2, #0x1 - cmp r4, r0 - ble _020E74E8 - cmp r8, #0x0 - mov r0, #0x0 - addgt r1, r2, #0x40000001 - add sp, sp, #0x80 - movle r1, r0 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E74E8: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - add r3, r2, #0x1 - mov r2, #0x0 - bl _dsub - mov r2, r0 - mov r3, r1 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - bl _dmul - mov r6, r1 - mov r4, r0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - ldr r1, _020E765C ; =0x3FD00000 - mov r0, #0x0 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7660 ; =0x55555555 - sub r1, r0, #0x15800000 - bl _dsub - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, #0x0 - ldr r1, _020E7648 ; =0x3FE00000 - bl _dsub - mov r2, r0 - mov r0, r4 - mov r3, r1 - mov r1, r6 - bl _dmul - mov r6, r0 - mov r8, r1 - mov r0, #0x60000000 - ldr r1, _020E7664 ; =0x3FF71547 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl _dmul - mov r4, r0 - mov r9, r1 - ldr r0, _020E7668 ; =0xF85DDF44 - ldr r1, _020E766C ; =0x3E54AE0B - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl _dmul - mov r11, r0 - mov r10, r1 - ldr r0, _020E7670 ; =0x652B82FE - ldr r1, _020E7664 ; =0x3FF71547 - mov r2, r6 - mov r3, r8 - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r11 - mov r1, r10 - bl _dsub - mov r6, r0 - mov r8, r1 - mov r0, r4 - mov r1, r9 - mov r2, r6 - mov r3, r8 - bl _dadd - mov r2, r4 - mov r3, r9 - str r1, [sp, #0x5c] - mov r0, #0x0 - str r0, [sp, #0x58] - bl _dsub - mov r2, r0 - mov r0, r6 - mov r3, r1 - mov r1, r8 - bl _dsub - mov r4, r0 - mov r8, r1 - b _020E7C80 - .balign 4 -_020E7638: .word 0x3FF00000 -_020E763C: .word 0x7FF00000 -_020E7640: .word 0x43400000 -_020E7644: .word 0xFFFFFC01 -_020E7648: .word 0x3FE00000 -_020E764C: .word UNK_02106B78 -_020E7650: .word UNK_021D74A8 -_020E7654: .word 0x41E00000 -_020E7658: .word 0x3FEFFFFF -_020E765C: .word 0x3FD00000 -_020E7660: .word 0x55555555 -_020E7664: .word 0x3FF71547 -_020E7668: .word 0xF85DDF44 -_020E766C: .word 0x3E54AE0B -_020E7670: .word 0x652B82FE -_020E7674: .word 0x0003988E -_020E7678: .word 0x000BB67A -_020E767C: .word UNK_02104754 -_020E7680: .word 0x4A454EEF -_020E7684: .word 0x3FCA7E28 -_020E7688: .word 0x93C9DB65 -_020E768C: .word 0x3FCD864A -_020E7690: .word 0xA91D4101 -_020E7694: .word 0x3FD17460 -_020E7698: .word 0x518F264D -_020E769C: .word 0x3FD55555 -_020E76A0: .word 0xDB6FABFF -_020E76A4: .word 0x3FDB6DB6 -_020E76A8: .word 0x33333303 -_020E76AC: .word 0x3FE33333 -_020E76B0: .word 0x40080000 -_020E76B4: .word 0x3FEEC709 -_020E76B8: .word 0x145B01F5 -_020E76BC: .word 0xBE3E2FE0 -_020E76C0: .word 0xDC3A03FD -_020E76C4: .word UNK_02104764 -_020E76C8: .word UNK_02104744 -_020E76CC: .word 0x40900000 -_020E76D0: .word 0x8800759C -_020E76D4: .word 0x7E37E43C -_020E76D8: .word 0x3C971547 -_020E76DC: .word 0x3F6F3400 -_020E76E0: .word 0xC2F8F359 -_020E76E4: .word 0x01A56E1F -_020E76E8: .word 0x3FE62E43 -_020E76EC: .word 0xFEFA39EF -_020E76F0: .word 0x3FE62E42 -_020E76F4: .word 0x0CA86C39 -_020E76F8: .word 0xBE205C61 -_020E76FC: .word 0x72BEA4D0 -_020E7700: .word 0x3E663769 -_020E7704: .word 0xC5D26BF1 -_020E7708: .word 0xBEBBBD41 -_020E770C: .word 0xAF25DE2C -_020E7710: .word 0x3F11566A -_020E7714: .word 0x16BEBD93 -_020E7718: .word 0xBF66C16C -_020E771C: .word 0x5555553E -_020E7720: .word 0x3FC55555 -_020E7724: - cmp r4, #0x100000 - mov r6, #0x0 - bge _020E7754 - ldr r0, [sp, #0x70] - ldr r1, [sp, #0x74] - mov r2, r6 - add r3, r3, #0x1600000 - bl _dmul - mov r4, r1 - str r0, [sp, #0x70] - str r4, [sp, #0x74] - sub r6, r6, #0x35 -_020E7754: - ldr r0, _020E7644 ; =0xFFFFFC01 - ldr r1, _020E7674 ; =0x0003988E - and r2, r4, r0, lsr #0xc - add r0, r0, r4, asr #0x14 - orr r9, r2, #0xff00000 - cmp r2, r1 - add r6, r6, r0 - orr r9, r9, #0x30000000 - movle r8, #0x0 - ble _020E7794 - ldr r0, _020E7678 ; =0x000BB67A - cmp r2, r0 - movlt r8, #0x1 - addge r6, r6, #0x1 - subge r9, r9, #0x100000 - movge r8, #0x0 -_020E7794: - ldr r2, _020E767C ; =UNK_02104754 - ldr r0, [sp, #0x70] - add r1, r2, r8, lsl #0x3 - ldr r3, [r1, #0x4] - ldr r2, [r2, r8, lsl #0x3] - mov r1, r9 - str r9, [sp, #0x74] - bl _dsub - ldr r2, _020E767C ; =UNK_02104754 - mov r10, r0 - add r3, r2, r8, lsl #0x3 - mov r4, r1 - ldr r0, [sp, #0x70] - ldr r2, [r2, r8, lsl #0x3] - ldr r3, [r3, #0x4] - mov r1, r9 - bl _dadd - mov r3, r1 - mov r2, r0 - ldr r1, _020E7638 ; =0x3FF00000 - mov r0, #0x0 - bl _ddiv - str r1, [sp, #0x24] - mov r11, r0 - ldr r3, [sp, #0x24] - mov r0, r10 - mov r1, r4 - mov r2, r11 - bl _dmul - mov r2, r9, asr #0x1 - orr r2, r2, #0x20000000 - mov r9, r1 - add r2, r2, #0x80000 - add r1, r2, r8, lsl #0x12 - ldr r2, _020E767C ; =UNK_02104754 - str r0, [sp, #0x28] - add r3, r2, r8, lsl #0x3 - mov r0, #0x0 - ldr r2, [r2, r8, lsl #0x3] - ldr r3, [r3, #0x4] - str r9, [sp, #0x4c] - str r1, [sp, #0x44] - str r0, [sp, #0x48] - str r0, [sp, #0x40] - bl _dsub - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x70] - ldr r1, [sp, #0x74] - bl _dsub - str r0, [sp, #0x2c] - str r1, [sp, #0x1c] - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - mov r1, r9 - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r10 - mov r1, r4 - bl _dsub - mov r10, r0 - mov r4, r1 - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x1c] - ldr r0, [sp, #0x48] - mov r1, r9 - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r10 - mov r1, r4 - bl _dsub - mov r3, r1 - mov r2, r0 - ldr r1, [sp, #0x24] - mov r0, r11 - bl _dmul - str r0, [sp, #0x30] - ldr r0, [sp, #0x28] - str r1, [sp, #0x14] - mov r1, r9 - mov r2, r0 - mov r3, r9 - bl _dmul - mov r4, r0 - mov r10, r1 - mov r2, r4 - mov r3, r10 - bl _dmul - str r0, [sp, #0x34] - mov r11, r1 - ldr r0, _020E7680 ; =0x4A454EEF - ldr r1, _020E7684 ; =0x3FCA7E28 - mov r2, r4 - mov r3, r10 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7688 ; =0x93C9DB65 - ldr r1, _020E768C ; =0x3FCD864A - bl _dadd - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7690 ; =0xA91D4101 - ldr r1, _020E7694 ; =0x3FD17460 - bl _dadd - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7698 ; =0x518F264D - ldr r1, _020E769C ; =0x3FD55555 - bl _dadd - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76A0 ; =0xDB6FABFF - ldr r1, _020E76A4 ; =0x3FDB6DB6 - bl _dadd - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76A8 ; =0x33333303 - ldr r1, _020E76AC ; =0x3FE33333 - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x34] - mov r1, r11 - bl _dmul - mov r4, r0 - mov r10, r1 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x28] - mov r1, r9 - mov r3, r9 - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x30] - ldr r1, [sp, #0x14] - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dadd - mov r4, r0 - ldr r0, [sp, #0x48] - mov r10, r1 - mov r1, r9 - mov r2, r0 - mov r3, r1 - bl _dmul - str r1, [sp, #0xc] - mov r11, r0 - ldr r1, _020E76B0 ; =0x40080000 - ldr r3, [sp, #0xc] - mov r0, #0x0 - mov r2, r11 - bl _dadd - mov r2, r4 - mov r3, r10 - bl _dadd - mov r0, #0x0 - ldr r3, _020E76B0 ; =0x40080000 - mov r2, r0 - str r1, [sp, #0x44] - str r0, [sp, #0x40] - bl _dsub - ldr r3, [sp, #0xc] - mov r2, r11 - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dsub - str r0, [sp, #0x38] - str r1, [sp, #0x4] - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - mov r1, r9 - bl _dmul - mov r4, r0 - mov r10, r1 - ldr r0, [sp, #0x30] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - bl _dmul - str r0, [sp, #0x3c] - mov r11, r1 - ldr r0, [sp, #0x38] - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x28] - mov r3, r9 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x3c] - mov r1, r11 - bl _dadd - mov r9, r0 - mov r11, r1 - mov r0, r4 - mov r1, r10 - mov r2, r9 - mov r3, r11 - bl _dadd - mov r0, #0x0 - mov r2, r4 - mov r3, r10 - str r1, [sp, #0x6c] - str r0, [sp, #0x68] - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r9 - mov r1, r11 - bl _dsub - mov r10, r1 - mov r11, r0 - ldr r1, _020E76B4 ; =0x3FEEC709 - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r0, #0xe0000000 - bl _dmul - mov r4, r0 - mov r9, r1 - ldr r0, _020E76B8 ; =0x145B01F5 - ldr r1, _020E76BC ; =0xBE3E2FE0 - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl _dmul - mov r2, r11 - mov r3, r10 - mov r11, r0 - mov r10, r1 - ldr r0, _020E76C0 ; =0xDC3A03FD - ldr r1, _020E76B4 ; =0x3FEEC709 - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r11 - mov r1, r10 - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, _020E76C4 ; =UNK_02104764 - add r1, r0, r8, lsl #0x3 - ldr r0, [r0, r8, lsl #0x3] - ldr r1, [r1, #0x4] - bl _dadd - mov r11, r0 - mov r10, r1 - mov r0, r6 - bl _dflt - str r0, [sp, #0x50] - str r1, [sp, #0x54] - mov r0, r4 - mov r1, r9 - mov r2, r11 - mov r3, r10 - bl _dadd - ldr r2, _020E76C8 ; =UNK_02104744 - add r3, r2, r8, lsl #0x3 - ldr r2, [r2, r8, lsl #0x3] - ldr r3, [r3, #0x4] - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dadd - str r1, [sp, #0x5c] - mov r0, #0x0 - str r0, [sp, #0x58] - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl _dsub - ldr r2, _020E76C8 ; =UNK_02104744 - add r3, r2, r8, lsl #0x3 - ldr r2, [r2, r8, lsl #0x3] - ldr r3, [r3, #0x4] - bl _dsub - mov r2, r4 - mov r3, r9 - bl _dsub - mov r2, r0 - mov r0, r11 - mov r3, r1 - mov r1, r10 - bl _dsub - mov r4, r0 - mov r8, r1 -_020E7C80: - sub r0, r5, #0x1 - ldr r1, [sp, #0xb4] - orrs r0, r7, r0 - ldr r5, _020E7638 ; =0x3FF00000 - mov r2, #0x0 - ldr r0, [sp, #0xb0] - mov r3, r1 - mov r6, #0x0 - subeq r5, r5, #0x80000000 - str r1, [sp, #0x64] - str r2, [sp, #0x60] - bl _dsub - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x58] - ldr r1, [sp, #0x5c] - bl _dmul - mov r7, r0 - mov r9, r1 - ldr r0, [sp, #0xb0] - ldr r1, [sp, #0xb4] - mov r2, r4 - mov r3, r8 - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r9 - bl _dadd - mov r7, r0 - mov r8, r1 - ldr r0, [sp, #0x60] - ldr r1, [sp, #0x64] - ldr r2, [sp, #0x58] - ldr r3, [sp, #0x5c] - bl _dmul - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - str r2, [sp, #0x68] - str r3, [sp, #0x6c] - bl _dadd - mov r9, r1 - ldr r2, _020E76CC ; =0x40900000 - str r0, [sp, #0x78] - str r9, [sp, #0x7c] - cmp r9, r2 - blt _020E7E0C - add r1, r9, #0xf700000 - add r1, r1, #0xb0000000 - orrs r0, r1, r0 - beq _020E7D8C - ldr r0, _020E76D0 ; =0x8800759C - ldr r1, _020E76D4 ; =0x7E37E43C - mov r2, r6 - mov r3, r5 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76D0 ; =0x8800759C - ldr r1, _020E76D4 ; =0x7E37E43C - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7D8C: - ldr r0, _020E7670 ; =0x652B82FE - ldr r1, _020E76D8 ; =0x3C971547 - mov r2, r7 - mov r3, r8 - bl _dadd - mov r4, r0 - mov r10, r1 - ldr r0, [sp, #0x78] - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r1, r9 - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r10 - bl _dgr - bls _020E7EC0 - ldr r0, _020E76D0 ; =0x8800759C - ldr r1, _020E76D4 ; =0x7E37E43C - mov r2, r6 - mov r3, r5 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76D0 ; =0x8800759C - ldr r1, _020E76D4 ; =0x7E37E43C - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7E0C: - bic r3, r9, #0x80000000 - add r2, r2, #0xcc00 - cmp r3, r2 - blt _020E7EC0 - ldr r2, _020E76DC ; =0x3F6F3400 - add r2, r9, r2 - orrs r2, r2, r0 - beq _020E7E64 - ldr r0, _020E76E0 ; =0xC2F8F359 - ldr r1, _020E76E4 ; =0x01A56E1F - mov r2, r6 - mov r3, r5 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76E0 ; =0xC2F8F359 - ldr r1, _020E76E4 ; =0x01A56E1F - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7E64: - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - bl _dleq - bhi _020E7EC0 - ldr r0, _020E76E0 ; =0xC2F8F359 - ldr r1, _020E76E4 ; =0x01A56E1F - mov r2, r6 - mov r3, r5 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E76E0 ; =0xC2F8F359 - ldr r1, _020E76E4 ; =0x01A56E1F - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr -_020E7EC0: - ldr r0, _020E7644 ; =0xFFFFFC01 - bic r3, r9, #0x80000000 - ldr r1, _020E7648 ; =0x3FE00000 - add r2, r0, r3, asr #0x14 - cmp r3, r1 - mov r4, #0x0 - ble _020E7F3C - mov r1, #0x100000 - add r2, r2, #0x1 - add r2, r9, r1, asr r2 - bic r3, r2, #0x80000000 - add r0, r0, r3, asr #0x14 - sub r3, r1, #0x1 - mvn r3, r3, asr r0 - sub r1, r1, #0x1 - and r1, r2, r1 - and r2, r2, r3 - str r2, [sp, #0x54] - str r4, [sp, #0x50] - orr r1, r1, #0x100000 - rsb r0, r0, #0x14 - mov r4, r1, asr r0 - cmp r9, #0x0 - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x6c] - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - rsblt r4, r4, #0x0 - bl _dsub - str r0, [sp, #0x68] - str r1, [sp, #0x6c] -_020E7F3C: - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r0, r7 - mov r1, r8 - bl _dadd - mov r3, r1 - mov r0, #0x0 - ldr r1, _020E76E8 ; =0x3FE62E43 - mov r2, r0 - str r3, [sp, #0x54] - str r0, [sp, #0x50] - bl _dmul - mov r9, r0 - mov r10, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl _dsub - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r8 - bl _dsub - mov r2, r0 - mov r3, r1 - ldr r0, _020E76EC ; =0xFEFA39EF - ldr r1, _020E76F0 ; =0x3FE62E42 - bl _dmul - mov r7, r0 - mov r8, r1 - ldr r0, _020E76F4 ; =0x0CA86C39 - ldr r1, _020E76F8 ; =0xBE205C61 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r8 - bl _dadd - mov r7, r0 - mov r8, r1 - mov r0, r9 - mov r1, r10 - mov r2, r7 - mov r3, r8 - bl _dadd - mov r2, r9 - mov r3, r10 - str r0, [sp, #0x78] - str r1, [sp, #0x7c] - bl _dsub - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - bl _dsub - mov r8, r0 - mov r9, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r0 - mov r3, r1 - bl _dmul - mov r2, r0 - str r2, [sp, #0x50] - mov r3, r1 - str r3, [sp, #0x54] - ldr r0, _020E76FC ; =0x72BEA4D0 - ldr r1, _020E7700 ; =0x3E663769 - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7704 ; =0xC5D26BF1 - ldr r1, _020E7708 ; =0xBEBBBD41 - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E770C ; =0xAF25DE2C - ldr r1, _020E7710 ; =0x3F11566A - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E7714 ; =0x16BEBD93 - ldr r1, _020E7718 ; =0xBF66C16C - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, _020E771C ; =0x5555553E - ldr r1, _020E7720 ; =0x3FC55555 - bl _dadd - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl _dmul - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - bl _dsub - mov r2, r0 - str r2, [sp, #0x58] - mov r3, r1 - str r3, [sp, #0x5c] - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - bl _dmul - mov r7, r0 - mov r10, r1 - ldr r0, [sp, #0x58] - ldr r1, [sp, #0x5c] - mov r2, #0x0 - mov r3, #0x40000000 - bl _dsub - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r10 - bl _ddiv - mov r7, r0 - mov r10, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r8 - mov r3, r9 - bl _dmul - mov r2, r0 - mov r0, r8 - mov r3, r1 - mov r1, r9 - bl _dadd - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r10 - bl _dsub - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - bl _dsub - mov r3, r1 - mov r2, r0 - ldr r1, _020E7638 ; =0x3FF00000 - mov r0, #0x0 - bl _dsub - add r3, r1, r4, lsl #0x14 - mov r2, r3, asr #0x14 - str r0, [sp, #0x78] - cmp r2, #0x0 - str r1, [sp, #0x7c] - addgt r0, sp, #0x78 - strgt r3, [r0, #0x4] - bgt _020E81F0 - mov r2, r4 - bl scalbn - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_020E81F0: - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - mov r0, r6 - mov r1, r5 - bl _dmul - add sp, sp, #0x80 - ldmia sp!, {r3-r11,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start copysign -copysign: ; 0x020E8214 - stmdb sp!, {r0-r3} - ldr r1, [sp, #0x4] - ldr r0, [sp, #0xc] - bic r1, r1, #0x80000000 - and r0, r0, #0x80000000 - orr r1, r1, r0 - ldr r0, [sp, #0x0] - str r1, [sp, #0x4] - add sp, sp, #0x10 - bx lr - - arm_func_start fabs -fabs: ; 0x020E823C - stmdb sp!, {r0-r3} - add r2, sp, #0x0 - ldr r1, [r2, #0x4] - ldr r0, [sp, #0x0] - bic r1, r1, #0x80000000 - str r1, [r2, #0x4] - add sp, sp, #0x10 - bx lr - - arm_func_start frexp -frexp: ; 0x020E825C - stmdb sp!, {r0-r3} - stmdb sp!, {r4,lr} - ldr r1, [sp, #0xc] - ldr r0, _020E8308 ; =0x7FF00000 - mov r4, r2 - bic r3, r1, #0x80000000 - mov r2, #0x0 - str r2, [r4, #0x0] - cmp r3, r0 - ldr r0, [sp, #0x8] - bge _020E8290 - orrs r0, r3, r0 - bne _020E82A4 -_020E8290: - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E82A4: - cmp r3, #0x100000 - bge _020E82D0 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - ldr r3, _020E830C ; =0x43500000 - bl _dmul - mvn r2, #0x35 - str r0, [sp, #0x8] - str r1, [sp, #0xc] - str r2, [r4, #0x0] - bic r3, r1, #0x80000000 -_020E82D0: - ldr r2, _020E8310 ; =0x800FFFFF - ldr r0, _020E8314 ; =0xFFFFFC02 - and r1, r1, r2 - orr r1, r1, #0xfe00000 - orr r1, r1, #0x30000000 - ldr r2, [r4, #0x0] - add r0, r0, r3, asr #0x14 - add r2, r2, r0 - ldr r0, [sp, #0x8] - str r2, [r4, #0x0] - str r1, [sp, #0xc] - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E8308: .word 0x7FF00000 -_020E830C: .word 0x43500000 -_020E8310: .word 0x800FFFFF -_020E8314: .word 0xFFFFFC02 - - arm_func_start ldexp -ldexp: ; 0x020E8318 - stmdb sp!, {r0-r3} - stmdb sp!, {r4,lr} - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - mov r4, r2 - bl __fpclassifyf - cmp r0, #0x2 - ble _020E8350 - mov r0, #0x0 - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - mov r1, r0 - bl _deq - bne _020E8364 -_020E8350: - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E8364: - ldr r3, [sp, #0xc] - ldr r0, _020E8538 ; =0x7FF00000 - ldr r1, [sp, #0x8] - and r0, r3, r0 - movs r12, r0, asr #0x14 - bne _020E83F0 - bic r0, r3, #0x80000000 - orrs r0, r1, r0 - ldreq r0, [sp, #0x8] - ldreq r1, [sp, #0xc] - ldmeqia sp!, {r4,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - ldr r3, _020E853C ; =0x43500000 - mov r2, #0x0 - bl _dmul - mov r3, r1 - ldr r1, _020E8538 ; =0x7FF00000 - ldr ip, _020E8540 ; =0xFFFF3CB0 - and r1, r3, r1 - mov r2, r0 - mov r0, r1, asr #0x14 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - cmp r4, r12 - sub r12, r0, #0x36 - bge _020E83F0 - ldr r0, _020E8544 ; =0xC2F8F359 - ldr r1, _020E8548 ; =0x01A56E1F - bl _dmul - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E83F0: - ldr r0, _020E854C ; =0x000007FF - cmp r12, r0 - bne _020E841C - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - mov r2, r0 - mov r3, r1 - bl _dadd - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E841C: - add r2, r12, r4 - sub r0, r0, #0x1 - cmp r2, r0 - ble _020E8460 - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - ldr r0, _020E8550 ; =0x8800759C - ldr r1, _020E8554 ; =0x7E37E43C - bl copysign - mov r2, r0 - mov r3, r1 - ldr r0, _020E8550 ; =0x8800759C - ldr r1, _020E8554 ; =0x7E37E43C - bl _dmul - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E8460: - cmp r2, #0x0 - ble _020E8488 - ldr r1, _020E8558 ; =0x800FFFFF - ldr r0, [sp, #0x8] - and r1, r3, r1 - orr r1, r1, r2, lsl #0x14 - str r1, [sp, #0xc] - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E8488: - mvn r0, #0x35 - cmp r2, r0 - bgt _020E8508 - ldr r0, _020E855C ; =0x0000C350 - cmp r4, r0 - ble _020E84D4 - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - ldr r0, _020E8550 ; =0x8800759C - ldr r1, _020E8554 ; =0x7E37E43C - bl copysign - mov r2, r0 - mov r3, r1 - ldr r0, _020E8550 ; =0x8800759C - ldr r1, _020E8554 ; =0x7E37E43C - bl _dmul - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E84D4: - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - ldr r0, _020E8544 ; =0xC2F8F359 - ldr r1, _020E8548 ; =0x01A56E1F - bl copysign - mov r2, r0 - mov r3, r1 - ldr r0, _020E8544 ; =0xC2F8F359 - ldr r1, _020E8548 ; =0x01A56E1F - bl _dmul - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr -_020E8508: - ldr r0, _020E8558 ; =0x800FFFFF - add r1, r2, #0x36 - and r0, r3, r0 - orr r3, r0, r1, lsl #0x14 - ldr r2, [sp, #0x8] - ldr r1, _020E8560 ; =0x3C900000 - mov r0, #0x0 - str r3, [sp, #0xc] - bl _dmul - ldmia sp!, {r4,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020E8538: .word 0x7FF00000 -_020E853C: .word 0x43500000 -_020E8540: .word 0xFFFF3CB0 -_020E8544: .word 0xC2F8F359 -_020E8548: .word 0x01A56E1F -_020E854C: .word 0x000007FF -_020E8550: .word 0x8800759C -_020E8554: .word 0x7E37E43C -_020E8558: .word 0x800FFFFF -_020E855C: .word 0x0000C350 -_020E8560: .word 0x3C900000 - - arm_func_start pow -pow: ; 0x020E8564 - ldr ip, _020E856C ; =__ieee754_pow - bx r12 - .balign 4 -_020E856C: .word __ieee754_pow - - arm_func_start __must_round -__must_round: ; 0x020E8570 - add r3, r0, #0x5 - ldrb r2, [r3, r1] - add r12, r3, r1 - cmp r2, #0x5 - movhi r0, #0x1 - bxhi lr - mvncc r0, #0x0 - bxcc lr - ldrb r2, [r0, #0x4] - add r12, r12, #0x1 - add r3, r3, r2 - cmp r12, r3 - bhs _020E85C0 -_020E85A4: - ldrb r2, [r12, #0x0] - cmp r2, #0x0 - movne r0, #0x1 - bxne lr - add r12, r12, #0x1 - cmp r12, r3 - blo _020E85A4 -_020E85C0: - sub r1, r1, #0x1 - add r0, r0, r1 - ldrb r0, [r0, #0x5] - tst r0, #0x1 - movne r0, #0x1 - mvneq r0, #0x0 - bx lr - - arm_func_start __dorounddecup -__dorounddecup: ; 0x020E85DC - add r3, r0, #0x5 - add r1, r3, r1 - sub r12, r1, #0x1 - mov r1, #0x0 -_020E85EC: - ldrb r2, [r12, #0x0] - cmp r2, #0x9 - addcc r0, r2, #0x1 - strccb r0, [r12, #0x0] - bxcc lr - cmp r12, r3 - bne _020E8620 - mov r1, #0x1 - strb r1, [r12, #0x0] - ldrsh r1, [r0, #0x2] - add r1, r1, #0x1 - strh r1, [r0, #0x2] - bx lr -_020E8620: - strb r1, [r12], #-0x1 - b _020E85EC - bx lr - - arm_func_start __rounddec -__rounddec: ; 0x020E862C - stmdb sp!, {r3-r5,lr} - mov r4, r1 - mov r5, r0 - cmp r4, #0x0 - ldmleia sp!, {r3-r5,pc} - ldrb r2, [r5, #0x4] - cmp r4, r2 - ldmgeia sp!, {r3-r5,pc} - bl __must_round - strb r4, [r5, #0x4] - cmp r0, #0x0 - ldmltia sp!, {r3-r5,pc} - mov r0, r5 - mov r1, r4 - bl __dorounddecup - ldmia sp!, {r3-r5,pc} - - arm_func_start __ull2dec -__ull2dec: ; 0x020E866C - stmdb sp!, {r3-r11,lr} - mov r10, r0 - mov r0, #0x0 - mov r8, r2 - strb r0, [r10, #0x0] - mov r9, r1 - cmp r8, #0x0 - strb r0, [r10, #0x4] - cmpeq r9, #0x0 - beq _020E86F8 - mov r6, #0xa - mov r11, r0 - mov r5, r0 - mov r4, r0 -_020E86A4: - ldrb r1, [r10, #0x4] - mov r0, r9 - mov r2, r6 - add r3, r1, #0x1 - mov r7, r1 - strb r3, [r10, #0x4] - mov r1, r8 - mov r3, r11 - bl _ull_mod - add r1, r10, r7 - strb r0, [r1, #0x5] - mov r0, r9 - mov r1, r8 - mov r2, #0xa - mov r3, #0x0 - bl _ll_udiv - mov r8, r1 - mov r9, r0 - cmp r8, r5 - cmpeq r9, r4 - bne _020E86A4 -_020E86F8: - ldrb r0, [r10, #0x4] - add r2, r10, #0x5 - add r0, r2, r0 - sub r3, r0, #0x1 - cmp r2, r3 - bhs _020E8728 -_020E8710: - ldrb r0, [r3, #0x0] - ldrb r1, [r2, #0x0] - strb r0, [r2], #0x1 - strb r1, [r3], #-0x1 - cmp r2, r3 - blo _020E8710 -_020E8728: - ldrb r0, [r10, #0x4] - sub r0, r0, #0x1 - strh r0, [r10, #0x2] - ldmia sp!, {r3-r11,pc} - - arm_func_start __timesdec -__timesdec: ; 0x020E8738 - stmdb sp!, {r3-r11,lr} - sub sp, sp, #0x40 - ldrb r6, [r1, #0x4] - ldrb r5, [r2, #0x4] - mov r4, #0x0 - add r3, sp, #0x0 - add r5, r6, r5 - sub r5, r5, #0x1 - add r3, r3, r5 - add r6, r3, #0x1 - mov r7, r6 - strb r4, [r0, #0x0] - cmp r5, #0x0 - ble _020E8800 - add lr, r1, #0x5 - add r11, r2, #0x5 -_020E8778: - ldrb r3, [r2, #0x4] - sub r10, r3, #0x1 - sub r3, r5, r10 - subs r9, r3, #0x1 - ldrb r3, [r1, #0x4] - movmi r9, #0x0 - submi r10, r5, #0x1 - add r8, r10, #0x1 - sub r3, r3, r9 - cmp r8, r3 - movgt r8, r3 - add r10, r11, r10 - add r9, lr, r9 - cmp r8, #0x0 - ble _020E87CC -_020E87B4: - ldrb r12, [r9], #0x1 - ldrb r3, [r10], #-0x1 - sub r8, r8, #0x1 - cmp r8, #0x0 - mla r4, r12, r3, r4 - bgt _020E87B4 -_020E87CC: - ldr r3, _020E88B8 ; =0xCCCCCCCD - sub r5, r5, #0x1 - umull r8, r9, r4, r3 - mov r9, r9, lsr #0x3 - cmp r5, #0x0 - mov r10, #0xa - umull r8, r9, r10, r9 - sub r9, r4, r8 - strb r9, [r6, #-0x1]! - mov r8, r4 - umull r3, r4, r8, r3 - mov r4, r4, lsr #0x3 - bgt _020E8778 -_020E8800: - ldrsh r3, [r1, #0x2] - ldrsh r1, [r2, #0x2] - cmp r4, #0x0 - add r1, r3, r1 - strh r1, [r0, #0x2] - beq _020E8828 - strb r4, [r6, #-0x1]! - ldrsh r1, [r0, #0x2] - add r1, r1, #0x1 - strh r1, [r0, #0x2] -_020E8828: - mov r3, #0x0 - b _020E8840 -_020E8830: - ldrb r2, [r6], #0x1 - add r1, r0, r3 - add r3, r3, #0x1 - strb r2, [r1, #0x5] -_020E8840: - cmp r3, #0x20 - bge _020E8850 - cmp r6, r7 - blo _020E8830 -_020E8850: - cmp r6, r7 - addcs sp, sp, #0x40 - strb r3, [r0, #0x4] - ldmcsia sp!, {r3-r11,pc} - ldrb r1, [r6, #0x0] - cmp r1, #0x5 - addcc sp, sp, #0x40 - ldmccia sp!, {r3-r11,pc} - bne _020E88A8 - add r2, r6, #0x1 - cmp r2, r7 - bhs _020E8898 -_020E8880: - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - bne _020E88A8 - add r2, r2, #0x1 - cmp r2, r7 - blo _020E8880 -_020E8898: - ldrb r1, [r6, #-0x1] - tst r1, #0x1 - addeq sp, sp, #0x40 - ldmeqia sp!, {r3-r11,pc} -_020E88A8: - ldrb r1, [r0, #0x4] - bl __dorounddecup - add sp, sp, #0x40 - ldmia sp!, {r3-r11,pc} - .balign 4 -_020E88B8: .word 0xCCCCCCCD - - arm_func_start __str2dec -__str2dec: ; 0x020E88BC - stmdb sp!, {r3,lr} - strh r2, [r0, #0x2] - mov r12, #0x0 - strb r12, [r0, #0x0] - b _020E88E4 -_020E88D0: - ldrsb r3, [r1], #0x1 - add r2, r0, r12 - add r12, r12, #0x1 - sub r3, r3, #0x30 - strb r3, [r2, #0x5] -_020E88E4: - cmp r12, #0x20 - bge _020E88F8 - ldrsb r2, [r1, #0x0] - cmp r2, #0x0 - bne _020E88D0 -_020E88F8: - strb r12, [r0, #0x4] - ldrsb r2, [r1, #0x0] - cmp r2, #0x0 - ldmeqia sp!, {r3,pc} - cmp r2, #0x5 - ldmltia sp!, {r3,pc} - bgt _020E894C - ldrsb r2, [r1, #0x1] - add r1, r1, #0x1 - cmp r2, #0x0 - beq _020E8938 -_020E8924: - cmp r2, #0x30 - bne _020E894C - ldrsb r2, [r1, #0x1]! - cmp r2, #0x0 - bne _020E8924 -_020E8938: - sub r1, r12, #0x1 - add r1, r0, r1 - ldrb r1, [r1, #0x5] - tst r1, #0x1 - ldmeqia sp!, {r3,pc} -_020E894C: - ldrb r1, [r0, #0x4] - bl __dorounddecup - ldmia sp!, {r3,pc} - - arm_func_start __two_exp -__two_exp: ; 0x020E8958 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4c - mov r4, r1 - mvn r2, #0x34 - mov r5, r0 - cmp r4, r2 - bgt _020E8988 - bge _020E8A54 - sub r0, r2, #0xb - cmp r4, r0 - beq _020E8A3C - b _020E8BE4 -_020E8988: - add r1, r4, #0x20 - cmp r1, #0x28 - addls pc, pc, r1, lsl #0x2 - b _020E8BE4 -_020E8998: - b _020E8A68 -_020E899C: - b _020E8BE4 -_020E89A0: - b _020E8BE4 -_020E89A4: - b _020E8BE4 -_020E89A8: - b _020E8BE4 -_020E89AC: - b _020E8BE4 -_020E89B0: - b _020E8BE4 -_020E89B4: - b _020E8BE4 -_020E89B8: - b _020E8BE4 -_020E89BC: - b _020E8BE4 -_020E89C0: - b _020E8BE4 -_020E89C4: - b _020E8BE4 -_020E89C8: - b _020E8BE4 -_020E89CC: - b _020E8BE4 -_020E89D0: - b _020E8BE4 -_020E89D4: - b _020E8BE4 -_020E89D8: - b _020E8A7C -_020E89DC: - b _020E8BE4 -_020E89E0: - b _020E8BE4 -_020E89E4: - b _020E8BE4 -_020E89E8: - b _020E8BE4 -_020E89EC: - b _020E8BE4 -_020E89F0: - b _020E8BE4 -_020E89F4: - b _020E8BE4 -_020E89F8: - b _020E8A90 -_020E89FC: - b _020E8AA4 -_020E8A00: - b _020E8AB8 -_020E8A04: - b _020E8ACC -_020E8A08: - b _020E8AE0 -_020E8A0C: - b _020E8AF4 -_020E8A10: - b _020E8B08 -_020E8A14: - b _020E8B1C -_020E8A18: - b _020E8B30 -_020E8A1C: - b _020E8B44 -_020E8A20: - b _020E8B58 -_020E8A24: - b _020E8B6C -_020E8A28: - b _020E8B80 -_020E8A2C: - b _020E8B94 -_020E8A30: - b _020E8BA8 -_020E8A34: - b _020E8BBC -_020E8A38: - b _020E8BD0 -_020E8A3C: - ldr r1, _020E8C88 ; =UNK_02106E88 - mov r0, r5 - mvn r2, #0x13 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8A54: - ldr r1, _020E8C8C ; =UNK_02106EB8 - add r2, r2, #0x25 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8A68: - ldr r1, _020E8C90 ; =UNK_02106EE0 - add r2, r2, #0x2b - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8A7C: - ldr r1, _020E8C94 ; =UNK_02106EF8 - add r2, r2, #0x30 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8A90: - ldr r1, _020E8C98 ; =UNK_02106F08 - add r2, r2, #0x32 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8AA4: - ldr r1, _020E8C9C ; =UNK_02106F10 - add r2, r2, #0x32 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8AB8: - ldr r1, _020E8CA0 ; =UNK_02106F18 - add r2, r2, #0x33 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8ACC: - ldr r1, _020E8CA4 ; =UNK_02106F20 - add r2, r2, #0x33 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8AE0: - ldr r1, _020E8CA8 ; =UNK_02106F28 - add r2, r2, #0x33 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8AF4: - ldr r1, _020E8CAC ; =UNK_02106F2C - add r2, r2, #0x34 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B08: - ldr r1, _020E8CB0 ; =UNK_02106F30 - add r2, r2, #0x34 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B1C: - ldr r1, _020E8CB4 ; =UNK_02106F34 - add r2, r2, #0x34 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B30: - ldr r1, _020E8CB8 ; =UNK_02106F38 - mov r2, #0x0 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B44: - ldr r1, _020E8CBC ; =UNK_02106F3C - mov r2, #0x0 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B58: - ldr r1, _020E8CC0 ; =UNK_02106F40 - mov r2, #0x0 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B6C: - ldr r1, _020E8CC4 ; =UNK_02106F44 - mov r2, #0x0 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B80: - ldr r1, _020E8CC8 ; =UNK_02106F48 - mov r2, #0x1 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8B94: - ldr r1, _020E8CCC ; =UNK_02106F4C - mov r2, #0x1 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8BA8: - ldr r1, _020E8CD0 ; =UNK_02106F50 - mov r2, #0x1 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8BBC: - ldr r1, _020E8CD4 ; =UNK_02106F54 - mov r2, #0x2 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8BD0: - ldr r1, _020E8CD8 ; =UNK_02106F58 - mov r2, #0x2 - bl __str2dec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} -_020E8BE4: - and r0, r4, #0x80000000 - add r1, r4, r0, lsr #0x1f - add r0, sp, #0x26 - mov r1, r1, asr #0x1 - bl __two_exp - add r1, sp, #0x26 - mov r0, r5 - mov r2, r1 - bl __timesdec - tst r4, #0x1 - addeq sp, sp, #0x4c - ldmeqia sp!, {r4-r5,pc} - add r3, sp, #0x0 - mov r12, r5 - mov r2, #0x9 -_020E8C20: - ldrh r1, [r12, #0x0] - ldrh r0, [r12, #0x2] - add r12, r12, #0x4 - subs r2, r2, #0x1 - strh r1, [r3, #0x0] - strh r0, [r3, #0x2] - add r3, r3, #0x4 - bne _020E8C20 - ldrh r0, [r12, #0x0] - cmp r4, #0x0 - strh r0, [r3, #0x0] - add r0, sp, #0x26 - ble _020E8C64 - ldr r1, _020E8CBC ; =UNK_02106F3C - mov r2, #0x0 - bl __str2dec - b _020E8C70 -_020E8C64: - ldr r1, _020E8CB4 ; =UNK_02106F34 - mvn r2, #0x0 - bl __str2dec -_020E8C70: - add r1, sp, #0x0 - add r2, sp, #0x26 - mov r0, r5 - bl __timesdec - add sp, sp, #0x4c - ldmia sp!, {r4-r5,pc} - .balign 4 -_020E8C88: .word UNK_02106E88 -_020E8C8C: .word UNK_02106EB8 -_020E8C90: .word UNK_02106EE0 -_020E8C94: .word UNK_02106EF8 -_020E8C98: .word UNK_02106F08 -_020E8C9C: .word UNK_02106F10 -_020E8CA0: .word UNK_02106F18 -_020E8CA4: .word UNK_02106F20 -_020E8CA8: .word UNK_02106F28 -_020E8CAC: .word UNK_02106F2C -_020E8CB0: .word UNK_02106F30 -_020E8CB4: .word UNK_02106F34 -_020E8CB8: .word UNK_02106F38 -_020E8CBC: .word UNK_02106F3C -_020E8CC0: .word UNK_02106F40 -_020E8CC4: .word UNK_02106F44 -_020E8CC8: .word UNK_02106F48 -_020E8CCC: .word UNK_02106F4C -_020E8CD0: .word UNK_02106F50 -_020E8CD4: .word UNK_02106F54 -_020E8CD8: .word UNK_02106F58 - - arm_func_start __equals_dec -__equals_dec: - stmdb sp!, {r4,lr} - ldrb r3, [r0, #0x5] - cmp r3, #0x0 - bne _020E8D00 - ldrb r0, [r1, #0x5] - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - ldmia sp!, {r4,pc} -_020E8D00: - ldrb r2, [r1, #0x5] - cmp r2, #0x0 - bne _020E8D1C - cmp r3, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - ldmia sp!, {r4,pc} -_020E8D1C: - ldrsh r3, [r0, #0x2] - ldrsh r2, [r1, #0x2] - cmp r3, r2 - bne _020E8DB4 - ldrb r4, [r0, #0x4] - ldrb r2, [r1, #0x4] - mov r12, #0x0 - mov lr, r4 - cmp r4, r2 - movgt lr, r2 - cmp lr, #0x0 - ble _020E8D74 -_020E8D4C: - add r3, r0, r12 - add r2, r1, r12 - ldrb r3, [r3, #0x5] - ldrb r2, [r2, #0x5] - cmp r3, r2 - movne r0, #0x0 - ldmneia sp!, {r4,pc} - add r12, r12, #0x1 - cmp r12, lr - blt _020E8D4C -_020E8D74: - cmp lr, r4 - moveq r0, r1 - ldrb r1, [r0, #0x4] - cmp r12, r1 - bge _020E8DAC -_020E8D88: - add r1, r0, r12 - ldrb r1, [r1, #0x5] - cmp r1, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,pc} - ldrb r1, [r0, #0x4] - add r12, r12, #0x1 - cmp r12, r1 - blt _020E8D88 -_020E8DAC: - mov r0, #0x1 - ldmia sp!, {r4,pc} -_020E8DB4: - mov r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start __less_dec -__less_dec: - stmdb sp!, {r3-r5,lr} - ldrb r2, [r0, #0x5] - cmp r2, #0x0 - bne _020E8DE0 - ldrb r0, [r1, #0x5] - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - ldmia sp!, {r3-r5,pc} -_020E8DE0: - ldrb r2, [r1, #0x5] - cmp r2, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r3-r5,pc} - ldrsh r3, [r1, #0x2] - ldrsh r2, [r0, #0x2] - cmp r2, r3 - bne _020E8E90 - ldrb r5, [r0, #0x4] - ldrb r4, [r1, #0x4] - mov r12, #0x0 - mov lr, r5 - cmp r5, r4 - movgt lr, r4 - cmp lr, #0x0 - ble _020E8E54 -_020E8E20: - add r3, r1, r12 - add r2, r0, r12 - ldrb r3, [r3, #0x5] - ldrb r2, [r2, #0x5] - cmp r2, r3 - movcc r0, #0x1 - ldmccia sp!, {r3-r5,pc} - cmp r3, r2 - movcc r0, #0x0 - ldmccia sp!, {r3-r5,pc} - add r12, r12, #0x1 - cmp r12, lr - blt _020E8E20 -_020E8E54: - cmp lr, r5 - bne _020E8E88 - cmp r12, r4 - bge _020E8E88 -_020E8E64: - add r0, r1, r12 - ldrb r0, [r0, #0x5] - cmp r0, #0x0 - movne r0, #0x1 - ldmneia sp!, {r3-r5,pc} - ldrb r0, [r1, #0x4] - add r12, r12, #0x1 - cmp r12, r0 - blt _020E8E64 -_020E8E88: - mov r0, #0x0 - ldmia sp!, {r3-r5,pc} -_020E8E90: - movlt r0, #0x1 - movge r0, #0x0 - ldmia sp!, {r3-r5,pc} - - arm_func_start __minus_dec -__minus_dec: ; 0x020E8E9C - stmdb sp!, {r3-r7,lr} - mov r6, r0 - mov r5, #0x9 -_020E8EA8: - ldrh r4, [r1, #0x0] - ldrh r3, [r1, #0x2] - add r1, r1, #0x4 - subs r5, r5, #0x1 - strh r4, [r6, #0x0] - strh r3, [r6, #0x2] - add r6, r6, #0x4 - bne _020E8EA8 - ldrh r1, [r1, #0x0] - strh r1, [r6, #0x0] - ldrb r1, [r2, #0x5] - cmp r1, #0x0 - ldmeqia sp!, {r3-r7,pc} - ldrb r7, [r0, #0x4] - ldrb r3, [r2, #0x4] - ldrsh r4, [r0, #0x2] - mov r1, r7 - cmp r7, r3 - movlt r1, r3 - ldrsh r3, [r2, #0x2] - sub r6, r4, r3 - add r1, r1, r6 - cmp r1, #0x20 - movgt r1, #0x20 - cmp r7, r1 - bge _020E8F34 - mov r4, #0x0 -_020E8F14: - ldrb r5, [r0, #0x4] - add r3, r0, r7 - add r5, r5, #0x1 - strb r5, [r0, #0x4] - strb r4, [r3, #0x5] - ldrb r7, [r0, #0x4] - cmp r7, r1 - blt _020E8F14 -_020E8F34: - ldrb r4, [r2, #0x4] - add r3, r0, #0x5 - add r12, r3, r1 - add r4, r4, r6 - cmp r4, r1 - addlt r12, r3, r4 - sub r4, r12, r3 - add r1, r2, #0x5 - sub r4, r4, r6 - add lr, r1, r4 - mov r4, lr - b _020E8FC8 -_020E8F64: - ldrb r7, [r12, #-0x1]! - ldrb r5, [lr, #-0x1]! - cmp r7, r5 - bhs _020E8FB8 - ldrb r7, [r12, #-0x1] - sub r5, r12, #0x1 - cmp r7, #0x0 - bne _020E8F90 -_020E8F84: - ldrb r7, [r5, #-0x1]! - cmp r7, #0x0 - beq _020E8F84 -_020E8F90: - cmp r5, r12 - beq _020E8FB8 -_020E8F98: - ldrb r7, [r5, #0x0] - sub r7, r7, #0x1 - strb r7, [r5, #0x0] - ldrb r7, [r5, #0x1]! - cmp r5, r12 - add r7, r7, #0xa - strb r7, [r5, #0x0] - bne _020E8F98 -_020E8FB8: - ldrb r7, [r12, #0x0] - ldrb r5, [lr, #0x0] - sub r5, r7, r5 - strb r5, [r12, #0x0] -_020E8FC8: - cmp r12, r3 - cmphi lr, r1 - bhi _020E8F64 - ldrb r5, [r2, #0x4] - sub lr, r4, r1 - cmp lr, r5 - bge _020E90A4 - ldrb r1, [r4, #0x0] - mov r7, #0x0 - cmp r1, #0x5 - movcc r7, #0x1 - blo _020E9040 - bne _020E9040 - add r1, r2, #0x5 - add r2, r1, r5 - add r4, r4, #0x1 - cmp r4, r2 - bhs _020E9028 -_020E9010: - ldrb r1, [r4, #0x0] - cmp r1, #0x0 - bne _020E90A4 - add r4, r4, #0x1 - cmp r4, r2 - blo _020E9010 -_020E9028: - add r1, r3, lr - add r2, r1, r6 - ldrb r1, [r2, #-0x1] - sub r12, r2, #0x1 - tst r1, #0x1 - movne r7, #0x1 -_020E9040: - cmp r7, #0x0 - beq _020E90A4 - ldrb r1, [r12, #0x0] - cmp r1, #0x1 - bhs _020E9098 - ldrb r1, [r12, #-0x1] - sub r2, r12, #0x1 - cmp r1, #0x0 - bne _020E9070 -_020E9064: - ldrb r1, [r2, #-0x1]! - cmp r1, #0x0 - beq _020E9064 -_020E9070: - cmp r2, r12 - beq _020E9098 -_020E9078: - ldrb r1, [r2, #0x0] - sub r1, r1, #0x1 - strb r1, [r2, #0x0] - ldrb r1, [r2, #0x1]! - cmp r2, r12 - add r1, r1, #0xa - strb r1, [r2, #0x0] - bne _020E9078 -_020E9098: - ldrb r1, [r12, #0x0] - sub r1, r1, #0x1 - strb r1, [r12, #0x0] -_020E90A4: - ldrb r1, [r3, #0x0] - mov r5, r3 - cmp r1, #0x0 - bne _020E90C0 -_020E90B4: - ldrb r1, [r5, #0x1]! - cmp r1, #0x0 - beq _020E90B4 -_020E90C0: - cmp r5, r3 - bls _020E9108 - ldrsh r1, [r0, #0x2] - sub r2, r5, r3 - and r4, r2, #0xff - sub r1, r1, r4 - strh r1, [r0, #0x2] - ldrb r1, [r0, #0x4] - add r2, r3, r1 - cmp r5, r2 - bhs _020E90FC -_020E90EC: - ldrb r1, [r5], #0x1 - cmp r5, r2 - strb r1, [r3], #0x1 - blo _020E90EC -_020E90FC: - ldrb r1, [r0, #0x4] - sub r1, r1, r4 - strb r1, [r0, #0x4] -_020E9108: - ldrb r1, [r0, #0x4] - add r2, r0, #0x5 - add r3, r2, r1 - cmp r3, r2 - bls _020E9130 -_020E911C: - ldrb r1, [r3, #-0x1]! - cmp r1, #0x0 - bne _020E9130 - cmp r3, r2 - bhi _020E911C -_020E9130: - sub r1, r3, r2 - add r1, r1, #0x1 - strb r1, [r0, #0x4] - ldmia sp!, {r3-r7,pc} - - arm_func_start __num2dec_internal -__num2dec_internal: - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x58 - mov r8, r1 - mov r6, r2 - mov r7, r0 - mov r0, r8 - mov r1, r6 - bl __signbitf - cmp r0, #0x0 - movne r1, #0x1 - moveq r1, #0x0 - mov r4, r1, lsl #0x18 - mov r0, #0x0 - mov r1, r0 - mov r2, r8 - mov r3, r6 - mov r5, r4, asr #0x18 - bl _deq - bne _020E91AC - strb r5, [r7, #0x0] - mov r1, #0x0 - strh r1, [r7, #0x2] - mov r0, #0x1 - strb r0, [r7, #0x4] - add sp, sp, #0x58 - strb r1, [r7, #0x5] - ldmia sp!, {r4-r8,pc} -_020E91AC: - mov r0, r8 - mov r1, r6 - bl __fpclassifyf - cmp r0, #0x2 - bgt _020E91F8 - strb r5, [r7, #0x0] - mov r2, #0x0 - strh r2, [r7, #0x2] - mov r2, #0x1 - mov r0, r8 - mov r1, r6 - strb r2, [r7, #0x4] - bl __fpclassifyf - cmp r0, #0x1 - moveq r0, #0x4e - movne r0, #0x49 - add sp, sp, #0x58 - strb r0, [r7, #0x5] - ldmia sp!, {r4-r8,pc} -_020E91F8: - cmp r5, #0x0 - beq _020E921C - mov r0, #0x0 - mov r1, r0 - mov r2, r8 - mov r3, r6 - bl _dsub - mov r8, r0 - mov r6, r1 -_020E921C: - add r2, sp, #0x8 - mov r0, r8 - mov r1, r6 - bl frexp - mov r4, r0 - mov r6, r1 - orr r12, r4, #0x0 - rsbs r2, r12, #0x0 - orr r3, r6, #0x100000 - rsc r1, r3, #0x0 - mov r0, #0x0 - and r3, r3, r1 - sub r1, r0, #0x1 - and r12, r12, r2 - mov r2, r1 - adds r0, r12, r1 - adc r1, r3, r2 - str r4, [sp, #0x0] - str r6, [sp, #0x4] - bl __msl_generic_count_bits64 - rsb r8, r0, #0x35 - ldr r1, [sp, #0x8] - add r0, sp, #0xc - sub r1, r1, r8 - bl __two_exp - mov r0, r4 - mov r1, r6 - mov r2, r8 - bl ldexp - bl _ll_ufrom_d - mov r2, r1 - mov r1, r0 - add r0, sp, #0x32 - bl __ull2dec - mov r0, r7 - add r1, sp, #0x32 - add r2, sp, #0xc - bl __timesdec - strb r5, [r7, #0x0] - add sp, sp, #0x58 - ldmia sp!, {r4-r8,pc} - - arm_func_start __num2dec_internal2 -__num2dec_internal2: ; 0x020E92C0 - stmdb sp!, {r3-r5,lr} - mov r4, r3 - ldrsh r5, [r0, #0x2] - mov r0, r4 - bl __num2dec_internal - ldrb r0, [r4, #0x5] - cmp r0, #0x9 - ldmhiia sp!, {r3-r5,pc} - cmp r5, #0x20 - movgt r5, #0x20 - mov r0, r4 - mov r1, r5 - bl __rounddec - ldrb r0, [r4, #0x4] - cmp r0, r5 - bge _020E9324 - mov r1, #0x0 -_020E9304: - ldrb r2, [r4, #0x4] - add r0, r4, r0 - add r2, r2, #0x1 - strb r2, [r4, #0x4] - strb r1, [r0, #0x5] - ldrb r0, [r4, #0x4] - cmp r0, r5 - blt _020E9304 -_020E9324: - ldrsh r1, [r4, #0x2] - sub r0, r0, #0x1 - mov r2, #0x0 - sub r0, r1, r0 - strh r0, [r4, #0x2] - ldrb r0, [r4, #0x4] - cmp r0, #0x0 - ldmleia sp!, {r3-r5,pc} -_020E9344: - add r1, r4, r2 - ldrb r0, [r1, #0x5] - add r2, r2, #0x1 - add r0, r0, #0x30 - strb r0, [r1, #0x5] - ldrb r0, [r4, #0x4] - cmp r2, r0 - blt _020E9344 - ldmia sp!, {r3-r5,pc} - - arm_func_start __dec2num -__dec2num: ; 0x020E9368 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xfc - mov r4, r0 - ldrb r0, [r4, #0x4] - cmp r0, #0x0 - bne _020E93A8 - ldrsb r0, [r4, #0x0] - mov r2, #0x0 - cmp r0, #0x0 - ldreq r3, _020E996C ; =0x3FF00000 - mov r0, #0x0 - ldrne r3, _020E9970 ; =0xBFF00000 - mov r1, r0 - bl copysign - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} -_020E93A8: - ldrb r0, [r4, #0x5] - cmp r0, #0x30 - beq _020E93C8 - cmp r0, #0x49 - beq _020E93F0 - cmp r0, #0x4e - beq _020E9424 - b _020E946C -_020E93C8: - ldrsb r0, [r4, #0x0] - mov r2, #0x0 - cmp r0, #0x0 - ldreq r3, _020E996C ; =0x3FF00000 - mov r0, #0x0 - ldrne r3, _020E9970 ; =0xBFF00000 - mov r1, r0 - bl copysign - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} -_020E93F0: - ldrsb r0, [r4, #0x0] - mov r5, #0x0 - cmp r0, #0x0 - ldreq r4, _020E996C ; =0x3FF00000 - ldr r0, _020E9974 ; =UNK_02106B74 - ldrne r4, _020E9970 ; =0xBFF00000 - ldr r0, [r0, #0x0] - bl _f2d - mov r2, r5 - mov r3, r4 - bl copysign - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} -_020E9424: - ldr r1, _020E9978 ; =0x7FF00000 - add r3, sp, #0x10 - mov r2, #0x0 - str r2, [r3, #0x0] - str r1, [r3, #0x4] - ldrsb r0, [r4, #0x0] - cmp r0, #0x0 - beq _020E9454 - orr r0, r1, #0x80000000 - orr r1, r2, r2 - str r1, [r3, #0x0] - str r0, [r3, #0x4] -_020E9454: - ldmia r3, {r0-r1} - orr r0, r0, #0x0 - orr r1, r1, #0x80000 - stmia r3, {r0-r1} - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} -_020E946C: - add r3, sp, #0xd6 - mov r5, r4 - mov r2, #0x9 -_020E9478: - ldrh r1, [r5, #0x0] - ldrh r0, [r5, #0x2] - add r5, r5, #0x4 - subs r2, r2, #0x1 - strh r1, [r3, #0x0] - strh r0, [r3, #0x2] - add r3, r3, #0x4 - bne _020E9478 - ldrh r0, [r5, #0x0] - add r1, sp, #0xdb - strh r0, [r3, #0x0] - ldrb r0, [sp, #0xda] - add r5, r1, r0 - cmp r1, r5 - bhs _020E94C8 -_020E94B4: - ldrb r0, [r1, #0x0] - sub r0, r0, #0x30 - strb r0, [r1], #0x1 - cmp r1, r5 - blo _020E94B4 -_020E94C8: - ldrb r1, [sp, #0xda] - ldrsh r2, [sp, #0xd8] - add r0, sp, #0xb0 - sub r1, r1, #0x1 - add r1, r2, r1 - strh r1, [sp, #0xd8] - ldr r1, _020E997C ; =UNK_02106F5C - mov r2, #0x134 - ldrsh r11, [sp, #0xd8] - bl __str2dec - add r0, sp, #0xb0 - add r1, sp, #0xd6 - bl __less_dec - cmp r0, #0x0 - beq _020E9538 - ldrsb r0, [r4, #0x0] - mov r5, #0x0 - cmp r0, #0x0 - ldreq r4, _020E996C ; =0x3FF00000 - ldr r0, _020E9974 ; =UNK_02106B74 - ldrne r4, _020E9970 ; =0xBFF00000 - ldr r0, [r0, #0x0] - bl _f2d - mov r2, r5 - mov r3, r4 - bl copysign - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} -_020E9538: - add r1, sp, #0xdb - ldrb r0, [r1, #0x0] - add r8, r1, #0x1 - bl _dfltu - str r0, [sp, #0x8] - str r1, [sp, #0xc] - cmp r8, r5 - bhs _020E9610 -_020E9558: - sub r0, r5, r8 - mov r1, r0, lsr #0x1f - rsb r0, r1, r0, lsl #0x1d - adds r7, r1, r0, ror #0x1d - moveq r7, #0x8 - mov r6, #0x0 - mov r2, #0x0 - cmp r7, #0x0 - ble _020E9594 - mov r0, #0xa -_020E9580: - ldrb r1, [r8], #0x1 - add r2, r2, #0x1 - cmp r2, r7 - mla r6, r0, r6, r1 - blt _020E9580 -_020E9594: - ldr r0, _020E9980 ; =UNK_02106E48 - ldr r1, [sp, #0xc] - add r3, r0, r7, lsl #0x3 - ldr r2, [r3, #-0x8] - ldr r0, [sp, #0x8] - ldr r3, [r3, #-0x4] - bl _dmul - mov r4, r0 - mov r9, r1 - mov r0, r6 - bl _dfltu - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r9 - bl _dadd - cmp r6, #0x0 - mov r6, r0 - mov r10, r1 - beq _020E95FC - mov r0, r4 - mov r1, r9 - mov r2, r6 - mov r3, r10 - bl _deq - beq _020E9610 -_020E95FC: - str r6, [sp, #0x8] - str r10, [sp, #0xc] - cmp r8, r5 - sub r11, r11, r7 - blo _020E9558 -_020E9610: - cmp r11, #0x0 - bge _020E9654 - rsb r0, r11, #0x0 - bl _dflt - mov r3, r1 - mov r2, r0 - ldr r1, _020E9984 ; =0x40140000 - mov r0, #0x0 - bl pow - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - bl _ddiv - str r0, [sp, #0x8] - str r1, [sp, #0xc] - b _020E968C -_020E9654: - mov r0, r11 - bl _dflt - mov r3, r1 - mov r2, r0 - ldr r1, _020E9984 ; =0x40140000 - mov r0, #0x0 - bl pow - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - bl _dmul - str r0, [sp, #0x8] - str r1, [sp, #0xc] -_020E968C: - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - mov r2, r11 - bl ldexp - str r0, [sp, #0x8] - str r1, [sp, #0xc] - bl __fpclassifyf - cmp r0, #0x2 - bne _020E96C0 - ldr r0, _020E9988 ; =0x7FEFFFFF - mvn r1, #0x0 - str r1, [sp, #0x8] - str r0, [sp, #0xc] -_020E96C0: - ldr r1, [sp, #0x8] - ldr r2, [sp, #0xc] - add r0, sp, #0x8a - add r4, sp, #0x0 - mov r5, #0x0 - bl __num2dec_internal - add r0, sp, #0x8a - add r1, sp, #0xd6 - bl __equals_dec - cmp r0, #0x0 - bne _020E9934 - add r0, sp, #0x8a - add r1, sp, #0xd6 - bl __less_dec - cmp r0, #0x0 - movne r5, #0x1 - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - cmp r5, #0x0 - moveq r6, #0x1 - str r1, [sp, #0x0] - str r0, [sp, #0x4] - movne r6, #0x0 -_020E971C: - cmp r6, #0x0 - bne _020E9744 - ldmia r4, {r0-r1} - adds r0, r0, #0x1 - adc r1, r1, #0x0 - stmia r4, {r0-r1} - bl __fpclassifyf - cmp r0, #0x2 - beq _020E9934 - b _020E975C -_020E9744: - ldr r1, [r4, #0x0] - ldr r0, [r4, #0x4] - subs r1, r1, #0x1 - sbc r0, r0, #0x0 - str r1, [r4, #0x0] - str r0, [r4, #0x4] -_020E975C: - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, sp, #0x64 - bl __num2dec_internal - cmp r5, #0x0 - beq _020E9788 - add r0, sp, #0x64 - add r1, sp, #0xd6 - bl __less_dec - cmp r0, #0x0 - beq _020E98AC -_020E9788: - cmp r5, #0x0 - bne _020E9864 - add r0, sp, #0xd6 - add r1, sp, #0x64 - bl __less_dec - cmp r0, #0x0 - bne _020E9864 - add r3, sp, #0x8a - add r5, sp, #0x3e - mov r2, #0x9 -_020E97B0: - ldrh r1, [r3, #0x0] - ldrh r0, [r3, #0x2] - add r3, r3, #0x4 - strh r1, [r5, #0x0] - strh r0, [r5, #0x2] - add r5, r5, #0x4 - subs r2, r2, #0x1 - bne _020E97B0 - ldrh r0, [r3, #0x0] - add r3, sp, #0x64 - add r4, sp, #0x8a - strh r0, [r5, #0x0] - mov r2, #0x9 -_020E97E4: - ldrh r1, [r3, #0x0] - ldrh r0, [r3, #0x2] - add r3, r3, #0x4 - strh r1, [r4, #0x0] - strh r0, [r4, #0x2] - add r4, r4, #0x4 - subs r2, r2, #0x1 - bne _020E97E4 - ldrh r0, [r3, #0x0] - add r3, sp, #0x3e - add r5, sp, #0x64 - strh r0, [r4, #0x0] - mov r2, #0x9 -_020E9818: - ldrh r1, [r3, #0x0] - ldrh r0, [r3, #0x2] - add r3, r3, #0x4 - strh r1, [r5, #0x0] - strh r0, [r5, #0x2] - add r5, r5, #0x4 - subs r2, r2, #0x1 - bne _020E9818 - ldrh r4, [r3, #0x0] - ldr r3, [sp, #0x8] - ldr r1, [sp, #0x0] - ldr r2, [sp, #0xc] - ldr r0, [sp, #0x4] - strh r4, [r5, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - str r3, [sp, #0x0] - str r2, [sp, #0x4] - b _020E98AC -_020E9864: - add r7, sp, #0x64 - add r3, sp, #0x8a - mov r2, #0x9 -_020E9870: - ldrh r1, [r7, #0x0] - ldrh r0, [r7, #0x2] - add r7, r7, #0x4 - strh r1, [r3, #0x0] - strh r0, [r3, #0x2] - add r3, r3, #0x4 - subs r2, r2, #0x1 - bne _020E9870 - ldrh r2, [r7, #0x0] - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - strh r2, [r3, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - b _020E971C -_020E98AC: - add r0, sp, #0x3e - add r1, sp, #0xd6 - add r2, sp, #0x8a - bl __minus_dec - add r0, sp, #0x18 - add r1, sp, #0x64 - add r2, sp, #0xd6 - bl __minus_dec - add r0, sp, #0x3e - add r1, sp, #0x18 - bl __equals_dec - cmp r0, #0x0 - beq _020E9910 - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - and r1, r1, #0x1 - and r0, r0, #0x0 - cmp r0, #0x0 - cmpeq r1, #0x0 - beq _020E9934 - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - b _020E9934 -_020E9910: - add r0, sp, #0x3e - add r1, sp, #0x18 - bl __less_dec - cmp r0, #0x0 - bne _020E9934 - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - str r1, [sp, #0x8] - str r0, [sp, #0xc] -_020E9934: - ldrsb r0, [sp, #0xd6] - cmp r0, #0x0 - beq _020E995C - mov r0, #0x0 - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - mov r1, r0 - bl _dsub - str r0, [sp, #0x8] - str r1, [sp, #0xc] -_020E995C: - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - add sp, sp, #0xfc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020E996C: .word 0x3FF00000 -_020E9970: .word 0xBFF00000 -_020E9974: .word UNK_02106B74 -_020E9978: .word 0x7FF00000 -_020E997C: .word UNK_02106F5C -_020E9980: .word UNK_02106E48 -_020E9984: .word 0x40140000 -_020E9988: .word 0x7FEFFFFF - - arm_func_start __msl_generic_count_bits64 -__msl_generic_count_bits64: ; 0x020E998C - mov r3, r0, lsr #0x1 - ldr r2, _020E9A14 ; =0x55555555 - orr r3, r3, r1, lsl #0x1f - and r3, r3, r2 - subs r12, r0, r3 - and r2, r2, r1, lsr #0x1 - ldr r0, _020E9A18 ; =0x33333333 - sbc r3, r1, r2 - mov r1, r12, lsr #0x2 - orr r1, r1, r3, lsl #0x1e - and r2, r12, r0 - and r1, r1, r0 - adds r2, r2, r1 - and r1, r3, r0 - and r0, r0, r3, lsr #0x2 - adc r1, r1, r0 - mov r0, r2, lsr #0x4 - orr r0, r0, r1, lsl #0x1c - adds r2, r2, r0 - ldr r0, _020E9A1C ; =0x0F0F0F0F - adc r1, r1, r1, lsr #0x4 - and r3, r2, r0 - and r2, r1, r0 - mov r0, r3, lsr #0x8 - orr r0, r0, r2, lsl #0x18 - adds r1, r3, r0 - adc r2, r2, r2, lsr #0x8 - mov r0, r1, lsr #0x10 - orr r0, r0, r2, lsl #0x10 - adds r1, r1, r0 - adc r0, r2, r2, lsr #0x10 - adds r0, r1, r0 - and r0, r0, #0xff - bx lr - .balign 4 -_020E9A14: .word 0x55555555 -_020E9A18: .word 0x33333333 -_020E9A1C: .word 0x0F0F0F0F - - arm_func_start __signbitf -__signbitf: - stmdb sp!, {r0-r3} - ldr r0, [sp, #0x4] - and r0, r0, #0x80000000 - add sp, sp, #0x10 - bx lr - - arm_func_start __fpclassifyf -__fpclassifyf: ; 0x020E9A34 - stmdb sp!, {r0-r3} - ldr r2, [sp, #0x4] - ldr r0, _020E9A9C ; =0x7FF00000 - ands r1, r2, r0 - beq _020E9A70 - cmp r1, r0 - bne _020E9A90 - ldr r0, _020E9AA0 ; =0x000FFFFF - tst r2, r0 - ldreq r0, [sp, #0x0] - add sp, sp, #0x10 - cmpeq r0, #0x0 - movne r0, #0x1 - moveq r0, #0x2 - bx lr -_020E9A70: - ldr r0, _020E9AA0 ; =0x000FFFFF - tst r2, r0 - ldreq r0, [sp, #0x0] - add sp, sp, #0x10 - cmpeq r0, #0x0 - movne r0, #0x5 - moveq r0, #0x3 - bx lr -_020E9A90: - mov r0, #0x4 - add sp, sp, #0x10 - bx lr - .balign 4 -_020E9A9C: .word 0x7FF00000 -_020E9AA0: .word 0x000FFFFF - - arm_func_start scalbn -scalbn: ; 0x020E9AA4 - stmdb sp!, {r3-r4,lr} - sub sp, sp, #0x4 - mov r4, r2 - add r2, sp, #0x0 - bl frexp - ldr r2, [sp, #0x0] - add r2, r2, r4 - str r2, [sp, #0x0] - bl ldexp - add sp, sp, #0x4 - ldmia sp!, {r3-r4,pc} - - arm_func_start stricmp -stricmp: ; 0x020E9AD0 - stmdb sp!, {r3,lr} - ldr r3, _020E9B34 ; =UNK_0210420C -_020E9AD8: - ldrb r2, [r0], #0x1 - cmp r2, #0x0 - blt _020E9AF0 - cmp r2, #0x80 - bge _020E9AF0 - ldrb r2, [r3, r2] -_020E9AF0: - ldrb lr, [r1], #0x1 - and r12, r2, #0xff - cmp lr, #0x0 - blt _020E9B0C - cmp lr, #0x80 - bge _020E9B0C - ldrb lr, [r3, lr] -_020E9B0C: - and r2, lr, #0xff - cmp r12, r2 - mvncc r0, #0x0 - ldmccia sp!, {r3,pc} - movhi r0, #0x1 - ldmhiia sp!, {r3,pc} - cmp r12, #0x0 - bne _020E9AD8 - mov r0, #0x0 - ldmia sp!, {r3,pc} - .balign 4 -_020E9B34: .word UNK_0210420C - - arm_func_start strnicmp -strnicmp: ; 0x020E9B38 - ldr ip, _020E9B40 ; =stricmp - bx r12 - .balign 4 -_020E9B40: .word stricmp - - .section .exception - ; 0x020EC710 - .global UNK_020EC710 -UNK_020EC710: ; 0x020EC710 - .byte 0x20, 0xFF, 0x09, 0x60 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC718 -UNK_020EC718: ; 0x020EC718 - .byte 0x00, 0xFF, 0x01, 0xB0 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC720 -UNK_020EC720: ; 0x020EC720 - .byte 0x00, 0xFF, 0x01, 0xD0 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC728 -UNK_020EC728: ; 0x020EC728 - .byte 0x20, 0xFF, 0x09, 0x60 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC730 -UNK_020EC730: ; 0x020EC730 - .byte 0x20, 0xFF, 0x11, 0x68 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC738 -UNK_020EC738: ; 0x020EC738 - .byte 0x20, 0xFF, 0x01, 0xB8 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC740 -UNK_020EC740: ; 0x020EC740 - .byte 0x00, 0xFF, 0x05, 0x20 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020EC748 -UNK_020EC748: ; 0x020EC748 - .word abort - .short 37 - .word 0x00100000 - .word exit - .short 77 - .word 0x00100100 - .word __exit - .short 297 - .word 0x00200300 - .word nan - .short 25 - .word 0x00000000 - .word __flush_line_buffered_output_files - .short 141 - .word 0x00403F00 - .word __flush_all - .short 105 - .word 0x00403F00 - .word __msl_assertion_failed - .short 61 - .word 0x00200100 - .word __load_buffer - .short 141 - .word 0x00200700 - .word __flush_buffer - .short 137 - .word 0x00200300 - .word fread - .short 269 - .word 0x00407F00 - .word __fread - .short 841 - .word 0x00507F00 - .word __fwrite - .short 689 - .word 0x0060FF00 - .word fclose - .short 117 - .word 0x00200300 - .word fflush - .short 233 - .word 0x00100100 - .word ftell - .short 285 - .word 0x00300F00 - .word _fseek - .short 489 - .word 0x00400320 - .word fseek - .short 301 - .word 0x00403F00 - .word rewind - .short 37 - .word 0x00100100 - .word mbtowc - .short 29 - .word 0x00100000 - .word wctomb - .short 29 - .word 0x00100000 - .word mbstowcs - .short 137 - .word 0x00301F00 - .word wcstombs - .short 121 - .word 0x00403F00 - .word memset - .short 21 - .word 0x00100100 - .word long2str - .short 589 - .word 0x0090FF20 - .word longlong2str - .short 737 - .word 0x00A0FF20 - .word double2hex - .short 1245 - .word 0x00F07F20 - .word float2str - .short 1893 - .word 0x00C0FF20 - .word __pformatter - .short 2084 - .word UNK_020EC710 - .word __FileWrite - .short 45 - .word 0x00200300 - .word __StringWrite - .short 69 - .word 0x00200300 - .word printf - .short 281 - .word 0x00300120 - .word vsnprintf - .short 105 - .word 0x00300300 - .word snprintf - .short 41 - .word 0x00300020 - .word sprintf - .short 45 - .word 0x00300020 - .word qsort - .short 357 - .word 0x0070FF00 - .word __sformatter - .short 3412 - .word UNK_020EC718 - .word vsscanf - .short 85 - .word 0x00200000 - .word sscanf - .short 41 - .word 0x00300020 - .word raise - .short 305 - .word 0x00200300 - .word __strtold - .short 4684 - .word UNK_020EC720 - .word strtold - .short 225 - .word 0x00500F00 - .word atod - .short 17 - .word 0x00000000 - .word __strtoul - .short 1001 - .word 0x0060FF00 - .word __strtoull - .short 1101 - .word 0x0080FF00 - .word strtoul - .short 153 - .word 0x00600300 - .word strtold2 - .short 201 - .word 0x00600300 - .word atol - .short 21 - .word 0x00000000 - .word wmemcpy - .short 17 - .word 0x00000000 - .word long2str_wide - .short 593 - .word 0x0090FF20 - .word longlong2str_wide - .short 741 - .word 0x00A0FF20 - .word double2hex_wide - .short 921 - .word 0x00F07F20 - .word float2str_wide - .short 1612 - .word UNK_020EC728 - .word __wpformatter - .short 2288 - .word UNK_020EC730 - .word __wStringWrite - .short 65 - .word 0x00200300 - .word swprintf - .short 41 - .word 0x00300020 - .word vswprintf - .short 113 - .word 0x00300300 - .word __ieee754_pow - .short 4488 - .word UNK_020EC738 - .word frexp - .short 189 - .word 0x00300120 - .word ldexp - .short 589 - .word 0x00300120 - .word pow - .short 13 - .word 0x00000000 - .word __rounddec - .short 65 - .word 0x00200300 - .word __ull2dec - .short 205 - .word 0x0050FF00 - .word __timesdec - .short 389 - .word 0x00D0FF00 - .word __str2dec - .short 157 - .word 0x00100000 - .word __two_exp - .short 901 - .word 0x00B00300 - .word __num2dec_internal - .short 385 - .word 0x00E01F00 - .word __num2dec_internal2 - .short 169 - .word 0x00200300 - .word __dec2num - .short 1572 - .word UNK_020EC740 - .word scalbn - .short 45 diff --git a/arm9/asm/scrcmd_10.s b/arm9/asm/scrcmd_10.s index 6f417ce9..87337ab8 100644 --- a/arm9/asm/scrcmd_10.s +++ b/arm9/asm/scrcmd_10.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 25911feb..68f9dca8 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/scrcmd_17.s b/arm9/asm/scrcmd_17.s index 3df4d6e4..794a16de 100644 --- a/arm9/asm/scrcmd_17.s +++ b/arm9/asm/scrcmd_17.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s deleted file mode 100644 index 25fe86b8..00000000 --- a/arm9/asm/scrcmd_18.s +++ /dev/null @@ -1,1801 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start ScrCmd_GetPartySpecies -ScrCmd_GetPartySpecies: ; 0x0204434C - ; getpartyspecies XXXX, YYYY - ; Sets var YYYY to species of mon in party slot XXXX. - ; If mon is an egg, the value is SPECIES_NONE. - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - ldrh r1, [r6, #0x0] - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r5, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _020443A0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonData - b _020443A2 -_020443A0: - mov r0, #0x0 -_020443A2: - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_CheckPartyMonOTID -ScrCmd_CheckPartyMonOTID: ; 0x020443A8 - push {r3-r7, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - add r0, r5, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r7, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - ldrh r1, [r6, #0x0] - bl GetPartyMonByIndex - mov r1, #0x7 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r7, #0x0 - bl PlayerProfile_GetTrainerID - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r5, r0 - bne _0204440C - mov r0, #0x0 - b _0204440E -_0204440C: - mov r0, #0x1 -_0204440E: - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start ScrCmd_GiveEgg -ScrCmd_GiveEgg: ; 0x02044414 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - ldr r0, [r4, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #0x8] - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r6, r0, #0x0 - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x6 - bhs _02044494 - mov r0, #0xb - bl AllocMonZeroed - add r4, r0, #0x0 - bl ZeroMonData - mov r0, #0x1 - add r1, r5, #0x0 - bl FUN_02015CF8 - mov r1, #0x3 - str r1, [sp, #0x0] - str r0, [sp, #0x4] - ldr r1, [sp, #0x8] - add r0, r4, #0x0 - mov r2, #0x1 - add r3, r7, #0x0 - bl MOD05_SetEggStats - add r0, r6, #0x0 - add r1, r4, #0x0 - bl AddMonToParty - add r0, r4, #0x0 - bl FreeToHeap -_02044494: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_SetPartyMonMove -ScrCmd_SetPartyMonMove: ; 0x0204449C - push {r3-r7, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - add r7, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl PartyMonSetMoveInSlot - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_PartyMonHasMove -ScrCmd_PartyMonHasMove: ; 0x020444F4 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - mov r2, #0x0 - mov r1, #0x4c - add r4, r0, #0x0 - strh r2, [r6, #0x0] - bl GetMonData - cmp r0, #0x0 - beq _02044556 - mov r0, #0x0 - pop {r3-r7, pc} -_02044556: - add r0, r4, #0x0 - mov r1, #0x36 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204458E - add r0, r4, #0x0 - mov r1, #0x37 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204458E - add r0, r4, #0x0 - mov r1, #0x38 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _0204458E - add r0, r4, #0x0 - mov r1, #0x39 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - bne _02044592 -_0204458E: - mov r0, #0x1 - strh r0, [r6, #0x0] -_02044592: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_FindPartyMonWithMove -ScrCmd_FindPartyMonWithMove: ; 0x02044598 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - str r1, [sp, #0x4] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r1, _02044650 ; =0x00000006 - ldr r0, [sp, #0x0] - ldr r6, _02044654 ; =0x00000000 - strh r1, [r0, #0x0] - beq _02044648 -_020445E4: - ldr r0, [sp, #0x4] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204463E - add r0, r4, #0x0 - mov r1, #0x36 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _02044638 - add r0, r4, #0x0 - mov r1, #0x37 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _02044638 - add r0, r4, #0x0 - mov r1, #0x38 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - beq _02044638 - add r0, r4, #0x0 - mov r1, #0x39 - mov r2, #0x0 - bl GetMonData - cmp r5, r0 - bne _0204463E -_02044638: - ldr r0, [sp, #0x0] - strh r6, [r0, #0x0] - b _02044648 -_0204463E: - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, r7 - blo _020445E4 -_02044648: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - nop -_02044650: .word 0x00000006 -_02044654: .word 0x00000000 - - thumb_func_start ScrCmd_SurvivePsn -ScrCmd_SurvivePsn: ; 0x02044658 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - add r6, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - bl SurvivePoisoning - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_CountPartyMonsAtOrBelowLevel -ScrCmd_CountPartyMonsAtOrBelowLevel: ; 0x0204469C - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - str r0, [sp, #0x0] - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x8] - mov r4, #0x0 - ldr r0, [sp, #0x4] - add r5, r4, #0x0 - strh r4, [r0, #0x0] - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bls _02044726 -_020446EA: - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _0204471A - add r0, r6, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonData - ldr r1, [sp, #0x0] - cmp r0, r1 - bhi _0204471A - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 -_0204471A: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, [sp, #0x8] - cmp r4, r0 - blo _020446EA -_02044726: - ldr r0, [sp, #0x4] - strh r5, [r0, #0x0] - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start ScrCmd_GetPartyMonLevel -ScrCmd_GetPartyMonLevel: ; 0x02044730 - push {r4-r6, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r2, #0x0 - mov r1, #0x4c - add r5, r0, #0x0 - strh r2, [r4, #0x0] - bl GetMonData - cmp r0, #0x0 - bne _02044786 - add r0, r5, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonData - strh r0, [r4, #0x0] -_02044786: - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start ScrCmd_GetPartyMonNature -ScrCmd_GetPartyMonNature: ; 0x0204478C - push {r4-r6, lr} - add r6, r0, #0x0 - add r1, r6, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r6, #0x0 - bl ScriptReadHalfword - add r6, #0x80 - add r1, r0, #0x0 - ldr r0, [r6, #0x0] - bl VarGet - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r6, r0 - blt _020447D2 - mov r0, #0x0 - strh r0, [r4, #0x0] - pop {r4-r6, pc} -_020447D2: - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r5, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _020447F2 - mov r0, #0x0 - strh r0, [r4, #0x0] - pop {r4-r6, pc} -_020447F2: - add r0, r5, #0x0 - bl GetMonNature - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start ScrCmd_FindPartyMonWithNature -ScrCmd_FindPartyMonWithNature: ; 0x02044800 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - str r0, [sp, #0x0] - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r1, _02044884 ; =0x000000FF - ldr r0, [sp, #0x4] - ldr r5, _02044888 ; =0x00000000 - strh r1, [r0, #0x0] - beq _0204487E -_02044848: - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _02044874 - add r0, r4, #0x0 - bl GetMonNature - ldr r1, [sp, #0x0] - cmp r1, r0 - bne _02044874 - ldr r0, [sp, #0x4] - strh r5, [r0, #0x0] - b _0204487E -_02044874: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _02044848 -_0204487E: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02044884: .word 0x000000FF -_02044888: .word 0x00000000 - - thumb_func_start ScrCmd_GetPartyMonFriendship -ScrCmd_GetPartyMonFriendship: ; 0x0204488C - push {r4-r6, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x9 - mov r2, #0x0 - bl GetMonData - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_Unk01BA -ScrCmd_Unk01BA: ; 0x020448D4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - str r0, [sp, #0x0] - ldr r0, [r5, #0x0] - ldr r0, [r0, #0x1c] - ldr r0, [r0, #0x0] - bl MapHeader_GetMapSec - add r7, r0, #0x0 - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - ldr r1, [sp, #0x0] - bl GetPartyMonByIndex - mov r1, #0x9 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetMonData - add r1, sp, #0x4 - strh r0, [r1, #0x0] - cmp r4, #0x0 - beq _02044982 - add r0, r5, #0x0 - mov r1, #0x6 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - mov r2, #0xb - bl GetItemAttr - cmp r0, #0x34 - bne _0204495A - mov r0, #0x96 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_0204495A: - add r0, r5, #0x0 - mov r1, #0x9a - mov r2, #0x0 - bl GetMonData - cmp r0, #0xb - bne _0204496E - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_0204496E: - add r0, r5, #0x0 - mov r1, #0x97 - mov r2, #0x0 - bl GetMonData - cmp r7, r0 - bne _02044982 - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_02044982: - add r0, sp, #0x4 - ldrh r1, [r0, #0x0] - add r1, r1, r4 - strh r1, [r0, #0x0] - ldrh r1, [r0, #0x0] - cmp r1, #0xff - bls _02044994 - mov r1, #0xff - strh r1, [r0, #0x0] -_02044994: - add r0, r5, #0x0 - mov r1, #0x9 - add r2, sp, #0x4 - bl SetMonData - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start ScrCmd_Unk01BB -ScrCmd_Unk01BB: ; 0x020449A4 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x9 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetMonData - add r1, sp, #0x0 - strh r0, [r1, #0x0] - ldrh r0, [r1, #0x0] - cmp r4, r0 - bls _020449F8 - mov r0, #0x0 - b _020449FA -_020449F8: - sub r0, r0, r4 -_020449FA: - strh r0, [r1, #0x0] - add r0, r5, #0x0 - mov r1, #0x9 - add r2, sp, #0x0 - bl SetMonData - mov r0, #0x0 - add sp, #0x4 - pop {r3-r6, pc} - - thumb_func_start ScrCmd_Unk0281 -ScrCmd_Unk0281: ; 0x02044A0C - push {r3-r7, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r6, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r7, #0x0 - bl GetPartyMonByIndex - add r4, #0x13 - add r1, r4, #0x0 - mov r2, #0x0 - bl GetMonData - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0247 -ScrCmd_Unk0247: ; 0x02044A6C - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02054DEC - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0248 -ScrCmd_Unk0248: ; 0x02044A94 - push {r3-r7, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - add r4, r0, #0x0 - mov r1, #0xb0 - mov r2, #0x0 - bl GetMonData - strh r0, [r6, #0x0] - add r0, r4, #0x0 - mov r1, #0xb1 - mov r2, #0x0 - bl GetMonData - strh r0, [r7, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0177 -ScrCmd_Unk0177: ; 0x02044B00 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk019A -ScrCmd_Unk019A: ; 0x02044B2C - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - mov r5, #0x0 - add r7, r0, #0x0 - add r4, r5, #0x0 - cmp r7, #0x0 - ble _02044B7A -_02044B5A: - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _02044B74 - add r4, r4, #0x1 -_02044B74: - add r5, r5, #0x1 - cmp r5, r7 - blt _02044B5A -_02044B7A: - ldr r0, [sp, #0x0] - strh r4, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk019B -ScrCmd_Unk019B: ; 0x02044B84 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - str r0, [sp, #0x0] - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - mov r5, #0x0 - add r4, r5, #0x0 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _02044C00 -_02044BC8: - ldr r0, [sp, #0x0] - cmp r5, r0 - beq _02044BF8 - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _02044BF8 - add r0, r6, #0x0 - mov r1, #0xa2 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044BF8 - add r4, r4, #0x1 -_02044BF8: - ldr r0, [sp, #0x8] - add r5, r5, #0x1 - cmp r5, r0 - blt _02044BC8 -_02044C00: - ldr r0, [sp, #0x4] - strh r4, [r0, #0x0] - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk019C -ScrCmd_Unk019C: ; 0x02044C0C - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - ldr r0, [r7, #0xc] - bl GetStoragePCPointer - str r0, [sp, #0x4] - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - mov r5, #0x0 - add r4, r5, #0x0 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _02044C76 -_02044C44: - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _02044C6E - add r0, r6, #0x0 - mov r1, #0xa2 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044C6E - add r4, r4, #0x1 -_02044C6E: - ldr r0, [sp, #0x8] - add r5, r5, #0x1 - cmp r5, r0 - blt _02044C44 -_02044C76: - ldr r0, [sp, #0x4] - bl PCStorage_CountMonsInAllBoxes - add r1, r4, r0 - ldr r0, [sp, #0x0] - strh r1, [r0, #0x0] - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start ScrCmd_Unk019D -ScrCmd_Unk019D: ; 0x02044C88 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - mov r5, #0x0 - add r7, r0, #0x0 - add r4, r5, #0x0 - cmp r7, #0x0 - ble _02044CD6 -_02044CB6: - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044CD0 - add r4, r4, #0x1 -_02044CD0: - add r5, r5, #0x1 - cmp r5, r7 - blt _02044CB6 -_02044CD6: - ldr r0, [sp, #0x0] - strh r4, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0119 -ScrCmd_Unk0119: ; 0x02044CE0 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - ldr r4, _02044D40 ; =0x00000000 - ldr r0, [sp, #0x0] - strh r4, [r0, #0x0] - beq _02044D3C - mov r7, #0x99 -_02044D12: - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - add r1, r7, #0x0 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044D32 - ldr r0, [sp, #0x0] - mov r1, #0x1 - strh r1, [r0, #0x0] - b _02044D3C -_02044D32: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r6 - blo _02044D12 -_02044D3C: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_02044D40: .word 0x00000000 - - thumb_func_start ScrCmd_Unk011A -ScrCmd_Unk011A: ; 0x02044D44 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - mov r1, #0x6f - mov r2, #0x0 - bl GetMonData - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_Unk01C8 -ScrCmd_Unk01C8: ; 0x02044D8C - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - ldr r0, [r6, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044DDA - mov r0, #0x0 - strh r0, [r5, #0x0] - pop {r4-r6, pc} -_02044DDA: - mov r4, #0x0 - add r0, r6, #0x0 - mov r1, #0x36 - add r2, r4, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044DF0 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02044DF0: - add r0, r6, #0x0 - mov r1, #0x37 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044E04 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02044E04: - add r0, r6, #0x0 - mov r1, #0x38 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044E18 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02044E18: - add r0, r6, #0x0 - mov r1, #0x39 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02044E2C - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02044E2C: - strh r4, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk01C9 -ScrCmd_Unk01C9: ; 0x02044E34 - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - add r1, r4, #0x0 - bl FUN_020699A4 - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_Unk01CA -ScrCmd_Unk01CA: ; 0x02044E78 - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r1, r7, #0x0 - bl GetPartyMonByIndex - add r4, #0x36 - add r1, r4, #0x0 - mov r2, #0x0 - bl GetMonData - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk01EE -ScrCmd_Unk01EE: ; 0x02044ED8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x6 - mov r2, #0x0 - bl GetMonData - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_Unk01F0 -ScrCmd_Unk01F0: ; 0x02044F20 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r2, #0x0 - add r1, sp, #0x0 - strh r2, [r1, #0x0] - mov r1, #0x6 - add r2, sp, #0x0 - bl SetMonData - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_Unk01C0 -ScrCmd_Unk01C0: ; 0x02044F58 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r7, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - str r0, [sp, #0x0] - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r5, _02044FE4 ; =0x00000000 - ldr r0, [sp, #0x4] - strh r5, [r0, #0x0] - beq _02044FDE -_02044F9E: - ldr r0, [r7, #0xc] - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _02044FD4 - add r0, r4, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, [sp, #0x0] - cmp r0, r1 - bne _02044FD4 - ldr r0, [sp, #0x4] - mov r1, #0x1 - strh r1, [r0, #0x0] - b _02044FDE -_02044FD4: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _02044F9E -_02044FDE: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02044FE4: .word 0x00000000 - - thumb_func_start ScrCmd_Unk022E -ScrCmd_Unk022E: ; 0x02044FE8 - push {r3-r7, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - mov r4, #0x0 - add r6, r0, #0x0 - add r5, r4, #0x0 - add r7, r4, #0x0 -_0204502A: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - add r1, r7, #0x0 - bl FUN_0207FC5C - add r1, r0, #0x0 - add r0, r6, #0x0 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02045048 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02045048: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x50 - blo _0204502A - ldr r0, [sp, #0x0] - strh r5, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk022F -ScrCmd_Unk022F: ; 0x0204505C - push {r3-r7, lr} - sub sp, #0x10 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x10 - add r4, #0x80 - lsr r6, r0, #0x10 - ldr r0, [r4, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x8] - str r0, [sp, #0x4] -_0204509A: - mov r5, #0x0 - cmp r6, #0x0 - bls _020450E8 - ldr r0, [sp, #0x8] - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -_020450A6: - ldr r0, [sp, #0xc] - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - bne _020450E8 - add r0, r7, #0x0 - mov r1, #0x0 - bl FUN_0207FC5C - add r1, r0, #0x0 - add r0, r4, #0x0 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _020450DE - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - b _020450E8 -_020450DE: - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, r6 - blo _020450A6 -_020450E8: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x8] - cmp r0, #0x50 - blo _0204509A - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - strh r1, [r0, #0x0] - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0230 -ScrCmd_Unk0230: ; 0x02045104 - push {r3-r7, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - add r6, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r7, #0x0 - bl GetPartyMonByIndex - add r5, r0, #0x0 - lsl r0, r6, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x0 - bl FUN_0207FC5C - add r1, r0, #0x0 - add r0, r5, #0x0 - mov r2, #0x0 - bl GetMonData - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk0231 -ScrCmd_Unk0231: ; 0x02045170 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - mov r1, #0x1 - add r0, sp, #0x0 - add r5, #0x80 - strb r1, [r0, #0x0] - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - add r5, r0, #0x0 - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x0 - bl FUN_0207FC5C - add r1, r0, #0x0 - add r0, r5, #0x0 - add r2, sp, #0x0 - bl SetMonData - mov r0, #0x0 - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start ScrCmd_Unk02B7 -ScrCmd_Unk02B7: ; 0x020451D0 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - bl GetPartyCount - lsl r0, r0, #0x10 - add r4, #0x80 - lsr r6, r0, #0x10 - ldr r0, [r4, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r7, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x4] -_0204520C: - mov r5, #0x0 - cmp r6, #0x0 - bls _0204524C -_02045212: - add r0, r7, #0x0 - add r1, r5, #0x0 - bl GetPartyMonByIndex - mov r1, #0x4c - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02045242 - add r0, r4, #0x0 - mov r1, #0x3 - mov r2, #0x0 - bl GetMonData - cmp r0, #0x0 - beq _02045242 - ldr r0, [sp, #0x0] - mov r1, #0x1 - strh r1, [r0, #0x0] - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_02045242: - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - cmp r5, r6 - blo _02045212 -_0204524C: - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - cmp r0, #0x50 - blo _0204520C - ldr r1, [sp, #0x0] - mov r0, #0x0 - strh r0, [r1, #0x0] - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start ScrCmd_Unk00A0 -ScrCmd_Unk00A0: ; 0x02045264 - mov r0, #0x0 - bx lr diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s index b0a515ef..918354ff 100644 --- a/arm9/asm/scrcmd_3.s +++ b/arm9/asm/scrcmd_3.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s index 2f3bd42c..cfce1cf5 100644 --- a/arm9/asm/scrcmd_5.s +++ b/arm9/asm/scrcmd_5.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/scrcmd_7.s b/arm9/asm/scrcmd_7.s index 58f8b6dc..b253dab5 100644 --- a/arm9/asm/scrcmd_7.s +++ b/arm9/asm/scrcmd_7.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s index bad1ef47..c3d8c4ba 100644 --- a/arm9/asm/scrcmd_9.s +++ b/arm9/asm/scrcmd_9.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index af0e7940..ef0c42fa 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F34FC .extern UNK_020F3538 diff --git a/arm9/asm/stdlibmwcc.s b/arm9/asm/stdlibmwcc.s deleted file mode 100644 index b7966e40..00000000 --- a/arm9/asm/stdlibmwcc.s +++ /dev/null @@ -1,3175 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .extern UNK_021D74A8 - - .section .bss - - .global __global_destructor_chain -__global_destructor_chain: ; 0x021D74C8 - .space 0x18 - - .section .text - .balign 4, 0 - - arm_func_start _dadd -_dadd: - stmdb sp!, {r4,lr} - eors r12, r1, r3 - eormi r3, r3, #0x80000000 - bmi _020EA5DC -_020E9B54: - subs r12, r0, r2 - sbcs lr, r1, r3 - bhs _020E9B70 - adds r2, r2, r12 - adc r3, r3, lr - subs r0, r0, r12 - sbc r1, r1, lr -_020E9B70: - mov lr, #0x80000000 - mov r12, r1, lsr #0x14 - orr r1, lr, r1, lsl #0xb - orr r1, r1, r0, lsr #0x15 - mov r0, r0, lsl #0xb - movs r4, r12, lsl #0x15 - cmnne r4, #0x200000 - beq _020E9C6C - mov r4, r3, lsr #0x14 - orr r3, lr, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs lr, r4, lsl #0x15 - beq _020E9CB4 -_020E9BA8: - subs r4, r12, r4 - beq _020E9C00 - cmp r4, #0x20 - ble _020E9BE4 - cmp r4, #0x38 - movge r4, #0x3f - sub r4, r4, #0x20 - rsb lr, r4, #0x20 - orrs lr, r2, r3, lsl lr - mov r2, r3, lsr r4 - orrne r2, r2, #0x1 - adds r0, r0, r2 - adcs r1, r1, #0x0 - blo _020E9C28 - b _020E9C0C -_020E9BE4: - rsb lr, r4, #0x20 - movs lr, r2, lsl lr - rsb lr, r4, #0x20 - mov r2, r2, lsr r4 - orr r2, r2, r3, lsl lr - mov r3, r3, lsr r4 - orrne r2, r2, #0x1 -_020E9C00: - adds r0, r0, r2 - adcs r1, r1, r3 - blo _020E9C28 -_020E9C0C: - add r12, r12, #0x1 - and r4, r0, #0x1 - movs r1, r1, rrx - orr r0, r4, r0, rrx - mov lr, r12, lsl #0x15 - cmn lr, #0x200000 - beq _020E9E38 -_020E9C28: - movs r2, r0, lsl #0x15 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - mov r1, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - tst r2, #0x80000000 - ldmeqia sp!, {r4,lr} - bxeq lr - movs r2, r2, lsl #0x1 - andeqs r2, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - adds r0, r0, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020E9C6C: - cmp r12, #0x800 - movge lr, #0x80000000 - movlt lr, #0x0 - bics r12, r12, #0x800 - beq _020E9CD8 - orrs r4, r0, r1, lsl #0x1 - bne _020E9E14 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r4, r4, lsl #0x15 - beq _020E9E00 - cmn r4, #0x200000 - bne _020E9E00 - orrs r4, r2, r3, lsl #0x1 - beq _020E9E00 - b _020E9E14 -_020E9CB4: - cmp r4, #0x800 - movge lr, #0x80000000 - movlt lr, #0x0 - bic r12, r12, #0x800 - bics r4, r4, #0x800 - beq _020E9D44 - orrs r4, r2, r3, lsl #0x1 - bne _020E9E14 - b _020E9E00 -_020E9CD8: - orrs r4, r0, r1, lsl #0x1 - beq _020E9D18 - mov r12, #0x1 - bic r1, r1, #0x80000000 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r4, r4, lsl #0x15 - cmnne r4, #0x200000 - mov r4, r4, lsr #0x15 - orr r4, r4, lr, lsr #0x14 - beq _020E9CB4 - orr r3, r3, #0x80000000 - orr r12, r12, lr, lsr #0x14 - b _020E9BA8 -_020E9D18: - mov r12, r3, lsr #0x14 - mov r1, r3, lsl #0xb - orr r1, r1, r2, lsr #0x15 - mov r0, r2, lsl #0xb - movs r4, r12, lsl #0x15 - beq _020E9DCC - cmn r4, #0x200000 - bne _020E9DCC - orrs r4, r0, r1, lsl #0x1 - beq _020E9E00 - b _020E9E18 -_020E9D44: - orrs r4, r2, r3, lsl #0x1 - beq _020E9DDC - mov r4, #0x1 - bic r3, r3, #0x80000000 - cmp r1, #0x0 - bpl _020E9D68 - orr r12, r12, lr, lsr #0x14 - orr r4, r4, lr, lsr #0x14 - b _020E9BA8 -_020E9D68: - adds r0, r0, r2 - adcs r1, r1, r3 - blo _020E9D88 - add r12, r12, #0x1 - and r4, r0, #0x1 - movs r1, r1, rrx - mov r0, r0, rrx - orr r0, r0, r4 -_020E9D88: - cmp r1, #0x0 - subges r12, r12, #0x1 - movs r2, r0, lsl #0x15 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, lr, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - ldmeqia sp!, {r4,lr} - bxeq lr - tst r2, #0x80000000 - ldmeqia sp!, {r4,lr} - bxeq lr - movs r2, r2, lsl #0x1 - andeqs r2, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr -_020E9DCC: - mov r1, r3 - mov r0, r2 - ldmia sp!, {r4,lr} - bx lr -_020E9DDC: - cmp r1, #0x0 - subges r12, r12, #0x1 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, lr, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - ldmia sp!, {r4,lr} - bx lr -_020E9E00: - ldr r1, _020E9E58 ; =0x7FF00000 - orr r1, lr, r1 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020E9E14: - mov r1, r3 -_020E9E18: - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4,lr} - bx lr -_020E9E28: ; 0x020E9E28 - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4,lr} - bx lr -_020E9E38: - cmp r12, #0x800 - movge lr, #0x80000000 - movlt lr, #0x0 - ldr r1, _020E9E58 ; =0x7FF00000 - orr r1, lr, r1 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020E9E58: .word 0x7FF00000 - - arm_func_start _d2f -_d2f: - and r2, r1, #0x80000000 - mov r12, r1, lsr #0x14 - bics r12, r12, #0x800 - beq _020E9ED4 - mov r3, r12, lsl #0x15 - cmn r3, #0x200000 - bhs _020E9EB8 - subs r12, r12, #0x380 - bls _020E9EE4 - cmp r12, #0xff - bge _020E9F54 - mov r1, r1, lsl #0xc - orr r3, r2, r1, lsr #0x9 - orr r3, r3, r0, lsr #0x1d - movs r1, r0, lsl #0x3 - orr r0, r3, r12, lsl #0x17 - bxeq lr - tst r1, #0x80000000 - bxeq lr - movs r1, r1, lsl #0x1 - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020E9EB8: - orrs r3, r0, r1, lsl #0xc - bne _020E9ECC - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020E9ECC: - mvn r0, #0x80000000 - bx lr -_020E9ED4: - orrs r3, r0, r1, lsl #0xc - bne _020E9F4C - mov r0, r2 - bx lr -_020E9EE4: - cmn r12, #0x17 - beq _020E9F38 - bmi _020E9F4C - mov r1, r1, lsl #0xb - orr r1, r1, #0x80000000 - mov r3, r1, lsr #0x8 - orr r3, r3, r0, lsr #0x1d - rsb r12, r12, #0x1 - movs r1, r0, lsl #0x3 - orr r0, r2, r3, lsr r12 - rsb r12, r12, #0x20 - mov r3, r3, lsl r12 - orrne r3, r3, #0x1 - movs r1, r3 - bxeq lr - tst r1, #0x80000000 - bxeq lr - movs r1, r1, lsl #0x1 - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020E9F38: - orr r0, r0, r1, lsl #0xc - movs r1, r0 - mov r0, r2 - addne r0, r0, #0x1 - bx lr -_020E9F4C: - mov r0, r2 - bx lr -_020E9F54: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr - - arm_func_start _dfix -_dfix: ; 0x020E9F60 - bic r3, r1, #0x80000000 - ldr r2, _020E9FA8 ; =0x0000041E - subs r2, r2, r3, lsr #0x14 - ble _020E9F9C - cmp r2, #0x20 - bge _020E9F94 - mov r3, r1, lsl #0xb - orr r3, r3, #0x80000000 - orr r3, r3, r0, lsr #0x15 - cmp r1, #0x0 - mov r0, r3, lsr r2 - rsbmi r0, r0, #0x0 - bx lr -_020E9F94: - mov r0, #0x0 - bx lr -_020E9F9C: - mvn r0, r1, asr #0x1f - add r0, r0, #0x80000000 - bx lr - .balign 4 -_020E9FA8: .word 0x0000041E - - arm_func_start _ll_ufrom_d -_ll_ufrom_d: ; 0x020E9FAC - tst r1, #0x80000000 - bne _020EA010 - ldr r2, _020EA034 ; =0x0000043E - subs r2, r2, r1, lsr #0x14 - blt _020EA028 - cmp r2, #0x40 - bge _020EA004 - mov r12, r1, lsl #0xb - orr r12, r12, #0x80000000 - orr r12, r12, r0, lsr #0x15 - cmp r2, #0x20 - ble _020E9FEC - sub r2, r2, #0x20 - mov r1, #0x0 - mov r0, r12, lsr r2 - bx lr -_020E9FEC: - mov r3, r0, lsl #0xb - mov r1, r12, lsr r2 - mov r0, r3, lsr r2 - rsb r2, r2, #0x20 - orr r0, r0, r12, lsl r2 - bx lr -_020EA004: - mov r1, #0x0 - mov r0, #0x0 - bx lr -_020EA010: - cmn r1, #0x100000 - cmpeq r0, #0x0 - bhi _020EA028 - mov r1, #0x0 - mov r0, #0x0 - bx lr -_020EA028: - mvn r1, #0x0 - mvn r0, #0x0 - bx lr - .balign 4 -_020EA034: .word 0x0000043E - - arm_func_start _dflt -_dflt: ; 0x020EA038 - ands r2, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r0, #0x0 - mov r1, #0x0 - bxeq lr - mov r3, #0x400 - add r3, r3, #0x1e - clz r12, r0 - movs r0, r0, lsl r12 - sub r3, r3, r12 - movs r1, r0 - mov r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, r2, r1, lsr #0xc - orr r1, r1, r3, lsl #0x14 - bx lr - - arm_func_start _dfltu -_dfltu: ; 0x020EA078 - cmp r0, #0x0 - mov r1, #0x0 - bxeq lr - mov r3, #0x400 - add r3, r3, #0x1e - bmi _020EA09C - clz r12, r0 - movs r0, r0, lsl r12 - sub r3, r3, r12 -_020EA09C: - mov r1, r0 - mov r0, r1, lsl #0x15 - add r1, r1, r1 - mov r1, r1, lsr #0xc - orr r1, r1, r3, lsl #0x14 - bx lr - - arm_func_start _dmul -_dmul: ; 0x020EA0B4 - stmdb sp!, {r4-r7,lr} - eor lr, r1, r3 - and lr, lr, #0x80000000 - mov r12, r1, lsr #0x14 - mov r1, r1, lsl #0xb - orr r1, r1, r0, lsr #0x15 - mov r0, r0, lsl #0xb - movs r6, r12, lsl #0x15 - cmnne r6, #0x200000 - beq _020EA1BC - orr r1, r1, #0x80000000 - bic r12, r12, #0x800 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r5, r4, lsl #0x15 - cmnne r5, #0x200000 - beq _020EA204 - orr r3, r3, #0x80000000 - bic r4, r4, #0x800 -_020EA108: - add r12, r4, r12 - umull r5, r4, r0, r2 - umull r7, r6, r0, r3 - adds r4, r7, r4 - adc r6, r6, #0x0 - umull r7, r0, r1, r2 - adds r4, r7, r4 - adcs r0, r0, r6 - umull r7, r2, r1, r3 - adc r1, r2, #0x0 - adds r0, r0, r7 - adc r1, r1, #0x0 - orrs r4, r4, r5 - orrne r0, r0, #0x1 - cmp r1, #0x0 - blt _020EA154 - sub r12, r12, #0x1 - adds r0, r0, r0 - adc r1, r1, r1 -_020EA154: - add r12, r12, #0x2 - subs r12, r12, #0x400 - bmi _020EA2F0 - beq _020EA2F0 - mov r6, r12, lsl #0x14 - cmn r6, #0x100000 - bmi _020EA3F0 - movs r2, r0, lsl #0x15 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, lr, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - tst r2, #0x80000000 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - movs r2, r2, lsl #0x1 - andeqs r2, r0, #0x1 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - adds r0, r0, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA1BC: - bics r12, r12, #0x800 - beq _020EA218 - orrs r6, r0, r1, lsl #0x1 - bne _020EA3A4 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r5, r4, lsl #0x15 - beq _020EA1F8 - cmn r5, #0x200000 - bne _020EA390 - orrs r5, r2, r3, lsl #0x1 - beq _020EA390 - b _020EA3A4 -_020EA1F8: - orrs r5, r3, r2 - beq _020EA3B8 - b _020EA390 -_020EA204: - bics r4, r4, #0x800 - beq _020EA2AC - orrs r6, r2, r3, lsl #0x1 - bne _020EA3A4 - b _020EA390 -_020EA218: - orrs r6, r0, r1, lsl #0x1 - beq _020EA280 - mov r12, #0x1 - cmp r1, #0x0 - bne _020EA23C - sub r12, r12, #0x20 - movs r1, r0 - mov r0, #0x0 - bmi _020EA258 -_020EA23C: - clz r6, r1 - movs r1, r1, lsl r6 - rsb r6, r6, #0x20 - orr r1, r1, r0, lsr r6 - rsb r6, r6, #0x20 - mov r0, r0, lsl r6 - sub r12, r12, r6 -_020EA258: - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r5, r4, lsl #0x15 - cmnne r5, #0x200000 - beq _020EA204 - orr r3, r3, #0x80000000 - bic r4, r4, #0x800 - b _020EA108 -_020EA280: - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r5, r4, lsl #0x15 - beq _020EA404 - cmn r5, #0x200000 - bne _020EA404 - orrs r6, r2, r3, lsl #0x1 - beq _020EA3B8 - b _020EA3A4 -_020EA2AC: - orrs r5, r2, r3, lsl #0x1 - beq _020EA404 - mov r4, #0x1 - cmp r3, #0x0 - bne _020EA2D0 - sub r4, r4, #0x20 - movs r3, r2 - mov r2, #0x0 - bmi _020EA108 -_020EA2D0: - clz r6, r3 - movs r3, r3, lsl r6 - rsb r6, r6, #0x20 - orr r3, r3, r2, lsr r6 - rsb r6, r6, #0x20 - mov r2, r2, lsl r6 - sub r4, r4, r6 - b _020EA108 -_020EA2F0: - cmn r12, #0x34 - beq _020EA388 - bmi _020EA3E0 - mov r2, r1 - mov r3, r0 - add r4, r12, #0x34 - cmp r4, #0x20 - movge r2, r3 - movge r3, #0x0 - subge r4, r4, #0x20 - rsb r5, r4, #0x20 - mov r2, r2, lsl r4 - orr r2, r2, r3, lsr r5 - movs r3, r3, lsl r4 - orrne r2, r2, #0x1 - rsb r12, r12, #0xc - cmp r12, #0x20 - movge r0, r1 - movge r1, #0x0 - subge r12, r12, #0x20 - rsb r4, r12, #0x20 - mov r0, r0, lsr r12 - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr r12 - cmp r2, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - tst r2, #0x80000000 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - movs r2, r2, lsl #0x1 - andeqs r2, r0, #0x1 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - adds r0, r0, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA388: - orr r0, r0, r1, lsl #0x1 - b _020EA3C8 -_020EA390: - ldr r1, _020EA414 ; =0x7FF00000 - orr r1, lr, r1 - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA3A4: - mov r1, r3 - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA3B8: - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA3C8: - movs r2, r0 - mov r1, lr - mov r0, #0x0 - addne r0, r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA3E0: - mov r1, lr - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA3F0: - ldr r1, _020EA414 ; =0x7FF00000 - orr r1, lr, r1 - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020EA404: - mov r1, lr - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020EA414: .word 0x7FF00000 - - arm_func_start _dsqrt -_dsqrt: ; 0x020EA418 - stmdb sp!, {r4-r6,lr} - ldr r2, _020EA5A8 ; =0x7FF00000 - cmp r1, r2 - bhs _020EA564 - movs r12, r1, lsr #0x14 - beq _020EA510 - bic r1, r1, r2 - orr r1, r1, #0x100000 -_020EA438: - movs r12, r12, asr #0x1 - bhs _020EA44C - sub r12, r12, #0x1 - movs r0, r0, lsl #0x1 - adc r1, r1, r1 -_020EA44C: - movs r3, r0, lsl #0x1 - adc r1, r1, r1 - mov r2, #0x0 - mov r4, #0x0 - mov lr, #0x200000 -_020EA460: - add r6, r4, lr - cmp r6, r1 - addle r4, r6, lr - suble r1, r1, r6 - addle r2, r2, lr - movs r3, r3, lsl #0x1 - adc r1, r1, r1 - movs lr, lr, lsr #0x1 - bne _020EA460 - mov r0, #0x0 - mov r5, #0x0 - cmp r1, r4 - cmpeq r3, #0x80000000 - blo _020EA4A8 - subs r3, r3, #0x80000000 - sbc r1, r1, r4 - add r4, r4, #0x1 - mov r0, #0x80000000 -_020EA4A8: - movs r3, r3, lsl #0x1 - adc r1, r1, r1 - mov lr, #0x40000000 -_020EA4B4: - add r6, r5, lr - cmp r4, r1 - cmpeq r6, r3 - bhi _020EA4D4 - add r5, r6, lr - subs r3, r3, r6 - sbc r1, r1, r4 - add r0, r0, lr -_020EA4D4: - movs r3, r3, lsl #0x1 - adc r1, r1, r1 - movs lr, lr, lsr #0x1 - bne _020EA4B4 - orrs r1, r1, r3 - biceq r0, r0, #0x1 - movs r1, r2, lsr #0x1 - movs r0, r0, rrx - adcs r0, r0, #0x0 - adc r1, r1, #0x0 - add r1, r1, #0x20000000 - sub r1, r1, #0x100000 - add r1, r1, r12, lsl #0x14 - ldmia sp!, {r4-r6,lr} - bx lr -_020EA510: - cmp r1, #0x0 - bne _020EA540 - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mvn r12, #0x13 - clz r5, r0 - movs r0, r0, lsl r5 - sub r12, r12, r5 - mov r1, r0, lsr #0xb - mov r0, r0, lsl #0x15 - b _020EA438 -_020EA540: - clz r2, r1 - movs r1, r1, lsl r2 - rsb r2, r2, #0x2b - mov r1, r1, lsr #0xb - orr r1, r1, r0, lsr r2 - rsb r2, r2, #0x20 - mov r0, r0, lsl r2 - rsb r12, r2, #0x1 - b _020EA438 -_020EA564: - tst r1, #0x80000000 - beq _020EA580 - bics r3, r1, #0x80000000 - cmpeq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - b _020EA58C -_020EA580: - orrs r2, r0, r1, lsl #0xc - ldmeqia sp!, {r4-r6,lr} - bxeq lr -_020EA58C: - ldr r2, _020EA5AC ; =0x7FF80000 - orr r1, r1, r2 - ldr r3, _020EA5B0 ; =UNK_021D74A8 - mov r4, #0x21 - str r4, [r3, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020EA5A8: .word 0x7FF00000 -_020EA5AC: .word 0x7FF80000 -_020EA5B0: .word UNK_021D74A8 - - arm_func_start _drsb -_drsb: ; 0x020EA5B4 - eor r1, r1, r3 - eor r3, r1, r3 - eor r1, r1, r3 - eor r0, r0, r2 - eor r2, r0, r2 - eor r0, r0, r2 - - arm_func_start _dsub -_dsub: - stmdb sp!, {r4,lr} - eors r12, r1, r3 - eormi r3, r3, #0x80000000 - bmi _020E9B54 -_020EA5DC: - subs r12, r0, r2 - sbcs lr, r1, r3 - bhs _020EA5FC - eor lr, lr, #0x80000000 - adds r2, r2, r12 - adc r3, r3, lr - subs r0, r0, r12 - sbc r1, r1, lr -_020EA5FC: - mov lr, #0x80000000 - mov r12, r1, lsr #0x14 - orr r1, lr, r1, lsl #0xb - orr r1, r1, r0, lsr #0x15 - mov r0, r0, lsl #0xb - movs r4, r12, lsl #0x15 - cmnne r4, #0x200000 - beq _020EA800 - mov r4, r3, lsr #0x14 - orr r3, lr, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs lr, r4, lsl #0x15 - beq _020EA848 -_020EA634: - subs r4, r12, r4 - beq _020EA6DC - cmp r4, #0x20 - ble _020EA670 - cmp r4, #0x38 - movge r4, #0x3f - sub r4, r4, #0x20 - rsb lr, r4, #0x20 - orrs lr, r2, r3, lsl lr - mov r2, r3, lsr r4 - orrne r2, r2, #0x1 - subs r0, r0, r2 - sbcs r1, r1, #0x0 - bmi _020EA698 - b _020EA788 -_020EA670: - rsb lr, r4, #0x20 - movs lr, r2, lsl lr - rsb lr, r4, #0x20 - mov r2, r2, lsr r4 - orr r2, r2, r3, lsl lr - mov r3, r3, lsr r4 - orrne r2, r2, #0x1 - subs r0, r0, r2 - sbcs r1, r1, r3 - bpl _020EA788 -_020EA698: - movs r2, r0, lsl #0x15 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - mov r1, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - tst r2, #0x80000000 - ldmeqia sp!, {r4,lr} - bxeq lr - movs r2, r2, lsl #0x1 - andeqs r2, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - adds r0, r0, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020EA6DC: - subs r0, r0, r2 - sbc r1, r1, r3 - orrs lr, r1, r0 - beq _020EA96C - mov lr, r12, lsl #0x14 - and lr, lr, #0x80000000 - bic r12, r12, #0x800 - cmp r1, #0x0 - bmi _020EA764 - bne _020EA714 - sub r12, r12, #0x20 - movs r1, r0 - mov r0, #0x0 - bmi _020EA730 -_020EA714: - clz r4, r1 - movs r1, r1, lsl r4 - rsb r4, r4, #0x20 - orr r1, r1, r0, lsr r4 - rsb r4, r4, #0x20 - mov r0, r0, lsl r4 - sub r12, r12, r4 -_020EA730: - cmp r12, #0x0 - bgt _020EA76C - rsb r12, r12, #0xc - cmp r12, #0x20 - movge r0, r1 - movge r1, #0x0 - subge r12, r12, #0x20 - rsb r4, r12, #0x20 - mov r0, r0, lsr r12 - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr r12 - ldmia sp!, {r4,lr} - bx lr -_020EA764: - cmp r1, #0x0 - subges r12, r12, #0x1 -_020EA76C: - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, lr, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - ldmia sp!, {r4,lr} - bx lr -_020EA788: - mov lr, r12, lsl #0x14 - and lr, lr, #0x80000000 - bic r12, r12, #0x800 - cmp r1, #0x0 - bne _020EA7AC - sub r12, r12, #0x20 - movs r1, r0 - mov r0, #0x0 - bmi _020EA7C8 -_020EA7AC: - clz r4, r1 - movs r1, r1, lsl r4 - rsb r4, r4, #0x20 - orr r1, r1, r0, lsr r4 - rsb r4, r4, #0x20 - mov r0, r0, lsl r4 - sub r12, r12, r4 -_020EA7C8: - cmp r12, #0x0 - orrgt r12, r12, lr, lsr #0x14 - bgt _020EA698 - rsb r12, r12, #0xc - cmp r12, #0x20 - movge r0, r1 - movge r1, #0x0 - subge r12, r12, #0x20 - rsb r4, r12, #0x20 - mov r0, r0, lsr r12 - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr r12 - ldmia sp!, {r4,lr} - bx lr -_020EA800: - cmp r12, #0x800 - movge lr, #0x80000000 - movlt lr, #0x0 - bics r12, r12, #0x800 - beq _020EA86C - orrs r4, r0, r1, lsl #0x1 - bne _020EA948 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r4, r4, lsl #0x15 - beq _020EA934 - cmn r4, #0x200000 - bne _020EA934 - orrs r4, r2, r3, lsl #0x1 - beq _020EA95C - b _020EA948 -_020EA848: - cmp r4, #0x800 - movge lr, #0x80000000 - movlt lr, #0x0 - bic r12, r12, #0x800 - bics r4, r4, #0x800 - beq _020EA8E4 - orrs r4, r2, r3, lsl #0x1 - bne _020EA948 - b _020EA934 -_020EA86C: - orrs r4, r0, r1, lsl #0x1 - beq _020EA8AC - mov r12, #0x1 - bic r1, r1, #0x80000000 - mov r4, r3, lsr #0x14 - mov r3, r3, lsl #0xb - orr r3, r3, r2, lsr #0x15 - mov r2, r2, lsl #0xb - movs r4, r4, lsl #0x15 - cmnne r4, #0x200000 - mov r4, r4, lsr #0x15 - orr r4, r4, lr, lsr #0x14 - beq _020EA848 - orr r3, r3, #0x80000000 - orr r12, r12, lr, lsr #0x14 - b _020EA634 -_020EA8AC: - mov r12, r3, lsr #0x14 - mov r1, r3, lsl #0xb - orr r1, r1, r2, lsr #0x15 - mov r0, r2, lsl #0xb - movs r4, r12, lsl #0x15 - beq _020EA8D8 - cmn r4, #0x200000 - bne _020EA900 - orrs r4, r0, r1, lsl #0x1 - bne _020EA94C - b _020EA934 -_020EA8D8: - orrs r4, r0, r1, lsl #0x1 - beq _020EA96C - b _020EA900 -_020EA8E4: - orrs r4, r2, r3, lsl #0x1 - beq _020EA910 - mov r4, #0x1 - bic r3, r3, #0x80000000 - orr r12, r12, lr, lsr #0x14 - orr r4, r4, lr, lsr #0x14 - b _020EA634 -_020EA900: - mov r1, r3 - mov r0, r2 - ldmia sp!, {r4,lr} - bx lr -_020EA910: - cmp r1, #0x0 - subges r12, r12, #0x1 - mov r0, r0, lsr #0xb - orr r0, r0, r1, lsl #0x15 - add r1, r1, r1 - orr r1, lr, r1, lsr #0xc - orr r1, r1, r12, lsl #0x14 - ldmia sp!, {r4,lr} - bx lr -_020EA934: - ldr r1, _020EA97C ; =0x7FF00000 - orr r1, lr, r1 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020EA948: - mov r1, r3 -_020EA94C: - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4,lr} - bx lr -_020EA95C: - mvn r0, #0x0 - bic r1, r0, #0x80000000 - ldmia sp!, {r4,lr} - bx lr -_020EA96C: - mov r1, #0x0 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020EA97C: .word 0x7FF00000 - - arm_func_start _fadd -_fadd: ; 0x020EA980 - eors r2, r0, r1 - eormi r1, r1, #0x80000000 - bmi _020EB7BC -_020EA98C: - subs r12, r0, r1 - subcc r0, r0, r12 - addcc r1, r1, r12 - mov r2, #0x80000000 - mov r3, r0, lsr #0x17 - orr r0, r2, r0, lsl #0x8 - ands r12, r3, #0xff - cmpne r12, #0xff - beq _020EAA20 - mov r12, r1, lsr #0x17 - orr r1, r2, r1, lsl #0x8 - ands r2, r12, #0xff - beq _020EAA60 -_020EA9C0: - subs r12, r3, r12 - beq _020EA9D8 - rsb r2, r12, #0x20 - movs r2, r1, lsl r2 - mov r1, r1, lsr r12 - orrne r1, r1, #0x1 -_020EA9D8: - adds r0, r0, r1 - blo _020EA9F8 - and r1, r0, #0x1 - orr r0, r1, r0, rrx - add r3, r3, #0x1 - and r2, r3, #0xff - cmp r2, #0xff - beq _020EAB68 -_020EA9F8: - ands r1, r0, #0xff - add r0, r0, r0 - mov r0, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EAA20: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0x0 - ands r3, r3, #0xff - beq _020EAA84 - movs r0, r0, lsl #0x1 - bne _020EAB94 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EAB88 - cmp r12, #0xff - blt _020EAB88 - cmp r1, #0x0 - beq _020EAB88 - b _020EAB94 -_020EAA60: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0x0 - and r3, r3, #0xff - ands r12, r12, #0xff - beq _020EAAE0 -_020EAA78: - movs r1, r1, lsl #0x1 - bne _020EAB94 - b _020EAB88 -_020EAA84: - movs r0, r0, lsl #0x1 - beq _020EAABC - mov r3, #0x1 - mov r0, r0, lsr #0x1 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x8 - ands r12, r12, #0xff - beq _020EAAE0 - cmp r12, #0xff - beq _020EAA78 - orr r1, r1, #0x80000000 - orr r3, r3, r2, lsr #0x17 - orr r12, r12, r2, lsr #0x17 - b _020EA9C0 -_020EAABC: - mov r3, r1, lsr #0x17 - mov r0, r1, lsl #0x9 - ands r3, r3, #0xff - beq _020EAB48 - cmp r3, #0xff - blt _020EAB48 - cmp r0, #0x0 - beq _020EAB88 - b _020EAB80 -_020EAAE0: - movs r1, r1, lsl #0x1 - beq _020EAB50 - mov r1, r1, lsr #0x1 - mov r12, #0x1 - orr r3, r3, r2, lsr #0x17 - orr r12, r12, r2, lsr #0x17 - cmp r0, #0x0 - bmi _020EA9C0 - adds r0, r0, r1 - blo _020EAB14 - and r1, r0, #0x1 - orr r0, r1, r0, rrx - add r12, r12, #0x1 -_020EAB14: - cmp r0, #0x0 - subge r12, r12, #0x1 - ands r1, r0, #0xff - add r0, r0, r0 - mov r0, r0, lsr #0x9 - orr r0, r0, r12, lsl #0x17 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EAB48: - mov r0, r1 - bx lr -_020EAB50: - cmp r0, #0x0 - subges r3, r3, #0x1 - add r0, r0, r0 - orr r0, r2, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bx lr -_020EAB68: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0x0 - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020EAB80: - mvn r0, #0x80000000 - bx lr -_020EAB88: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020EAB94: - mvn r0, #0x80000000 - bx lr -_020EAB9C: ; 0x020EAB9C - mvn r0, #0x80000000 - bx lr - - arm_func_start _dgr -_dgr: ; 0x020EABA4 - mov r12, #0x200000 - cmn r12, r1, lsl #0x1 - bhs _020EAC18 - cmn r12, r3, lsl #0x1 - bhs _020EAC2C -_020EABB8: - orrs r12, r3, r1 - bmi _020EABE8 - cmp r1, r3 - cmpeq r0, r2 - movhi r0, #0x1 - movls r0, #0x0 - bx lr -_020EABD4: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EABE8: - orr r12, r0, r12, lsl #0x1 - orrs r12, r12, r2 - moveq r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x20000000 - msr cpsr_f, r12 - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - movhi r0, #0x1 - movls r0, #0x0 - bx lr -_020EAC18: - bne _020EABD4 - cmp r0, #0x0 - bhi _020EABD4 - cmn r12, r3, lsl #0x1 - blo _020EABB8 -_020EAC2C: - bne _020EABD4 - cmp r2, #0x0 - bhi _020EABD4 - b _020EABB8 - - arm_func_start _dleq -_dleq: ; 0x020EAC3C - mov r12, #0x200000 - cmn r12, r1, lsl #0x1 - bhs _020EACBC - cmn r12, r3, lsl #0x1 - bhs _020EACD0 -_020EAC50: - orrs r12, r3, r1 - bmi _020EAC84 - cmp r1, r3 - cmpeq r0, r2 - movls r0, #0x1 - movhi r0, #0x0 - bx lr -_020EAC6C: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x40000000 - orr r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EAC84: - orr r12, r0, r12, lsl #0x1 - orrs r12, r12, r2 - moveq r0, #0x1 - bne _020EACA8 - mrs r12, cpsr - bic r12, r12, #0x20000000 - orr r12, r12, #0x40000000 - msr cpsr_f, r12 - bxeq lr -_020EACA8: - cmp r3, r1 - cmpeq r2, r0 - movls r0, #0x1 - movhi r0, #0x0 - bx lr -_020EACBC: - bne _020EAC6C - cmp r0, #0x0 - bhi _020EAC6C - cmn r12, r3, lsl #0x1 - blo _020EAC50 -_020EACD0: - bne _020EAC6C - cmp r2, #0x0 - bhi _020EAC6C - b _020EAC50 - - arm_func_start _dls -_dls: ; 0x020EACE0 - mov r12, #0x200000 - cmn r12, r1, lsl #0x1 - bhs _020EAD58 - cmn r12, r3, lsl #0x1 - bhs _020EAD6C -_020EACF4: - orrs r12, r3, r1 - bmi _020EAD24 - cmp r1, r3 - cmpeq r0, r2 - movcc r0, #0x1 - movcs r0, #0x0 - bx lr -_020EAD10: - mov r0, #0x0 - mrs r12, cpsr - orr r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EAD24: - orr r12, r0, r12, lsl #0x1 - orrs r12, r12, r2 - moveq r0, #0x0 - bne _020EAD44 - mrs r12, cpsr - orr r12, r12, #0x20000000 - msr cpsr_f, r12 - bxeq lr -_020EAD44: - cmp r3, r1 - cmpeq r2, r0 - movcc r0, #0x1 - movcs r0, #0x0 - bx lr -_020EAD58: - bne _020EAD10 - cmp r0, #0x0 - bhi _020EAD10 - cmn r12, r3, lsl #0x1 - blo _020EACF4 -_020EAD6C: - bne _020EAD10 - cmp r2, #0x0 - bhi _020EAD10 - b _020EACF4 - - arm_func_start _deq -_deq: ; 0x020EAD7C - mov r12, #0x200000 - cmn r12, r1, lsl #0x1 - bhs _020EADE4 - cmn r12, r3, lsl #0x1 - bhs _020EADF8 -_020EAD90: - orrs r12, r3, r1 - bmi _020EADC0 - cmp r1, r3 - cmpeq r0, r2 - moveq r0, #0x1 - movne r0, #0x0 - bx lr -_020EADAC: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr -_020EADC0: - orr r12, r0, r12, lsl #0x1 - orrs r12, r12, r2 - moveq r0, #0x1 - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - moveq r0, #0x1 - movne r0, #0x0 - bx lr -_020EADE4: - bne _020EADAC - cmp r0, #0x0 - bhi _020EADAC - cmn r12, r3, lsl #0x1 - blo _020EAD90 -_020EADF8: - bne _020EADAC - cmp r2, #0x0 - bhi _020EADAC - b _020EAD90 - - arm_func_start _dneq -_dneq: ; 0x020EAE08 - mov r12, #0x200000 - cmn r12, r1, lsl #0x1 - bhs _020EAE70 - cmn r12, r3, lsl #0x1 - bhs _020EAE84 -_020EAE1C: - orrs r12, r3, r1 - bmi _020EAE4C - cmp r1, r3 - cmpeq r0, r2 - movne r0, #0x1 - moveq r0, #0x0 - bx lr -_020EAE38: - mov r0, #0x1 - mrs r12, cpsr - bic r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr -_020EAE4C: - orr r12, r0, r12, lsl #0x1 - orrs r12, r12, r2 - moveq r0, #0x0 - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - movne r0, #0x1 - moveq r0, #0x0 - bx lr -_020EAE70: - bne _020EAE38 - cmp r0, #0x0 - bhi _020EAE38 - cmn r12, r3, lsl #0x1 - blo _020EAE1C -_020EAE84: - bne _020EAE38 - cmp r2, #0x0 - bhi _020EAE38 - b _020EAE1C - - arm_func_start _fgeq -_fgeq: ; 0x020EAE94 - mov r3, #0xff000000 - cmp r3, r0, lsl #0x1 - cmpcs r3, r1, lsl #0x1 - blo _020EAEDC - cmp r0, #0x0 - bicmi r0, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r1, #0x0 - bicmi r1, r1, #0x80000000 - rsbmi r1, r1, #0x0 - cmp r0, r1 - movge r0, #0x1 - movlt r0, #0x0 - mrs r12, cpsr - biclt r12, r12, #0x20000000 - orrge r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EAEDC: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr - - arm_func_start _fgr -_fgr: ; 0x020EAEF0 - mov r3, #0xff000000 - cmp r3, r0, lsl #0x1 - cmpcs r3, r1, lsl #0x1 - blo _020EAF38 - cmp r0, #0x0 - bicmi r0, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r1, #0x0 - bicmi r1, r1, #0x80000000 - rsbmi r1, r1, #0x0 - cmp r0, r1 - movgt r0, #0x1 - movle r0, #0x0 - mrs r12, cpsr - bicle r12, r12, #0x20000000 - orrgt r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EAF38: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr - - arm_func_start _fleq -_fleq: ; 0x020EAF4C - mov r3, #0xff000000 - cmp r3, r0, lsl #0x1 - cmpcs r3, r1, lsl #0x1 - blo _020EAF9C - cmp r0, #0x0 - bicmi r0, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r1, #0x0 - bicmi r1, r1, #0x80000000 - rsbmi r1, r1, #0x0 - cmp r0, r1 - movle r0, #0x1 - movgt r0, #0x0 - mrs r12, cpsr - orrgt r12, r12, #0x20000000 - bicgt r12, r12, #0x40000000 - bicle r12, r12, #0x20000000 - orrle r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr -_020EAF9C: - mov r0, #0x0 - mrs r12, cpsr - bic r12, r12, #0x40000000 - orr r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr - - arm_func_start _fls -_fls: ; 0x020EAFB4 - mov r3, #0xff000000 - cmp r3, r0, lsl #0x1 - cmpcs r3, r1, lsl #0x1 - blo _020EAFFC - cmp r0, #0x0 - bicmi r0, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r1, #0x0 - bicmi r1, r1, #0x80000000 - rsbmi r1, r1, #0x0 - cmp r0, r1 - movlt r0, #0x1 - movge r0, #0x0 - mrs r12, cpsr - orrge r12, r12, #0x20000000 - biclt r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr -_020EAFFC: - mov r0, #0x0 - mrs r12, cpsr - orr r12, r12, #0x20000000 - msr cpsr_f, r12 - bx lr - - arm_func_start _feq -_feq: ; 0x020EB010 - mov r3, #0xff000000 - cmp r3, r0, lsl #0x1 - blo _020EB064 - cmp r3, r1, lsl #0x1 - blo _020EB064 - orr r3, r0, r1 - movs r3, r3, lsl #0x1 - moveq r0, #0x0 - bne _020EB044 - mrs r12, cpsr - orr r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr -_020EB044: - cmp r0, r1 - movne r0, #0x1 - moveq r0, #0x0 - mrs r12, cpsr - bicne r12, r12, #0x40000000 - orreq r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr -_020EB064: - mov r0, #0x1 - mrs r12, cpsr - bic r12, r12, #0x40000000 - msr cpsr_f, r12 - bx lr - - arm_func_start _frdiv -_frdiv: ; 0x020EB078 - eor r0, r0, r1 - eor r1, r0, r1 - eor r0, r0, r1 - - arm_func_start _fdiv -_fdiv: ; 0x020EB084 - stmdb sp!, {lr} - mov r12, #0xff - ands r3, r12, r0, lsr #0x17 - cmpne r3, #0xff - beq _020EB258 - ands r12, r12, r1, lsr #0x17 - cmpne r12, #0xff - beq _020EB294 - orr r1, r1, #0x800000 - orr r0, r0, #0x800000 - bic r2, r0, #0xff000000 - bic lr, r1, #0xff000000 -_020EB0B4: - cmp r2, lr - movcc r2, r2, lsl #0x1 - subcc r3, r3, #0x1 - teq r0, r1 - sub r0, pc, #0x94 - ldrb r1, [r0, lr, lsr #0xf] - rsb lr, lr, #0x0 - mov r0, lr, asr #0x1 - mul r0, r1, r0 - add r0, r0, #0x80000000 - mov r0, r0, lsr #0x6 - mul r0, r1, r0 - mov r0, r0, lsr #0xe - mul r1, lr, r0 - sub r12, r3, r12 - mov r1, r1, lsr #0xc - mul r1, r0, r1 - mov r0, r0, lsl #0xe - add r0, r0, r1, lsr #0xf - umull r1, r0, r2, r0 - mov r3, r0 - orrmi r0, r0, #0x80000000 - adds r12, r12, #0x7e - bmi _020EB35C - cmp r12, #0xfe - bge _020EB410 - add r0, r0, r12, lsl #0x17 - mov r12, r1, lsr #0x1c - cmp r12, #0x7 - beq _020EB238 - add r0, r0, r1, lsr #0x1f - ldmia sp!, {lr} - bx lr -_020EB138: ; not code - .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9 - .byte 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA - .byte 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE - .byte 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2 - .byte 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8 - .byte 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF - .byte 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6 - .byte 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF - .byte 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7 - .byte 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1 - .byte 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B - .byte 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95 - .byte 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90 - .byte 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B - .byte 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86 - .byte 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82 - .byte 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80 -_020EB238: - mov r1, r3, lsl #0x1 - add r1, r1, #0x1 - rsb lr, lr, #0x0 - mul r1, lr, r1 - cmp r1, r2, lsl #0x18 - addmi r0, r0, #0x1 - ldmia sp!, {lr} - bx lr -_020EB258: - eor lr, r0, r1 - and lr, lr, #0x80000000 - cmp r3, #0x0 - beq _020EB2B0 - movs r0, r0, lsl #0x9 - bne _020EB3F8 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EB3E8 - cmp r12, #0xff - blt _020EB3E8 - cmp r1, #0x0 - beq _020EB404 - b _020EB3E0 -_020EB294: - eor lr, r0, r1 - and lr, lr, #0x80000000 - cmp r12, #0x0 - beq _020EB314 -_020EB2A4: - movs r1, r1, lsl #0x9 - bne _020EB3E0 - b _020EB430 -_020EB2B0: - movs r2, r0, lsl #0x9 - beq _020EB2E4 - clz r3, r2 - movs r2, r2, lsl r3 - rsb r3, r3, #0x0 - mov r2, r2, lsr #0x8 - ands r12, r12, r1, lsr #0x17 - beq _020EB33C - cmp r12, #0xff - beq _020EB2A4 - orr r1, r1, #0x800000 - bic lr, r1, #0xff000000 - b _020EB0B4 -_020EB2E4: - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EB308 - cmp r12, #0xff - blt _020EB430 - cmp r1, #0x0 - beq _020EB430 - b _020EB3E0 -_020EB308: - cmp r1, #0x0 - beq _020EB404 - b _020EB430 -_020EB314: - movs r12, r1, lsl #0x9 - beq _020EB3E8 - mov lr, r12 - clz r12, lr - movs lr, lr, lsl r12 - rsb r12, r12, #0x0 - mov lr, lr, lsr #0x8 - orr r0, r0, #0x800000 - bic r2, r0, #0xff000000 - b _020EB0B4 -_020EB33C: - movs r12, r1, lsl #0x9 - beq _020EB3E8 - mov lr, r12 - clz r12, lr - movs lr, lr, lsl r12 - rsb r12, r12, #0x0 - mov lr, lr, lsr #0x8 - b _020EB0B4 -_020EB35C: - and r0, r0, #0x80000000 - cmn r12, #0x18 - beq _020EB3D0 - bmi _020EB428 - add r1, r12, #0x17 - mov r2, r2, lsl r1 - rsb r12, r12, #0x0 - mov r3, r3, lsr r12 - orr r0, r0, r3 - rsb lr, lr, #0x0 - mul r1, lr, r3 - cmp r1, r2 - ldmeqia sp!, {lr} - bxeq lr - add r1, r1, lr - cmp r1, r2 - beq _020EB3C4 - addmi r0, r0, #0x1 - subpl r1, r1, lr - add r1, lr, r1, lsl #0x1 - cmp r1, r2, lsl #0x1 - and r3, r0, #0x1 - addmi r0, r0, #0x1 - addeq r0, r0, r3 - ldmia sp!, {lr} - bx lr -_020EB3C4: - add r0, r0, #0x1 - ldmia sp!, {lr} - bx lr -_020EB3D0: - cmn r2, lr - addne r0, r0, #0x1 - ldmia sp!, {lr} - bx lr -_020EB3E0: - mov r0, r1 - b _020EB3F8 -_020EB3E8: - mov r0, #0xff000000 - orr r0, lr, r0, lsr #0x1 - ldmia sp!, {lr} - bx lr -_020EB3F8: - mvn r0, #0x80000000 - ldmia sp!, {lr} - bx lr -_020EB404: - mvn r0, #0x80000000 - ldmia sp!, {lr} - bx lr -_020EB410: - tst r0, #0x80000000 - mov r0, #0xff000000 - movne r0, r0, asr #0x1 - moveq r0, r0, lsr #0x1 - ldmia sp!, {lr} - bx lr -_020EB428: - ldmia sp!, {lr} - bx lr -_020EB430: - mov r0, lr - ldmia sp!, {lr} - bx lr - - arm_func_start _f2d -_f2d: - and r2, r0, #0x80000000 - mov r12, r0, lsr #0x17 - mov r3, r0, lsl #0x9 - ands r12, r12, #0xff - beq _020EB46C - cmp r12, #0xff - beq _020EB498 -_020EB458: - add r12, r12, #0x380 - mov r0, r3, lsl #0x14 - orr r1, r2, r3, lsr #0xc - orr r1, r1, r12, lsl #0x14 - bx lr -_020EB46C: - cmp r3, #0x0 - bne _020EB480 - mov r1, r2 - mov r0, #0x0 - bx lr -_020EB480: - mov r3, r3, lsr #0x1 - clz r12, r3 - movs r3, r3, lsl r12 - rsb r12, r12, #0x1 - add r3, r3, r3 - b _020EB458 -_020EB498: - cmp r3, #0x0 - bhi _020EB4B0 - ldr r1, _020EB4BC ; =0x7FF00000 - orr r1, r1, r2 - mov r0, #0x0 - bx lr -_020EB4B0: - mvn r0, #0x0 - bic r1, r0, #0x80000000 - bx lr - .balign 4 -_020EB4BC: .word 0x7FF00000 - - arm_func_start _ffix -_ffix: ; 0x020EB4C0 - bic r1, r0, #0x80000000 - mov r2, #0x9e - subs r2, r2, r1, lsr #0x17 - ble _020EB4E8 - mov r1, r1, lsl #0x8 - orr r1, r1, #0x80000000 - cmp r0, #0x0 - mov r0, r1, lsr r2 - rsbmi r0, r0, #0x0 - bx lr -_020EB4E8: - mvn r0, r0, asr #0x1f - add r0, r0, #0x80000000 - bx lr - - arm_func_start _ffixu -_ffixu: ; 0x020EB4F4 - tst r0, #0x80000000 - bne _020EB518 - mov r1, #0x9e - subs r1, r1, r0, lsr #0x17 - blt _020EB52C - mov r2, r0, lsl #0x8 - orr r0, r2, #0x80000000 - mov r0, r0, lsr r1 - bx lr -_020EB518: - mov r2, #0xff000000 - cmp r2, r0, lsl #0x1 - movcs r0, #0x0 - mvncc r0, #0x0 - bx lr -_020EB52C: - mvn r0, #0x0 - bx lr - - arm_func_start _fflt -_fflt: ; 0x020EB534 - ands r2, r0, #0x80000000 - rsbmi r0, r0, #0x0 - cmp r0, #0x0 - bxeq lr - clz r3, r0 - movs r0, r0, lsl r3 - rsb r3, r3, #0x9e - ands r1, r0, #0xff - add r0, r0, r0 - orr r0, r2, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r3, r1, #0x7f - andeqs r3, r0, #0x1 - addne r0, r0, #0x1 - bx lr - - arm_func_start _ffltu -_ffltu: ; 0x020EB57C - cmp r0, #0x0 - bxeq lr - mov r3, #0x9e - bmi _020EB598 - clz r12, r0 - movs r0, r0, lsl r12 - sub r3, r3, r12 -_020EB598: - ands r2, r0, #0xff - add r0, r0, r0 - mov r0, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bxeq lr - tst r2, #0x80 - bxeq lr - ands r1, r2, #0x7f - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr - - arm_func_start _fmul -_fmul: ; 0x020EB5C4 - eor r2, r0, r1 - and r2, r2, #0x80000000 - mov r12, #0xff - ands r3, r12, r0, lsr #0x17 - mov r0, r0, lsl #0x8 - cmpne r3, #0xff - beq _020EB640 - orr r0, r0, #0x80000000 - ands r12, r12, r1, lsr #0x17 - mov r1, r1, lsl #0x8 - cmpne r12, #0xff - beq _020EB680 - orr r1, r1, #0x80000000 -_020EB5F8: - add r12, r3, r12 - umull r1, r3, r0, r1 - movs r0, r3 - addpl r0, r0, r0 - subpl r12, r12, #0x1 - subs r12, r12, #0x7f - bmi _020EB70C - cmp r12, #0xfe - bge _020EB778 - ands r3, r0, #0xff - orr r0, r2, r0, lsr #0x8 - add r0, r0, r12, lsl #0x17 - tst r3, #0x80 - bxeq lr - orrs r1, r1, r3, lsl #0x19 - andeqs r3, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EB640: - cmp r3, #0x0 - beq _020EB694 - movs r0, r0, lsl #0x1 - bne _020EB768 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EB674 - cmp r12, #0xff - blt _020EB75C - cmp r1, #0x0 - beq _020EB75C - b _020EB768 -_020EB674: - cmp r1, #0x0 - beq _020EB770 - b _020EB75C -_020EB680: - cmp r12, #0x0 - beq _020EB6F0 -_020EB688: - movs r1, r1, lsl #0x1 - bne _020EB768 - b _020EB75C -_020EB694: - movs r0, r0, lsl #0x1 - beq _020EB6CC - mov r0, r0, lsr #0x1 - clz r3, r0 - movs r0, r0, lsl r3 - rsb r3, r3, #0x1 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x8 - ands r12, r12, #0xff - beq _020EB6F0 - cmp r12, #0xff - beq _020EB688 - orr r1, r1, #0x80000000 - b _020EB5F8 -_020EB6CC: - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EB79C - cmp r12, #0xff - blt _020EB79C - cmp r1, #0x0 - beq _020EB770 - b _020EB768 -_020EB6F0: - movs r1, r1, lsl #0x1 - beq _020EB79C - mov r1, r1, lsr #0x1 - clz r12, r1 - movs r1, r1, lsl r12 - rsb r12, r12, #0x1 - b _020EB5F8 -_020EB70C: - cmn r12, #0x18 - beq _020EB754 - bmi _020EB794 - cmp r1, #0x0 - orrne r0, r0, #0x1 - mov r3, r0 - mov r0, r0, lsr #0x8 - rsb r12, r12, #0x0 - orr r0, r2, r0, lsr r12 - rsb r12, r12, #0x18 - movs r1, r3, lsl r12 - bxeq lr - tst r1, #0x80000000 - bxeq lr - movs r1, r1, lsl #0x1 - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EB754: - mov r0, r0, lsl #0x1 - b _020EB784 -_020EB75C: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020EB768: - mvn r0, #0x80000000 - bx lr -_020EB770: - mvn r0, #0x80000000 - bx lr -_020EB778: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020EB784: - movs r1, r0 - mov r0, r2 - addne r0, r0, #0x1 - bx lr -_020EB794: - mov r0, r2 - bx lr -_020EB79C: - mov r0, r2 - bx lr - - arm_func_start _frsb -_frsb: ; 0x020EB7A4 - eor r0, r0, r1 - eor r1, r0, r1 - eor r0, r0, r1 - - arm_func_start _fsub -_fsub: ; 0x020EB7B0 - eors r2, r0, r1 - eormi r1, r1, #0x80000000 - bmi _020EA98C -_020EB7BC: - subs r12, r0, r1 - eorcc r12, r12, #0x80000000 - subcc r0, r0, r12 - addcc r1, r1, r12 - mov r2, #0x80000000 - mov r3, r0, lsr #0x17 - orr r0, r2, r0, lsl #0x8 - ands r12, r3, #0xff - cmpne r12, #0xff - beq _020EB8D8 - mov r12, r1, lsr #0x17 - orr r1, r2, r1, lsl #0x8 - ands r2, r12, #0xff - beq _020EB918 -_020EB7F4: - subs r12, r3, r12 - beq _020EB83C - rsb r2, r12, #0x20 - movs r2, r1, lsl r2 - mov r1, r1, lsr r12 - orrne r1, r1, #0x1 - subs r0, r0, r1 - bpl _020EB880 - ands r1, r0, #0xff - add r0, r0, r0 - mov r0, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EB83C: - subs r0, r0, r1 - beq _020EB9E4 - mov r2, r3, lsl #0x17 - and r2, r2, #0x80000000 - bic r3, r3, #0x100 - clz r12, r0 - movs r0, r0, lsl r12 - sub r3, r3, r12 - cmp r3, #0x0 - bgt _020EB870 - rsb r3, r3, #0x9 - orr r0, r2, r0, lsr r3 - bx lr -_020EB870: - add r0, r0, r0 - orr r0, r2, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bx lr -_020EB880: - mov r2, r3, lsl #0x17 - and r2, r2, #0x80000000 - bic r3, r3, #0x100 - clz r12, r0 - movs r0, r0, lsl r12 - sub r3, r3, r12 - cmp r3, #0x0 - bgt _020EB8AC - rsb r3, r3, #0x9 - orr r0, r2, r0, lsr r3 - bx lr -_020EB8AC: - ands r1, r0, #0xff - add r0, r0, r0 - orr r0, r2, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andeqs r1, r0, #0x1 - addne r0, r0, #0x1 - bx lr -_020EB8D8: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0x0 - ands r3, r3, #0xff - beq _020EB940 - movs r0, r0, lsl #0x1 - bne _020EBA18 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x9 - ands r12, r12, #0xff - beq _020EBA0C - cmp r12, #0xff - blt _020EBA0C - cmp r1, #0x0 - beq _020EBA20 - b _020EBA18 -_020EB918: - cmp r12, #0x100 - movge r2, #0x80000000 - movlt r2, #0x0 - and r3, r3, #0xff - ands r12, r12, #0xff - beq _020EB9A8 -_020EB930: - eor r2, r2, #0x80000000 - movs r1, r1, lsl #0x1 - bne _020EBA18 - b _020EBA0C -_020EB940: - movs r0, r0, lsl #0x1 - beq _020EB978 - mov r0, r0, lsr #0x1 - mov r3, #0x1 - mov r12, r1, lsr #0x17 - mov r1, r1, lsl #0x8 - ands r12, r12, #0xff - beq _020EB9A8 - cmp r12, #0xff - beq _020EB930 - orr r1, r1, #0x80000000 - orr r3, r3, r2, lsr #0x17 - orr r12, r12, r2, lsr #0x17 - b _020EB7F4 -_020EB978: - mov r3, r1, lsr #0x17 - mov r0, r1, lsl #0x9 - ands r2, r3, #0xff - beq _020EB99C - cmp r2, #0xff - blt _020EB9C4 - cmp r0, #0x0 - bne _020EBA04 - b _020EBA0C -_020EB99C: - cmp r0, #0x0 - beq _020EB9E4 - b _020EB9C4 -_020EB9A8: - movs r1, r1, lsl #0x1 - beq _020EB9CC - mov r1, r1, lsr #0x1 - mov r12, #0x1 - orr r12, r12, r2, lsr #0x17 - orr r3, r3, r2, lsr #0x17 - b _020EB7F4 -_020EB9C4: - mov r0, r1 - bx lr -_020EB9CC: - cmp r0, #0x0 - subges r3, r3, #0x1 - add r0, r0, r0 - orr r0, r2, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bx lr -_020EB9E4: - mov r0, #0x0 - bx lr -_020EB9EC: ; 0x020EB9EC - cmp r0, #0x0 - subges r3, r3, #0x1 - add r0, r0, r0 - mov r0, r0, lsr #0x9 - orr r0, r0, r3, lsl #0x17 - bx lr -_020EBA04: - mvn r0, #0x80000000 - bx lr -_020EBA0C: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #0x1 - bx lr -_020EBA18: - mvn r0, #0x80000000 - bx lr -_020EBA20: - mvn r0, #0x80000000 - bx lr - - arm_func_start _ll_mod -_ll_mod: ; 0x020EBA28 - stmdb sp!, {r4-r7,r11-r12,lr} - mov r4, r1 - orr r4, r4, #0x1 - b _020EBA48 - - arm_func_start _ll_sdiv -_ll_sdiv: ; 0x020EBA38 - stmdb sp!, {r4-r7,r11-r12,lr} - eor r4, r1, r3 - mov r4, r4, asr #0x1 - mov r4, r4, lsl #0x1 -_020EBA48: - orrs r5, r3, r2 - bne _020EBA58 - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr -_020EBA58: - mov r5, r0, lsr #0x1f - add r5, r5, r1 - mov r6, r2, lsr #0x1f - add r6, r6, r3 - orrs r6, r5, r6 - bne _020EBA8C - mov r1, r2 - bl _s32_div_f - ands r4, r4, #0x1 - movne r0, r1 - mov r1, r0, asr #0x1f - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr -_020EBA8C: - cmp r1, #0x0 - bge _020EBA9C - rsbs r0, r0, #0x0 - rsc r1, r1, #0x0 -_020EBA9C: - cmp r3, #0x0 - bge _020EBAAC - rsbs r2, r2, #0x0 - rsc r3, r3, #0x0 -_020EBAAC: - orrs r5, r1, r0 - beq _020EBBD0 - mov r5, #0x0 - mov r6, #0x1 - cmp r3, #0x0 - bmi _020EBAD8 -_020EBAC4: - add r5, r5, #0x1 - adds r2, r2, r2 - adcs r3, r3, r3 - bpl _020EBAC4 - add r6, r6, r5 -_020EBAD8: - cmp r1, #0x0 - blt _020EBAF8 -_020EBAE0: - cmp r6, #0x1 - beq _020EBAF8 - sub r6, r6, #0x1 - adds r0, r0, r0 - adcs r1, r1, r1 - bpl _020EBAE0 -_020EBAF8: - mov r7, #0x0 - mov r12, #0x0 - mov r11, #0x0 - b _020EBB20 -_020EBB08: - orr r12, r12, #0x1 - subs r6, r6, #0x1 - beq _020EBB78 - adds r0, r0, r0 - adcs r1, r1, r1 - adcs r7, r7, r7 -_020EBB20: - subs r0, r0, r2 - sbcs r1, r1, r3 - sbcs r7, r7, #0x0 - adds r12, r12, r12 - adc r11, r11, r11 - cmp r7, #0x0 - bge _020EBB08 -_020EBB3C: - subs r6, r6, #0x1 - beq _020EBB70 - adds r0, r0, r0 - adcs r1, r1, r1 - adc r7, r7, r7 - adds r0, r0, r2 - adcs r1, r1, r3 - adc r7, r7, #0x0 - adds r12, r12, r12 - adc r11, r11, r11 - cmp r7, #0x0 - bge _020EBB08 - b _020EBB3C -_020EBB70: - adds r0, r0, r2 - adc r1, r1, r3 -_020EBB78: - ands r7, r4, #0x1 - moveq r0, r12 - moveq r1, r11 - beq _020EBBB0 - subs r7, r5, #0x20 - movge r0, r1, lsr r7 - bge _020EBBD4 - rsb r7, r5, #0x20 - mov r0, r0, lsr r5 - orr r0, r0, r1, lsl r7 - mov r1, r1, lsr r5 - b _020EBBB0 -_020EBBA8: ; 0x020EBBA8 - mov r0, r1, lsr r7 - mov r1, #0x0 -_020EBBB0: - cmp r4, #0x0 - blt _020EBBC0 - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr -_020EBBC0: - rsbs r0, r0, #0x0 - rsc r1, r1, #0x0 - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr -_020EBBD0: - mov r0, #0x0 -_020EBBD4: - mov r1, #0x0 - cmp r4, #0x0 - blt _020EBBC0 - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr - - arm_func_start _ll_udiv -_ll_udiv: ; 0x020EBBE8 - stmdb sp!, {r4-r7,r11-r12,lr} - mov r4, #0x0 - b _020EBBFC - - arm_func_start _ull_mod -_ull_mod: ; 0x020EBBF4 - stmdb sp!, {r4-r7,r11-r12,lr} - mov r4, #0x1 -_020EBBFC: - orrs r5, r3, r2 - bne _020EBC0C - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr -_020EBC0C: - orrs r5, r1, r3 - bne _020EBAAC - mov r1, r2 - bl _u32_div_not_0_f - cmp r4, #0x0 - movne r0, r1 - mov r1, #0x0 - ldmia sp!, {r4-r7,r11-r12,lr} - bx lr - - arm_func_start _ll_mul -_ll_mul: ; 0x020EBC30 - stmdb sp!, {r4-r5,lr} - umull r5, r4, r0, r2 - mla r4, r0, r3, r4 - mla r4, r2, r1, r4 - mov r1, r4 - mov r0, r5 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start _ll_shl -_ll_shl: ; 0x020EBC50 - ands r2, r2, #0x3f - bxeq lr - subs r3, r2, #0x20 - bge _020EBC74 - rsb r3, r2, #0x20 - mov r1, r1, lsl r2 - orr r1, r1, r0, lsr r3 - mov r0, r0, lsl r2 - bx lr -_020EBC74: - mov r1, r0, lsl r3 - mov r0, #0x0 - bx lr - - arm_func_start _s32_div_f -_s32_div_f: ; 0x020EBC80 - eor r12, r0, r1 - and r12, r12, #0x80000000 - cmp r0, #0x0 - rsblt r0, r0, #0x0 - addlt r12, r12, #0x1 - cmp r1, #0x0 - rsblt r1, r1, #0x0 - beq _020EBE78 - cmp r0, r1 - movcc r1, r0 - movcc r0, #0x0 - blo _020EBE78 - mov r2, #0x1c - mov r3, r0, lsr #0x4 - cmp r1, r3, lsr #0xc - suble r2, r2, #0x10 - movle r3, r3, lsr #0x10 - cmp r1, r3, lsr #0x4 - suble r2, r2, #0x8 - movle r3, r3, lsr #0x8 - cmp r1, r3 - suble r2, r2, #0x4 - movle r3, r3, lsr #0x4 - mov r0, r0, lsl r2 - rsb r1, r1, #0x0 - adds r0, r0, r0 - add r2, r2, r2, lsl #0x1 - add pc, pc, r2, lsl #0x2 - mov r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - mov r1, r3 -_020EBE78: - ands r3, r12, #0x80000000 - rsbne r0, r0, #0x0 - ands r3, r12, #0x1 - rsbne r1, r1, #0x0 - bx lr - - arm_func_start _u32_div_f -_u32_div_f: ; 0x020EBE8C - cmp r1, #0x0 - bxeq lr - - arm_func_start _u32_div_not_0_f -_u32_div_not_0_f: - cmp r0, r1 - movcc r1, r0 - movcc r0, #0x0 - bxcc lr - mov r2, #0x1c - mov r3, r0, lsr #0x4 - cmp r1, r3, lsr #0xc - suble r2, r2, #0x10 - movle r3, r3, lsr #0x10 - cmp r1, r3, lsr #0x4 - suble r2, r2, #0x8 - movle r3, r3, lsr #0x8 - cmp r1, r3 - suble r2, r2, #0x4 - movle r3, r3, lsr #0x4 - mov r0, r0, lsl r2 - rsb r1, r1, #0x0 - adds r0, r0, r0 - add r2, r2, r2, lsl #0x1 - add pc, pc, r2, lsl #0x2 - mov r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #0x1 - subcc r3, r3, r1 - adcs r0, r0, r0 - mov r1, r3 - bx lr - - arm_func_start _drdiv -_drdiv: ; 0x020EC070 - eor r1, r1, r3 - eor r3, r1, r3 - eor r1, r1, r3 - eor r0, r0, r2 - eor r2, r0, r2 - eor r0, r0, r2 - - arm_func_start _ddiv -_ddiv: ; 0x020EC088 - stmdb sp!, {r4-r6,lr} - ldr lr, _020EC5C8 ; =0x00000FFE - eor r4, r1, r3 - ands r12, lr, r1, lsr #0x13 - cmpne r12, lr - beq _020EC434 - bic r1, r1, lr, lsl #0x14 - orr r1, r1, #0x100000 - add r12, r12, r4, lsr #0x1f -_020EC0AC: - ands r4, lr, r3, lsr #0x13 - cmpne r4, lr - beq _020EC4CC - bic r3, r3, lr, lsl #0x14 - orr r3, r3, #0x100000 -_020EC0C0: - sub r12, r12, r4 - cmp r1, r3 - cmpeq r0, r2 - bhs _020EC0DC - adds r0, r0, r0 - adc r1, r1, r1 - sub r12, r12, #0x2 -_020EC0DC: - sub r4, pc, #0x24 - ldrb lr, [r4, r3, lsr #0xc] - rsbs r2, r2, #0x0 - rsc r3, r3, #0x0 - mov r4, #0x20000000 - mla r5, lr, r3, r4 - mov r6, r3, lsl #0xa - mov r5, r5, lsr #0x7 - mul lr, r5, lr - orr r6, r6, r2, lsr #0x16 - mov lr, lr, lsr #0xd - mul r5, lr, r6 - mov r6, r1, lsl #0xa - orr r6, r6, r0, lsr #0x16 - mov r5, r5, lsr #0x10 - mul r5, lr, r5 - mov lr, lr, lsl #0xe - add lr, lr, r5, lsr #0x10 - umull r5, r6, lr, r6 - umull r4, r5, r6, r2 - mla r5, r3, r6, r5 - mov r4, r4, lsr #0x1a - orr r4, r4, r5, lsl #0x6 - add r4, r4, r0, lsl #0x2 - umull lr, r5, r4, lr - mov r4, #0x0 - adds r5, r5, r6, lsl #0x18 - adc r4, r4, r6, lsr #0x8 - cmp r12, #0x800 - bge _020EC2C0 - add r12, r12, #0x7f0 - adds r12, r12, #0xc - bmi _020EC2D8 - orr r1, r4, r12, lsl #0x1f - bic r12, r12, #0x1 - add r1, r1, r12, lsl #0x13 - tst lr, #0x80000000 - bne _020EC1B0 - rsbs r2, r2, #0x0 - mov r4, r4, lsl #0x1 - add r4, r4, r5, lsr #0x1f - mul lr, r2, r4 - mov r6, #0x0 - mov r4, r5, lsl #0x1 - orr r4, r4, #0x1 - umlal r6, lr, r4, r2 - rsc r3, r3, #0x0 - mla lr, r4, r3, lr - cmp lr, r0, lsl #0x15 - bmi _020EC1B0 - mov r0, r5 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC1B0: - adds r0, r5, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC1C0: ; not code - .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1 - .byte 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA, 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4 - .byte 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE, 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8 - .byte 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2, 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD - .byte 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8, 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3 - .byte 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF, 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA - .byte 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6, 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2 - .byte 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF, 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB - .byte 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4 - .byte 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1, 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E - .byte 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98 - .byte 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92 - .byte 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90, 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D - .byte 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89 - .byte 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84 - .byte 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80 -_020EC2C0: - movs r1, r12, lsl #0x1f - orr r1, r1, #0x7f000000 - orr r1, r1, #0xf00000 - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC2D8: - mvn r6, r12, asr #0x1 - cmp r6, #0x34 - bgt _020EC424 - beq _020EC400 - cmp r6, #0x14 - bge _020EC320 - rsb r6, r6, #0x13 - mov lr, r0, lsl r6 - rsb r6, r6, #0x14 - mov r0, r5, lsr r6 - rsb r6, r6, #0x20 - orr r0, r0, r4, lsl r6 - rsb r6, r6, #0x20 - mov r4, r4, lsr r6 - orr r1, r4, r12, lsl #0x1f - mov r12, lr - mov lr, #0x0 - b _020EC350 -_020EC320: - rsb r6, r6, #0x33 - mov lr, r1, lsl r6 - mov r1, r12, lsl #0x1f - rsb r6, r6, #0x20 - orr r12, lr, r0, lsr r6 - rsb r6, r6, #0x20 - mov lr, r0, lsl r6 - mov r5, r5, lsr #0x15 - orr r5, r5, r4, lsl #0xb - rsb r6, r6, #0x1f - mov r0, r5, lsr r6 - mov r4, #0x0 -_020EC350: - rsbs r2, r2, #0x0 - mul r4, r2, r4 - mov r5, #0x0 - umlal r5, r4, r2, r0 - rsc r3, r3, #0x0 - mla r4, r0, r3, r4 - cmp r4, r12 - cmpeq r5, lr - ldmeqia sp!, {r4-r6,lr} - bxeq lr - adds r5, r5, r2 - adc r4, r4, r3 - cmp r4, r12 - bmi _020EC3F4 - bne _020EC398 - cmp r5, lr - beq _020EC3E4 - blo _020EC3F4 -_020EC398: - subs r5, r5, r2 - sbc r4, r4, r3 -_020EC3A0: - adds r5, r5, r5 - adc r4, r4, r4 - adds r5, r5, r2 - adc r4, r4, r3 - adds lr, lr, lr - adc r12, r12, r12 - cmp r4, r12 - bmi _020EC3E4 - ldmneia sp!, {r4-r6,lr} - bxne lr - cmp r5, lr - blo _020EC3E4 - ldmneia sp!, {r4-r6,lr} - bxne lr - tst r0, #0x1 - ldmeqia sp!, {r4-r6,lr} - bxeq lr -_020EC3E4: - adds r0, r0, #0x1 - adc r1, r1, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC3F4: - adds r0, r0, #0x1 - adc r1, r1, #0x0 - b _020EC3A0 -_020EC400: - rsbs r2, r2, #0x0 - rsc r3, r3, #0x0 - cmp r1, r3 - cmpeq r0, r2 - mov r1, r12, lsl #0x1f - mov r0, #0x0 - movne r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC424: - mov r1, r12, lsl #0x1f - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC434: - orrs r5, r0, r1, lsl #0x1 - beq _020EC558 - cmp r12, lr - beq _020EC49C - movs r1, r1, lsl #0xc - beq _020EC478 - clz r5, r1 - movs r1, r1, lsl r5 - sub r12, r12, r5 - add r5, r12, #0x1f - mov r1, r1, lsr #0xb - orr r1, r1, r0, lsr r5 - rsb r5, r5, #0x20 - mov r0, r0, lsl r5 - mov r12, r12, lsl #0x1 - orr r12, r12, r4, lsr #0x1f - b _020EC0AC -_020EC478: - mvn r12, #0x13 - clz r5, r0 - movs r0, r0, lsl r5 - sub r12, r12, r5 - mov r1, r0, lsr #0xb - mov r0, r0, lsl #0x15 - mov r12, r12, lsl #0x1 - orr r12, r12, r4, lsr #0x1f - b _020EC0AC -_020EC49C: - orrs r5, r0, r1, lsl #0xc - bne _020EC580 - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #0x13 - bhs _020EC4C0 - and r5, r3, #0x80000000 - eor r1, r5, r1 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC4C0: - orrs r5, r2, r3, lsl #0xc - bne _020EC5A0 - b _020EC5B8 -_020EC4CC: - orrs r5, r2, r3, lsl #0x1 - beq _020EC544 - cmp r4, lr - beq _020EC52C - movs r3, r3, lsl #0xc - beq _020EC50C - clz r5, r3 - movs r3, r3, lsl r5 - sub r4, r4, r5 - add r5, r4, #0x1f - mov r3, r3, lsr #0xb - orr r3, r3, r2, lsr r5 - rsb r5, r5, #0x20 - mov r2, r2, lsl r5 - mov r4, r4, lsl #0x1 - b _020EC0C0 -_020EC50C: - mvn r4, #0x13 - clz r5, r2 - movs r2, r2, lsl r5 - sub r4, r4, r5 - mov r3, r2, lsr #0xb - mov r2, r2, lsl #0x15 - mov r4, r4, lsl #0x1 - b _020EC0C0 -_020EC52C: - orrs r5, r2, r3, lsl #0xc - bne _020EC5A0 - mov r1, r12, lsl #0x1f - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC544: - mov r1, r12, lsl #0x1f - orr r1, r1, lr, lsl #0x13 - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC558: - orrs r5, r2, r3, lsl #0x1 - beq _020EC5B8 - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #0x13 - cmpeq r2, #0x0 - bhi _020EC5A0 - eor r1, r1, r3 - and r1, r1, #0x80000000 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC580: - tst r1, #0x80000 - beq _020EC5B8 - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #0x13 - cmpeq r2, #0x0 - bhi _020EC5A0 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC5A0: - tst r3, #0x80000 - beq _020EC5B8 - mov r1, r3 - mov r0, r2 - ldmia sp!, {r4-r6,lr} - bx lr -_020EC5B8: - orr r1, r1, #0x7f000000 - orr r1, r1, #0xf80000 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020EC5C8: .word 0x00000FFE - - arm_func_start _fp_init -_fp_init: ; 0x020EC5CC - bx lr - - arm_func_start sys_writec -sys_writec: ; 0x020EC5D0 - str lr, [sp, #-0x4]! - mov r1, r0 - mov r0, #0x3 - swi 0x123456 - ldr pc, [sp], #0x4 - - arm_func_start sys_readc -sys_readc: ; 0x020EC5E4 - str lr, [sp, #-0x4]! - mov r1, #0x0 - mov r0, #0x7 - swi 0x123456 - ldr pc, [sp], #0x4 - - arm_func_start sys_exit -sys_exit: ; 0x020EC5F8 - mov r1, #0x0 - mov r0, #0x18 - swi 0x123456 - mov pc, lr - - arm_func_start __read_console -__read_console: ; 0x020EC608 - stmdb sp!, {r3-r7,lr} - mov r6, r2 - ldr r5, [r6, #0x0] - mov r7, r1 - cmp r5, #0x0 - mov r4, #0x0 - bls _020EC650 -_020EC624: - bl sys_readc - and r1, r0, #0xff - cmp r1, #0xd - strb r0, [r7, r4] - cmpne r1, #0xa - addeq r0, r4, #0x1 - streq r0, [r6, #0x0] - beq _020EC650 - add r4, r4, #0x1 - cmp r4, r5 - blo _020EC624 -_020EC650: - mov r0, #0x0 - ldmia sp!, {r3-r7,pc} - - arm_func_start __write_console -__write_console: ; 0x020EC658 - stmdb sp!, {r4-r6,lr} - ldr r5, [r2, #0x0] - mov r6, r1 - cmp r5, #0x0 - mov r4, #0x0 - bls _020EC684 -_020EC670: - add r0, r6, r4 - bl sys_writec - add r4, r4, #0x1 - cmp r4, r5 - blo _020EC670 -_020EC684: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start __close_console -__close_console: ; 0x020EC68C - mov r0, #0x0 - bx lr - - .extern __sinit__ - arm_func_start __call_static_initializers -__call_static_initializers: ; 0x020EC694 - stmdb sp!, {r4,lr} - ldr r4, _020EC6BC ; =__sinit__ - b _020EC6A8 -_020EC6A0: - blx r0 - add r4, r4, #0x4 -_020EC6A8: - cmp r4, #0x0 - ldrne r0, [r4, #0x0] - cmpne r0, #0x0 - bne _020EC6A0 - ldmia sp!, {r4,pc} - .balign 4 -_020EC6BC: .word __sinit__ - - arm_func_start __destroy_global_chain -__destroy_global_chain: ; 0x020EC6C0 - stmdb sp!, {r3-r5,lr} - ldr r4, _020EC700 ; =__global_destructor_chain - ldr r2, [r4, #0x0] - cmp r2, #0x0 - ldmeqia sp!, {r3-r5,pc} -_020EC6D4: ; 0x020EC6D4 - mvn r5, #0x0 -_020EC6D8: - ldr r0, [r2, #0x0] - mov r1, r5 - str r0, [r4, #0x0] - ldr r0, [r2, #0x8] - ldr r2, [r2, #0x4] - blx r2 - ldr r2, [r4, #0x0] - cmp r2, #0x0 - bne _020EC6D8 - ldmia sp!, {r3-r5,pc} - .balign 4 -_020EC700: .word __global_destructor_chain - - arm_func_start _ExitProcess -_ExitProcess: ; 0x020EC704 - ldr ip, _020EC70C ; =sys_exit - bx r12 - .balign 4 -_020EC70C: .word sys_exit - - .section .exception - .word 0x00200100 - .word __read_console - .short 81 - .word 0x00300F00 - .word __write_console - .short 53 - .word 0x00200700 - .word __call_static_initializers - .short 45 - .word 0x00100100 - .word __destroy_global_chain - .short 69 - .word 0x00200300 - .word _ExitProcess - .short 13 - .word 0x00000000 diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 18e10da6..5ddfa9ab 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -141,7 +141,7 @@ FUN_02001C78: ; 0x02001C78 tst r3, r5 beq _02001C9E ldr r0, _02001D28 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x15] ldr r1, [r4, #0x0] lsl r0, r0, #0x3 @@ -153,7 +153,7 @@ _02001C9E: tst r3, r2 beq _02001CAE ldr r0, _02001D28 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE sub r0, r5, #0x3 pop {r3-r5, pc} _02001CAE: @@ -237,7 +237,7 @@ FUN_02001D2C: ; 0x02001D2C tst r6, r3 beq _02001D54 ldr r0, _02001DD8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x15] ldr r1, [r4, #0x0] lsl r0, r0, #0x3 @@ -249,7 +249,7 @@ _02001D54: tst r6, r5 beq _02001D66 ldr r0, _02001DD8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x1 mvn r0, r0 pop {r4-r6, pc} @@ -338,7 +338,7 @@ _02001DF0: ; jump table (using 16-bit offset) .short _02001E44 - _02001DF0 - 2; case 5 _02001DFC: ldr r0, _02001E58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x15] ldr r1, [r4, #0x0] lsl r0, r0, #0x3 @@ -347,7 +347,7 @@ _02001DFC: pop {r4, pc} _02001E0E: ldr r0, _02001E58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x1 mvn r0, r0 pop {r4, pc} @@ -433,7 +433,7 @@ _02001E7C: add r0, r5, #0x0 bl FUN_02002080 add r0, r6, #0x0 - bl FUN_020054C8 + bl PlaySE mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} @@ -804,7 +804,7 @@ CreateYesNoMenu: ; 0x020020EC strb r0, [r3, #0xb] ldr r2, [sp, #0x8] add r0, r7, #0x0 - bl FUN_02019150 + bl AddWindow ldr r0, [sp, #0x18] ldr r2, [sp, #0xc] ldr r3, [sp, #0x10] @@ -883,7 +883,7 @@ FUN_020021EC: ; 0x020021EC mov r1, #0x0 bl FUN_0200CCF8 ldr r0, [r5, #0x4] - bl FUN_02019178 + bl RemoveWindow ldr r1, [r5, #0x4] add r0, r4, #0x0 bl FreeToHeapExplicit diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s deleted file mode 100644 index dc304639..00000000 --- a/arm9/asm/unk_020023C0.s +++ /dev/null @@ -1,1123 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .extern gMain - .extern gMain - - .global gTextFlags -gTextFlags: ; 0x02106FC4 - .space 0x4 - - .section .rodata - - .global UNK_020ECB50 -UNK_020ECB50: ; 0x020ECB50 - .byte 0x00, 0x01, 0x02, 0x01 - - .text - - thumb_func_start RenderText -RenderText: ; 0x020023C0 - push {r3-r6, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x24 - ldrb r1, [r1, #0x0] - add r6, r4, #0x0 - add r6, #0x1c - cmp r1, #0x6 - bls _020023D6 - b _02002838 -_020023D6: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_020023E2: ; jump table (using 16-bit offset) - .short _020023F0 - _020023E2 - 2; case 0 - .short _02002742 - _020023E2 - 2; case 1 - .short _0200275C - _020023E2 - 2; case 2 - .short _02002786 - _020023E2 - 2; case 3 - .short _020027B6 - _020023E2 - 2; case 4 - .short _0200280C - _020023E2 - 2; case 5 - .short _02002818 - _020023E2 - 2; case 6 -_020023F0: - ldr r0, _02002658 ; =gMain - ldr r1, [r0, #0x44] - mov r0, #0x3 - tst r0, r1 - beq _02002402 - ldrb r0, [r6, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - bne _02002414 -_02002402: - ldr r0, _0200265C ; =gMain + 0x40 - ldrh r0, [r0, #0x22] - cmp r0, #0x0 - beq _02002432 - ldr r0, _02002660 ; =gTextFlags - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - beq _02002432 -_02002414: - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x26 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x25 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x19 - beq _02002432 - ldr r1, _02002660 ; =gTextFlags - mov r0, #0x40 - ldrb r2, [r1, #0x0] - orr r0, r2 - strb r0, [r1, #0x0] -_02002432: - add r0, r4, #0x0 - add r0, #0x26 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0200248C - add r0, r4, #0x0 - add r0, #0x25 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x19 - beq _0200248C - add r0, r4, #0x0 - add r0, #0x26 - ldrb r0, [r0, #0x0] - sub r1, r0, #0x1 - add r0, r4, #0x0 - add r0, #0x26 - strb r1, [r0, #0x0] - ldr r0, _02002660 ; =gTextFlags - ldrb r0, [r0, #0x0] - lsl r1, r0, #0x1f - lsr r1, r1, #0x1f - beq _02002486 - ldr r1, _02002658 ; =gMain - ldr r2, [r1, #0x48] - mov r1, #0x3 - tst r1, r2 - bne _02002478 - ldr r1, _0200265C ; =gMain + 0x40 - ldrh r1, [r1, #0x20] - cmp r1, #0x0 - beq _02002486 - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - beq _02002486 -_02002478: - ldrb r1, [r6, #0x0] - mov r0, #0x10 - add r4, #0x26 - orr r0, r1 - strb r0, [r6, #0x0] - mov r0, #0x0 - strb r0, [r4, #0x0] -_02002486: - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_0200248C: - add r0, r4, #0x0 - add r0, #0x25 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r1, r0, #0x19 - add r0, r4, #0x0 - add r0, #0x26 - strb r1, [r0, #0x0] - ldr r0, [r4, #0x0] - ldrh r5, [r0, #0x0] - add r0, r0, #0x2 - str r0, [r4, #0x0] - mov r0, #0xf1 - lsl r0, r0, #0x8 - cmp r5, r0 - bne _020024B0 - bl GF_AssertFail -_020024B0: - ldr r0, _02002664 ; =0x0000F0FD - cmp r5, r0 - bgt _020024DA - bge _0200250E - ldr r1, _02002668 ; =0x000025BD \f - cmp r5, r1 - bgt _020024D0 - sub r0, r1, #0x1 ; \r - cmp r5, r0 - blt _020024CE - bne _020024C8 - b _020026D8 -_020024C8: - cmp r5, r1 - bne _020024CE - b _020026EC -_020024CE: - b _02002700 -_020024D0: - mov r0, #0xe - lsl r0, r0, #0xc - cmp r5, r0 - beq _020024F2 - b _02002700 -_020024DA: - ldr r0, _0200266C ; =0x0000FFFE EXT_CTRL_CODE_BEGIN - cmp r5, r0 - bgt _020024E4 - beq _0200251A - b _02002700 -_020024E4: - add r0, r0, #0x1 ; =0x0000FFFF EOS - cmp r5, r0 - beq _020024EC - b _02002700 -_020024EC: - add sp, #0xc - mov r0, #0x1 - pop {r3-r6, pc} -_020024F2: - ldrb r0, [r4, #0xa] - mov r1, #0x1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x9] - bl GetFontAttribute - ldrb r1, [r4, #0xf] - ldrb r2, [r4, #0xd] - add sp, #0xc - add r0, r1, r0 - add r0, r2, r0 - strb r0, [r4, #0xd] - mov r0, #0x2 - pop {r3-r6, pc} -_0200250E: - ldr r0, [r4, #0x0] - add sp, #0xc - add r0, r0, #0x2 - str r0, [r4, #0x0] - mov r0, #0x2 - pop {r3-r6, pc} -_0200251A: - ldr r0, [r4, #0x0] - sub r0, r0, #0x2 - str r0, [r4, #0x0] - bl MsgArray_GetControlCode - lsl r0, r0, #0x10 - ldr r1, _02002670 ; =0x0000FE06 - lsr r0, r0, #0x10 - cmp r0, r1 - bgt _02002552 - blt _02002532 - b _02002678 -_02002532: - mov r1, #0x2 - lsl r1, r1, #0x8 - sub r1, r0, r1 - cmp r1, #0x4 - bhi _0200255C - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02002548: ; jump table (using 16-bit offset) - .short _020025B4 - _02002548 - 2; case 0x200 - .short _020025DE - _02002548 - 2; case 0x201 - .short _02002600 - _02002548 - 2; case 0x202 - .short _02002618 - _02002548 - 2; case 0x203 - .short _02002624 - _02002548 - 2; case 0x204 -_02002552: - mov r1, #0xff - lsl r1, r1, #0x8 - cmp r0, r1 - bgt _0200255E - beq _02002566 -_0200255C: - b _020026CA -_0200255E: - add r1, r1, #0x1 - cmp r0, r1 - beq _02002630 - b _020026CA -_02002566: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0xff - bne _02002596 - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x17] - sub r1, r0, #0x1 - lsr r0, r1, #0x1f - add r0, r1, r0 - asr r0, r0, #0x1 - add r0, #0x64 - strb r0, [r4, #0x17] - cmp r2, #0x64 - blo _02002644 - cmp r2, #0x6b - bhs _02002644 - sub r2, #0x64 - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - b _0200259E -_02002596: - cmp r0, #0x64 - blo _0200259E - strb r0, [r4, #0x17] - b _020026CA -_0200259E: - lsl r1, r0, #0x1 - add r0, r1, #0x1 - strb r0, [r4, #0x11] - add r0, r1, #0x2 - strb r0, [r4, #0x13] - ldrb r0, [r4, #0x11] - ldrb r1, [r4, #0x12] - ldrb r2, [r4, #0x13] - bl GenerateFontHalfRowLookupTable - b _020026CA -_020025B4: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - ldrb r1, [r4, #0xc] - ldrb r2, [r4, #0xd] - add r0, r4, #0x0 - bl FUN_0201C1EC - add r0, r4, #0x0 - add r0, #0x25 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - beq _020026CA - ldr r0, [r4, #0x4] - bl CopyWindowToVram - b _020026CA -_020025DE: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - add r1, r4, #0x0 - add r1, #0x26 - strb r0, [r1, #0x0] - ldr r0, [r4, #0x0] - bl MsgArray_SkipControlCode - str r0, [r4, #0x0] - mov r0, #0x6 - add r4, #0x24 - strb r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_02002600: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - strh r0, [r4, #0x2a] - ldr r0, [r4, #0x0] - bl MsgArray_SkipControlCode - str r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_02002618: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - strb r0, [r4, #0xc] - b _020026CA -_02002624: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - strb r0, [r4, #0xd] - b _020026CA -_02002630: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x64 - beq _02002646 - cmp r0, #0xc8 - beq _0200264E -_02002644: - b _020026CA -_02002646: - mov r0, #0x0 - strh r0, [r4, #0x14] - strb r0, [r4, #0x16] - b _020026CA -_0200264E: - ldr r0, _02002674 ; =0x0000FFFC - strh r0, [r4, #0x14] - mov r0, #0x0 - strb r0, [r4, #0x16] - b _020026CA - .balign 4 -_02002658: .word gMain -_0200265C: .word gMain + 0x40 -_02002660: .word gTextFlags -_02002664: .word 0x0000F0FD -_02002668: .word 0x000025BD -_0200266C: .word 0x0000FFFE -_02002670: .word 0x0000FE06 -_02002674: .word 0x0000FFFC -_02002678: - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl MsgArray_ControlCodeGetField - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - mov r0, #0xfe - lsl r0, r0, #0x8 - cmp r1, r0 - beq _020026AE - add r0, r0, #0x1 - cmp r1, r0 - bne _020026CA - add r0, r4, #0x0 - mov r1, #0x2 - add r0, #0x24 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0200284C - ldr r0, [r4, #0x0] - bl MsgArray_SkipControlCode - str r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_020026AE: - add r0, r4, #0x0 - mov r1, #0x3 - add r0, #0x24 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0200284C - ldr r0, [r4, #0x0] - bl MsgArray_SkipControlCode - str r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_020026CA: - ldr r0, [r4, #0x0] - bl MsgArray_SkipControlCode - str r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x2 - pop {r3-r6, pc} -_020026D8: - add r0, r4, #0x0 - mov r1, #0x2 - add r0, #0x24 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0200284C - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_020026EC: - add r0, r4, #0x0 - mov r1, #0x3 - add r0, #0x24 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - bl FUN_0200284C - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_02002700: - ldrb r0, [r6, #0x0] - add r1, r5, #0x0 - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - bl FUN_02002D94 - add r5, r0, #0x0 - ldrb r0, [r4, #0xc] - add r2, r5, #0x0 - add r3, r5, #0x0 - str r0, [sp, #0x0] - ldrb r0, [r4, #0xd] - add r2, #0x80 - add r3, #0x81 - str r0, [sp, #0x4] - ldrh r0, [r4, #0x14] - add r1, r5, #0x0 - str r0, [sp, #0x8] - ldrb r2, [r2, #0x0] - ldrb r3, [r3, #0x0] - ldr r0, [r4, #0x4] - bl FUN_0201974C - add r5, #0x80 - ldrb r1, [r5, #0x0] - ldrb r0, [r4, #0xe] - ldrb r2, [r4, #0xc] - add sp, #0xc - add r0, r1, r0 - add r0, r2, r0 - strb r0, [r4, #0xc] - mov r0, #0x0 - pop {r3-r6, pc} -_02002742: - bl FUN_02002B3C - cmp r0, #0x0 - beq _02002756 - add r0, r4, #0x0 - bl FUN_02002A00 - mov r0, #0x0 - add r4, #0x24 - strb r0, [r4, #0x0] -_02002756: - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_0200275C: - bl FUN_02002B18 - cmp r0, #0x0 - beq _02002780 - add r0, r4, #0x0 - bl FUN_02002A00 - ldrb r1, [r4, #0x12] - ldr r0, [r4, #0x4] - bl FillWindowPixelBuffer - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0xd] - mov r0, #0x0 - add r4, #0x24 - strb r0, [r4, #0x0] -_02002780: - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_02002786: - bl FUN_02002B18 - cmp r0, #0x0 - beq _020027B0 - add r0, r4, #0x0 - bl FUN_02002A00 - ldrb r0, [r4, #0x9] - mov r1, #0x1 - bl GetFontAttribute - ldrb r1, [r4, #0xf] - add r1, r1, r0 - add r0, r4, #0x0 - add r0, #0x27 - strb r1, [r0, #0x0] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xc] - mov r0, #0x4 - add r4, #0x24 - strb r0, [r4, #0x0] -_020027B0: - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_020027B6: - add r0, #0x27 - ldrb r2, [r0, #0x0] - cmp r2, #0x0 - beq _02002800 - cmp r2, #0x4 - ldrb r5, [r4, #0x12] - bge _020027D8 - lsl r3, r5, #0x4 - orr r3, r5 - lsl r3, r3, #0x18 - ldr r0, [r4, #0x4] - mov r1, #0x0 - lsr r3, r3, #0x18 - bl ScrollWindow - mov r1, #0x0 - b _020027F2 -_020027D8: - lsl r3, r5, #0x4 - orr r3, r5 - lsl r3, r3, #0x18 - ldr r0, [r4, #0x4] - mov r1, #0x0 - mov r2, #0x4 - lsr r3, r3, #0x18 - bl ScrollWindow - add r0, r4, #0x0 - add r0, #0x27 - ldrb r0, [r0, #0x0] - sub r1, r0, #0x4 -_020027F2: - add r0, r4, #0x0 - add r0, #0x27 - strb r1, [r0, #0x0] - ldr r0, [r4, #0x4] - bl CopyWindowToVram - b _02002806 -_02002800: - mov r0, #0x0 - add r4, #0x24 - strb r0, [r4, #0x0] -_02002806: - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_0200280C: - mov r0, #0x0 - add r4, #0x24 - strb r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x3 - pop {r3-r6, pc} -_02002818: - add r0, #0x26 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0200282C - add r0, r4, #0x0 - add r0, #0x26 - ldrb r0, [r0, #0x0] - add r4, #0x26 - sub r0, r0, #0x1 - b _02002830 -_0200282C: - mov r0, #0x0 - add r4, #0x24 -_02002830: - add sp, #0xc - strb r0, [r4, #0x0] - mov r0, #0x3 - pop {r3-r6, pc} -_02002838: - mov r0, #0x1 - add sp, #0xc - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02002840 -FUN_02002840: ; 0x02002840 - ldr r1, _02002848 ; =gTextFlags - strh r0, [r1, #0x2] - bx lr - nop -_02002848: .word gTextFlags - - thumb_func_start FUN_0200284C -FUN_0200284C: ; 0x0200284C - ldr r1, _02002874 ; =gTextFlags - add r0, #0x1c - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x1d - lsr r1, r1, #0x1f - beq _02002862 - ldrb r2, [r0, #0x2] - mov r1, #0xff - bic r2, r1 - strb r2, [r0, #0x2] - bx lr -_02002862: - ldrb r2, [r0, #0x1] - mov r1, #0x60 - bic r2, r1 - strb r2, [r0, #0x1] - ldrb r2, [r0, #0x1] - mov r1, #0x1f - bic r2, r1 - strb r2, [r0, #0x1] - bx lr - .balign 4 -_02002874: .word gTextFlags - - thumb_func_start FUN_02002878 -FUN_02002878: ; 0x02002878 - push {r4-r7, lr} - sub sp, #0x2c - add r5, r0, #0x0 - ldr r0, _020029F8 ; =gTextFlags - add r4, r5, #0x0 - ldrb r0, [r0, #0x0] - add r4, #0x1c - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - beq _0200288E - b _020029F4 -_0200288E: - ldrb r0, [r4, #0x1] - lsl r1, r0, #0x1b - lsr r2, r1, #0x1b - beq _020028AC - mov r1, #0x1f - add r2, #0xff - bic r0, r1 - lsl r1, r2, #0x18 - lsr r2, r1, #0x18 - mov r1, #0x1f - and r1, r2 - orr r0, r1 - add sp, #0x2c - strb r0, [r4, #0x1] - pop {r4-r7, pc} -_020028AC: - ldr r0, [r5, #0x4] - bl FUN_0201AB08 - str r0, [sp, #0x20] - ldr r0, [r5, #0x4] - bl FUN_0201AB14 - str r0, [sp, #0x24] - ldr r0, [r5, #0x4] - bl FUN_0201AB18 - str r0, [sp, #0x28] - ldr r0, [r5, #0x4] - bl GetWindowWidth - ldr r1, _020029F8 ; =gTextFlags - ldrh r6, [r1, #0x2] - ldr r1, [sp, #0x28] - add r7, r1, #0x2 - ldr r1, [sp, #0x24] - add r2, r6, #0x0 - add r0, r1, r0 - str r0, [sp, #0x1c] - add r0, r0, #0x1 - str r0, [sp, #0x18] - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - add r2, #0x12 - mov r12, r2 - ldrb r2, [r4, #0x1] - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x20] - lsl r2, r2, #0x19 - lsr r3, r2, #0x1e - ldr r2, _020029FC ; =UNK_020ECB50 - ldr r0, [r0, #0x0] - ldrb r2, [r2, r3] - mov r3, r12 - lsl r2, r2, #0x2 - add r2, r3, r2 - ldr r3, [sp, #0x18] - lsl r2, r2, #0x10 - lsl r3, r3, #0x18 - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x20] - add r0, r0, #0x2 - str r0, [sp, #0x10] - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldrb r2, [r4, #0x1] - add r7, r6, #0x0 - ldr r0, [r5, #0x4] - lsl r2, r2, #0x19 - lsr r3, r2, #0x1e - ldr r2, _020029FC ; =UNK_020ECB50 - add r7, #0x13 - ldrb r2, [r2, r3] - ldr r3, [sp, #0x10] - ldr r0, [r0, #0x0] - lsl r2, r2, #0x2 - add r2, r7, r2 - lsl r2, r2, #0x10 - lsl r3, r3, #0x18 - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - ldr r0, [sp, #0x28] - add r7, r6, #0x0 - add r0, r0, #0x3 - str r0, [sp, #0x14] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldrb r2, [r4, #0x1] - ldr r0, [r5, #0x4] - add r7, #0x14 - lsl r2, r2, #0x19 - lsr r3, r2, #0x1e - ldr r2, _020029FC ; =UNK_020ECB50 - ldr r0, [r0, #0x0] - ldrb r2, [r2, r3] - ldr r3, [sp, #0x18] - ldr r1, [sp, #0x20] - lsl r2, r2, #0x2 - add r2, r7, r2 - lsl r2, r2, #0x10 - lsl r3, r3, #0x18 - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - ldr r0, [sp, #0x14] - add r6, #0x15 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldrb r2, [r4, #0x1] - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x20] - lsl r2, r2, #0x19 - lsr r3, r2, #0x1e - ldr r2, _020029FC ; =UNK_020ECB50 - ldr r0, [r0, #0x0] - ldrb r2, [r2, r3] - ldr r3, [sp, #0x10] - lsl r2, r2, #0x2 - add r2, r6, r2 - lsl r2, r2, #0x10 - lsl r3, r3, #0x18 - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x20] - ldr r0, [r0, #0x0] - bl FUN_02017CD0 - ldrb r1, [r4, #0x1] - mov r0, #0x1f - bic r1, r0 - mov r0, #0x8 - orr r0, r1 - strb r0, [r4, #0x1] - ldrb r2, [r4, #0x1] - mov r1, #0x60 - add r0, r2, #0x0 - bic r0, r1 - lsl r1, r2, #0x19 - lsr r1, r1, #0x1e - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1e - lsr r1, r1, #0x19 - orr r0, r1 - strb r0, [r4, #0x1] -_020029F4: - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 -_020029F8: .word gTextFlags -_020029FC: .word UNK_020ECB50 - - thumb_func_start FUN_02002A00 -FUN_02002A00: ; 0x02002A00 - push {r3-r7, lr} - sub sp, #0x18 - add r5, r0, #0x0 - ldr r0, [r5, #0x4] - bl FUN_0201AB08 - str r0, [sp, #0x10] - ldr r0, [r5, #0x4] - bl FUN_0201AB14 - str r0, [sp, #0x14] - ldr r0, [r5, #0x4] - bl FUN_0201AB18 - add r6, r0, #0x0 - ldr r0, [r5, #0x4] - bl GetWindowWidth - ldr r1, _02002A90 ; =gTextFlags - add r7, r6, #0x2 - ldrh r4, [r1, #0x2] - ldr r1, [sp, #0x14] - add r6, r1, r0 - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldr r0, [r5, #0x4] - add r2, r4, #0x0 - add r2, #0xa - add r3, r6, #0x1 - lsl r2, r2, #0x10 - lsl r3, r3, #0x18 - ldr r0, [r0, #0x0] - ldr r1, [sp, #0x10] - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - lsl r0, r7, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x10 - str r0, [sp, #0xc] - ldr r0, [r5, #0x4] - add r4, #0xb - add r3, r6, #0x2 - lsl r2, r4, #0x10 - lsl r3, r3, #0x18 - ldr r0, [r0, #0x0] - ldr r1, [sp, #0x10] - lsr r2, r2, #0x10 - lsr r3, r3, #0x18 - bl FUN_02018540 - ldr r0, [r5, #0x4] - ldr r1, [sp, #0x10] - ldr r0, [r0, #0x0] - bl FUN_02017CD0 - add sp, #0x18 - pop {r3-r7, pc} - nop -_02002A90: .word gTextFlags - - thumb_func_start FUN_02002A94 -FUN_02002A94: ; 0x02002A94 - push {r3, lr} - ldr r0, _02002ACC ; =gMain - ldr r1, [r0, #0x48] - mov r0, #0x3 - tst r0, r1 - bne _02002AB2 - ldr r0, _02002AD0 ; =gMain + 0x40 - ldrh r0, [r0, #0x20] - cmp r0, #0x0 - beq _02002AC6 - ldr r0, _02002AD4 ; =gTextFlags - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - beq _02002AC6 -_02002AB2: - ldr r0, _02002AD8 ; =0x000005DC - bl FUN_020054C8 - ldr r1, _02002AD4 ; =gTextFlags - mov r0, #0x80 - ldrb r2, [r1, #0x0] - orr r0, r2 - strb r0, [r1, #0x0] - mov r0, #0x1 - pop {r3, pc} -_02002AC6: - mov r0, #0x0 - pop {r3, pc} - nop -_02002ACC: .word gMain -_02002AD0: .word gMain + 0x40 -_02002AD4: .word gTextFlags -_02002AD8: .word 0x000005DC - - thumb_func_start FUN_02002ADC -FUN_02002ADC: ; 0x02002ADC - push {r4, lr} - add r2, r0, #0x0 - add r2, #0x1c - ldrb r1, [r2, #0x2] - add r4, r1, #0x0 - cmp r4, #0x64 - bne _02002AEE - mov r0, #0x1 - pop {r4, pc} -_02002AEE: - mov r3, #0xff - bic r1, r3 - add r3, r4, #0x1 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - orr r1, r3 - strb r1, [r2, #0x2] - ldr r1, _02002B14 ; =gTextFlags - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x1a - lsr r1, r1, #0x1f - beq _02002B10 - bl FUN_02002A94 - pop {r4, pc} -_02002B10: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_02002B14: .word gTextFlags - - thumb_func_start FUN_02002B18 -FUN_02002B18: ; 0x02002B18 - push {r4, lr} - ldr r1, _02002B38 ; =gTextFlags - add r4, r0, #0x0 - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x1d - lsr r1, r1, #0x1f - beq _02002B2C - bl FUN_02002ADC - pop {r4, pc} -_02002B2C: - bl FUN_02002878 - add r0, r4, #0x0 - bl FUN_02002A94 - pop {r4, pc} - .balign 4 -_02002B38: .word gTextFlags - - thumb_func_start FUN_02002B3C -FUN_02002B3C: ; 0x02002B3C - push {r3, lr} - ldr r1, _02002B5C ; =gTextFlags - ldrb r1, [r1, #0x0] - lsl r1, r1, #0x1d - lsr r1, r1, #0x1f - beq _02002B52 - bl FUN_02002ADC - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} -_02002B52: - bl FUN_02002A94 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - .balign 4 -_02002B5C: .word gTextFlags - - thumb_func_start FUN_02002B60 -FUN_02002B60: ; 0x02002B60 - ldr r2, _02002B78 ; =gTextFlags - mov r1, #0x1 - ldrb r3, [r2, #0x0] - lsl r0, r0, #0x18 - bic r3, r1 - lsr r1, r0, #0x18 - mov r0, #0x1 - and r0, r1 - orr r0, r3 - strb r0, [r2, #0x0] - bx lr - nop -_02002B78: .word gTextFlags - - thumb_func_start FUN_02002B7C -FUN_02002B7C: ; 0x02002B7C - push {r3-r4} - ldr r1, _02002BB4 ; =gTextFlags - mov r3, #0x4 - ldrb r2, [r1, #0x0] - mov r4, #0x1 - bic r2, r3 - add r3, r0, #0x0 - and r3, r4 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - lsl r3, r3, #0x1f - lsr r3, r3, #0x1d - orr r2, r3 - asr r0, r0, #0x1 - and r0, r4 - strb r2, [r1, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r0, r0, #0x1f - ldrb r2, [r1, #0x0] - mov r3, #0x20 - lsr r0, r0, #0x1a - bic r2, r3 - orr r0, r2 - strb r0, [r1, #0x0] - pop {r3-r4} - bx lr - nop -_02002BB4: .word gTextFlags - - thumb_func_start FUN_02002BB8 -FUN_02002BB8: ; 0x02002BB8 - ldr r2, _02002BD0 ; =gTextFlags - lsl r0, r0, #0x18 - ldrb r3, [r2, #0x0] - lsr r0, r0, #0x18 - mov r1, #0x10 - lsl r0, r0, #0x1f - bic r3, r1 - lsr r0, r0, #0x1b - orr r0, r3 - strb r0, [r2, #0x0] - bx lr - nop -_02002BD0: .word gTextFlags - - thumb_func_start FUN_02002BD4 -FUN_02002BD4: ; 0x02002BD4 - ldr r0, _02002BE0 ; =gTextFlags - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1f - bx lr - nop -_02002BE0: .word gTextFlags - - thumb_func_start FUN_02002BE4 -FUN_02002BE4: ; 0x02002BE4 - ldr r1, _02002BF0 ; =gTextFlags - mov r0, #0x40 - ldrb r2, [r1, #0x0] - bic r2, r0 - strb r2, [r1, #0x0] - bx lr - .balign 4 -_02002BF0: .word gTextFlags - - thumb_func_start FUN_02002BF4 -FUN_02002BF4: ; 0x02002BF4 - ldr r0, _02002C00 ; =gTextFlags - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - bx lr - nop -_02002C00: .word gTextFlags - - thumb_func_start FUN_02002C04 -FUN_02002C04: ; 0x02002C04 - ldr r1, _02002C10 ; =gTextFlags - mov r0, #0x80 - ldrb r2, [r1, #0x0] - bic r2, r0 - strb r2, [r1, #0x0] - bx lr - .balign 4 -_02002C10: .word gTextFlags diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s index 119c68ff..60d27fed 100644 --- a/arm9/asm/unk_02002C14.s +++ b/arm9/asm/unk_02002C14.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_02002F08.s b/arm9/asm/unk_02002F08.s index fb6f96ff..10ad89e0 100644 --- a/arm9/asm/unk_02002F08.s +++ b/arm9/asm/unk_02002F08.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_02106FC8 diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s index f9b9de1f..d304b14a 100644 --- a/arm9/asm/unk_020030E8.s +++ b/arm9/asm/unk_020030E8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .text diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s index c2d91fe9..d6d06005 100644 --- a/arm9/asm/unk_020051F4.s +++ b/arm9/asm/unk_020051F4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text @@ -331,7 +331,7 @@ FUN_020054A8: ; 0x020054A8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_020054C8 + bl PlaySE add r6, r0, #0x0 ldr r1, _020054C4 ; =0x0000FFFF add r0, r5, #0x0 @@ -342,8 +342,8 @@ FUN_020054A8: ; 0x020054A8 nop _020054C4: .word 0x0000FFFF - thumb_func_start FUN_020054C8 -FUN_020054C8: ; 0x020054C8 + thumb_func_start PlaySE +PlaySE: ; 0x020054C8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020048D0 diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s index 7a7010b0..8e521c5c 100644 --- a/arm9/asm/unk_02005CFC.s +++ b/arm9/asm/unk_02005CFC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 07650c04..526c52c7 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020ECD4C .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_02008AA4.s b/arm9/asm/unk_02008AA4.s index e6b5abcc..0b8d98e7 100644 --- a/arm9/asm/unk_02008AA4.s +++ b/arm9/asm/unk_02008AA4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index 31aabcc3..f257d2c8 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02009EAC.s b/arm9/asm/unk_02009EAC.s index 95a1773a..b08b52fd 100644 --- a/arm9/asm/unk_02009EAC.s +++ b/arm9/asm/unk_02009EAC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 9e8b3189..62bace0d 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -147,7 +147,7 @@ FUN_0200CB6C: ; 0x0200CB6C add r2, sp, #0x28 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r1, sp, #0x28 ldrh r4, [r1, #0x1c] lsl r0, r7, #0x18 @@ -164,7 +164,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect add r0, sp, #0x28 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x18] @@ -185,7 +185,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x3 str r0, [sp, #0x0] @@ -201,7 +201,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] str r0, [sp, #0x0] @@ -218,7 +218,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, sp, #0x28 ldrb r1, [r0, #0x14] ldr r0, [sp, #0x1c] @@ -237,7 +237,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -253,7 +253,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -269,7 +269,7 @@ FUN_0200CB6C: ; 0x0200CB6C ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x24 pop {r4-r7, pc} .balign 4 @@ -282,13 +282,13 @@ FUN_0200CCA4: ; 0x0200CCA4 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x10] add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x14] add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x18] add r0, r5, #0x0 bl GetWindowWidth @@ -319,13 +319,13 @@ FUN_0200CCF8: ; 0x0200CCF8 sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x10] add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY add r7, r0, #0x0 add r0, r5, #0x0 bl GetWindowWidth @@ -352,11 +352,11 @@ FUN_0200CCF8: ; 0x0200CCF8 ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect cmp r4, #0x0 bne _0200CD5A add r0, r5, #0x0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _0200CD5A: add sp, #0x18 pop {r3-r7, pc} @@ -454,7 +454,7 @@ FUN_0200CDD8: ; 0x0200CDD8 lsl r3, r3, #0x18 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x14] sub r0, r0, #0x1 str r0, [sp, #0x24] @@ -475,7 +475,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -491,7 +491,7 @@ FUN_0200CDD8: ; 0x0200CDD8 ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect add r0, sp, #0x38 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x14] @@ -512,7 +512,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x2c] add r2, r4, #0x4 add r0, r0, #0x1 @@ -531,7 +531,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x2c] add r2, r4, #0x5 add r0, r0, #0x2 @@ -550,7 +550,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] ldr r3, [sp, #0x28] str r0, [sp, #0x0] @@ -566,7 +566,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] ldr r3, [sp, #0x24] str r0, [sp, #0x0] @@ -582,7 +582,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -599,7 +599,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -616,7 +616,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -633,7 +633,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r2, r4, #0x0 ldr r3, [sp, #0x28] add r2, #0xc @@ -653,7 +653,7 @@ FUN_0200CDD8: ; 0x0200CDD8 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -670,7 +670,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -687,7 +687,7 @@ FUN_0200CDD8: ; 0x0200CDD8 ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -704,7 +704,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -721,7 +721,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -737,7 +737,7 @@ FUN_0200CDD8: ; 0x0200CDD8 add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x30 pop {r3-r7, pc} .balign 4 @@ -749,13 +749,13 @@ FUN_0200D06C: ; 0x0200D06C add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x10] add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x14] add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x18] add r0, r5, #0x0 bl GetWindowWidth @@ -804,13 +804,13 @@ FUN_0200D0E0: ; 0x0200D0E0 sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x10] add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY add r7, r0, #0x0 add r0, r5, #0x0 bl GetWindowWidth @@ -837,11 +837,11 @@ FUN_0200D0E0: ; 0x0200D0E0 ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect cmp r4, #0x0 bne _0200D142 add r0, r5, #0x0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _0200D142: add sp, #0x18 pop {r3-r7, pc} @@ -890,10 +890,10 @@ FUN_0200D18C: ; 0x0200D18C str r1, [sp, #0x24] str r0, [sp, #0x20] ldr r0, [r0, #0x0] - bl FUN_02016BB8 + bl BgConfig_GetHeapId add r6, r0, #0x0 ldr r0, [sp, #0x20] - bl FUN_0201AB08 + bl GetWindowBgId mov r1, #0x6 str r0, [sp, #0x28] add r0, r6, #0x0 @@ -901,7 +901,7 @@ FUN_0200D18C: ; 0x0200D18C bl AllocFromHeap add r5, r0, #0x0 ldr r0, [sp, #0x28] - bl FUN_020187B0 + bl BgGetCharPtr add r4, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x26 @@ -978,7 +978,7 @@ _0200D1E0: ldr r0, [r0, #0x0] add r2, r5, #0x0 lsl r3, r3, #0x6 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #0x24] bl FUN_02002840 ldr r0, [sp, #0x2c] @@ -1049,7 +1049,7 @@ _0200D2D2: ldr r1, [sp, #0x8] add r2, r4, #0x0 lsl r3, r3, #0x6 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #0xc] bl FreeToHeap add r0, r4, #0x0 @@ -1095,7 +1095,7 @@ FUN_0200D300: ; 0x0200D300 add r0, r6, #0x0 mov r2, #0x20 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r1, [sp, #0x14] add r0, r4, #0x0 bl FreeToHeapExplicit @@ -1176,7 +1176,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 str r0, [sp, #0x10] - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x18] str r0, [sp, #0x30] sub r0, #0x8 @@ -1198,7 +1198,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, sp, #0x48 ldrb r0, [r0, #0x10] add r2, r4, #0x2 @@ -1225,7 +1225,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r2, r4, #0x3 lsl r2, r2, #0x10 ldr r1, [sp, #0x18] @@ -1245,7 +1245,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x38] add r2, r4, #0x4 add r0, r0, #0x1 @@ -1264,7 +1264,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x38] add r0, r0, #0x2 str r0, [sp, #0x28] @@ -1283,7 +1283,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] ldr r3, [sp, #0x34] str r0, [sp, #0x0] @@ -1298,7 +1298,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] ldr r3, [sp, #0x30] str r0, [sp, #0x0] @@ -1313,7 +1313,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -1330,7 +1330,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -1346,7 +1346,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -1362,7 +1362,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] @@ -1378,7 +1378,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r2, r4, #0x0 add r6, r0, r6 @@ -1397,7 +1397,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1414,7 +1414,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1434,7 +1434,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1451,7 +1451,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1468,7 +1468,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1484,7 +1484,7 @@ FUN_0200D3B0: ; 0x0200D3B0 ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x40 pop {r3-r7, pc} .balign 4 @@ -1496,16 +1496,16 @@ FUN_0200D678: ; 0x0200D678 str r1, [sp, #0x10] add r7, r0, #0x0 str r2, [sp, #0x14] - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x20] add r0, r7, #0x0 - bl FUN_0201AB14 + bl GetWindowX sub r0, r0, #0x7 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0x0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x1c] mov r0, #0x0 str r0, [sp, #0x24] @@ -1538,7 +1538,7 @@ _0200D6BA: ldr r1, [sp, #0x20] lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -1562,17 +1562,17 @@ FUN_0200D6F8: ; 0x0200D6F8 str r1, [sp, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x14] add r0, sp, #0x30 ldrb r0, [r0, #0x10] cmp r0, #0x1 bhi _0200D756 add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x18] add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x1c] add r0, r5, #0x0 bl GetWindowWidth @@ -1598,10 +1598,10 @@ FUN_0200D6F8: ; 0x0200D6F8 b _0200D788 _0200D756: add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x20] add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x24] add r0, r5, #0x0 bl GetWindowWidth @@ -1637,15 +1637,15 @@ FUN_0200D7A0: ; 0x0200D7A0 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x10] - bl FUN_0201AB08 + bl GetWindowBgId str r0, [sp, #0x14] cmp r4, #0x1 bhi _0200D7FE add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY add r7, r0, #0x0 add r0, r5, #0x0 bl GetWindowWidth @@ -1671,14 +1671,14 @@ FUN_0200D7A0: ; 0x0200D7A0 ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect b _0200D846 _0200D7FE: add r0, r5, #0x0 - bl FUN_0201AB14 + bl GetWindowX add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB18 + bl GetWindowY add r6, r0, #0x0 add r0, r5, #0x0 bl GetWindowWidth @@ -1704,13 +1704,13 @@ _0200D7FE: ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect _0200D846: ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0200D852 add r0, r5, #0x0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _0200D852: add sp, #0x18 pop {r3-r7, pc} @@ -1723,11 +1723,11 @@ FUN_0200D858: ; 0x0200D858 str r0, [sp, #0x20] ldr r0, [r0, #0x0] str r1, [sp, #0x24] - bl FUN_02016BB8 + bl BgConfig_GetHeapId str r0, [sp, #0x28] ldr r0, [sp, #0x20] - bl FUN_0201AB08 - bl FUN_020187B0 + bl GetWindowBgId + bl BgGetCharPtr add r5, r0, #0x0 ldr r0, [sp, #0x28] ldr r1, _0200D970 ; =0x0000048C @@ -1854,13 +1854,13 @@ FUN_0200D980: ; 0x0200D980 add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 - bl FUN_0201AB08 + bl GetWindowBgId add r4, r0, #0x0 ldr r0, [r5, #0x0] - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x18] ldr r0, [r5, #0x0] - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x1c] ldr r0, [r5, #0x0] bl GetWindowWidth @@ -1877,7 +1877,7 @@ FUN_0200D980: ; 0x0200D980 ldr r0, [r5, #0x0] mov r3, #0x80 ldr r0, [r0, #0x0] - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r7, r0, #0x2 @@ -1904,7 +1904,7 @@ FUN_0200D980: ; 0x0200D980 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1924,7 +1924,7 @@ FUN_0200D980: ; 0x0200D980 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] ldr r3, [sp, #0x14] add r7, r0, #0x3 @@ -1946,7 +1946,7 @@ FUN_0200D980: ; 0x0200D980 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -1965,11 +1965,11 @@ FUN_0200D980: ; 0x0200D980 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x24 pop {r4-r7, pc} _0200DA8A: @@ -1988,7 +1988,7 @@ _0200DA8A: add r2, r2, r3 ldr r0, [r0, #0x0] mov r3, #0x80 - bl FUN_02017E14 + bl BG_LoadCharTilesData cmp r6, #0x0 beq _0200DB72 ldr r0, [sp, #0x1c] @@ -2017,7 +2017,7 @@ _0200DA8A: add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -2037,7 +2037,7 @@ _0200DA8A: add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] ldr r3, [sp, #0x10] add r7, r0, #0x3 @@ -2059,7 +2059,7 @@ _0200DA8A: add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] @@ -2078,11 +2078,11 @@ _0200DA8A: add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _0200DB72: add sp, #0x24 pop {r4-r7, pc} @@ -2228,7 +2228,7 @@ FUN_0200DC4C: ; 0x0200DC4C bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _0200DCA0 ; =0x0000016F add r0, r4, r0 add sp, #0xc @@ -2266,7 +2266,7 @@ FUN_0200DCA4: ; 0x0200DCA4 bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _0200DCF4 ; =0x0000016F add r0, r4, r0 add sp, #0xc @@ -2646,7 +2646,7 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r3, r3, #0x18 add r6, r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x1 ldrb r0, [r5, r3] @@ -2667,7 +2667,7 @@ FUN_0200DFD8: ; 0x0200DFD8 ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x2 ldrb r0, [r5, r3] @@ -2690,7 +2690,7 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x4 ldrb r0, [r5, r3] @@ -2707,7 +2707,7 @@ FUN_0200DFD8: ; 0x0200DFD8 ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x3 ldrb r0, [r5, r3] @@ -2728,7 +2728,7 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x5 ldrb r0, [r5, r3] @@ -2749,7 +2749,7 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x6 ldrb r0, [r5, r3] @@ -2772,7 +2772,7 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x7 ldrb r0, [r5, r3] @@ -2793,7 +2793,7 @@ FUN_0200DFD8: ; 0x0200DFD8 ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect ldr r3, _0200E184 ; =0x0000016E add r6, #0x8 ldrb r0, [r5, r3] @@ -2816,13 +2816,13 @@ FUN_0200DFD8: ; 0x0200DFD8 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r5, r1] add r1, r1, #0x4 ldrb r1, [r5, r1] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r4-r6, pc} nop @@ -2853,13 +2853,13 @@ FUN_0200E188: ; 0x0200E188 sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, r1, #0x4 ldrb r1, [r4, r1] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_0200E1D0.s b/arm9/asm/unk_0200E1D0.s index 3690752c..b93e5e74 100644 --- a/arm9/asm/unk_0200E1D0.s +++ b/arm9/asm/unk_0200E1D0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0200E850.s b/arm9/asm/unk_0200E850.s index 1919f15d..a464171a 100644 --- a/arm9/asm/unk_0200E850.s +++ b/arm9/asm/unk_0200E850.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_0201137C.s b/arm9/asm/unk_0201137C.s index 1a68abb7..65e076bb 100644 --- a/arm9/asm/unk_0201137C.s +++ b/arm9/asm/unk_0201137C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index bc9652c8..0a0ad349 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_02012004.s b/arm9/asm/unk_02012004.s index 8c38ae93..61d60ec2 100644 --- a/arm9/asm/unk_02012004.s +++ b/arm9/asm/unk_02012004.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .rodata diff --git a/arm9/asm/unk_02012944.s b/arm9/asm/unk_02012944.s index 8b3029f2..789becf0 100644 --- a/arm9/asm/unk_02012944.s +++ b/arm9/asm/unk_02012944.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index 5f0f01c6..e54565f1 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern NNS_G3dGlb @@ -1565,6 +1565,6 @@ ListMenuUpdateCursorObj: ; 0x020136F8 add r3, r4, #0x0 bl AddTextPrinterParameterized2 add r0, r5, #0x0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4-r6, pc} diff --git a/arm9/asm/unk_02013CD4.s b/arm9/asm/unk_02013CD4.s index 8b846678..d6d0116a 100644 --- a/arm9/asm/unk_02013CD4.s +++ b/arm9/asm/unk_02013CD4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern NNS_GfdDefaultFuncAllocPlttVram .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_020142EC.s b/arm9/asm/unk_020142EC.s index 2e18d984..5526b320 100644 --- a/arm9/asm/unk_020142EC.s +++ b/arm9/asm/unk_020142EC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text @@ -258,7 +258,7 @@ FUN_020144B0: ; 0x020144B0 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData pop {r3, pc} .balign 4 @@ -272,7 +272,7 @@ FUN_020144C8: ; 0x020144C8 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_020144FC.s b/arm9/asm/unk_020144FC.s index b9dd902f..e3677eca 100644 --- a/arm9/asm/unk_020144FC.s +++ b/arm9/asm/unk_020144FC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02014590.s b/arm9/asm/unk_02014590.s index 189206a3..42aad43e 100644 --- a/arm9/asm/unk_02014590.s +++ b/arm9/asm/unk_02014590.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text @@ -424,7 +424,7 @@ FUN_02014878: ; 0x02014878 add r2, #0x9a strb r0, [r2, #0x0] ldr r0, _020148A4 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE _020148A2: pop {r4, pc} .balign 4 @@ -557,12 +557,12 @@ FUN_02014970: ; 0x02014970 lsl r1, r1, #0x18 ldr r0, [r6, #0x0] lsr r1, r1, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldr r1, [r6, #0x4] ldr r0, [r6, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r4, #0x0 add r5, r6, #0x0 _020149B4: @@ -742,7 +742,7 @@ FUN_02014AD4: ; 0x02014AD4 ldr r0, [r4, #0x0] ldr r3, [r3, #0x10] lsr r1, r1, #0x18 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r5, #0x0 bl FUN_0200CAB4 ldr r0, [r4, #0x8] @@ -817,11 +817,11 @@ FUN_02014B58: ; 0x02014B58 lsr r2, r2, #0x18 lsr r3, r3, #0x18 add r5, r0, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r3-r6, pc} .balign 4 diff --git a/arm9/asm/unk_02014BF4.s b/arm9/asm/unk_02014BF4.s index 566b8514..2413b116 100644 --- a/arm9/asm/unk_02014BF4.s +++ b/arm9/asm/unk_02014BF4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_02015D14.s b/arm9/asm/unk_02015D14.s index 3b49756a..7a67039f 100644 --- a/arm9/asm/unk_02015D14.s +++ b/arm9/asm/unk_02015D14.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0201B1A8.s b/arm9/asm/unk_0201B1A8.s index 359f9bfe..f2b33c29 100644 --- a/arm9/asm/unk_0201B1A8.s +++ b/arm9/asm/unk_0201B1A8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern NNS_G3dGlb .extern NNS_G3dGlb @@ -21,7 +21,7 @@ FUN_0201B1A8: ; 0x0201B1A8 push {r3-r5, lr} add r5, r3, #0x0 add r4, r2, #0x0 - bl FUN_020161A4 + bl AllocAndReadFile str r0, [r5, #0x0] bl NNS_G3dGetTex cmp r0, #0x0 diff --git a/arm9/asm/unk_0201B4E8.s b/arm9/asm/unk_0201B4E8.s index 42074f95..b742fd39 100644 --- a/arm9/asm/unk_0201B4E8.s +++ b/arm9/asm/unk_0201B4E8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0201B6D0.s b/arm9/asm/unk_0201B6D0.s index 1d795e17..b66ef8bb 100644 --- a/arm9/asm/unk_0201B6D0.s +++ b/arm9/asm/unk_0201B6D0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern NNS_G3dGlb .extern NNS_G3dGlb diff --git a/arm9/asm/unk_0201C24C.s b/arm9/asm/unk_0201C24C.s index b0c55e93..35d638b3 100644 --- a/arm9/asm/unk_0201C24C.s +++ b/arm9/asm/unk_0201C24C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0201C360.s b/arm9/asm/unk_0201C360.s index 078b3ee3..6560cbc4 100644 --- a/arm9/asm/unk_0201C360.s +++ b/arm9/asm/unk_0201C360.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0201C620.s b/arm9/asm/unk_0201C620.s index b1da9325..a4d23899 100644 --- a/arm9/asm/unk_0201C620.s +++ b/arm9/asm/unk_0201C620.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0201C6B4.s b/arm9/asm/unk_0201C6B4.s index dea0c864..6ee6910b 100644 --- a/arm9/asm/unk_0201C6B4.s +++ b/arm9/asm/unk_0201C6B4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0201C7A0.s b/arm9/asm/unk_0201C7A0.s index aa8bfe83..cbc055af 100644 --- a/arm9/asm/unk_0201C7A0.s +++ b/arm9/asm/unk_0201C7A0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gSineTable .extern FX_SinCosTable_ diff --git a/arm9/asm/unk_0201CC08.s b/arm9/asm/unk_0201CC08.s index 15457b23..30d82af8 100644 --- a/arm9/asm/unk_0201CC08.s +++ b/arm9/asm/unk_0201CC08.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain diff --git a/arm9/asm/unk_0201D040.s b/arm9/asm/unk_0201D040.s index b41b069c..672b3209 100644 --- a/arm9/asm/unk_0201D040.s +++ b/arm9/asm/unk_0201D040.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0201E00C.s b/arm9/asm/unk_0201E00C.s index d46fd5e0..212205fd 100644 --- a/arm9/asm/unk_0201E00C.s +++ b/arm9/asm/unk_0201E00C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0201E7D8.s b/arm9/asm/unk_0201E7D8.s index 43dcd254..abc19a78 100644 --- a/arm9/asm/unk_0201E7D8.s +++ b/arm9/asm/unk_0201E7D8.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern NNS_G3dGlb .extern NNS_G3dGlb diff --git a/arm9/asm/unk_0201F06C.s b/arm9/asm/unk_0201F06C.s index 03e1404e..a00dc10e 100644 --- a/arm9/asm/unk_0201F06C.s +++ b/arm9/asm/unk_0201F06C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern FX_SinCosTable_ .extern NNS_GfdDefaultFuncAllocPlttVram @@ -265,7 +265,7 @@ _0201F1C8: ldr r0, [r0, #0x0] ldr r1, [r5, #0x4] mov r2, #0x4 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] bl FUN_0201C360 @@ -1821,7 +1821,7 @@ _0201FD0C: str r0, [r4, r1] ldr r0, [r5, #0x8] ldr r1, _0201FD54 ; =UNK_02105BBC - bl FUN_020161A4 + bl AllocAndReadFile mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r4, r1] diff --git a/arm9/asm/unk_020208B8.s b/arm9/asm/unk_020208B8.s index 11027cff..5e47bc2e 100644 --- a/arm9/asm/unk_020208B8.s +++ b/arm9/asm/unk_020208B8.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain diff --git a/arm9/asm/unk_02020C44.s b/arm9/asm/unk_02020C44.s index 235543ee..b03750ac 100644 --- a/arm9/asm/unk_02020C44.s +++ b/arm9/asm/unk_02020C44.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern NNS_GfdDefaultFuncAllocTexVram .extern NNS_GfdDefaultFuncAllocPlttVram @@ -146,7 +146,7 @@ _02020D38: _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 - bl FUN_020161A4 + bl AllocAndReadFile str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A diff --git a/arm9/asm/unk_0202134C.s b/arm9/asm/unk_0202134C.s index b45f4e91..1c5515c0 100644 --- a/arm9/asm/unk_0202134C.s +++ b/arm9/asm/unk_0202134C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02021590.s b/arm9/asm/unk_02021590.s index ee27fc88..a648ab1d 100644 --- a/arm9/asm/unk_02021590.s +++ b/arm9/asm/unk_02021590.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02022244.s b/arm9/asm/unk_02022244.s index 02895c8f..07482d25 100644 --- a/arm9/asm/unk_02022244.s +++ b/arm9/asm/unk_02022244.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02022294.s b/arm9/asm/unk_02022294.s index 2b3d7a39..c0d13763 100644 --- a/arm9/asm/unk_02022294.s +++ b/arm9/asm/unk_02022294.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_020222E8.s b/arm9/asm/unk_020222E8.s index b43507a2..047712a5 100644 --- a/arm9/asm/unk_020222E8.s +++ b/arm9/asm/unk_020222E8.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02022318.s b/arm9/asm/unk_02022318.s index 9564742c..5a639179 100644 --- a/arm9/asm/unk_02022318.s +++ b/arm9/asm/unk_02022318.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02022450.s b/arm9/asm/unk_02022450.s index 73169e78..fd6aacb5 100644 --- a/arm9/asm/unk_02022450.s +++ b/arm9/asm/unk_02022450.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02023AC4.s b/arm9/asm/unk_02023AC4.s index daa3a9a3..a9a5bea2 100644 --- a/arm9/asm/unk_02023AC4.s +++ b/arm9/asm/unk_02023AC4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .data diff --git a/arm9/asm/unk_020250A4.s b/arm9/asm/unk_020250A4.s index 60cd4165..5810a8ac 100644 --- a/arm9/asm/unk_020250A4.s +++ b/arm9/asm/unk_020250A4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02025954.s b/arm9/asm/unk_02025954.s index 40c1b236..bbbe5bc9 100644 --- a/arm9/asm/unk_02025954.s +++ b/arm9/asm/unk_02025954.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s index 28a1f682..da87eac5 100644 --- a/arm9/asm/unk_02026CD0.s +++ b/arm9/asm/unk_02026CD0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gGameLanguage diff --git a/arm9/asm/unk_02027E30.s b/arm9/asm/unk_02027E30.s index 8116a83c..c5efaebd 100644 --- a/arm9/asm/unk_02027E30.s +++ b/arm9/asm/unk_02027E30.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020281E0.s b/arm9/asm/unk_020281E0.s index 23822bb1..f8183dc2 100644 --- a/arm9/asm/unk_020281E0.s +++ b/arm9/asm/unk_020281E0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02028980.s b/arm9/asm/unk_02028980.s index 664e39e7..8299ea95 100644 --- a/arm9/asm/unk_02028980.s +++ b/arm9/asm/unk_02028980.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02029A84.s b/arm9/asm/unk_02029A84.s index c0382834..b9131299 100644 --- a/arm9/asm/unk_02029A84.s +++ b/arm9/asm/unk_02029A84.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02029AE0.s b/arm9/asm/unk_02029AE0.s index 3e6f8a2e..68c9a3c8 100644 --- a/arm9/asm/unk_02029AE0.s +++ b/arm9/asm/unk_02029AE0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02029CEC.s b/arm9/asm/unk_02029CEC.s index 623b44b9..5f7a1bf2 100644 --- a/arm9/asm/unk_02029CEC.s +++ b/arm9/asm/unk_02029CEC.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02029FB0.s b/arm9/asm/unk_02029FB0.s index c98b57b7..2c66522a 100644 --- a/arm9/asm/unk_02029FB0.s +++ b/arm9/asm/unk_02029FB0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0202A924.s b/arm9/asm/unk_0202A924.s index f8784153..6bd87ba5 100644 --- a/arm9/asm/unk_0202A924.s +++ b/arm9/asm/unk_0202A924.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0202AC20.s b/arm9/asm/unk_0202AC20.s index 843845eb..8e86635c 100644 --- a/arm9/asm/unk_0202AC20.s +++ b/arm9/asm/unk_0202AC20.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0202B374.s b/arm9/asm/unk_0202B374.s index 2becea26..260bf6f6 100644 --- a/arm9/asm/unk_0202B374.s +++ b/arm9/asm/unk_0202B374.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0202B870.s b/arm9/asm/unk_0202B870.s index 55229d73..c4dc6cc4 100644 --- a/arm9/asm/unk_0202B870.s +++ b/arm9/asm/unk_0202B870.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s index 52f6b9ad..fb7c35a7 100644 --- a/arm9/asm/unk_0202BE98.s +++ b/arm9/asm/unk_0202BE98.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0202C198.s b/arm9/asm/unk_0202C198.s index 742b9fb1..4753b23a 100644 --- a/arm9/asm/unk_0202C198.s +++ b/arm9/asm/unk_0202C198.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .data diff --git a/arm9/asm/unk_0202D394.s b/arm9/asm/unk_0202D394.s index ce635a79..8def9e94 100644 --- a/arm9/asm/unk_0202D394.s +++ b/arm9/asm/unk_0202D394.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0202D4C4.s b/arm9/asm/unk_0202D4C4.s index a809e579..c74b65b6 100644 --- a/arm9/asm/unk_0202D4C4.s +++ b/arm9/asm/unk_0202D4C4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0202D8D0.s b/arm9/asm/unk_0202D8D0.s index 13ed76b8..ec2d4a99 100644 --- a/arm9/asm/unk_0202D8D0.s +++ b/arm9/asm/unk_0202D8D0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0202DB14.s b/arm9/asm/unk_0202DB14.s index 490da58f..867eb255 100644 --- a/arm9/asm/unk_0202DB14.s +++ b/arm9/asm/unk_0202DB14.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_020336C0.s b/arm9/asm/unk_020336C0.s index 4f2d4dc3..a82cee5b 100644 --- a/arm9/asm/unk_020336C0.s +++ b/arm9/asm/unk_020336C0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02033874.s b/arm9/asm/unk_02033874.s index dfad7db2..83170809 100644 --- a/arm9/asm/unk_02033874.s +++ b/arm9/asm/unk_02033874.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02033B68.s b/arm9/asm/unk_02033B68.s index 9e204377..69021991 100644 --- a/arm9/asm/unk_02033B68.s +++ b/arm9/asm/unk_02033B68.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata @@ -326,7 +326,7 @@ FUN_02033D3C: ; 0x02033D3C beq _02033D92 ldr r0, _02033D98 ; =UNK_02105D88 add r1, sp, #0x4 - bl FUN_020161F8 + bl OpenAndReadWholeFile mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 @@ -374,11 +374,11 @@ FUN_02033D9C: ; 0x02033D9C add r1, sp, #0x4 beq _02033DC2 ldr r0, _02033E5C ; =UNK_02105D98 - bl FUN_020161F8 + bl OpenAndReadWholeFile b _02033DC8 _02033DC2: ldr r0, _02033E60 ; =UNK_02105DA8 - bl FUN_020161F8 + bl OpenAndReadWholeFile _02033DC8: mov r1, #0x96 ldr r0, [sp, #0x4] diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s index ed33e084..7240c93f 100644 --- a/arm9/asm/unk_02033F50.s +++ b/arm9/asm/unk_02033F50.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain @@ -110,7 +110,7 @@ _02033FA4: str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, _02034160 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -132,18 +132,18 @@ _02033FA4: ldr r0, _02034170 ; =UNK_020EECD0 bl GX_SetBanks add r0, r4, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc add r6, r0, #0x0 ldr r0, _02034174 ; =UNK_020EECA4 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0x0 ldr r2, _02034178 ; =UNK_020EECB4 add r0, r6, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r6, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0203417C ; =0x000001F7 @@ -159,13 +159,13 @@ _02033FA4: mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _02034180 ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _02034180 ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x1 mov r1, #0x1a mov r2, #0xc8 @@ -189,7 +189,7 @@ _02033FA4: ldr r2, _02034184 ; =UNK_020EEC9C add r0, r6, #0x0 add r1, sp, #0x18 - bl FUN_02019150 + bl AddWindow mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 @@ -241,7 +241,7 @@ _02033FA4: mov r2, #0x3 bl FUN_0200A274 add r0, sp, #0x18 - bl FUN_02019178 + bl RemoveWindow ldr r0, [sp, #0x10] bl DestroyMsgData add r0, r4, #0x0 diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s index 08265835..66bb542c 100644 --- a/arm9/asm/unk_02034188.s +++ b/arm9/asm/unk_02034188.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain @@ -58,7 +58,7 @@ FUN_02034188: ; 0x02034188 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, _02034370 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -80,18 +80,18 @@ FUN_02034188: ; 0x02034188 ldr r0, _02034380 ; =UNK_020EED2C bl GX_SetBanks add r0, r4, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [sp, #0x10] ldr r0, _02034384 ; =UNK_020EED00 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0x0 ldr r0, [sp, #0x10] ldr r2, _02034388 ; =UNK_020EED10 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [sp, #0x10] mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x10] @@ -107,13 +107,13 @@ FUN_02034188: ; 0x02034188 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _02034390 ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _02034390 ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r2, _02034394 ; =0x00000265 mov r0, #0x1 mov r1, #0x1a @@ -129,7 +129,7 @@ FUN_02034188: ; 0x02034188 ldr r0, [sp, #0x10] ldr r2, _02034398 ; =UNK_020EECF8 add r1, sp, #0x14 - bl FUN_02019150 + bl AddWindow mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 @@ -189,36 +189,36 @@ _020342E4: b _020342E4 _02034308: add r0, sp, #0x14 - bl FUN_02019178 + bl RemoveWindow ldr r0, [sp, #0xc] bl DestroyMsgData mov r0, #0x0 add r1, r0, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x1 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x2 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x3 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x4 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x5 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x6 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x7 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [sp, #0x10] mov r1, #0x0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [sp, #0x10] bl FreeToHeap add sp, #0x24 diff --git a/arm9/asm/unk_020343A8.s b/arm9/asm/unk_020343A8.s index a4cac7e7..38e95c4f 100644 --- a/arm9/asm/unk_020343A8.s +++ b/arm9/asm/unk_020343A8.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02034A28.s b/arm9/asm/unk_02034A28.s index 19d0db80..be782cd2 100644 --- a/arm9/asm/unk_02034A28.s +++ b/arm9/asm/unk_02034A28.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02034D7C.s b/arm9/asm/unk_02034D7C.s index c179bd14..7457d78d 100644 --- a/arm9/asm/unk_02034D7C.s +++ b/arm9/asm/unk_02034D7C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02034E84.s b/arm9/asm/unk_02034E84.s index 45f0b5d0..fd110c04 100644 --- a/arm9/asm/unk_02034E84.s +++ b/arm9/asm/unk_02034E84.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .rodata diff --git a/arm9/asm/unk_02034FE4.s b/arm9/asm/unk_02034FE4.s index 81135415..901bbf19 100644 --- a/arm9/asm/unk_02034FE4.s +++ b/arm9/asm/unk_02034FE4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index c9df4ca4..f2ef44dc 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern UNK_020F96DC .section .rodata @@ -215,7 +215,7 @@ FUN_020351A0: ; 0x020351A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0203524C ; =0x000005FD - bl FUN_020054C8 + bl PlaySE bl FUN_02035254 add r4, r0, #0x0 mov r0, #0x71 @@ -552,12 +552,12 @@ _02035440: mov r1, #0x1 bl FUN_0200CCF8 add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0x0 bl FUN_020358A0 ldr r0, [r5, #0x8] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0x0 bl FreeToHeap ldr r0, [r5, #0x34] @@ -616,7 +616,7 @@ FUN_0203549C: ; 0x0203549C ldr r0, [sp, #0x1c] mov r3, #0x14 ldr r0, [r0, #0x8] - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb @@ -773,7 +773,7 @@ _02035614: bl FUN_02001B8C str r0, [r4, #0x20] add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x1c] ldr r0, [r0, #0xc] bl Sav2_PlayerData_GetProfileAddr @@ -948,7 +948,7 @@ _0203576C: ldr r0, [r4, #0x8] add r1, #0x10 mov r2, #0x3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb @@ -1058,7 +1058,7 @@ _0203584C: bl DestroyMsgData add r5, #0x10 add r0, r5, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _0203588E: add sp, #0x20 pop {r3-r7, pc} @@ -1093,7 +1093,7 @@ _020358CE: bl FUN_0200CCF8 add r5, #0x10 add r0, r5, #0x0 - bl FUN_02019178 + bl RemoveWindow _020358E0: pop {r3-r5, pc} .balign 4 @@ -1587,7 +1587,7 @@ FUN_02035CA0: ; 0x02035CA0 add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x0 bl FUN_020358A0 mov r1, #0x72 @@ -2326,9 +2326,9 @@ FUN_020362E4: ; 0x020362E4 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb - bl BagView_new + bl BagView_New str r0, [sp, #0x8] - bl FUN_0206E308 + bl BagView_sizeof mov r1, #0x7e lsl r1, r1, #0x2 add r2, r0, #0x0 @@ -2657,9 +2657,9 @@ FUN_020365BC: ; 0x020365BC bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x0 bl FUN_020358A0 mov r0, #0x4 @@ -2927,9 +2927,9 @@ FUN_020367E8: ; 0x020367E8 bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x0 bl FUN_020358A0 ldr r0, [r6, #0xc] @@ -3649,7 +3649,7 @@ FUN_02036E08: ; 0x02036E08 mov r0, #0x3 mov r1, #0x49 lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r0, [r4, #0xc] bl SavArray_PlayerParty_get ldrb r1, [r5, #0x0] @@ -3773,7 +3773,7 @@ FUN_02036F1C: ; 0x02036F1C ldr r0, [r4, r0] bl FUN_0206C92C mov r0, #0x49 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _02036F9C ; =0x00000475 mov r1, #0x0 bl FUN_02005350 diff --git a/arm9/asm/unk_02036FA4.s b/arm9/asm/unk_02036FA4.s index 2ebcc6fe..efbd5713 100644 --- a/arm9/asm/unk_02036FA4.s +++ b/arm9/asm/unk_02036FA4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02037024.s b/arm9/asm/unk_02037024.s index 6a0b7ff8..dbd3ae56 100644 --- a/arm9/asm/unk_02037024.s +++ b/arm9/asm/unk_02037024.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020372D4.s b/arm9/asm/unk_020372D4.s index 26a50555..88845239 100644 --- a/arm9/asm/unk_020372D4.s +++ b/arm9/asm/unk_020372D4.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern gMain @@ -187,16 +187,16 @@ FUN_02037400: ; 0x02037400 mov r0, #0x3 mov r1, #0xb lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r1, #0x20 mov r0, #0x3 lsl r2, r1, #0x9 - bl FUN_0201681C + bl CreateHeap mov r2, #0x3 mov r0, #0x0 mov r1, #0x5b lsl r2, r2, #0x8 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0x0 mov r1, #0xb8 mov r2, #0xb @@ -282,11 +282,11 @@ FUN_020374B0: ; 0x020374B0 add r0, r5, #0x0 bl OverlayManager_FreeData mov r0, #0x5b - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xb - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x20 - bl FUN_020168D0 + bl DestroyHeap pop {r3-r5, pc} thumb_func_start FUN_02037504 diff --git a/arm9/asm/unk_020377B0.s b/arm9/asm/unk_020377B0.s index 6efca472..ca19378d 100644 --- a/arm9/asm/unk_020377B0.s +++ b/arm9/asm/unk_020377B0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 1505027c..5ac3b4c2 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "global.inc" + .include "global.inc" .extern UNK_020F2A9C .extern UNK_020F96DC @@ -1633,7 +1633,7 @@ _020382F6: mov r0, #0x3 mov r1, #0x1a lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r0, [r5, #0xc] bl Sav2_PlayerData_GetOptionsAddr str r0, [sp, #0x24] @@ -1691,7 +1691,7 @@ _02038386: ldr r0, [r4, #0x60] bl FUN_0206C92C mov r0, #0x1a - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x7 str r0, [r4, #0x0] b _020383C8 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index bbed9516..e40bd803 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -147,729 +147,729 @@ UNK_020F3538: ; 0x020F3538 .byte 0x0B, 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02 .byte 0x13, 0x02, 0x14, 0x02 - .global gScriptCmdTable + .global gScriptCmdTable gScriptCmdTable: ; 0x020F355C - .word ScrCmd_Nop - .word ScrCmd_Dummy - .word ScrCmd_End - .word ScrCmd_Wait - .word ScrCmd_LoadByte - .word ScrCmd_LoadWord - .word ScrCmd_LoadByteFromAddr - .word ScrCmd_WriteByteToAddr - .word ScrCmd_SetPtrByte - .word ScrCmd_CopyLocal - .word ScrCmd_CopyByte - .word ScrCmd_CompareLocalToLocal - .word ScrCmd_CompareLocalToValue - .word ScrCmd_CompareLocalToAddr - .word ScrCmd_CompareAddrToLocal - .word ScrCmd_CompareAddrToValue - .word ScrCmd_CompareAddrToAddr - .word ScrCmd_CompareVarToValue - .word ScrCmd_CompareVarToVar - .word ScrCmd_RunScript - .word ScrCmd_RunScriptWait - .word ScrCmd_RestartCurrentScript - .word ScrCmd_GoTo - .word ScrCmd_ObjectGoTo - .word ScrCmd_BgGoTo - .word ScrCmd_DirectionGoTo - .word ScrCmd_Call - .word ScrCmd_Return - .word ScrCmd_GoToIf - .word ScrCmd_CallIf - .word ScrCmd_SetFlag - .word ScrCmd_ClearFlag - .word ScrCmd_CheckFlag - .word ScrCmd_CheckFlagVar - .word ScrCmd_SetFlagVar - .word ScrCmd_SetTrainerFlag - .word ScrCmd_ClearTrainerFlag - .word ScrCmd_CheckTrainerFlag - .word ScrCmd_AddVar - .word ScrCmd_SubVar - .word ScrCmd_SetVar - .word ScrCmd_CopyVar - .word ScrCmd_SetOrCopyVar - .word ScrCmd_Message - .word ScrCmd_Unk002C - .word ScrCmd_Unk002D - .word ScrCmd_Unk002E - .word ScrCmd_Unk002F - .word ScrCmd_WaitButtonAB - .word ScrCmd_WaitButton - .word ScrCmd_WaitButtonABPad - .word ScrCmd_Unk0033 - .word ScrCmd_CloseMessageBox - .word ScrCmd_Unk0035 - .word ScrCmd_CreateMessageBox - .word ScrCmd_Unk0037 - .word ScrCmd_Unk0038 - .word ScrCmd_Unk0039 - .word ScrCmd_Unk003A - .word ScrCmd_Unk003B - .word ScrCmd_Menu - .word ScrCmd_ScrollBg - .word ScrCmd_YesNoMenu - .word ScrCmd_Unk003F - .word ScrCmd_Unk0040 - .word ScrCmd_Unk0041 - .word ScrCmd_Unk0042 - .word ScrCmd_Unk0043 - .word ScrCmd_Unk0044 - .word ScrCmd_Unk0045 - .word ScrCmd_Unk0046 - .word ScrCmd_Unk0047 - .word ScrCmd_Unk0048 - .word ScrCmd_PlayFanfare - .word ScrCmd_StopFanfare - .word ScrCmd_PlayFanfareWait - .word ScrCmd_PlayCry - .word ScrCmd_PlayCryWait - .word ScrCmd_PlaySound - .word ScrCmd_PlaySoundWait - .word ScrCmd_PlayBgm - .word ScrCmd_StopBgm - .word ScrCmd_PlayDefaultBgm - .word ScrCmd_Unk0053 - .word ScrCmd_FadeOutBgm - .word ScrCmd_FadeInBgm - .word ScrCmd_Unk0056 - .word ScrCmd_Unk0057 - .word ScrCmd_Unk0058 - .word ScrCmd_CheckChatotCry - .word ScrCmd_StartChatotRecord - .word ScrCmd_StopChatotRecord - .word ScrCmd_SaveChatotCry - .word ScrCmd_Unk005D - .word ScrCmd_Unk005E - .word ScrCmd_Unk005F - .word ScrCmd_Unk0060 - .word ScrCmd_Unk0061 - .word ScrCmd_Unk0062 - .word ScrCmd_Unk0063 - .word ScrCmd_Unk0064 - .word ScrCmd_Unk0065 - .word ScrCmd_Unk0066 - .word ScrCmd_Unk0067 - .word ScrCmd_Unk0068 - .word ScrCmd_Unk0069 - .word ScrCmd_Unk006A - .word ScrCmd_Unk006B - .word ScrCmd_Unk006C - .word ScrCmd_Unk006D - .word ScrCmd_Unk006E - .word ScrCmd_GiveMoney - .word ScrCmd_TakeMoneyImmediate - .word ScrCmd_HasEnoughMoneyImmediate - .word ScrCmd_ShowMoneyBox - .word ScrCmd_HideMoneyBox - .word ScrCmd_UpdateMoneyBox - .word ScrCmd_ShowCoinBox - .word ScrCmd_HideCoinBox - .word ScrCmd_UpdateCoinBox - .word ScrCmd_GetCoins - .word ScrCmd_GiveCoins - .word ScrCmd_TakeCoinsImmediate - .word ScrCmd_GiveItem - .word ScrCmd_TakeItem - .word ScrCmd_HasSpaceForItem - .word ScrCmd_HasItem - .word ScrCmd_ItemIdIsTMOrHM - .word ScrCmd_GetItemPocketId - .word ScrCmd_Unk0081 - .word ScrCmd_Unk0082 - .word ScrCmd_GiveSecretBaseDecoration - .word ScrCmd_TakeSecretBaseDecoration - .word ScrCmd_HasSpaceForDecoration - .word ScrCmd_GetDecorationCount - .word ScrCmd_GiveUndergroundTrap - .word ScrCmd_TakeUndergroundTrap - .word ScrCmd_HasSpaceForTrap - .word ScrCmd_GetTrapCount - .word ScrCmd_GiveTreasure - .word ScrCmd_TakeTreasure - .word ScrCmd_HasSpaceForTreasure - .word ScrCmd_GetTreasureCount - .word ScrCmd_GiveUndergroundSphere - .word ScrCmd_TakeUndergroundSphere - .word ScrCmd_HasSpaceForSphere - .word ScrCmd_GetSphereCount - .word ScrCmd_Unk0093 - .word ScrCmd_Unk0094 - .word ScrCmd_Unk0095 - .word ScrCmd_GiveMon - .word ScrCmd_GiveEgg - .word ScrCmd_SetPartyMonMove - .word ScrCmd_PartyMonHasMove - .word ScrCmd_FindPartyMonWithMove - .word ScrCmd_Unk009B - .word ScrCmd_Unk009C - .word ScrCmd_Unk009D - .word ScrCmd_Unk009E - .word ScrCmd_Unk009F - .word ScrCmd_Unk00A0 - .word ScrCmd_Unk00A1 - .word ScrCmd_Unk00A2 - .word ScrCmd_Unk00A3 - .word ScrCmd_Unk00A4 - .word ScrCmd_Unk00A5 - .word ScrCmd_Unk00A6 - .word ScrCmd_Unk00A7 - .word ScrCmd_Unk00A8 - .word ScrCmd_Unk00A9 - .word ScrCmd_Unk00AA - .word ScrCmd_MonStoragePC - .word ScrCmd_Unk00AC - .word ScrCmd_Unk00AD - .word ScrCmd_Unk00AE - .word ScrCmd_Unk00AF - .word ScrCmd_HallOfFame - .word ScrCmd_Unk00B1 - .word ScrCmd_Unk00B2 - .word ScrCmd_Unk00B3 - .word ScrCmd_Unk00B4 - .word ScrCmd_Unk00B5 - .word ScrCmd_Unk00B6 - .word ScrCmd_Unk00B7 - .word ScrCmd_Unk00B8 - .word ScrCmd_Unk00B9 - .word ScrCmd_Unk00BA - .word ScrCmd_Unk00BB - .word ScrCmd_Unk00BC - .word ScrCmd_Unk00BD - .word ScrCmd_Unk00BE - .word ScrCmd_Unk00BF - .word ScrCmd_Unk00C0 - .word ScrCmd_Unk00C1 - .word ScrCmd_Unk00C2 - .word ScrCmd_Unk00C3 - .word ScrCmd_Unk00C4 - .word ScrCmd_Unk00C5 - .word ScrCmd_Unk00C6 - .word ScrCmd_Unk00C7 - .word ScrCmd_Unk00C8 - .word ScrCmd_Unk00C9 - .word ScrCmd_Unk00CA - .word ScrCmd_Unk00CB - .word ScrCmd_Unk00CC - .word ScrCmd_GetPlayerName - .word ScrCmd_GetRivalName - .word ScrCmd_GetFriendName - .word ScrCmd_GetPokemonName - .word ScrCmd_GetItemName - .word ScrCmd_GetPocketName - .word ScrCmd_GetTMHMMoveName - .word ScrCmd_GetMoveName - .word ScrCmd_Unk00D5 - .word ScrCmd_GetPokemonNickname - .word ScrCmd_GetPoketchAppName - .word ScrCmd_GetTrainerClassName - .word ScrCmd_Unk00D9 - .word ScrCmd_Unk00DA - .word ScrCmd_GetPlayerStarterName - .word ScrCmd_GetRivalStarterName - .word ScrCmd_GetCounterpartStarterName - .word ScrCmd_Unk00DE - .word ScrCmd_GetDecorationName - .word ScrCmd_GetUndergroundTrapName - .word ScrCmd_GetUndergroundItemName - .word ScrCmd_GetMapName - .word ScrCmd_Unk00E3 - .word ScrCmd_Unk00E4 - .word ScrCmd_Unk00E5 - .word ScrCmd_Unk00E6 - .word ScrCmd_Unk00E7 - .word ScrCmd_Unk00E8 - .word ScrCmd_Unk00E9 - .word ScrCmd_Unk00EA - .word ScrCmd_Unk00EB - .word ScrCmd_Unk00EC - .word ScrCmd_Unk00ED - .word ScrCmd_Unk00EE - .word ScrCmd_Unk00EF - .word ScrCmd_Unk00F0 - .word ScrCmd_Unk00F1 - .word ScrCmd_Unk00F2 - .word ScrCmd_Unk00F3 - .word ScrCmd_Unk00F4 - .word ScrCmd_Unk00F5 - .word ScrCmd_Unk00F6 - .word ScrCmd_Unk00F7 - .word ScrCmd_Unk00F8 - .word ScrCmd_Unk00F9 - .word ScrCmd_Unk00FA - .word ScrCmd_Unk00FB - .word ScrCmd_Unk00FC - .word ScrCmd_Unk00FD - .word ScrCmd_Unk00FE - .word ScrCmd_Unk00FF - .word ScrCmd_Unk0100 - .word ScrCmd_Unk0101 - .word ScrCmd_Unk0102 - .word ScrCmd_Unk0103 - .word ScrCmd_Unk0104 - .word ScrCmd_Unk0105 - .word ScrCmd_Unk0106 - .word ScrCmd_Unk0107 - .word ScrCmd_Unk0108 - .word ScrCmd_Unk0109 - .word ScrCmd_Unk010A - .word ScrCmd_Unk010B - .word ScrCmd_Unk010C - .word ScrCmd_Unk010D - .word ScrCmd_Unk010E - .word ScrCmd_Unk010F - .word ScrCmd_Unk0110 - .word ScrCmd_Unk0111 - .word ScrCmd_Unk0112 - .word ScrCmd_Unk0113 - .word ScrCmd_Unk0114 - .word ScrCmd_Unk0115 - .word ScrCmd_Unk0116 - .word ScrCmd_Unk0117 - .word ScrCmd_Unk0118 - .word ScrCmd_Unk0119 - .word ScrCmd_Unk011A - .word ScrCmd_Unk011B - .word ScrCmd_Unk011C - .word ScrCmd_Unk011D - .word ScrCmd_Unk011E - .word ScrCmd_Unk011F - .word ScrCmd_Unk0120 - .word ScrCmd_Unk0121 - .word ScrCmd_Unk0122 - .word ScrCmd_Unk0123 - .word ScrCmd_Unk0124 - .word ScrCmd_Unk0125 - .word ScrCmd_Unk0126 - .word ScrCmd_Unk0127 - .word ScrCmd_Unk0128 - .word ScrCmd_Unk0129 - .word ScrCmd_Unk012A - .word ScrCmd_Unk012B - .word ScrCmd_Unk012C - .word ScrCmd_Unk012D - .word ScrCmd_Unk012E - .word ScrCmd_Unk012F - .word ScrCmd_Unk0130 - .word ScrCmd_Unk0131 - .word ScrCmd_Unk0132 - .word ScrCmd_Unk0133 - .word ScrCmd_Unk0134 - .word ScrCmd_Unk0135 - .word ScrCmd_Unk0136 - .word ScrCmd_Unk0137 - .word ScrCmd_Unk0138 - .word ScrCmd_Unk0139 - .word ScrCmd_Unk013A - .word ScrCmd_Unk013B - .word ScrCmd_Unk013C - .word ScrCmd_Unk013D - .word ScrCmd_Unk013E - .word ScrCmd_Unk013F - .word ScrCmd_Unk0140 - .word ScrCmd_Unk0141 - .word ScrCmd_Unk0142 - .word ScrCmd_Unk0143 - .word ScrCmd_Unk0144 - .word ScrCmd_Unk0145 - .word ScrCmd_Unk0146 - .word ScrCmd_NormalMart - .word ScrCmd_SpecialMart - .word ScrCmd_GoodsMart - .word ScrCmd_SealsMart - .word ScrCmd_Unk014B - .word ScrCmd_Unk014C - .word ScrCmd_GetPlayerGender - .word ScrCmd_HealParty - .word ScrCmd_Unk014F - .word ScrCmd_Unk0150 - .word ScrCmd_Unk0151 - .word ScrCmd_Unk0152 - .word ScrCmd_Unk0153 - .word ScrCmd_Unk0154 - .word ScrCmd_Unk0155 - .word ScrCmd_Unk0156 - .word ScrCmd_HasSinnohDex - .word ScrCmd_GiveSinnohDex - .word ScrCmd_HasRunningShoes - .word ScrCmd_GiveRunningShoes - .word ScrCmd_HasBadge - .word ScrCmd_GiveBadge - .word ScrCmd_GetTotalEarnedBadges - .word ScrCmd_GiveBag - .word ScrCmd_HasBag - .word ScrCmd_Unk0160 - .word ScrCmd_Unk0161 - .word ScrCmd_Unk0162 - .word ScrCmd_Unk0163 - .word ScrCmd_Unk0164 - .word ScrCmd_Unk0165 - .word ScrCmd_CheckGameCompleted - .word ScrCmd_SetGameCompleted - .word ScrCmd_Unk0168 - .word ScrCmd_Unk0169 - .word ScrCmd_Unk016A - .word ScrCmd_Unk016B - .word ScrCmd_Unk016C - .word ScrCmd_GetDaycarePokemonNames - .word ScrCmd_GetDaycareStatus - .word ScrCmd_Unk016F - .word ScrCmd_Unk0170 - .word ScrCmd_Unk0171 - .word ScrCmd_Unk0172 - .word ScrCmd_Unk0173 - .word ScrCmd_Unk0174 - .word ScrCmd_Unk0175 - .word ScrCmd_Unk0176 - .word ScrCmd_Unk0177 - .word ScrCmd_Unk0178 - .word ScrCmd_Unk0179 - .word ScrCmd_Unk017A - .word ScrCmd_GetBerryName - .word ScrCmd_GetNatureName - .word ScrCmd_GetBerryTreeGrowth - .word ScrCmd_GetBerryTreeType - .word ScrCmd_GetBerryTreeMulch - .word ScrCmd_GetBerryTreeWater - .word ScrCmd_GetBerryTreeAmount - .word ScrCmd_SetBerryTreeMulch - .word ScrCmd_SetBerryTreeType - .word ScrCmd_Unk0184 - .word ScrCmd_TakeBerryTreeBerries - .word ScrCmd_Unk0186 - .word ScrCmd_Unk0187 - .word ScrCmd_Unk0188 - .word ScrCmd_Unk0189 - .word ScrCmd_Unk018A - .word ScrCmd_Unk018B - .word ScrCmd_Unk018C - .word ScrCmd_ShowSaveClock - .word ScrCmd_HideSaveClock - .word ScrCmd_Unk018F - .word ScrCmd_WaitButtonABTime - .word ScrCmd_Unk0191 - .word ScrCmd_Unk0192 - .word ScrCmd_Unk0193 - .word ScrCmd_Unk0194 - .word ScrCmd_Unk0195 - .word ScrCmd_Unk0196 - .word ScrCmd_Unk0197 - .word ScrCmd_GetPartySpecies - .word ScrCmd_CheckPartyMonOTID - .word ScrCmd_Unk019A - .word ScrCmd_Unk019B - .word ScrCmd_Unk019C - .word ScrCmd_Unk019D - .word ScrCmd_Unk019E - .word ScrCmd_Unk019F - .word ScrCmd_Unk01A0 - .word ScrCmd_Unk01A1 - .word ScrCmd_Unk01A2 - .word ScrCmd_TakeMoneyAddress - .word ScrCmd_Unk01A4 - .word ScrCmd_Unk01A5 - .word ScrCmd_Unk01A6 - .word ScrCmd_Unk01A7 - .word ScrCmd_DeleteDaycareEgg - .word ScrCmd_GiveDaycareEgg - .word ScrCmd_Unk01AA - .word ScrCmd_HasEnoughMoneyAddress - .word ScrCmd_Unk01AC - .word ScrCmd_Unk01AD - .word ScrCmd_GetDaycareLevel - .word ScrCmd_Unk01AF - .word ScrCmd_Unk01B0 - .word ScrCmd_Unk01B1 - .word ScrCmd_Unk01B2 - .word ScrCmd_Unk01B3 - .word ScrCmd_Unk01B4 - .word ScrCmd_Unk01B5 - .word ScrCmd_Unk01B6 - .word ScrCmd_Unk01B7 - .word ScrCmd_Unk01B8 - .word ScrCmd_GetPartyMonFriendship - .word ScrCmd_Unk01BA - .word ScrCmd_Unk01BB - .word ScrCmd_Unk01BC - .word ScrCmd_Unk01BD - .word ScrCmd_Unk01BE - .word ScrCmd_Unk01BF - .word ScrCmd_Unk01C0 - .word ScrCmd_Unk01C1 - .word ScrCmd_Unk01C2 - .word ScrCmd_Unk01C3 - .word ScrCmd_Unk01C4 - .word ScrCmd_Unk01C5 - .word ScrCmd_Unk01C6 - .word ScrCmd_Unk01C7 - .word ScrCmd_Unk01C8 - .word ScrCmd_Unk01C9 - .word ScrCmd_Unk01CA - .word ScrCmd_GetPokemonMoveName - .word ScrCmd_Unk01CC - .word ScrCmd_Unk01CD - .word ScrCmd_Unk01CE - .word ScrCmd_GetSetStrength - .word ScrCmd_GetSetFlash - .word ScrCmd_GetSetDefog - .word ScrCmd_Unk01D2 - .word ScrCmd_Unk01D3 - .word ScrCmd_Unk01D4 - .word ScrCmd_Unk01D5 - .word ScrCmd_Unk01D6 - .word ScrCmd_Unk01D7 - .word ScrCmd_Unk01D8 - .word ScrCmd_Unk01D9 - .word ScrCmd_Unk01DA - .word ScrCmd_Unk01DB - .word ScrCmd_Unk01DC - .word ScrCmd_Unk01DD - .word ScrCmd_Unk01DE - .word ScrCmd_Unk01DF - .word ScrCmd_Unk01E0 - .word ScrCmd_Unk01E1 - .word ScrCmd_Unk01E2 - .word ScrCmd_Unk01E3 - .word ScrCmd_Unk01E4 - .word ScrCmd_Unk01E5 - .word ScrCmd_Unk01E6 - .word ScrCmd_Unk01E7 - .word ScrCmd_Unk01E8 - .word ScrCmd_Unk01E9 - .word ScrCmd_Unk01EA - .word ScrCmd_Unk01EB - .word ScrCmd_Unk01EC - .word ScrCmd_Unk01ED - .word ScrCmd_Unk01EE - .word ScrCmd_Unk01EF - .word ScrCmd_Unk01F0 - .word ScrCmd_CountFossils - .word ScrCmd_Unk01F2 - .word ScrCmd_Unk01F3 - .word ScrCmd_GetFossilPokemon - .word ScrCmd_GetFossilMinimumAmount - .word ScrCmd_CountPartyMonsAtOrBelowLevel - .word ScrCmd_SurvivePsn - .word ScrCmd_Unk01F8 - .word ScrCmd_DebugWatch - .word ScrCmd_MessageFrom - .word ScrCmd_MessageFrom2 - .word ScrCmd_Unk01FC - .word ScrCmd_Unk01FD - .word ScrCmd_Unk01FE - .word ScrCmd_Unk01FF - .word ScrCmd_Unk0200 - .word ScrCmd_Unk0201 - .word ScrCmd_Unk0202 - .word ScrCmd_Unk0203 - .word ScrCmd_Unk0204 - .word ScrCmd_Unk0205 - .word ScrCmd_Unk0206 - .word ScrCmd_Unk0207 - .word ScrCmd_Unk0208 - .word ScrCmd_Unk0209 - .word ScrCmd_Unk020A - .word ScrCmd_Unk020B - .word ScrCmd_Unk020C - .word ScrCmd_Unk020D - .word ScrCmd_Unk020E - .word ScrCmd_Unk020F - .word ScrCmd_Unk0210 - .word ScrCmd_Unk0211 - .word ScrCmd_GetPartyMonNature - .word ScrCmd_FindPartyMonWithNature - .word ScrCmd_Unk0214 - .word ScrCmd_Unk0215 - .word ScrCmd_Unk0216 - .word ScrCmd_Unk0217 - .word ScrCmd_Unk0218 - .word ScrCmd_Unk0219 - .word ScrCmd_Unk021A - .word ScrCmd_Unk021B - .word ScrCmd_Unk021C - .word ScrCmd_Unk021D - .word ScrCmd_Unk021E - .word ScrCmd_Unk021F - .word ScrCmd_Unk0220 - .word ScrCmd_Unk0221 - .word ScrCmd_Unk0222 - .word ScrCmd_Unk0223 - .word ScrCmd_Unk0224 - .word ScrCmd_Unk0225 - .word ScrCmd_Unk0226 - .word ScrCmd_Unk0227 - .word ScrCmd_Unk0228 - .word ScrCmd_Unk0229 - .word ScrCmd_Unk022A - .word ScrCmd_Unk022B - .word ScrCmd_Unk022C - .word ScrCmd_Unk022D - .word ScrCmd_Unk022E - .word ScrCmd_Unk022F - .word ScrCmd_Unk0230 - .word ScrCmd_Unk0231 - .word ScrCmd_GetRibbonName - .word ScrCmd_Unk0233 - .word ScrCmd_Unk0234 - .word ScrCmd_Unk0235 - .word ScrCmd_Unk0236 - .word ScrCmd_Unk0237 - .word ScrCmd_Unk0238 - .word ScrCmd_Unk0239 - .word ScrCmd_Unk023A - .word ScrCmd_Unk023B - .word ScrCmd_Unk023C - .word ScrCmd_Unk023D - .word ScrCmd_Unk023E - .word ScrCmd_Unk023F - .word ScrCmd_Unk0240 - .word ScrCmd_Unk0241 - .word ScrCmd_Unk0242 - .word ScrCmd_Unk0243 - .word ScrCmd_Unk0244 - .word ScrCmd_Unk0245 - .word ScrCmd_GameVersion - .word ScrCmd_Unk0247 - .word ScrCmd_Unk0248 - .word ScrCmd_GiveWallpaper - .word ScrCmd_Unk024A - .word ScrCmd_Unk024B - .word ScrCmd_Unk024C - .word ScrCmd_Unk024D - .word ScrCmd_Unk024E - .word ScrCmd_Unk024F - .word ScrCmd_Unk0250 - .word ScrCmd_Unk0251 - .word ScrCmd_PCFreeSpace - .word ScrCmd_Unk0253 - .word ScrCmd_Unk0254 - .word ScrCmd_Unk0255 - .word ScrCmd_Unk0256 - .word ScrCmd_AccessoriesShop - .word ScrCmd_Unk0258 - .word ScrCmd_Unk0259 - .word ScrCmd_Unk025A - .word ScrCmd_Unk025B - .word ScrCmd_Unk025C - .word ScrCmd_Unk025D - .word ScrCmd_Unk025E - .word ScrCmd_Unk025F - .word ScrCmd_Unk0260 - .word ScrCmd_GetFashionName - .word ScrCmd_Unk0262 - .word ScrCmd_Unk0263 - .word ScrCmd_Unk0264 - .word ScrCmd_Unk0265 - .word ScrCmd_Unk0266 - .word ScrCmd_Unk0267 - .word ScrCmd_Unk0268 - .word ScrCmd_Unk0269 - .word ScrCmd_Unk026A - .word ScrCmd_Unk026B - .word ScrCmd_Unk026C - .word ScrCmd_MessageUnown - .word ScrCmd_Unk026E - .word ScrCmd_Unk026F - .word ScrCmd_Unk0270 - .word ScrCmd_Unk0271 - .word ScrCmd_GetWhiteRockInscription - .word ScrCmd_Unk0273 - .word ScrCmd_HasEnoughCoinsImmediate - .word ScrCmd_Unk0275 - .word ScrCmd_CanGiveCoins - .word ScrCmd_Unk0277 - .word ScrCmd_GetPartyMonLevel - .word ScrCmd_Unk0279 - .word ScrCmd_Unk027A - .word ScrCmd_Unk027B - .word ScrCmd_Unk027C - .word ScrCmd_Unk027D - .word ScrCmd_Unk027E - .word ScrCmd_Unk027F - .word ScrCmd_Unk0280 - .word ScrCmd_Unk0281 - .word ScrCmd_Unk0282 - .word ScrCmd_SetVolume - .word ScrCmd_Unk0284 - .word ScrCmd_Unk0285 - .word ScrCmd_Unk0286 - .word ScrCmd_Unk0287 - .word ScrCmd_Unk0288 - .word ScrCmd_Unk0289 - .word ScrCmd_Unk028A - .word ScrCmd_Unk028B - .word ScrCmd_Unk028C - .word ScrCmd_Unk028D - .word ScrCmd_Unk028E - .word ScrCmd_Unk028F - .word ScrCmd_Unk0290 - .word ScrCmd_Unk0291 - .word ScrCmd_Unk0292 - .word ScrCmd_Unk0293 - .word ScrCmd_Unk0294 - .word ScrCmd_Unk0295 - .word ScrCmd_Unk0296 - .word ScrCmd_Unk0297 - .word ScrCmd_Unk0298 - .word ScrCmd_Unk0299 - .word ScrCmd_Unk029A - .word ScrCmd_Unk029B - .word ScrCmd_Unk029C - .word ScrCmd_Unk029D - .word ScrCmd_Unk029E - .word ScrCmd_Unk029F - .word ScrCmd_Unk02A0 - .word ScrCmd_Unk02A1 - .word ScrCmd_Unk02A2 - .word ScrCmd_Unk02A3 - .word ScrCmd_Unk02A4 - .word ScrCmd_Unk02A5 - .word ScrCmd_GetPrizeItemIdAndCost - .word ScrCmd_Unk02A7 - .word ScrCmd_TakeCoinsAddress - .word ScrCmd_HasEnoughCoinsAddress - .word ScrCmd_Unk02AA - .word ScrCmd_Unk02AB - .word ScrCmd_Unk02AC - .word ScrCmd_Unk02AD - .word ScrCmd_Unk02AE - .word ScrCmd_Unk02AF - .word ScrCmd_Unk02B0 - .word ScrCmd_Unk02B1 - .word ScrCmd_Unk02B2 - .word ScrCmd_GetSealName - .word ScrCmd_Unk02B4 - .word ScrCmd_Unk02B5 - .word ScrCmd_Unk02B6 - .word ScrCmd_Unk02B7 - .word ScrCmd_Unk02B8 - .word ScrCmd_Unk02B9 - .word ScrCmd_Unk02BA - .word ScrCmd_Unk02BB - .word ScrCmd_Unk02BC - .word ScrCmd_Unk02BD - .word ScrCmd_Unk02BE - .word ScrCmd_Unk02BF - .word ScrCmd_Unk02C0 - .word ScrCmd_Unk02C1 - .word ScrCmd_Unk02C2 - .word ScrCmd_Unk02C3 - .word ScrCmd_GetItemNameWithIndefArticle - .word ScrCmd_GetItemNamePlural - .word ScrCmd_GetDecorationNameWithArticle - .word ScrCmd_GetUndergroundTrapNameWithArticle - .word ScrCmd_GetUndergroundItemNameWithArticle - .word ScrCmd_Unk02C9 - .word ScrCmd_Unk02CA - .word ScrCmd_GetFashionNameWithArticle - .word ScrCmd_Unk02CC - .word ScrCmd_GetSealNamePlural - .word ScrCmd_CapitalizeFirstChar - .word ScrCmd_Unk02CF - .word ScrCmd_Unk02D0 + .word ScrCmd_Nop + .word ScrCmd_Dummy + .word ScrCmd_End + .word ScrCmd_Wait + .word ScrCmd_LoadByte + .word ScrCmd_LoadWord + .word ScrCmd_LoadByteFromAddr + .word ScrCmd_WriteByteToAddr + .word ScrCmd_SetPtrByte + .word ScrCmd_CopyLocal + .word ScrCmd_CopyByte + .word ScrCmd_CompareLocalToLocal + .word ScrCmd_CompareLocalToValue + .word ScrCmd_CompareLocalToAddr + .word ScrCmd_CompareAddrToLocal + .word ScrCmd_CompareAddrToValue + .word ScrCmd_CompareAddrToAddr + .word ScrCmd_CompareVarToValue + .word ScrCmd_CompareVarToVar + .word ScrCmd_RunScript + .word ScrCmd_RunScriptWait + .word ScrCmd_RestartCurrentScript + .word ScrCmd_GoTo + .word ScrCmd_ObjectGoTo + .word ScrCmd_BgGoTo + .word ScrCmd_DirectionGoTo + .word ScrCmd_Call + .word ScrCmd_Return + .word ScrCmd_GoToIf + .word ScrCmd_CallIf + .word ScrCmd_SetFlag + .word ScrCmd_ClearFlag + .word ScrCmd_CheckFlag + .word ScrCmd_CheckFlagVar + .word ScrCmd_SetFlagVar + .word ScrCmd_SetTrainerFlag + .word ScrCmd_ClearTrainerFlag + .word ScrCmd_CheckTrainerFlag + .word ScrCmd_AddVar + .word ScrCmd_SubVar + .word ScrCmd_SetVar + .word ScrCmd_CopyVar + .word ScrCmd_SetOrCopyVar + .word ScrCmd_Message + .word ScrCmd_Unk002C + .word ScrCmd_Unk002D + .word ScrCmd_Unk002E + .word ScrCmd_Unk002F + .word ScrCmd_WaitButtonAB + .word ScrCmd_WaitButton + .word ScrCmd_WaitButtonABPad + .word ScrCmd_Unk0033 + .word ScrCmd_CloseMessageBox + .word ScrCmd_Unk0035 + .word ScrCmd_CreateMessageBox + .word ScrCmd_Unk0037 + .word ScrCmd_Unk0038 + .word ScrCmd_Unk0039 + .word ScrCmd_Unk003A + .word ScrCmd_Unk003B + .word ScrCmd_Menu + .word ScrCmd_ScrollBg + .word ScrCmd_YesNoMenu + .word ScrCmd_Unk003F + .word ScrCmd_Unk0040 + .word ScrCmd_Unk0041 + .word ScrCmd_Unk0042 + .word ScrCmd_Unk0043 + .word ScrCmd_Unk0044 + .word ScrCmd_Unk0045 + .word ScrCmd_Unk0046 + .word ScrCmd_Unk0047 + .word ScrCmd_Unk0048 + .word ScrCmd_PlayFanfare + .word ScrCmd_StopFanfare + .word ScrCmd_PlayFanfareWait + .word ScrCmd_PlayCry + .word ScrCmd_PlayCryWait + .word ScrCmd_PlaySound + .word ScrCmd_PlaySoundWait + .word ScrCmd_PlayBgm + .word ScrCmd_StopBgm + .word ScrCmd_PlayDefaultBgm + .word ScrCmd_Unk0053 + .word ScrCmd_FadeOutBgm + .word ScrCmd_FadeInBgm + .word ScrCmd_Unk0056 + .word ScrCmd_Unk0057 + .word ScrCmd_Unk0058 + .word ScrCmd_CheckChatotCry + .word ScrCmd_StartChatotRecord + .word ScrCmd_StopChatotRecord + .word ScrCmd_SaveChatotCry + .word ScrCmd_Unk005D + .word ScrCmd_Unk005E + .word ScrCmd_Unk005F + .word ScrCmd_Unk0060 + .word ScrCmd_Unk0061 + .word ScrCmd_Unk0062 + .word ScrCmd_Unk0063 + .word ScrCmd_Unk0064 + .word ScrCmd_Unk0065 + .word ScrCmd_Unk0066 + .word ScrCmd_Unk0067 + .word ScrCmd_Unk0068 + .word ScrCmd_Unk0069 + .word ScrCmd_Unk006A + .word ScrCmd_Unk006B + .word ScrCmd_Unk006C + .word ScrCmd_Unk006D + .word ScrCmd_Unk006E + .word ScrCmd_GiveMoney + .word ScrCmd_TakeMoneyImmediate + .word ScrCmd_HasEnoughMoneyImmediate + .word ScrCmd_ShowMoneyBox + .word ScrCmd_HideMoneyBox + .word ScrCmd_UpdateMoneyBox + .word ScrCmd_ShowCoinBox + .word ScrCmd_HideCoinBox + .word ScrCmd_UpdateCoinBox + .word ScrCmd_GetCoins + .word ScrCmd_GiveCoins + .word ScrCmd_TakeCoinsImmediate + .word ScrCmd_GiveItem + .word ScrCmd_TakeItem + .word ScrCmd_HasSpaceForItem + .word ScrCmd_HasItem + .word ScrCmd_ItemIdIsTMOrHM + .word ScrCmd_GetItemPocketId + .word ScrCmd_Unk0081 + .word ScrCmd_Unk0082 + .word ScrCmd_GiveSecretBaseDecoration + .word ScrCmd_TakeSecretBaseDecoration + .word ScrCmd_HasSpaceForDecoration + .word ScrCmd_GetDecorationCount + .word ScrCmd_GiveUndergroundTrap + .word ScrCmd_TakeUndergroundTrap + .word ScrCmd_HasSpaceForTrap + .word ScrCmd_GetTrapCount + .word ScrCmd_GiveTreasure + .word ScrCmd_TakeTreasure + .word ScrCmd_HasSpaceForTreasure + .word ScrCmd_GetTreasureCount + .word ScrCmd_GiveUndergroundSphere + .word ScrCmd_TakeUndergroundSphere + .word ScrCmd_HasSpaceForSphere + .word ScrCmd_GetSphereCount + .word ScrCmd_Unk0093 + .word ScrCmd_Unk0094 + .word ScrCmd_Unk0095 + .word ScrCmd_GiveMon + .word ScrCmd_GiveEgg + .word ScrCmd_SetPartyMonMove + .word ScrCmd_PartyMonHasMove + .word ScrCmd_FindPartyMonWithMove + .word ScrCmd_Unk009B + .word ScrCmd_Unk009C + .word ScrCmd_Unk009D + .word ScrCmd_Unk009E + .word ScrCmd_Unk009F + .word ScrCmd_Unk00A0 + .word ScrCmd_Unk00A1 + .word ScrCmd_Unk00A2 + .word ScrCmd_Unk00A3 + .word ScrCmd_Unk00A4 + .word ScrCmd_Unk00A5 + .word ScrCmd_Unk00A6 + .word ScrCmd_Unk00A7 + .word ScrCmd_Unk00A8 + .word ScrCmd_Unk00A9 + .word ScrCmd_Unk00AA + .word ScrCmd_MonStoragePC + .word ScrCmd_Unk00AC + .word ScrCmd_Unk00AD + .word ScrCmd_Unk00AE + .word ScrCmd_Unk00AF + .word ScrCmd_HallOfFame + .word ScrCmd_Unk00B1 + .word ScrCmd_Unk00B2 + .word ScrCmd_Unk00B3 + .word ScrCmd_Unk00B4 + .word ScrCmd_Unk00B5 + .word ScrCmd_Unk00B6 + .word ScrCmd_Unk00B7 + .word ScrCmd_Unk00B8 + .word ScrCmd_Unk00B9 + .word ScrCmd_Unk00BA + .word ScrCmd_Unk00BB + .word ScrCmd_Unk00BC + .word ScrCmd_Unk00BD + .word ScrCmd_Unk00BE + .word ScrCmd_Unk00BF + .word ScrCmd_Unk00C0 + .word ScrCmd_Unk00C1 + .word ScrCmd_Unk00C2 + .word ScrCmd_Unk00C3 + .word ScrCmd_Unk00C4 + .word ScrCmd_Unk00C5 + .word ScrCmd_Unk00C6 + .word ScrCmd_Unk00C7 + .word ScrCmd_Unk00C8 + .word ScrCmd_Unk00C9 + .word ScrCmd_Unk00CA + .word ScrCmd_Unk00CB + .word ScrCmd_Unk00CC + .word ScrCmd_GetPlayerName + .word ScrCmd_GetRivalName + .word ScrCmd_GetFriendName + .word ScrCmd_GetPokemonName + .word ScrCmd_GetItemName + .word ScrCmd_GetPocketName + .word ScrCmd_GetTMHMMoveName + .word ScrCmd_GetMoveName + .word ScrCmd_Unk00D5 + .word ScrCmd_GetPokemonNickname + .word ScrCmd_GetPoketchAppName + .word ScrCmd_GetTrainerClassName + .word ScrCmd_Unk00D9 + .word ScrCmd_Unk00DA + .word ScrCmd_GetPlayerStarterName + .word ScrCmd_GetRivalStarterName + .word ScrCmd_GetCounterpartStarterName + .word ScrCmd_Unk00DE + .word ScrCmd_GetDecorationName + .word ScrCmd_GetUndergroundTrapName + .word ScrCmd_GetUndergroundItemName + .word ScrCmd_GetMapName + .word ScrCmd_Unk00E3 + .word ScrCmd_Unk00E4 + .word ScrCmd_Unk00E5 + .word ScrCmd_Unk00E6 + .word ScrCmd_Unk00E7 + .word ScrCmd_Unk00E8 + .word ScrCmd_Unk00E9 + .word ScrCmd_Unk00EA + .word ScrCmd_Unk00EB + .word ScrCmd_Unk00EC + .word ScrCmd_Unk00ED + .word ScrCmd_Unk00EE + .word ScrCmd_Unk00EF + .word ScrCmd_Unk00F0 + .word ScrCmd_Unk00F1 + .word ScrCmd_Unk00F2 + .word ScrCmd_Unk00F3 + .word ScrCmd_Unk00F4 + .word ScrCmd_Unk00F5 + .word ScrCmd_Unk00F6 + .word ScrCmd_Unk00F7 + .word ScrCmd_Unk00F8 + .word ScrCmd_Unk00F9 + .word ScrCmd_Unk00FA + .word ScrCmd_Unk00FB + .word ScrCmd_Unk00FC + .word ScrCmd_Unk00FD + .word ScrCmd_Unk00FE + .word ScrCmd_Unk00FF + .word ScrCmd_Unk0100 + .word ScrCmd_Unk0101 + .word ScrCmd_Unk0102 + .word ScrCmd_Unk0103 + .word ScrCmd_Unk0104 + .word ScrCmd_Unk0105 + .word ScrCmd_Unk0106 + .word ScrCmd_Unk0107 + .word ScrCmd_Unk0108 + .word ScrCmd_Unk0109 + .word ScrCmd_Unk010A + .word ScrCmd_Unk010B + .word ScrCmd_Unk010C + .word ScrCmd_Unk010D + .word ScrCmd_Unk010E + .word ScrCmd_Unk010F + .word ScrCmd_Unk0110 + .word ScrCmd_Unk0111 + .word ScrCmd_Unk0112 + .word ScrCmd_Unk0113 + .word ScrCmd_Unk0114 + .word ScrCmd_Unk0115 + .word ScrCmd_Unk0116 + .word ScrCmd_Unk0117 + .word ScrCmd_Unk0118 + .word ScrCmd_CheckPartyForPokerus + .word ScrCmd_GetPartyMonGender + .word ScrCmd_Unk011B + .word ScrCmd_Unk011C + .word ScrCmd_Unk011D + .word ScrCmd_Unk011E + .word ScrCmd_Unk011F + .word ScrCmd_Unk0120 + .word ScrCmd_Unk0121 + .word ScrCmd_Unk0122 + .word ScrCmd_Unk0123 + .word ScrCmd_Unk0124 + .word ScrCmd_Unk0125 + .word ScrCmd_Unk0126 + .word ScrCmd_Unk0127 + .word ScrCmd_Unk0128 + .word ScrCmd_Unk0129 + .word ScrCmd_Unk012A + .word ScrCmd_Unk012B + .word ScrCmd_Unk012C + .word ScrCmd_Unk012D + .word ScrCmd_Unk012E + .word ScrCmd_Unk012F + .word ScrCmd_Unk0130 + .word ScrCmd_Unk0131 + .word ScrCmd_Unk0132 + .word ScrCmd_Unk0133 + .word ScrCmd_Unk0134 + .word ScrCmd_Unk0135 + .word ScrCmd_Unk0136 + .word ScrCmd_Unk0137 + .word ScrCmd_Unk0138 + .word ScrCmd_Unk0139 + .word ScrCmd_Unk013A + .word ScrCmd_Unk013B + .word ScrCmd_Unk013C + .word ScrCmd_Unk013D + .word ScrCmd_Unk013E + .word ScrCmd_Unk013F + .word ScrCmd_Unk0140 + .word ScrCmd_Unk0141 + .word ScrCmd_Unk0142 + .word ScrCmd_Unk0143 + .word ScrCmd_Unk0144 + .word ScrCmd_Unk0145 + .word ScrCmd_Unk0146 + .word ScrCmd_NormalMart + .word ScrCmd_SpecialMart + .word ScrCmd_GoodsMart + .word ScrCmd_SealsMart + .word ScrCmd_Unk014B + .word ScrCmd_Unk014C + .word ScrCmd_GetPlayerGender + .word ScrCmd_HealParty + .word ScrCmd_Unk014F + .word ScrCmd_Unk0150 + .word ScrCmd_Unk0151 + .word ScrCmd_Unk0152 + .word ScrCmd_Unk0153 + .word ScrCmd_Unk0154 + .word ScrCmd_Unk0155 + .word ScrCmd_Unk0156 + .word ScrCmd_HasSinnohDex + .word ScrCmd_GiveSinnohDex + .word ScrCmd_HasRunningShoes + .word ScrCmd_GiveRunningShoes + .word ScrCmd_HasBadge + .word ScrCmd_GiveBadge + .word ScrCmd_GetTotalEarnedBadges + .word ScrCmd_GiveBag + .word ScrCmd_HasBag + .word ScrCmd_Unk0160 + .word ScrCmd_Unk0161 + .word ScrCmd_Unk0162 + .word ScrCmd_Unk0163 + .word ScrCmd_Unk0164 + .word ScrCmd_Unk0165 + .word ScrCmd_CheckGameCompleted + .word ScrCmd_SetGameCompleted + .word ScrCmd_Unk0168 + .word ScrCmd_Unk0169 + .word ScrCmd_Unk016A + .word ScrCmd_Unk016B + .word ScrCmd_Unk016C + .word ScrCmd_GetDaycarePokemonNames + .word ScrCmd_GetDaycareStatus + .word ScrCmd_Unk016F + .word ScrCmd_Unk0170 + .word ScrCmd_Unk0171 + .word ScrCmd_Unk0172 + .word ScrCmd_Unk0173 + .word ScrCmd_Unk0174 + .word ScrCmd_Unk0175 + .word ScrCmd_Unk0176 + .word ScrCmd_CountPartyMons + .word ScrCmd_Unk0178 + .word ScrCmd_Unk0179 + .word ScrCmd_Unk017A + .word ScrCmd_GetBerryName + .word ScrCmd_GetNatureName + .word ScrCmd_GetBerryTreeGrowth + .word ScrCmd_GetBerryTreeType + .word ScrCmd_GetBerryTreeMulch + .word ScrCmd_GetBerryTreeWater + .word ScrCmd_GetBerryTreeAmount + .word ScrCmd_SetBerryTreeMulch + .word ScrCmd_SetBerryTreeType + .word ScrCmd_Unk0184 + .word ScrCmd_TakeBerryTreeBerries + .word ScrCmd_Unk0186 + .word ScrCmd_Unk0187 + .word ScrCmd_Unk0188 + .word ScrCmd_Unk0189 + .word ScrCmd_Unk018A + .word ScrCmd_Unk018B + .word ScrCmd_Unk018C + .word ScrCmd_ShowSaveClock + .word ScrCmd_HideSaveClock + .word ScrCmd_Unk018F + .word ScrCmd_WaitButtonABTime + .word ScrCmd_Unk0191 + .word ScrCmd_Unk0192 + .word ScrCmd_Unk0193 + .word ScrCmd_Unk0194 + .word ScrCmd_Unk0195 + .word ScrCmd_Unk0196 + .word ScrCmd_Unk0197 + .word ScrCmd_GetPartyMonSpecies + .word ScrCmd_CheckPartyMonOTID + .word ScrCmd_CountPartyMons_OmitEggs + .word ScrCmd_CountAvailablePartyMons_IgnoreSlot + .word ScrCmd_CountAvailablePartyAndPCMons + .word ScrCmd_GetPartyEggCount + .word ScrCmd_Unk019E + .word ScrCmd_Unk019F + .word ScrCmd_Unk01A0 + .word ScrCmd_Unk01A1 + .word ScrCmd_Unk01A2 + .word ScrCmd_TakeMoneyAddress + .word ScrCmd_Unk01A4 + .word ScrCmd_Unk01A5 + .word ScrCmd_Unk01A6 + .word ScrCmd_Unk01A7 + .word ScrCmd_DeleteDaycareEgg + .word ScrCmd_GiveDaycareEgg + .word ScrCmd_Unk01AA + .word ScrCmd_HasEnoughMoneyAddress + .word ScrCmd_Unk01AC + .word ScrCmd_Unk01AD + .word ScrCmd_GetDaycareLevel + .word ScrCmd_Unk01AF + .word ScrCmd_Unk01B0 + .word ScrCmd_Unk01B1 + .word ScrCmd_Unk01B2 + .word ScrCmd_Unk01B3 + .word ScrCmd_Unk01B4 + .word ScrCmd_Unk01B5 + .word ScrCmd_Unk01B6 + .word ScrCmd_Unk01B7 + .word ScrCmd_Unk01B8 + .word ScrCmd_GetPartyMonFriendship + .word ScrCmd_AddPartyMonFriendship + .word ScrCmd_SubtractPartyMonFriendship + .word ScrCmd_Unk01BC + .word ScrCmd_Unk01BD + .word ScrCmd_Unk01BE + .word ScrCmd_Unk01BF + .word ScrCmd_CheckPartyForSpecies + .word ScrCmd_Unk01C1 + .word ScrCmd_Unk01C2 + .word ScrCmd_Unk01C3 + .word ScrCmd_Unk01C4 + .word ScrCmd_Unk01C5 + .word ScrCmd_Unk01C6 + .word ScrCmd_Unk01C7 + .word ScrCmd_CountPartyMonMoves + .word ScrCmd_ForgetPartyMonMove + .word ScrCmd_GetPartyMonMove + .word ScrCmd_GetPokemonMoveName + .word ScrCmd_Unk01CC + .word ScrCmd_Unk01CD + .word ScrCmd_Unk01CE + .word ScrCmd_GetSetStrength + .word ScrCmd_GetSetFlash + .word ScrCmd_GetSetDefog + .word ScrCmd_Unk01D2 + .word ScrCmd_Unk01D3 + .word ScrCmd_Unk01D4 + .word ScrCmd_Unk01D5 + .word ScrCmd_Unk01D6 + .word ScrCmd_Unk01D7 + .word ScrCmd_Unk01D8 + .word ScrCmd_Unk01D9 + .word ScrCmd_Unk01DA + .word ScrCmd_Unk01DB + .word ScrCmd_Unk01DC + .word ScrCmd_Unk01DD + .word ScrCmd_Unk01DE + .word ScrCmd_Unk01DF + .word ScrCmd_Unk01E0 + .word ScrCmd_Unk01E1 + .word ScrCmd_Unk01E2 + .word ScrCmd_Unk01E3 + .word ScrCmd_Unk01E4 + .word ScrCmd_Unk01E5 + .word ScrCmd_Unk01E6 + .word ScrCmd_Unk01E7 + .word ScrCmd_Unk01E8 + .word ScrCmd_Unk01E9 + .word ScrCmd_Unk01EA + .word ScrCmd_Unk01EB + .word ScrCmd_Unk01EC + .word ScrCmd_Unk01ED + .word ScrCmd_GetPartyMonHeldItem + .word ScrCmd_Unk01EF + .word ScrCmd_ResetPartyMonHeldItem + .word ScrCmd_CountFossils + .word ScrCmd_Unk01F2 + .word ScrCmd_Unk01F3 + .word ScrCmd_GetFossilPokemon + .word ScrCmd_GetFossilMinimumAmount + .word ScrCmd_CountPartyMonsAtOrBelowLevel + .word ScrCmd_SurvivePsn + .word ScrCmd_Unk01F8 + .word ScrCmd_DebugWatch + .word ScrCmd_MessageFrom + .word ScrCmd_MessageFrom2 + .word ScrCmd_Unk01FC + .word ScrCmd_Unk01FD + .word ScrCmd_Unk01FE + .word ScrCmd_Unk01FF + .word ScrCmd_Unk0200 + .word ScrCmd_Unk0201 + .word ScrCmd_Unk0202 + .word ScrCmd_Unk0203 + .word ScrCmd_Unk0204 + .word ScrCmd_Unk0205 + .word ScrCmd_Unk0206 + .word ScrCmd_Unk0207 + .word ScrCmd_Unk0208 + .word ScrCmd_Unk0209 + .word ScrCmd_Unk020A + .word ScrCmd_Unk020B + .word ScrCmd_Unk020C + .word ScrCmd_Unk020D + .word ScrCmd_Unk020E + .word ScrCmd_Unk020F + .word ScrCmd_Unk0210 + .word ScrCmd_Unk0211 + .word ScrCmd_GetPartyMonNature + .word ScrCmd_FindPartyMonWithNature + .word ScrCmd_Unk0214 + .word ScrCmd_Unk0215 + .word ScrCmd_Unk0216 + .word ScrCmd_Unk0217 + .word ScrCmd_Unk0218 + .word ScrCmd_Unk0219 + .word ScrCmd_Unk021A + .word ScrCmd_Unk021B + .word ScrCmd_Unk021C + .word ScrCmd_Unk021D + .word ScrCmd_Unk021E + .word ScrCmd_Unk021F + .word ScrCmd_Unk0220 + .word ScrCmd_Unk0221 + .word ScrCmd_Unk0222 + .word ScrCmd_Unk0223 + .word ScrCmd_Unk0224 + .word ScrCmd_Unk0225 + .word ScrCmd_Unk0226 + .word ScrCmd_Unk0227 + .word ScrCmd_Unk0228 + .word ScrCmd_Unk0229 + .word ScrCmd_Unk022A + .word ScrCmd_Unk022B + .word ScrCmd_Unk022C + .word ScrCmd_Unk022D + .word ScrCmd_CountPartyMonRibbons + .word ScrCmd_CountTotalPartyRibbons + .word ScrCmd_PartyMonHasRibbon + .word ScrCmd_GivePartyMonRibbon + .word ScrCmd_GetRibbonName + .word ScrCmd_Unk0233 + .word ScrCmd_Unk0234 + .word ScrCmd_Unk0235 + .word ScrCmd_Unk0236 + .word ScrCmd_Unk0237 + .word ScrCmd_Unk0238 + .word ScrCmd_Unk0239 + .word ScrCmd_Unk023A + .word ScrCmd_Unk023B + .word ScrCmd_Unk023C + .word ScrCmd_Unk023D + .word ScrCmd_Unk023E + .word ScrCmd_Unk023F + .word ScrCmd_Unk0240 + .word ScrCmd_Unk0241 + .word ScrCmd_Unk0242 + .word ScrCmd_Unk0243 + .word ScrCmd_Unk0244 + .word ScrCmd_Unk0245 + .word ScrCmd_GameVersion + .word ScrCmd_GetLeadingPartyMonSlot + .word ScrCmd_GetPartyMonTypes + .word ScrCmd_GiveWallpaper + .word ScrCmd_Unk024A + .word ScrCmd_Unk024B + .word ScrCmd_Unk024C + .word ScrCmd_Unk024D + .word ScrCmd_Unk024E + .word ScrCmd_Unk024F + .word ScrCmd_Unk0250 + .word ScrCmd_Unk0251 + .word ScrCmd_PCFreeSpace + .word ScrCmd_Unk0253 + .word ScrCmd_Unk0254 + .word ScrCmd_Unk0255 + .word ScrCmd_Unk0256 + .word ScrCmd_AccessoriesShop + .word ScrCmd_Unk0258 + .word ScrCmd_Unk0259 + .word ScrCmd_Unk025A + .word ScrCmd_Unk025B + .word ScrCmd_Unk025C + .word ScrCmd_Unk025D + .word ScrCmd_Unk025E + .word ScrCmd_Unk025F + .word ScrCmd_Unk0260 + .word ScrCmd_GetFashionName + .word ScrCmd_Unk0262 + .word ScrCmd_Unk0263 + .word ScrCmd_Unk0264 + .word ScrCmd_Unk0265 + .word ScrCmd_Unk0266 + .word ScrCmd_Unk0267 + .word ScrCmd_Unk0268 + .word ScrCmd_Unk0269 + .word ScrCmd_Unk026A + .word ScrCmd_Unk026B + .word ScrCmd_Unk026C + .word ScrCmd_MessageUnown + .word ScrCmd_Unk026E + .word ScrCmd_Unk026F + .word ScrCmd_Unk0270 + .word ScrCmd_Unk0271 + .word ScrCmd_GetWhiteRockInscription + .word ScrCmd_Unk0273 + .word ScrCmd_HasEnoughCoinsImmediate + .word ScrCmd_Unk0275 + .word ScrCmd_CanGiveCoins + .word ScrCmd_Unk0277 + .word ScrCmd_GetPartyMonLevel + .word ScrCmd_Unk0279 + .word ScrCmd_Unk027A + .word ScrCmd_Unk027B + .word ScrCmd_Unk027C + .word ScrCmd_Unk027D + .word ScrCmd_Unk027E + .word ScrCmd_Unk027F + .word ScrCmd_Unk0280 + .word ScrCmd_GetPartyMonContestCondition + .word ScrCmd_Unk0282 + .word ScrCmd_SetVolume + .word ScrCmd_Unk0284 + .word ScrCmd_Unk0285 + .word ScrCmd_Unk0286 + .word ScrCmd_Unk0287 + .word ScrCmd_Unk0288 + .word ScrCmd_Unk0289 + .word ScrCmd_Unk028A + .word ScrCmd_Unk028B + .word ScrCmd_Unk028C + .word ScrCmd_Unk028D + .word ScrCmd_Unk028E + .word ScrCmd_Unk028F + .word ScrCmd_Unk0290 + .word ScrCmd_Unk0291 + .word ScrCmd_Unk0292 + .word ScrCmd_Unk0293 + .word ScrCmd_Unk0294 + .word ScrCmd_Unk0295 + .word ScrCmd_Unk0296 + .word ScrCmd_Unk0297 + .word ScrCmd_Unk0298 + .word ScrCmd_Unk0299 + .word ScrCmd_Unk029A + .word ScrCmd_Unk029B + .word ScrCmd_Unk029C + .word ScrCmd_Unk029D + .word ScrCmd_Unk029E + .word ScrCmd_Unk029F + .word ScrCmd_Unk02A0 + .word ScrCmd_Unk02A1 + .word ScrCmd_Unk02A2 + .word ScrCmd_Unk02A3 + .word ScrCmd_Unk02A4 + .word ScrCmd_Unk02A5 + .word ScrCmd_GetPrizeItemIdAndCost + .word ScrCmd_Unk02A7 + .word ScrCmd_TakeCoinsAddress + .word ScrCmd_HasEnoughCoinsAddress + .word ScrCmd_Unk02AA + .word ScrCmd_Unk02AB + .word ScrCmd_Unk02AC + .word ScrCmd_Unk02AD + .word ScrCmd_Unk02AE + .word ScrCmd_Unk02AF + .word ScrCmd_Unk02B0 + .word ScrCmd_Unk02B1 + .word ScrCmd_Unk02B2 + .word ScrCmd_GetSealName + .word ScrCmd_Unk02B4 + .word ScrCmd_Unk02B5 + .word ScrCmd_Unk02B6 + .word ScrCmd_CheckPartyForBadEgg + .word ScrCmd_Unk02B8 + .word ScrCmd_Unk02B9 + .word ScrCmd_Unk02BA + .word ScrCmd_Unk02BB + .word ScrCmd_Unk02BC + .word ScrCmd_Unk02BD + .word ScrCmd_Unk02BE + .word ScrCmd_Unk02BF + .word ScrCmd_Unk02C0 + .word ScrCmd_Unk02C1 + .word ScrCmd_Unk02C2 + .word ScrCmd_Unk02C3 + .word ScrCmd_GetItemNameWithIndefArticle + .word ScrCmd_GetItemNamePlural + .word ScrCmd_GetDecorationNameWithArticle + .word ScrCmd_GetUndergroundTrapNameWithArticle + .word ScrCmd_GetUndergroundItemNameWithArticle + .word ScrCmd_Unk02C9 + .word ScrCmd_Unk02CA + .word ScrCmd_GetFashionNameWithArticle + .word ScrCmd_Unk02CC + .word ScrCmd_GetSealNamePlural + .word ScrCmd_CapitalizeFirstChar + .word ScrCmd_Unk02CF + .word ScrCmd_Unk02D0 .text diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s index 88b5529e..5e124ff5 100644 --- a/arm9/asm/unk_02046030.s +++ b/arm9/asm/unk_02046030.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -138,7 +138,7 @@ _02046118: mov r2, #0x11 bl FUN_0204C1B4 ldr r0, _0204620C ; =0x00000679 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] @@ -167,7 +167,7 @@ _02046160: mov r2, #0x10 bl FUN_0204C1B4 ldr r0, _0204620C ; =0x00000679 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s index 4309494e..f3d45372 100644 --- a/arm9/asm/unk_0204653C.s +++ b/arm9/asm/unk_0204653C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s index 4a5b00a0..17c3a957 100644 --- a/arm9/asm/unk_02047500.s +++ b/arm9/asm/unk_02047500.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index a06056dd..be2b4770 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 780c4833..68018241 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -34,12 +34,12 @@ FUN_02048120: ; 0x02048120 ldr r0, _02048158 ; =UNK_020F465C bl GX_SetBanks ldr r0, _0204815C ; =UNK_020F4630 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r2, _02048160 ; =UNK_020F4640 add r0, r4, #0x0 mov r1, #0x3 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0xb @@ -77,7 +77,7 @@ _0204817A: str r0, [r4, #0x0] str r5, [r4, #0x4] mov r0, #0xb - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x8] bl FUN_02048120 mov r2, #0x52 @@ -94,7 +94,7 @@ _0204817A: ldr r0, [r4, #0x8] ldr r2, _02048208 ; =UNK_020F4628 add r1, #0xc - bl FUN_02019150 + bl AddWindow add r0, r5, #0x0 bl ScriptEnvironment_GetSav2Ptr bl Sav2_PlayerData_GetProfileAddr @@ -221,14 +221,14 @@ _020482B2: bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0xc - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x20] bl ScrStrBufs_delete ldr r0, [r4, #0x1c] bl DestroyMsgData ldr r0, [r4, #0x8] mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x8] bl FreeToHeap add r0, r4, #0x0 diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s index 929f1efa..97e67111 100644 --- a/arm9/asm/unk_020484A8.s +++ b/arm9/asm/unk_020484A8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -110,7 +110,7 @@ _02048556: mov r1, #0x4 mov r0, #0x3 lsl r2, r1, #0xf - bl FUN_0201681C + bl CreateHeap add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02048764 @@ -183,7 +183,7 @@ _020485F6: cmp r0, #0x0 beq _02048688 ldr r0, _02048690 ; =0x0000061B - bl FUN_020054C8 + bl PlaySE mov r0, #0x12 str r0, [r5, #0x38] ldr r0, [r4, #0x0] @@ -240,7 +240,7 @@ _02048666: add r0, r5, #0x0 bl FreeToHeap mov r0, #0x4 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x0 bl OS_ResetSystem add sp, #0xc @@ -352,20 +352,20 @@ FUN_02048764: ; 0x02048764 orr r0, r1 strh r0, [r2, #0x0] ldr r0, _020487DC ; =UNK_020F4684 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #0x3 mov r1, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r0, [r4, #0x8] ldr r2, _020487E0 ; =UNK_020F4694 mov r1, #0x3 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r1, #0x20 mov r0, #0x3 mov r2, #0x0 add r3, r1, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 @@ -376,10 +376,10 @@ FUN_02048764: ; 0x02048764 ldr r0, [r4, #0x8] mov r1, #0x3 add r3, r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #0x8] mov r1, #0x3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r4, pc} nop @@ -514,15 +514,15 @@ FUN_020488D4: ; 0x020488D4 _020488E4: add r0, r4, #0x0 add r0, #0x1c - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _020488F8 add r4, #0x1c add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow _020488F8: ldr r0, [r5, #0x8] mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s index f926f722..597444e9 100644 --- a/arm9/asm/unk_02048904.s +++ b/arm9/asm/unk_02048904.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -930,7 +930,7 @@ _0204905C: ; jump table (using 16-bit offset) .short _020490AE - _0204905C - 2; case 3 _02049064: ldr r0, _020490BC ; =0x00000603 - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD60 @@ -2064,7 +2064,7 @@ _0204992E: bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x24 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x3 str r0, [r4, #0x0] b _02049AB2 @@ -2075,7 +2075,7 @@ _02049946: bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x24 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x5 str r0, [r4, #0x0] b _02049AB2 @@ -2806,7 +2806,7 @@ _02049F34: ; jump table (using 16-bit offset) .short _02049F86 - _02049F34 - 2; case 3 _02049F3C: ldr r0, _02049F94 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD60 diff --git a/arm9/asm/unk_0204A368.s b/arm9/asm/unk_0204A368.s index f1f19746..4b9f5a98 100644 --- a/arm9/asm/unk_0204A368.s +++ b/arm9/asm/unk_0204A368.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0204A498.s b/arm9/asm/unk_0204A498.s index 67863650..3e0580b3 100644 --- a/arm9/asm/unk_0204A498.s +++ b/arm9/asm/unk_0204A498.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s index bea4eefa..33dc6126 100644 --- a/arm9/asm/unk_0204AB0C.s +++ b/arm9/asm/unk_0204AB0C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0204ADE0.s b/arm9/asm/unk_0204ADE0.s index 74cdb92a..f7eff3cc 100644 --- a/arm9/asm/unk_0204ADE0.s +++ b/arm9/asm/unk_0204ADE0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0204AF24.s b/arm9/asm/unk_0204AF24.s index fb084cbc..e0a88f0f 100644 --- a/arm9/asm/unk_0204AF24.s +++ b/arm9/asm/unk_0204AF24.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0204B34C.s b/arm9/asm/unk_0204B34C.s index ff93214d..6a2f7c3f 100644 --- a/arm9/asm/unk_0204B34C.s +++ b/arm9/asm/unk_0204B34C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s index 2511f182..fbf817bd 100644 --- a/arm9/asm/unk_0204B9EC.s +++ b/arm9/asm/unk_0204B9EC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .bss diff --git a/arm9/asm/unk_0204C1B4.s b/arm9/asm/unk_0204C1B4.s index 6efee84e..d330a96d 100644 --- a/arm9/asm/unk_0204C1B4.s +++ b/arm9/asm/unk_0204C1B4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -375,7 +375,7 @@ FUN_0204C468: ; 0x0204C468 b _0204C49C _0204C484: ldr r0, _0204C4A0 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x4] @@ -577,7 +577,7 @@ _0204C5FE: b _0204C63C _0204C61C: ldr r0, _0204C640 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE mov r0, #0x0 bl MOD05_021D7CA4 ldr r0, [r4, #0x4] diff --git a/arm9/asm/unk_0204CA80.s b/arm9/asm/unk_0204CA80.s index d892697c..a9c794d3 100644 --- a/arm9/asm/unk_0204CA80.s +++ b/arm9/asm/unk_0204CA80.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0204CB20.s b/arm9/asm/unk_0204CB20.s index a0dc5ce2..87fb50fc 100644 --- a/arm9/asm/unk_0204CB20.s +++ b/arm9/asm/unk_0204CB20.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -5212,7 +5212,7 @@ _0204F2AA: str r3, [sp, #0x4] bl FUN_02004DCC ldr r0, _0204F2D4 ; =0x000005F6 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 pop {r4-r6, pc} nop @@ -5356,7 +5356,7 @@ _0204F3AC: mov r2, #0x1 bl MOD18_0224DCB8 ldr r0, _0204F5F0 ; =0x00000625 - bl FUN_020054C8 + bl PlaySE b _0204F410 _0204F3FC: bl FUN_02031190 @@ -5401,7 +5401,7 @@ _0204F41A: ldr r0, _0204F5F8 ; =0x00000425 bl FUN_0200521C ldr r0, _0204F5F0 ; =0x00000625 - bl FUN_020054C8 + bl PlaySE b _0204F480 _0204F46C: bl FUN_02031190 @@ -5504,7 +5504,7 @@ _0204F4D2: _0204F54A: bl FUN_0204F7E4 ldr r0, _0204F60C ; =0x0000062B - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_020269A0 add r1, sp, #0x8 diff --git a/arm9/asm/unk_0204FBA8.s b/arm9/asm/unk_0204FBA8.s index f1101a82..16e26d1a 100644 --- a/arm9/asm/unk_0204FBA8.s +++ b/arm9/asm/unk_0204FBA8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -154,7 +154,7 @@ FUN_0204FC5C: ; 0x0204FC5C mov r0, #0x3 mov r1, #0x21 lsl r2, r2, #0xa - bl FUN_0201681C + bl CreateHeap ldr r0, _0204FC9C ; =UNK_021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] @@ -2279,7 +2279,7 @@ _02050D66: bl MOD18_0223E1A4 bl FUN_02031860 mov r0, #0x21 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _02050D84 ; =UNK_021C5A6C mov r1, #0x0 ldr r0, [r0, #0x0] diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index fbe0aed9..ae7380b7 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F96DC .extern gMain @@ -1201,7 +1201,7 @@ FUN_020517C0: ; 0x020517C0 add r4, #0x14 add r0, r4, #0x0 add r6, r1, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _020517F2 ldr r0, [r5, #0x24] @@ -1237,7 +1237,7 @@ FUN_02051810: ; 0x02051810 add r5, r0, #0x0 add r0, #0x14 add r4, r1, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _02051846 cmp r4, #0x0 @@ -1248,35 +1248,35 @@ FUN_02051810: ; 0x02051810 bl FUN_0200D0E0 add r0, r5, #0x0 add r0, #0x14 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _02051836: add r0, r5, #0x0 add r0, #0x14 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x0 add r0, #0x14 bl InitWindow _02051846: add r0, r5, #0x0 add r0, #0x54 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _02051862 add r0, r5, #0x0 add r0, #0x54 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x0 add r0, #0x54 bl InitWindow _02051862: add r0, r5, #0x0 add r0, #0x64 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _0205187E add r0, r5, #0x0 add r0, #0x64 - bl FUN_02019178 + bl RemoveWindow add r5, #0x64 add r0, r5, #0x0 bl InitWindow @@ -1673,7 +1673,7 @@ FUN_02051B68: ; 0x02051B68 add r0, #0x54 str r1, [sp, #0x14] str r0, [sp, #0x20] - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _02051C34 ldr r2, _02051C84 ; =0x0000016A @@ -1698,7 +1698,7 @@ FUN_02051B68: ; 0x02051B68 ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 @@ -1807,7 +1807,7 @@ FUN_02051C88: ; 0x02051C88 add r7, #0x64 add r0, r7, #0x0 str r1, [sp, #0x14] - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _02051D0A mov r0, #0xb @@ -1824,7 +1824,7 @@ FUN_02051C88: ; 0x02051C88 ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x14 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 @@ -1946,7 +1946,7 @@ _02051DA2: tst r1, r0 beq _02051DC8 ldr r0, _02051E20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x81 ldrsb r1, [r4, r0] add r4, #0x80 @@ -1966,7 +1966,7 @@ _02051DC8: tst r0, r1 beq _02051DDA ldr r0, _02051E20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x2 pop {r4, pc} @@ -1976,7 +1976,7 @@ _02051DDA: pop {r4, pc} _02051DE0: ldr r0, _02051E20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x7c] mov r1, #0x10 str r1, [sp, #0x0] @@ -1996,7 +1996,7 @@ _02051DE0: lsl r3, r3, #0x4 bl ListMenuUpdateCursorObj ldr r0, [r4, #0x7c] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0x0 add sp, #0x8 pop {r4, pc} @@ -2205,7 +2205,7 @@ _02051F7C: bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x8 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x0 bl MOD05_021D7CA4 ldr r0, [r4, #0x28] diff --git a/arm9/asm/unk_020520AC.s b/arm9/asm/unk_020520AC.s index 8ff9a9a1..e7815d57 100644 --- a/arm9/asm/unk_020520AC.s +++ b/arm9/asm/unk_020520AC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -137,7 +137,7 @@ _020520C0: mov r0, #0x3 mov r1, #0x1f lsl r2, r2, #0x6 - bl FUN_02016828 + bl CreateHeapAtEnd add r0, r4, #0x0 bl FUN_02052110 add r5, r0, #0x0 @@ -625,7 +625,7 @@ FUN_020524A0: ; 0x020524A0 add r0, r4, #0x0 bl FreeToHeap mov r0, #0x1f - bl FUN_020168D0 + bl DestroyHeap _020524B8: pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_02052EE8.s b/arm9/asm/unk_02052EE8.s index 0c163fd8..c17a3187 100644 --- a/arm9/asm/unk_02052EE8.s +++ b/arm9/asm/unk_02052EE8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F58D4 @@ -50,7 +50,7 @@ FUN_02052EE8: ; 0x02052EE8 ldr r0, [r0, #0x38] str r0, [r4, #0x8] mov r0, #0xb - bl FUN_02016828 + bl CreateHeapAtEnd mov r0, #0x59 bl FUN_02053618 ldr r1, _02052F6C ; =0x000004DC @@ -113,7 +113,7 @@ FUN_02052FA4: ; 0x02052FA4 ldr r0, [r4, r0] bl FUN_0205362C mov r0, #0x59 - bl FUN_020168D0 + bl DestroyHeap add r0, r4, #0x0 bl FreeToHeap pop {r4, pc} @@ -646,7 +646,7 @@ FUN_0205339C: ; 0x0205339C beq _0205343C _020533CC: ldr r0, _02053440 ; =0x0000064F - bl FUN_020054C8 + bl PlaySE ldrb r1, [r5, #0x8] add r0, r4, #0x0 bl FUN_02057634 diff --git a/arm9/asm/unk_0205363C.s b/arm9/asm/unk_0205363C.s index aa73064c..18c93384 100644 --- a/arm9/asm/unk_0205363C.s +++ b/arm9/asm/unk_0205363C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 38f594ef..18959ed6 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern FX_SinCosTable_ .section .rodata @@ -305,7 +305,7 @@ _02053912: add r1, sp, #0xc mov r2, #0x2 mov r3, #0x0 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #0x1 mov r1, #0x0 bl GX_EngineBToggleLayers @@ -329,7 +329,7 @@ _02053912: add r3, r0, #0x0 bl FUN_0200E1D0 ldr r0, _020539F0 ; =0x0000062F - bl FUN_020054C8 + bl PlaySE mov r0, #0x5f mov r1, #0x1 lsl r0, r0, #0x2 @@ -354,7 +354,7 @@ _0205396E: cmp r0, #0x0 beq _020539EA ldr r0, _020539F4 ; =0x00000631 - bl FUN_020054C8 + bl PlaySE mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] @@ -464,7 +464,7 @@ _02053A4E: bl FUN_02053F38 mov r0, #0x63 lsl r0, r0, #0x4 - bl FUN_020054C8 + bl PlaySE mov r0, #0x5f mov r1, #0x1 lsl r0, r0, #0x2 @@ -660,7 +660,7 @@ _02053BD6: cmp r0, #0x0 beq _02053C8C ldr r0, _02053C94 ; =0x00000632 - bl FUN_020054C8 + bl PlaySE mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] @@ -974,7 +974,7 @@ _02053E24: bl FUN_02009DAC ldr r1, _02053E88 ; =UNK_02105F80 mov r0, #0x4 - bl FUN_020161A4 + bl AllocAndReadFile ldr r1, [r5, #0x10] add r4, r0, #0x0 str r1, [sp, #0x0] @@ -1012,7 +1012,7 @@ FUN_02053E8C: ; 0x02053E8C add r4, r0, #0x0 mov r0, #0x4 add r1, r6, #0x0 - bl FUN_020161A4 + bl AllocAndReadFile add r6, r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 diff --git a/arm9/asm/unk_0205478C.s b/arm9/asm/unk_0205478C.s index 56ca7610..c0494512 100644 --- a/arm9/asm/unk_0205478C.s +++ b/arm9/asm/unk_0205478C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02054C14.s b/arm9/asm/unk_02054C14.s index c8085b1a..8f412090 100644 --- a/arm9/asm/unk_02054C14.s +++ b/arm9/asm/unk_02054C14.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02055068.s b/arm9/asm/unk_02055068.s index 61561cbe..c181031e 100644 --- a/arm9/asm/unk_02055068.s +++ b/arm9/asm/unk_02055068.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020557F4.s b/arm9/asm/unk_020557F4.s index 0a5c6e31..b3bd5347 100644 --- a/arm9/asm/unk_020557F4.s +++ b/arm9/asm/unk_020557F4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -236,21 +236,21 @@ _020559A6: cmp r0, #0x1 bne _020559B8 ldr r0, _02055A24 ; =0x0000061F - bl FUN_020054C8 + bl PlaySE _020559B8: add r0, r5, #0x0 bl FUN_02054AF0 cmp r0, #0x1 bne _020559C8 ldr r0, _02055A28 ; =0x00000641 - bl FUN_020054C8 + bl PlaySE _020559C8: add r0, r5, #0x0 bl FUN_0205483C cmp r0, #0x1 bne _020559D8 ldr r0, _02055A2C ; =0x00000642 - bl FUN_020054C8 + bl PlaySE _020559D8: add r0, r5, #0x0 bl FUN_02054830 @@ -263,7 +263,7 @@ _020559D8: cmp r0, #0x1 beq _020559F8 ldr r0, _02055A30 ; =0x00000655 - bl FUN_020054C8 + bl PlaySE _020559F8: add r0, r4, #0x0 bl FUN_020586F0 @@ -280,7 +280,7 @@ _020559F8: bne _02055A20 _02055A1A: ldr r0, _02055A34 ; =0x00000653 - bl FUN_020054C8 + bl PlaySE _02055A20: pop {r4-r6, pc} nop @@ -723,7 +723,7 @@ FUN_02055DAC: ; 0x02055DAC bl FUN_020584D4 add r4, r0, #0x0 ldr r0, _02055EF4 ; =0x00000654 - bl FUN_020054C8 + bl PlaySE cmp r4, #0x0 bne _02055E62 add r0, r5, #0x0 @@ -868,7 +868,7 @@ FUN_02055EF8: ; 0x02055EF8 cmp r0, #0x1 bne _02055F22 ldr r0, _02055F40 ; =0x00000656 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5f @@ -903,7 +903,7 @@ FUN_02055F44: ; 0x02055F44 cmp r0, #0x1 bne _02055F6E ldr r0, _02055F8C ; =0x00000656 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5e @@ -1356,7 +1356,7 @@ _020562CA: tst r0, r4 bne _020562DC ldr r0, _02056380 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _020562DC: ldr r1, [sp, #0x0] add r0, r6, #0x0 @@ -1417,7 +1417,7 @@ _02056356: tst r0, r4 bne _02056364 ldr r0, _02056380 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _02056364: ldr r1, [sp, #0x0] add r0, r6, #0x0 @@ -1513,11 +1513,11 @@ _02056412: cmp r4, #0x0 bne _02056426 ldr r0, _02056430 ; =0x0000061C - bl FUN_020054C8 + bl PlaySE pop {r3-r5, pc} _02056426: ldr r0, _02056434 ; =0x00000619 - bl FUN_020054C8 + bl PlaySE _0205642C: pop {r3-r5, pc} nop @@ -1841,7 +1841,7 @@ _02056680: tst r0, r4 bne _020566A0 ldr r0, _02056700 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _020566A0: ldr r1, [sp, #0x0] add r0, r6, #0x0 @@ -1961,7 +1961,7 @@ _0205678C: tst r0, r4 bne _020567AA ldr r0, _020567E0 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _020567AA: add r0, r7, #0x0 add r1, r6, #0x0 @@ -2220,7 +2220,7 @@ _02056994: tst r0, r4 bne _020569AA ldr r0, _02056A78 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _020569AA: add r0, r6, #0x0 add r1, r7, #0x0 @@ -2266,7 +2266,7 @@ _020569EC: tst r0, r4 bne _02056A14 ldr r0, _02056A78 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _02056A14: add r0, r6, #0x0 add r1, r7, #0x0 @@ -2388,7 +2388,7 @@ _02056B04: tst r0, r4 bne _02056B22 ldr r0, _02056B58 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE _02056B22: add r0, r7, #0x0 add r1, r6, #0x0 @@ -3280,7 +3280,7 @@ _020571E8: tst r0, r1 bne _02057244 ldr r0, _02057250 ; =0x00000601 - bl FUN_020054C8 + bl PlaySE b _02057244 _020571FC: cmp r6, #0x5 diff --git a/arm9/asm/unk_02057380.s b/arm9/asm/unk_02057380.s index adfa2f07..7195736d 100644 --- a/arm9/asm/unk_02057380.s +++ b/arm9/asm/unk_02057380.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F6364 diff --git a/arm9/asm/unk_02058EE8.s b/arm9/asm/unk_02058EE8.s index b021f2bd..105b2203 100644 --- a/arm9/asm/unk_02058EE8.s +++ b/arm9/asm/unk_02058EE8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02059F04.s b/arm9/asm/unk_02059F04.s index 26971d97..6f0234b7 100644 --- a/arm9/asm/unk_02059F04.s +++ b/arm9/asm/unk_02059F04.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F6754 .extern UNK_020F693C diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s index b780cf26..1a853e6c 100644 --- a/arm9/asm/unk_0205AD98.s +++ b/arm9/asm/unk_0205AD98.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_02105F9C .extern UNK_020F6C84 @@ -1229,7 +1229,7 @@ _0205B5EA: add r0, r5, #0x0 bl FUN_02058700 ldr r0, _0205B618 ; =0x0000060B - bl FUN_020054C8 + bl PlaySE pop {r3-r7, pc} nop _0205B614: .word 0x00010004 @@ -1334,7 +1334,7 @@ _0205B6B8: add r0, r5, #0x0 bl FUN_02058700 ldr r0, _0205B700 ; =0x00000647 - bl FUN_020054C8 + bl PlaySE mov r0, #0x1 add sp, #0x18 pop {r3-r5, pc} diff --git a/arm9/asm/unk_0205BEF8.s b/arm9/asm/unk_0205BEF8.s index 3df9f7d7..c2fc5d08 100644 --- a/arm9/asm/unk_0205BEF8.s +++ b/arm9/asm/unk_0205BEF8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205C334.s b/arm9/asm/unk_0205C334.s index 22bba443..6327651c 100644 --- a/arm9/asm/unk_0205C334.s +++ b/arm9/asm/unk_0205C334.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s index b40cf1a7..e27777c1 100644 --- a/arm9/asm/unk_0205C598.s +++ b/arm9/asm/unk_0205C598.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205CDB4.s b/arm9/asm/unk_0205CDB4.s index 65a38f16..b1d5723f 100644 --- a/arm9/asm/unk_0205CDB4.s +++ b/arm9/asm/unk_0205CDB4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s index 6e6f1f85..ba92a404 100644 --- a/arm9/asm/unk_0205CE48.s +++ b/arm9/asm/unk_0205CE48.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .extern UNK_020F96DC @@ -1471,7 +1471,7 @@ _0205D984: ldr r0, [r5, #0x34] bl FUN_020587B0 add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x10] bl String_dtor add r0, r4, #0x0 diff --git a/arm9/asm/unk_0205DD18.s b/arm9/asm/unk_0205DD18.s index 890feee8..5f01125f 100644 --- a/arm9/asm/unk_0205DD18.s +++ b/arm9/asm/unk_0205DD18.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205E4EC.s b/arm9/asm/unk_0205E4EC.s index e109c021..fa9f44fd 100644 --- a/arm9/asm/unk_0205E4EC.s +++ b/arm9/asm/unk_0205E4EC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205EB38.s b/arm9/asm/unk_0205EB38.s index 6464bf32..77971791 100644 --- a/arm9/asm/unk_0205EB38.s +++ b/arm9/asm/unk_0205EB38.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s deleted file mode 100644 index a0c7d147..00000000 --- a/arm9/asm/unk_0205EC84.s +++ /dev/null @@ -1,906 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0205EC84 -FUN_0205EC84: ; 0x0205EC84 - ldr r3, _0205EC88 ; =SetFlagInArray - bx r3 - .balign 4 -_0205EC88: .word SetFlagInArray - - thumb_func_start FUN_0205EC8C -FUN_0205EC8C: ; 0x0205EC8C - ldr r3, _0205EC90 ; =ClearFlagInArray - bx r3 - .balign 4 -_0205EC90: .word ClearFlagInArray - - thumb_func_start FUN_0205EC94 -FUN_0205EC94: ; 0x0205EC94 - ldr r3, _0205EC98 ; =CheckFlagInArray - bx r3 - .balign 4 -_0205EC98: .word CheckFlagInArray - - thumb_func_start FUN_0205EC9C -FUN_0205EC9C: ; 0x0205EC9C - push {r3, lr} - cmp r1, #0x0 - beq _0205ECB6 - cmp r1, #0x1 - beq _0205ECAC - cmp r1, #0x2 - beq _0205ECC0 - b _0205ECCA -_0205ECAC: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC84 - b _0205ECCE -_0205ECB6: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC8C - b _0205ECCE -_0205ECC0: - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - bl FUN_0205EC94 - pop {r3, pc} -_0205ECCA: - bl GF_AssertFail -_0205ECCE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0205ECD4 -FUN_0205ECD4: ; 0x0205ECD4 - ldr r3, _0205ECDC ; =FUN_0205EC84 - mov r1, #0x96 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205ECDC: .word FUN_0205EC84 - - thumb_func_start FUN_0205ECE0 -FUN_0205ECE0: ; 0x0205ECE0 - ldr r3, _0205ECE8 ; =FUN_0205EC94 - mov r1, #0x96 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205ECE8: .word FUN_0205EC94 - - thumb_func_start FUN_0205ECEC -FUN_0205ECEC: ; 0x0205ECEC - ldr r3, _0205ECF4 ; =FUN_0205EC94 - ldr r1, _0205ECF8 ; =0x0000098D - bx r3 - nop -_0205ECF4: .word FUN_0205EC94 -_0205ECF8: .word 0x0000098D - - thumb_func_start FUN_0205ECFC -FUN_0205ECFC: ; 0x0205ECFC - ldr r3, _0205ED04 ; =FUN_0205EC84 - ldr r1, _0205ED08 ; =0x00000964 - bx r3 - nop -_0205ED04: .word FUN_0205EC84 -_0205ED08: .word 0x00000964 - - thumb_func_start FUN_0205ED0C -FUN_0205ED0C: ; 0x0205ED0C - ldr r3, _0205ED14 ; =FUN_0205EC94 - ldr r1, _0205ED18 ; =0x00000964 - bx r3 - nop -_0205ED14: .word FUN_0205EC94 -_0205ED18: .word 0x00000964 - - thumb_func_start FUN_0205ED1C -FUN_0205ED1C: ; 0x0205ED1C - ldr r3, _0205ED24 ; =FUN_0205EC84 - ldr r1, _0205ED28 ; =0x00000961 - bx r3 - nop -_0205ED24: .word FUN_0205EC84 -_0205ED28: .word 0x00000961 - - thumb_func_start FUN_0205ED2C -FUN_0205ED2C: ; 0x0205ED2C - ldr r3, _0205ED34 ; =FUN_0205EC8C - ldr r1, _0205ED38 ; =0x00000961 - bx r3 - nop -_0205ED34: .word FUN_0205EC8C -_0205ED38: .word 0x00000961 - - thumb_func_start FUN_0205ED3C -FUN_0205ED3C: ; 0x0205ED3C - ldr r3, _0205ED44 ; =FUN_0205EC94 - ldr r1, _0205ED48 ; =0x00000961 - bx r3 - nop -_0205ED44: .word FUN_0205EC94 -_0205ED48: .word 0x00000961 - - thumb_func_start FUN_0205ED4C -FUN_0205ED4C: ; 0x0205ED4C - ldr r3, _0205ED54 ; =FUN_0205EC84 - ldr r1, _0205ED58 ; =0x00000965 - bx r3 - nop -_0205ED54: .word FUN_0205EC84 -_0205ED58: .word 0x00000965 - - thumb_func_start FUN_0205ED5C -FUN_0205ED5C: ; 0x0205ED5C - ldr r3, _0205ED64 ; =FUN_0205EC8C - ldr r1, _0205ED68 ; =0x00000965 - bx r3 - nop -_0205ED64: .word FUN_0205EC8C -_0205ED68: .word 0x00000965 - - thumb_func_start FUN_0205ED6C -FUN_0205ED6C: ; 0x0205ED6C - ldr r3, _0205ED74 ; =FUN_0205EC94 - ldr r1, _0205ED78 ; =0x00000965 - bx r3 - nop -_0205ED74: .word FUN_0205EC94 -_0205ED78: .word 0x00000965 - - thumb_func_start FUN_0205ED7C -FUN_0205ED7C: ; 0x0205ED7C - ldr r3, _0205ED84 ; =FUN_0205EC84 - ldr r1, _0205ED88 ; =0x0000096D - bx r3 - nop -_0205ED84: .word FUN_0205EC84 -_0205ED88: .word 0x0000096D - - thumb_func_start FUN_0205ED8C -FUN_0205ED8C: ; 0x0205ED8C - ldr r3, _0205ED94 ; =FUN_0205EC8C - ldr r1, _0205ED98 ; =0x0000096D - bx r3 - nop -_0205ED94: .word FUN_0205EC8C -_0205ED98: .word 0x0000096D - - thumb_func_start FUN_0205ED9C -FUN_0205ED9C: ; 0x0205ED9C - ldr r3, _0205EDA4 ; =FUN_0205EC94 - ldr r1, _0205EDA8 ; =0x0000096D - bx r3 - nop -_0205EDA4: .word FUN_0205EC94 -_0205EDA8: .word 0x0000096D - - thumb_func_start FUN_0205EDAC -FUN_0205EDAC: ; 0x0205EDAC - ldr r3, _0205EDB4 ; =FUN_0205EC84 - ldr r1, _0205EDB8 ; =0x0000096E - bx r3 - nop -_0205EDB4: .word FUN_0205EC84 -_0205EDB8: .word 0x0000096E - - thumb_func_start FUN_0205EDBC -FUN_0205EDBC: ; 0x0205EDBC - ldr r3, _0205EDC4 ; =FUN_0205EC84 - ldr r1, _0205EDC8 ; =0x0000096F - bx r3 - nop -_0205EDC4: .word FUN_0205EC84 -_0205EDC8: .word 0x0000096F - - thumb_func_start FUN_0205EDCC -FUN_0205EDCC: ; 0x0205EDCC - ldr r3, _0205EDD4 ; =FUN_0205EC84 - mov r1, #0x97 - lsl r1, r1, #0x4 - bx r3 - .balign 4 -_0205EDD4: .word FUN_0205EC84 - - thumb_func_start FUN_0205EDD8 -FUN_0205EDD8: ; 0x0205EDD8 - ldr r3, _0205EDE0 ; =FUN_0205EC84 - ldr r1, _0205EDE4 ; =0x00000971 - bx r3 - nop -_0205EDE0: .word FUN_0205EC84 -_0205EDE4: .word 0x00000971 - - thumb_func_start FUN_0205EDE8 -FUN_0205EDE8: ; 0x0205EDE8 - ldr r3, _0205EDF0 ; =FUN_0205EC84 - ldr r1, _0205EDF4 ; =0x00000972 - bx r3 - nop -_0205EDF0: .word FUN_0205EC84 -_0205EDF4: .word 0x00000972 - - thumb_func_start FUN_0205EDF8 -FUN_0205EDF8: ; 0x0205EDF8 - ldr r3, _0205EE00 ; =FUN_0205EC84 - ldr r1, _0205EE04 ; =0x00000973 - bx r3 - nop -_0205EE00: .word FUN_0205EC84 -_0205EE04: .word 0x00000973 - - thumb_func_start FUN_0205EE08 -FUN_0205EE08: ; 0x0205EE08 - push {r3, lr} - cmp r1, #0x4 - bhi _0205EE4A - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EE1A: ; jump table (using 16-bit offset) - .short _0205EE24 - _0205EE1A - 2; case 0 - .short _0205EE2C - _0205EE1A - 2; case 1 - .short _0205EE34 - _0205EE1A - 2; case 2 - .short _0205EE3C - _0205EE1A - 2; case 3 - .short _0205EE44 - _0205EE1A - 2; case 4 -_0205EE24: - ldr r1, _0205EE4C ; =0x00000968 - bl FUN_0205EC84 - pop {r3, pc} -_0205EE2C: - ldr r1, _0205EE50 ; =0x00000969 - bl FUN_0205EC84 - pop {r3, pc} -_0205EE34: - ldr r1, _0205EE54 ; =0x0000096A - bl FUN_0205EC84 - pop {r3, pc} -_0205EE3C: - ldr r1, _0205EE58 ; =0x0000096B - bl FUN_0205EC84 - pop {r3, pc} -_0205EE44: - ldr r1, _0205EE5C ; =0x0000096C - bl FUN_0205EC84 -_0205EE4A: - pop {r3, pc} - .balign 4 -_0205EE4C: .word 0x00000968 -_0205EE50: .word 0x00000969 -_0205EE54: .word 0x0000096A -_0205EE58: .word 0x0000096B -_0205EE5C: .word 0x0000096C - - thumb_func_start FUN_0205EE60 -FUN_0205EE60: ; 0x0205EE60 - push {r3, lr} - cmp r1, #0x4 - bhi _0205EEA2 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EE72: ; jump table (using 16-bit offset) - .short _0205EE7C - _0205EE72 - 2; case 0 - .short _0205EE84 - _0205EE72 - 2; case 1 - .short _0205EE8C - _0205EE72 - 2; case 2 - .short _0205EE94 - _0205EE72 - 2; case 3 - .short _0205EE9C - _0205EE72 - 2; case 4 -_0205EE7C: - ldr r1, _0205EEA4 ; =0x00000968 - bl FUN_0205EC94 - pop {r3, pc} -_0205EE84: - ldr r1, _0205EEA8 ; =0x00000969 - bl FUN_0205EC94 - pop {r3, pc} -_0205EE8C: - ldr r1, _0205EEAC ; =0x0000096A - bl FUN_0205EC94 - pop {r3, pc} -_0205EE94: - ldr r1, _0205EEB0 ; =0x0000096B - bl FUN_0205EC94 - pop {r3, pc} -_0205EE9C: - ldr r1, _0205EEB4 ; =0x0000096C - bl FUN_0205EC94 -_0205EEA2: - pop {r3, pc} - .balign 4 -_0205EEA4: .word 0x00000968 -_0205EEA8: .word 0x00000969 -_0205EEAC: .word 0x0000096A -_0205EEB0: .word 0x0000096B -_0205EEB4: .word 0x0000096C - - thumb_func_start FUN_0205EEB8 -FUN_0205EEB8: ; 0x0205EEB8 - push {r3, lr} - mov r2, #0x0 - cmp r1, #0x5 - bhi _0205EF0A - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EECC: ; jump table (using 16-bit offset) - .short _0205EF0A - _0205EECC - 2; case 0 - .short _0205EED8 - _0205EECC - 2; case 1 - .short _0205EEE2 - _0205EECC - 2; case 2 - .short _0205EEEE - _0205EECC - 2; case 3 - .short _0205EEF8 - _0205EECC - 2; case 4 - .short _0205EF02 - _0205EECC - 2; case 5 -_0205EED8: - ldr r1, _0205EF10 ; =0x0000097F - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEE2: - mov r1, #0x26 - lsl r1, r1, #0x6 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEEE: - ldr r1, _0205EF14 ; =0x00000981 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EEF8: - ldr r1, _0205EF18 ; =0x00000982 - bl FUN_0205EC94 - add r2, r0, #0x0 - b _0205EF0A -_0205EF02: - ldr r1, _0205EF1C ; =0x00000983 - bl FUN_0205EC94 - add r2, r0, #0x0 -_0205EF0A: - add r0, r2, #0x0 - pop {r3, pc} - nop -_0205EF10: .word 0x0000097F -_0205EF14: .word 0x00000981 -_0205EF18: .word 0x00000982 -_0205EF1C: .word 0x00000983 - - thumb_func_start FUN_0205EF20 -FUN_0205EF20: ; 0x0205EF20 - push {r4-r6, lr} - add r4, r1, #0x0 - ldr r1, _0205F0E4 ; =0x00000132 - add r6, r0, #0x0 - mov r5, #0x0 - cmp r4, r1 - bgt _0205EF7E - blt _0205EF32 - b _0205F036 -_0205EF32: - cmp r4, #0xc9 - bgt _0205EF60 - blt _0205EF3A - b _0205F084 -_0205EF3A: - cmp r4, #0x4b - bgt _0205EF58 - add r1, r4, #0x0 - sub r1, #0x48 - bmi _0205EF5E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EF50: ; jump table (using 16-bit offset) - .short _0205F06A - _0205EF50 - 2; case 0 - .short _0205F06A - _0205EF50 - 2; case 1 - .short _0205F06A - _0205EF50 - 2; case 2 - .short _0205F06A - _0205EF50 - 2; case 3 -_0205EF58: - cmp r4, #0xb9 - bne _0205EF5E - b _0205F0D2 -_0205EF5E: - b _0205F0E0 -_0205EF60: - add r2, r1, #0x0 - sub r2, #0x32 - cmp r4, r2 - bgt _0205EF76 - sub r1, #0x32 - cmp r4, r1 - blt _0205EF70 - b _0205F09E -_0205EF70: - cmp r4, #0xfb - beq _0205F018 - b _0205F0E0 -_0205EF76: - sub r0, r1, #0x1 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EF7E: - add r2, r1, #0x0 - add r2, #0x5d - cmp r4, r2 - bgt _0205EFC8 - add r2, r1, #0x0 - add r2, #0x5d - cmp r4, r2 - blt _0205EF90 - b _0205F0B8 -_0205EF90: - add r2, r1, #0x1 - cmp r4, r2 - bgt _0205EF9E - add r0, r2, #0x0 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EF9E: - add r1, r1, #0x2 - sub r1, r4, r1 - cmp r1, #0xa - bhi _0205EFD6 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205EFB2: ; jump table (using 16-bit offset) - .short _0205F036 - _0205EFB2 - 2; case 0 - .short _0205F036 - _0205EFB2 - 2; case 1 - .short _0205F036 - _0205EFB2 - 2; case 2 - .short _0205F0E0 - _0205EFB2 - 2; case 3 - .short _0205EFFC - _0205EFB2 - 2; case 4 - .short _0205F0E0 - _0205EFB2 - 2; case 5 - .short _0205EFE0 - _0205EFB2 - 2; case 6 - .short _0205F0E0 - _0205EFB2 - 2; case 7 - .short _0205EFEE - _0205EFB2 - 2; case 8 - .short _0205F0E0 - _0205EFB2 - 2; case 9 - .short _0205F00A - _0205EFB2 - 2; case 10 -_0205EFC8: - ldr r0, _0205F0E8 ; =0x000001EE - cmp r4, r0 - bgt _0205EFD8 - bge _0205F036 - sub r0, #0x48 - cmp r4, r0 - beq _0205F026 -_0205EFD6: - b _0205F0E0 -_0205EFD8: - add r0, r0, #0x3 - cmp r4, r0 - beq _0205F036 - b _0205F0E0 -_0205EFE0: - ldr r1, _0205F0EC ; =0x00000984 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205EFEE: - ldr r1, _0205F0EC ; =0x00000984 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F4 ; =0x00000429 - b _0205F0E0 -_0205EFFC: - ldr r1, _0205F0F8 ; =0x0000098E - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205F00A: - ldr r1, _0205F0FC ; =0x0000098F - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F0F0 ; =0x0000042E - b _0205F0E0 -_0205F018: - ldr r1, _0205F100 ; =0x00000995 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F104 ; =0x0000042D - b _0205F0E0 -_0205F026: - ldr r1, _0205F108 ; =0x00000993 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F10C ; =0x0000044A - b _0205F0E0 -_0205F036: - ldr r1, _0205F110 ; =0x00000985 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F054 - bl IsNighttime - cmp r0, #0x0 - bne _0205F050 - mov r5, #0xfe - lsl r5, r5, #0x2 - b _0205F0E0 -_0205F050: - ldr r5, _0205F114 ; =0x00000415 - b _0205F0E0 -_0205F054: - ldr r0, _0205F118 ; =0x00000131 - cmp r4, r0 - bne _0205F0E0 - ldr r1, _0205F11C ; =0x00000986 - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F120 ; =0x0000042B - b _0205F0E0 -_0205F06A: - ldr r1, _0205F124 ; =0x00000987 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F080 - ldr r5, _0205F128 ; =0x000003F5 - b _0205F0E0 -_0205F080: - ldr r5, _0205F12C ; =0x00000412 - b _0205F0E0 -_0205F084: - ldr r1, _0205F130 ; =0x00000988 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F09A - ldr r5, _0205F134 ; =0x000003FF - b _0205F0E0 -_0205F09A: - ldr r5, _0205F138 ; =0x0000041C - b _0205F0E0 -_0205F09E: - ldr r1, _0205F13C ; =0x00000989 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F0B4 - ldr r5, _0205F140 ; =0x000003EE - b _0205F0E0 -_0205F0B4: - ldr r5, _0205F144 ; =0x0000040B - b _0205F0E0 -_0205F0B8: - ldr r1, _0205F148 ; =0x0000098A - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - bl IsNighttime - cmp r0, #0x0 - bne _0205F0CE - ldr r5, _0205F140 ; =0x000003EE - b _0205F0E0 -_0205F0CE: - ldr r5, _0205F144 ; =0x0000040B - b _0205F0E0 -_0205F0D2: - ldr r1, _0205F14C ; =0x0000098B - add r0, r6, #0x0 - bl FUN_0205EC94 - cmp r0, #0x1 - bne _0205F0E0 - ldr r5, _0205F150 ; =0x000003E9 -_0205F0E0: - add r0, r5, #0x0 - pop {r4-r6, pc} - .balign 4 -_0205F0E4: .word 0x00000132 -_0205F0E8: .word 0x000001EE -_0205F0EC: .word 0x00000984 -_0205F0F0: .word 0x0000042E -_0205F0F4: .word 0x00000429 -_0205F0F8: .word 0x0000098E -_0205F0FC: .word 0x0000098F -_0205F100: .word 0x00000995 -_0205F104: .word 0x0000042D -_0205F108: .word 0x00000993 -_0205F10C: .word 0x0000044A -_0205F110: .word 0x00000985 -_0205F114: .word 0x00000415 -_0205F118: .word 0x00000131 -_0205F11C: .word 0x00000986 -_0205F120: .word 0x0000042B -_0205F124: .word 0x00000987 -_0205F128: .word 0x000003F5 -_0205F12C: .word 0x00000412 -_0205F130: .word 0x00000988 -_0205F134: .word 0x000003FF -_0205F138: .word 0x0000041C -_0205F13C: .word 0x00000989 -_0205F140: .word 0x000003EE -_0205F144: .word 0x0000040B -_0205F148: .word 0x0000098A -_0205F14C: .word 0x0000098B -_0205F150: .word 0x000003E9 - - thumb_func_start FUN_0205F154 -FUN_0205F154: ; 0x0205F154 - ldr r3, _0205F15C ; =FUN_0205EC84 - ldr r1, _0205F160 ; =0x00000966 - bx r3 - nop -_0205F15C: .word FUN_0205EC84 -_0205F160: .word 0x00000966 - - thumb_func_start FUN_0205F164 -FUN_0205F164: ; 0x0205F164 - ldr r3, _0205F16C ; =FUN_0205EC8C - ldr r1, _0205F170 ; =0x00000966 - bx r3 - nop -_0205F16C: .word FUN_0205EC8C -_0205F170: .word 0x00000966 - - thumb_func_start FUN_0205F174 -FUN_0205F174: ; 0x0205F174 - ldr r3, _0205F17C ; =FUN_0205EC94 - ldr r1, _0205F180 ; =0x00000966 - bx r3 - nop -_0205F17C: .word FUN_0205EC94 -_0205F180: .word 0x00000966 - - thumb_func_start FUN_0205F184 -FUN_0205F184: ; 0x0205F184 - ldr r3, _0205F18C ; =FUN_0205EC94 - ldr r1, _0205F190 ; =0x00000978 - bx r3 - nop -_0205F18C: .word FUN_0205EC94 -_0205F190: .word 0x00000978 - - thumb_func_start FUN_0205F194 -FUN_0205F194: ; 0x0205F194 - ldr r3, _0205F19C ; =FUN_0205EC94 - ldr r1, _0205F1A0 ; =0x00000992 - bx r3 - nop -_0205F19C: .word FUN_0205EC94 -_0205F1A0: .word 0x00000992 - - thumb_func_start FUN_0205F1A4 -FUN_0205F1A4: ; 0x0205F1A4 - ldr r3, _0205F1AC ; =FUN_0205EC94 - ldr r1, _0205F1B0 ; =0x0000097D - bx r3 - nop -_0205F1AC: .word FUN_0205EC94 -_0205F1B0: .word 0x0000097D - - thumb_func_start FUN_0205F1B4 -FUN_0205F1B4: ; 0x0205F1B4 - ldr r3, _0205F1BC ; =FUN_0205EC94 - ldr r1, _0205F1C0 ; =0x0000097E - bx r3 - nop -_0205F1BC: .word FUN_0205EC94 -_0205F1C0: .word 0x0000097E - - thumb_func_start FUN_0205F1C4 -FUN_0205F1C4: ; 0x0205F1C4 - ldr r3, _0205F1CC ; =FUN_0205EC84 - ldr r1, _0205F1D0 ; =0x0000097C - bx r3 - nop -_0205F1CC: .word FUN_0205EC84 -_0205F1D0: .word 0x0000097C - - thumb_func_start FUN_0205F1D4 -FUN_0205F1D4: ; 0x0205F1D4 - ldr r3, _0205F1DC ; =FUN_0205EC8C - ldr r1, _0205F1E0 ; =0x0000097C - bx r3 - nop -_0205F1DC: .word FUN_0205EC8C -_0205F1E0: .word 0x0000097C - - thumb_func_start FUN_0205F1E4 -FUN_0205F1E4: ; 0x0205F1E4 - ldr r3, _0205F1EC ; =FUN_0205EC94 - ldr r1, _0205F1F0 ; =0x0000097C - bx r3 - nop -_0205F1EC: .word FUN_0205EC94 -_0205F1F0: .word 0x0000097C - - thumb_func_start FUN_0205F1F4 -FUN_0205F1F4: ; 0x0205F1F4 - ldr r3, _0205F1FC ; =FUN_0205EC84 - ldr r1, _0205F200 ; =0x00000967 - bx r3 - nop -_0205F1FC: .word FUN_0205EC84 -_0205F200: .word 0x00000967 - - thumb_func_start FUN_0205F204 -FUN_0205F204: ; 0x0205F204 - ldr r3, _0205F20C ; =FUN_0205EC8C - ldr r1, _0205F210 ; =0x00000967 - bx r3 - nop -_0205F20C: .word FUN_0205EC8C -_0205F210: .word 0x00000967 - - thumb_func_start FUN_0205F214 -FUN_0205F214: ; 0x0205F214 - ldr r3, _0205F21C ; =FUN_0205EC94 - ldr r1, _0205F220 ; =0x00000967 - bx r3 - nop -_0205F21C: .word FUN_0205EC94 -_0205F220: .word 0x00000967 - - thumb_func_start FUN_0205F224 -FUN_0205F224: ; 0x0205F224 - ldr r3, _0205F22C ; =FUN_0205EC84 - ldr r1, _0205F230 ; =0x00000979 - bx r3 - nop -_0205F22C: .word FUN_0205EC84 -_0205F230: .word 0x00000979 - - thumb_func_start FUN_0205F234 -FUN_0205F234: ; 0x0205F234 - ldr r3, _0205F23C ; =FUN_0205EC8C - ldr r1, _0205F240 ; =0x00000979 - bx r3 - nop -_0205F23C: .word FUN_0205EC8C -_0205F240: .word 0x00000979 - - thumb_func_start FUN_0205F244 -FUN_0205F244: ; 0x0205F244 - ldr r3, _0205F24C ; =FUN_0205EC94 - ldr r1, _0205F250 ; =0x00000979 - bx r3 - nop -_0205F24C: .word FUN_0205EC94 -_0205F250: .word 0x00000979 - - thumb_func_start FUN_0205F254 -FUN_0205F254: ; 0x0205F254 - ldr r3, _0205F25C ; =FUN_0205EC8C - ldr r1, _0205F260 ; =0x00000994 - bx r3 - nop -_0205F25C: .word FUN_0205EC8C -_0205F260: .word 0x00000994 - - thumb_func_start FUN_0205F264 -FUN_0205F264: ; 0x0205F264 - ldr r3, _0205F26C ; =FUN_0205EC9C - ldr r2, _0205F270 ; =0x00000962 - bx r3 - nop -_0205F26C: .word FUN_0205EC9C -_0205F270: .word 0x00000962 - - thumb_func_start FUN_0205F274 -FUN_0205F274: ; 0x0205F274 - ldr r3, _0205F27C ; =FUN_0205EC84 - ldr r1, _0205F280 ; =0x0000097A - bx r3 - nop -_0205F27C: .word FUN_0205EC84 -_0205F280: .word 0x0000097A - - thumb_func_start FUN_0205F284 -FUN_0205F284: ; 0x0205F284 - ldr r3, _0205F28C ; =FUN_0205EC8C - ldr r1, _0205F290 ; =0x0000097A - bx r3 - nop -_0205F28C: .word FUN_0205EC8C -_0205F290: .word 0x0000097A - - thumb_func_start FUN_0205F294 -FUN_0205F294: ; 0x0205F294 - ldr r3, _0205F29C ; =FUN_0205EC94 - ldr r1, _0205F2A0 ; =0x0000097A - bx r3 - nop -_0205F29C: .word FUN_0205EC94 -_0205F2A0: .word 0x0000097A - - thumb_func_start FUN_0205F2A4 -FUN_0205F2A4: ; 0x0205F2A4 - ldr r3, _0205F2AC ; =FUN_0205EC84 - ldr r1, _0205F2B0 ; =0x0000097B - bx r3 - nop -_0205F2AC: .word FUN_0205EC84 -_0205F2B0: .word 0x0000097B - - thumb_func_start FUN_0205F2B4 -FUN_0205F2B4: ; 0x0205F2B4 - ldr r3, _0205F2BC ; =FUN_0205EC8C - ldr r1, _0205F2C0 ; =0x0000097B - bx r3 - nop -_0205F2BC: .word FUN_0205EC8C -_0205F2C0: .word 0x0000097B - - thumb_func_start FUN_0205F2C4 -FUN_0205F2C4: ; 0x0205F2C4 - ldr r3, _0205F2CC ; =FUN_0205EC94 - ldr r1, _0205F2D0 ; =0x0000097B - bx r3 - nop -_0205F2CC: .word FUN_0205EC94 -_0205F2D0: .word 0x0000097B - - thumb_func_start FUN_0205F2D4 -FUN_0205F2D4: ; 0x0205F2D4 - ldr r3, _0205F2DC ; =FUN_0205EC9C - ldr r2, _0205F2E0 ; =0x00000963 - bx r3 - nop -_0205F2DC: .word FUN_0205EC9C -_0205F2E0: .word 0x00000963 - - thumb_func_start FUN_0205F2E4 -FUN_0205F2E4: ; 0x0205F2E4 - push {r4-r6, lr} - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - cmp r4, #0x45 - blo _0205F2F4 - bl GF_AssertFail -_0205F2F4: - mov r2, #0x9b - lsl r2, r2, #0x4 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, r2 - bl FUN_0205EC9C - pop {r4-r6, pc} - - thumb_func_start FUN_0205F304 -FUN_0205F304: ; 0x0205F304 - ldr r3, _0205F30C ; =FUN_0205EC84 - ldr r1, _0205F310 ; =0x0000098C - bx r3 - nop -_0205F30C: .word FUN_0205EC84 -_0205F310: .word 0x0000098C diff --git a/arm9/asm/unk_0205F314.s b/arm9/asm/unk_0205F314.s index 548cd5a4..921bc5b2 100644 --- a/arm9/asm/unk_0205F314.s +++ b/arm9/asm/unk_0205F314.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s index 624176f9..60706108 100644 --- a/arm9/asm/unk_0205F7A0.s +++ b/arm9/asm/unk_0205F7A0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02060344.s b/arm9/asm/unk_02060344.s index 9dcfde2e..6c09f4a5 100644 --- a/arm9/asm/unk_02060344.s +++ b/arm9/asm/unk_02060344.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s index d4aa42f5..cb719642 100644 --- a/arm9/asm/unk_020603B0.s +++ b/arm9/asm/unk_020603B0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020606B0.s b/arm9/asm/unk_020606B0.s index 013e445c..5040613e 100644 --- a/arm9/asm/unk_020606B0.s +++ b/arm9/asm/unk_020606B0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020607D4.s b/arm9/asm/unk_020607D4.s index 2e2c4e21..d3382d8c 100644 --- a/arm9/asm/unk_020607D4.s +++ b/arm9/asm/unk_020607D4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -146,7 +146,7 @@ _020608EC: strb r0, [r4, #0x0] _020608F0: ldr r0, _0206091C ; =0x000006DD - bl FUN_020054C8 + bl PlaySE b _0206090A _020608F8: bl GF_AssertFail @@ -298,7 +298,7 @@ _020609EC: mov r2, #0x0 bl MOD05_021DA4EC ldr r0, _02060B08 ; =0x000006DE - bl FUN_020054C8 + bl PlaySE b _02060B00 _02060A2C: ldr r0, [r5, #0x50] diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 918488c5..e3b93197 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_02105FBC diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index fc235004..2813b999 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -61,7 +61,7 @@ FUN_020625EC: ; 0x020625EC mov r1, #0x50 lsl r2, r0, #0xd ldr r6, [r5, #0xc] - bl FUN_0201681C + bl CreateHeap mov r1, #0x2d mov r0, #0x50 lsl r1, r1, #0x4 @@ -194,7 +194,7 @@ _020626FE: lsl r2, r2, #0x4 bl MI_CpuFill8 add r0, r5, #0x0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xc add sp, #0x8 pop {r3-r7, pc} @@ -1067,7 +1067,7 @@ FUN_02062DB0: ; 0x02062DB0 mov r0, #0x1 lsl r1, r1, #0x6 mov r2, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 @@ -1080,33 +1080,33 @@ FUN_02062DB0: ; 0x02062DB0 ldr r0, [r0, #0x0] mov r1, #0x1 add r3, r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x0 - bl FUN_02018884 + bl GetBgPriority strh r0, [r4, #0x10] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 - bl FUN_02018884 + bl GetBgPriority strh r0, [r4, #0x12] mov r0, #0x0 mov r1, #0x2 - bl FUN_020178BC + bl SetBgPriority mov r0, #0x1 add r1, r0, #0x0 - bl FUN_020178BC + bl SetBgPriority ldrh r0, [r4, #0x1c] ldr r2, _02062EB8 ; =0x000003E2 mov r1, #0x3 @@ -1169,7 +1169,7 @@ FUN_02062DB0: ; 0x02062DB0 add r1, #0xe4 mov r2, #0x3 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized add r4, #0xe4 add r0, r4, #0x0 mov r1, #0xff @@ -1191,16 +1191,16 @@ FUN_02062EC4: ; 0x02062EC4 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0xe4 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 add r0, #0xe4 - bl FUN_02019178 + bl RemoveWindow mov r1, #0xad ldr r3, [r4, #0x0] mov r0, #0x1 lsl r1, r1, #0x6 mov r2, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 @@ -1213,25 +1213,25 @@ FUN_02062EC4: ; 0x02062EC4 ldr r0, [r0, #0x0] mov r1, #0x1 add r3, r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x1 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer ldrh r1, [r4, #0x10] mov r0, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldrh r1, [r4, #0x12] mov r0, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add sp, #0x10 pop {r4, pc} @@ -1381,7 +1381,7 @@ FUN_02063028: ; 0x02063028 ldr r0, [r0, #0x0] add r1, #0xd4 mov r3, #0x4 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0x0 add r0, #0xd4 mov r1, #0xff @@ -1494,7 +1494,7 @@ _02063094: add r5, #0xd0 ldr r0, [r5, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r4-r7, pc} .balign 4 @@ -1522,14 +1522,14 @@ FUN_02063178: ; 0x02063178 bl ListMenuItems_dtor add r0, r4, #0x0 add r0, #0xd4 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 add r0, #0xd4 mov r1, #0x0 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0xd4 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1538,7 +1538,7 @@ FUN_02063178: ; 0x02063178 add r4, #0xd0 ldr r0, [r4, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, pc} thumb_func_start FUN_020631C8 @@ -1866,7 +1866,7 @@ FUN_02063430: ; 0x02063430 ldr r0, [r0, #0x0] add r1, #0xd4 mov r3, #0x4 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0x0 ldr r2, _020634D0 ; =0x000003D9 add r0, #0xd4 @@ -1897,7 +1897,7 @@ FUN_02063430: ; 0x02063430 add r0, #0xd0 ldr r0, [r0, #0x0] mov r2, #0x3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0x0 add r0, #0xf4 mov r1, #0x0 @@ -1916,7 +1916,7 @@ FUN_02063430: ; 0x02063430 add r4, #0xd0 ldr r0, [r4, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3-r4, pc} nop @@ -1929,20 +1929,20 @@ FUN_020634DC: ; 0x020634DC push {r4, lr} add r4, r0, #0x0 add r0, #0xd4 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 add r0, #0xd4 mov r1, #0x0 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0xd4 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0x0 add r0, #0xf4 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 add r0, #0xf4 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] diff --git a/arm9/asm/unk_0206367C.s b/arm9/asm/unk_0206367C.s index 0696b4e4..b475c1e5 100644 --- a/arm9/asm/unk_0206367C.s +++ b/arm9/asm/unk_0206367C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02063888.s b/arm9/asm/unk_02063888.s index 19cd07cc..8bff30eb 100644 --- a/arm9/asm/unk_02063888.s +++ b/arm9/asm/unk_02063888.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02063948.s b/arm9/asm/unk_02063948.s index b111b655..1b2bc0a5 100644 --- a/arm9/asm/unk_02063948.s +++ b/arm9/asm/unk_02063948.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020643C0.s b/arm9/asm/unk_020643C0.s index 9215f816..4602fabf 100644 --- a/arm9/asm/unk_020643C0.s +++ b/arm9/asm/unk_020643C0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020647A4.s b/arm9/asm/unk_020647A4.s index 7476df71..8f0d664f 100644 --- a/arm9/asm/unk_020647A4.s +++ b/arm9/asm/unk_020647A4.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -519,7 +519,7 @@ _02064B2E: mov r1, #0x1 bl FUN_0205557C ldr r0, _02064B6C ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] @@ -636,7 +636,7 @@ _02064C24: mov r1, #0x1 bl FUN_0205557C ldr r0, _02064C60 ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] @@ -661,11 +661,11 @@ FUN_02064C64: ; 0x02064C64 cmp r0, #0x0 bne _02064C72 ldr r0, _02064C7C ; =0x00000611 - bl FUN_020054C8 + bl PlaySE pop {r3, pc} _02064C72: ldr r0, _02064C80 ; =0x00000614 - bl FUN_020054C8 + bl PlaySE pop {r3, pc} nop _02064C7C: .word 0x00000611 diff --git a/arm9/asm/unk_02064CA8.s b/arm9/asm/unk_02064CA8.s index c81aafec..31c9acf9 100644 --- a/arm9/asm/unk_02064CA8.s +++ b/arm9/asm/unk_02064CA8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02064E20.s b/arm9/asm/unk_02064E20.s index 0665d211..19ada5a3 100644 --- a/arm9/asm/unk_02064E20.s +++ b/arm9/asm/unk_02064E20.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02064E90.s b/arm9/asm/unk_02064E90.s index ca5edb45..ac7baa5d 100644 --- a/arm9/asm/unk_02064E90.s +++ b/arm9/asm/unk_02064E90.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index df203337..8fa3df67 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .extern UNK_020F96DC @@ -43,7 +43,7 @@ FUN_020653EC: ; 0x020653EC mov r0, #0x3 mov r1, #0x2b lsl r2, r2, #0xc - bl FUN_0201681C + bl CreateHeap mov r1, #0x6e mov r0, #0x2b lsl r1, r1, #0x2 @@ -111,7 +111,7 @@ FUN_02065474: ; 0x02065474 add r0, r4, #0x0 bl FreeToHeap ldr r0, [r4, #0x0] - bl FUN_020168D0 + bl DestroyHeap pop {r4, pc} .balign 4 @@ -165,14 +165,14 @@ _020654EE: add r0, r5, #0x0 bl FUN_02065FE4 ldr r0, _02065550 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3-r5, pc} _0206550A: mov r0, #0x1 tst r0, r1 beq _02065542 ldr r0, _02065550 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r1, #0x1 mvn r1, r1 cmp r4, r1 @@ -268,14 +268,14 @@ FUN_020655B0: ; 0x020655B0 add r0, r4, #0x0 bl FUN_02065FE4 ldr r0, _02065644 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r4-r6, pc} _020655DE: mov r1, #0x1 tst r0, r1 beq _02065634 ldr r0, _02065644 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x2 cmp r0, #0x5 bhi _0206562C @@ -955,14 +955,14 @@ FUN_02065AF4: ; 0x02065AF4 add r1, r1, #0x4 ldr r2, _02065CD8 ; =UNK_020F7E7C add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x17 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, #0x24 ldr r2, _02065CDC ; =UNK_020F7E84 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0x5d lsl r0, r0, #0x2 add r0, r5, r0 @@ -1144,7 +1144,7 @@ _02065C64: lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r1, _02065CF0 ; =0x0000013B mov r0, #0xf ldrb r2, [r5, r1] @@ -1225,7 +1225,7 @@ FUN_02065D4C: ; 0x02065D4C cmp r6, #0x0 bne _02065D7E ldr r0, _02065DD4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02065D7E: add r0, sp, #0x0 ldrh r0, [r0, #0x2] @@ -1290,7 +1290,7 @@ FUN_02065DD8: ; 0x02065DD8 ldr r0, [r5, r0] ldr r2, _02065EC8 ; =UNK_020F7E74 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0x5d lsl r0, r0, #0x2 add r0, r5, r0 @@ -1376,7 +1376,7 @@ _02065E14: lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r1, _02065EE0 ; =0x0000013B mov r0, #0xf ldrb r2, [r5, r1] @@ -1401,7 +1401,7 @@ FUN_02065EE4: ; 0x02065EE4 cmp r2, #0x0 bne _02065EF0 ldr r0, _02065EF4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02065EF0: pop {r3, pc} nop @@ -1426,7 +1426,7 @@ FUN_02065EF8: ; 0x02065EF8 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 @@ -1435,11 +1435,11 @@ FUN_02065EF8: ; 0x02065EF8 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 @@ -1448,7 +1448,7 @@ FUN_02065EF8: ; 0x02065EF8 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, sp, #0x0 mov r1, #0x4f ldrh r2, [r0, #0x2] @@ -1471,7 +1471,7 @@ _02065F7C: lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x4 pop {r3-r4, pc} @@ -1483,7 +1483,7 @@ FUN_02065F8C: ; 0x02065F8C mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 @@ -1503,14 +1503,14 @@ FUN_02065F8C: ; 0x02065F8C mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0x0 bl FUN_020664D8 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -2001,7 +2001,7 @@ FUN_02066334: ; 0x02066334 add r1, r4, r1 mov r2, #0x3 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 @@ -2021,11 +2021,11 @@ FUN_020663D4: ; 0x020663D4 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 @@ -2068,7 +2068,7 @@ _02066426: add r3, r2, #0x0 bl FillWindowPixelRect mov r0, #0x1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002B7C cmp r4, #0x0 @@ -2151,7 +2151,7 @@ FUN_020664D8: ; 0x020664D8 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram pop {r4, pc} thumb_func_start FUN_020664F4 diff --git a/arm9/asm/unk_02066840.s b/arm9/asm/unk_02066840.s index e8495712..149a4d9e 100644 --- a/arm9/asm/unk_02066840.s +++ b/arm9/asm/unk_02066840.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gGameLanguage .extern gGameVersion diff --git a/arm9/asm/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s index afcace47..2e0ebe1b 100644 --- a/arm9/asm/unk_0206BB5C.s +++ b/arm9/asm/unk_0206BB5C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0206BF90.s b/arm9/asm/unk_0206BF90.s index acf84738..b57de87c 100644 --- a/arm9/asm/unk_0206BF90.s +++ b/arm9/asm/unk_0206BF90.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 4ba1b745..e742f202 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .extern UNK_020FA6E8 @@ -113,7 +113,7 @@ FUN_0206C700: ; 0x0206C700 add r3, r5, #0x0 bl FUN_02003008 add r0, r5, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 @@ -144,7 +144,7 @@ FUN_0206C700: ; 0x0206C700 ldr r1, [r4, #0x4] mov r2, #0x1 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r4, #0x4] mov r1, #0xff bl FillWindowPixelBuffer @@ -238,7 +238,7 @@ FUN_0206C700: ; 0x0206C700 mov r2, #0x0 bl FUN_0200CA44 mov r0, #0x1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint bl FUN_02033E74 add r0, r4, #0x0 add sp, #0x24 @@ -297,7 +297,7 @@ FUN_0206C92C: ; 0x0206C92C bl Main_SetVBlankIntrCB ldr r0, [r4, #0x4] mov r1, #0x1 - bl FUN_020191A4 + bl WindowArray_dtor ldr r0, [r4, #0x14] mov r1, #0x0 bl FUN_02003038 @@ -335,7 +335,7 @@ FUN_0206C92C: ; 0x0206C92C add r0, r4, #0x0 bl FreeToHeap mov r0, #0x0 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint pop {r4, pc} thumb_func_start FUN_0206C9C0 @@ -738,7 +738,7 @@ _0206CCCE: mov r3, #0x4 bl FUN_02007E68 ldr r0, [r4, #0x5c] - bl FUN_02016AF8 + bl GF_ExpHeap_FndGetTotalFreeSize mov r1, #0x2 lsl r1, r1, #0xe cmp r0, r1 @@ -746,7 +746,7 @@ _0206CCCE: bl GF_AssertFail _0206CD16: ldr r0, _0206CE24 ; =0x000005F9 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 mov r1, #0x28 add r0, #0x66 @@ -811,7 +811,7 @@ _0206CD5A: mov r1, #0xb bl FUN_0206E0AC ldr r0, _0206CE28 ; =0x000005FA - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 mov r1, #0x10 add r0, #0x70 @@ -892,7 +892,7 @@ _0206CE2C: add r2, #0xf3 bl FUN_02007558 ldr r0, _0206D1C8 ; =0x000005FB - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 mov r1, #0x0 add r0, #0x70 @@ -968,7 +968,7 @@ _0206CEB0: mov r3, #0x3 bl FUN_02007E98 ldr r0, _0206D1D4 ; =0x000005FC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] @@ -2280,7 +2280,7 @@ _0206D9C6: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r6, _0206DC30 ; =UNK_020F837C add r3, sp, #0x64 mov r2, #0xa @@ -2295,26 +2295,26 @@ _0206DA26: add r0, r4, #0x0 add r2, sp, #0x64 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0x0 mov r1, #0x2 add r2, sp, #0x80 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0x0 mov r1, #0x3 add r2, sp, #0x9c mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _0206DC34 ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] @@ -2338,10 +2338,10 @@ _0206DA26: str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r5, #0x2c] bl Options_GetFrame add r6, r0, #0x0 @@ -2538,16 +2538,16 @@ FUN_0206DC48: ; 0x0206DC48 bl GX_EngineAToggleLayers add r0, r4, #0x0 mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .balign 4 @@ -2644,7 +2644,7 @@ FUN_0206DD08: ; 0x0206DD08 ldr r0, [r4, #0x14] bl FUN_0200372C ldr r0, [r4, #0x0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0206DD64 ; =0x027E0000 ldr r1, _0206DD68 ; =0x00003FF8 mov r0, #0x1 @@ -2723,7 +2723,7 @@ _0206DDE4: b _0206DDFA _0206DDEC: ldr r0, _0206DE04 ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE b _0206DDFA _0206DDF4: ldr r0, _0206DE08 ; =0x00000483 diff --git a/arm9/asm/unk_0206DE24.s b/arm9/asm/unk_0206DE24.s index 3203cc10..46895ddb 100644 --- a/arm9/asm/unk_0206DE24.s +++ b/arm9/asm/unk_0206DE24.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern NNS_GfdDefaultFuncAllocPlttVram .extern NNS_GfdDefaultFuncAllocTexVram diff --git a/arm9/asm/unk_0206E0F0.s b/arm9/asm/unk_0206E0F0.s index d00119f8..909b7381 100644 --- a/arm9/asm/unk_0206E0F0.s +++ b/arm9/asm/unk_0206E0F0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0206E2F0.s b/arm9/asm/unk_0206E2F0.s deleted file mode 100644 index a1bf9798..00000000 --- a/arm9/asm/unk_0206E2F0.s +++ /dev/null @@ -1,375 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start BagView_new -BagView_new: ; 0x0206E2F0 - push {r4, lr} - mov r1, #0x78 - bl AllocFromHeap - mov r1, #0x0 - mov r2, #0x78 - add r4, r0, #0x0 - bl memset - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0206E308 -FUN_0206E308: ; 0x0206E308 - mov r0, #0x78 - bx lr - - thumb_func_start FUN_0206E30C -FUN_0206E30C: ; 0x0206E30C - add r0, #0x65 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E314 -FUN_0206E314: ; 0x0206E314 - push {r4-r6, lr} - add r4, r1, #0x0 - add r1, r2, #0x0 - add r5, r0, #0x0 - add r6, r3, #0x0 - bl FUN_0206E30C - str r4, [r5, #0x0] - str r6, [r5, #0x6c] - mov r0, #0x0 - add r5, #0x66 - strh r0, [r5, #0x0] - pop {r4-r6, pc} - .balign 4 - - thumb_func_start BagView_setitem -BagView_setitem: ; 0x0206E330 - push {r3-r4} - mov r4, #0xc - mul r4, r3 - add r0, r0, r4 - str r1, [r0, #0x4] - strb r2, [r0, #0xc] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0206E340 -FUN_0206E340: ; 0x0206E340 - add r1, r0, #0x0 - add r1, #0x76 - ldrh r2, [r1, #0x0] - mov r1, #0x1 - add r0, #0x76 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0206E354 -FUN_0206E354: ; 0x0206E354 - str r1, [r0, #0x70] - bx lr - - thumb_func_start FUN_0206E358 -FUN_0206E358: ; 0x0206E358 - add r0, #0x74 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E360 -FUN_0206E360: ; 0x0206E360 - add r2, r0, #0x0 - add r2, #0x76 - ldrh r3, [r2, #0x0] - ldr r2, _0206E378 ; =0xFFFF0001 - lsl r1, r1, #0x11 - and r2, r3 - lsr r1, r1, #0x10 - orr r1, r2 - add r0, #0x76 - strh r1, [r0, #0x0] - bx lr - nop -_0206E378: .word 0xFFFF0001 - - thumb_func_start FUN_0206E37C -FUN_0206E37C: ; 0x0206E37C - add r0, #0x66 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E384 -FUN_0206E384: ; 0x0206E384 - add r0, #0x68 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E38C -FUN_0206E38C: ; 0x0206E38C - add r0, #0x74 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E394 -FUN_0206E394: ; 0x0206E394 - add r0, #0x75 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0206E39C -FUN_0206E39C: ; 0x0206E39C - push {r3, lr} - bl Sav2_PlayerData_GetCoinsAddr - bl CheckCoins - pop {r3, pc} - - thumb_func_start FUN_0206E3A8 -FUN_0206E3A8: ; 0x0206E3A8 - push {r4-r6, lr} - bl Sav2_SealCase_get - add r6, r0, #0x0 - mov r5, #0x0 - mov r4, #0x1 -_0206E3B4: - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_02029E2C - add r4, r4, #0x1 - add r5, r5, r0 - cmp r4, #0x50 - bls _0206E3B4 - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0206E3C8 -FUN_0206E3C8: ; 0x0206E3C8 - push {r3, lr} - bl FUN_02027E24 - bl FUN_0202708C - bl FUN_02027168 - pop {r3, pc} - - thumb_func_start FUN_0206E3D8 -FUN_0206E3D8: ; 0x0206E3D8 - push {r3, lr} - bl FUN_02027E24 - bl FUN_0202708C - bl FUN_02027184 - pop {r3, pc} - - thumb_func_start FUN_0206E3E8 -FUN_0206E3E8: ; 0x0206E3E8 - push {r3, lr} - bl SaveStruct23_GetSubstruct2 - mov r1, #0x0 - add r2, r1, #0x0 - bl SaveStruct23_Substruct2_SetField_0x0 - pop {r3, pc} - - thumb_func_start FUN_0206E3F8 -FUN_0206E3F8: ; 0x0206E3F8 - push {r4-r7, lr} - sub sp, #0xc - add r7, r0, #0x0 - str r1, [sp, #0x8] - add r5, r2, #0x0 - add r4, r3, #0x0 - mov r0, #0x0 - mov r1, #0x1a - mov r2, #0x7 - bl NewMsgDataFromNarc - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScrStrBufs_new - add r4, r0, #0x0 - cmp r5, #0x0 - bne _0206E428 - add r0, r6, #0x0 - mov r1, #0x63 - bl NewString_ReadMsgData - add r5, r0, #0x0 - b _0206E4FA -_0206E428: - mov r1, #0x1b - lsl r1, r1, #0x4 ; ITEM_POINT_CARD - cmp r5, r1 - bne _0206E454 - add r0, r6, #0x0 - mov r1, #0x61 - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3E8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x4 - bl BufferIntegerAsString - b _0206E4FA -_0206E454: - add r2, r1, #0x2 ; ITEM_SEAL_CASE - cmp r5, r2 - bne _0206E47E - add r0, r6, #0x0 - mov r1, #0x5c - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3A8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x4 - bl BufferIntegerAsString - b _0206E4FA -_0206E47E: - add r2, r1, #0x3 ; ITEM_FASHION_CASE - cmp r5, r2 - bne _0206E4C0 - add r0, r6, #0x0 - mov r1, #0x5d - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E3C8 - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x3 - bl BufferIntegerAsString - add r0, r7, #0x0 - bl FUN_0206E3D8 - add r2, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r1, #0x1 - add r0, r4, #0x0 - mov r3, #0x2 - str r1, [sp, #0x4] - bl BufferIntegerAsString - b _0206E4FA -_0206E4C0: - add r1, #0xc ; ITEM_COIN_CASE - cmp r5, r1 - bne _0206E4EA - add r0, r6, #0x0 - mov r1, #0x39 - bl NewString_ReadMsgData - add r5, r0, #0x0 - add r0, r7, #0x0 - bl FUN_0206E39C - mov r1, #0x0 - add r2, r0, #0x0 - str r1, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r3, #0x5 - bl BufferIntegerAsString - b _0206E4FA -_0206E4EA: - bl ScrStrBufs_delete - add r0, r6, #0x0 - bl DestroyMsgData - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0206E4FA: - ldr r1, [sp, #0x8] - add r0, r4, #0x0 - add r2, r5, #0x0 - bl StringExpandPlaceholders - add r0, r5, #0x0 - bl String_dtor - add r0, r4, #0x0 - bl ScrStrBufs_delete - add r0, r6, #0x0 - bl DestroyMsgData - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0206E51C -FUN_0206E51C: ; 0x0206E51C - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - ldr r4, [sp, #0x18] - cmp r3, #0x1 - beq _0206E52E - cmp r3, #0x2 - beq _0206E54C - b _0206E56A -_0206E52E: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0x7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r4, r0, #0x0 - mov r1, #0x38 - add r2, r5, #0x0 - bl ReadMsgDataIntoString - add r0, r4, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} -_0206E54C: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0x7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r4, r0, #0x0 - mov r1, #0x6f - add r2, r5, #0x0 - bl ReadMsgDataIntoString - add r0, r4, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} -_0206E56A: - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0xc7 - add r3, r4, #0x0 - bl NewMsgDataFromNarc - add r7, r0, #0x0 - add r0, r4, #0x0 - bl ScrStrBufs_new - add r4, r0, #0x0 - add r0, r7, #0x0 - mov r1, #0x24 - bl NewString_ReadMsgData - add r6, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0x0 - bl BufferPlayersName - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl StringExpandPlaceholders - add r0, r6, #0x0 - bl String_dtor - add r0, r4, #0x0 - bl ScrStrBufs_delete - add r0, r7, #0x0 - bl DestroyMsgData - pop {r3-r7, pc} - .balign 4 diff --git a/arm9/asm/unk_0206F1F0.s b/arm9/asm/unk_0206F1F0.s index cdb5db18..64da364f 100644 --- a/arm9/asm/unk_0206F1F0.s +++ b/arm9/asm/unk_0206F1F0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -203,7 +203,7 @@ _0206F34A: ldr r2, _0206F388 ; =0x00040100 mov r0, #0x3 mov r1, #0x36 - bl FUN_0201681C + bl CreateHeap bl FUN_02088878 mov r0, #0x36 bl MOD07_02211E60 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 17adb2d2..c504af1a 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .extern gMain @@ -143,12 +143,12 @@ FUN_0206F3FC: ; 0x0206F3FC strh r1, [r3, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #0x2 mov r0, #0x3 mov r1, #0xc lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r4, #0x0 bl FUN_0206FE74 add r4, r0, #0x0 @@ -774,7 +774,7 @@ _0206F914: mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r0, _0206F974 ; =0x000006FC mov r1, #0x0 ldr r0, [r4, r0] @@ -837,7 +837,7 @@ FUN_0206F9A4: ; 0x0206F9A4 tst r0, r1 beq _0206F9BA ldr r0, _0206F9C4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x1b pop {r3, pc} _0206F9BA: @@ -1022,7 +1022,7 @@ _0206FB30: ldr r0, [sp, #0x0] bl OverlayManager_FreeData mov r0, #0xc - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r3-r7, pc} .balign 4 @@ -1037,7 +1037,7 @@ _0206FB54: .word 0x00000B34 FUN_0206FB58: ; 0x0206FB58 push {r3, lr} ldr r0, [r0, #0x0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _0206FB78 ; =0x027E0000 @@ -1083,7 +1083,7 @@ FUN_0206FBA0: ; 0x0206FBA0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0206FCBC ; =UNK_020F94D4 add r3, sp, #0x8c ldmia r5!, {r0-r1} @@ -1098,10 +1098,10 @@ FUN_0206FBA0: ; 0x0206FBA0 str r0, [r3, #0x0] add r0, r4, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0206FCC0 ; =UNK_020F94F0 add r3, sp, #0x70 ldmia r5!, {r0-r1} @@ -1116,10 +1116,10 @@ FUN_0206FBA0: ; 0x0206FBA0 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0206FCC4 ; =UNK_020F949C add r3, sp, #0x54 ldmia r5!, {r0-r1} @@ -1134,10 +1134,10 @@ FUN_0206FBA0: ; 0x0206FBA0 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0206FCC8 ; =UNK_020F9480 add r3, sp, #0x38 ldmia r5!, {r0-r1} @@ -1152,7 +1152,7 @@ FUN_0206FBA0: ; 0x0206FBA0 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0206FCCC ; =UNK_020F950C add r3, sp, #0x1c ldmia r5!, {r0-r1} @@ -1167,10 +1167,10 @@ FUN_0206FBA0: ; 0x0206FBA0 add r0, r4, #0x0 mov r1, #0x4 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0206FCD0 ; =UNK_020F9528 add r3, sp, #0x0 ldmia r5!, {r0-r1} @@ -1185,17 +1185,17 @@ FUN_0206FBA0: ; 0x0206FBA0 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 mov r3, #0xc - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0xc - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0xb8 pop {r3-r5, pc} nop @@ -1219,22 +1219,22 @@ FUN_0206FCD4: ; 0x0206FCD4 bl GX_EngineBToggleLayers add r0, r4, #0x0 mov r1, #0x5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0xc add r1, r4, #0x0 bl FreeToHeapExplicit @@ -1282,7 +1282,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r3, #0x0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r1, [sp, #0x10] ldr r0, _0206FE6C ; =0x000004A4 ldr r1, [r1, #0xc] @@ -1382,10 +1382,10 @@ FUN_0206FD24: ; 0x0206FD24 bl FUN_020724D4 mov r0, #0x0 add r1, r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x4 mov r1, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x14 pop {r4-r5, pc} .balign 4 @@ -1408,7 +1408,7 @@ FUN_0206FE74: ; 0x0206FE74 ldr r1, _0206FF54 ; =0x000005A4 str r0, [r6, r1] mov r0, #0xc - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r6, #0x0] ldr r0, _0206FF54 ; =0x000005A4 ldr r1, [r6, r0] @@ -2090,7 +2090,7 @@ _020703F2: mov r1, #0x2 add r2, r6, #0x0 add r3, r7, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect add r0, sp, #0x20 ldrb r0, [r0, #0x10] cmp r0, #0x0 @@ -2111,7 +2111,7 @@ _020703F2: mov r1, #0x2 mov r2, #0x17 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect _0207044C: mov r0, #0x10 str r0, [sp, #0x0] @@ -2125,7 +2125,7 @@ _0207044C: mov r1, #0x2 add r2, r6, #0x0 add r3, r7, #0x0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020709FC @@ -2185,10 +2185,10 @@ _020704CC: _020704D2: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, pc} .balign 4 _020704E4: .word 0x000005A4 @@ -2775,7 +2775,7 @@ FUN_02070988: ; 0x02070988 mov r1, #0x2 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x6 @@ -2788,7 +2788,7 @@ FUN_02070988: ; 0x02070988 mov r1, #0x2 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x7 @@ -2868,7 +2868,7 @@ _02070A60: mov r0, #0x2 mov r2, #0x10 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData pop {r4-r6, pc} .balign 4 _02070A78: .word 0x000005A4 @@ -3138,7 +3138,7 @@ _02070C6E: mov r2, #0x1 bl FUN_020713EC ldr r0, _02070CD8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r4, #0x6 bhs _02070CA6 add r0, r5, #0x0 @@ -3147,7 +3147,7 @@ _02070C6E: bl FUN_020717E8 ldr r0, [r5, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _02070CA6: cmp r4, #0x6 beq _02070CB2 @@ -3338,7 +3338,7 @@ _02070DCC: add r0, r0, #0x1 strb r1, [r5, r0] ldr r0, _02070E58 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE cmp r4, #0x6 beq _02070E3C cmp r4, #0x7 @@ -3433,7 +3433,7 @@ _02070ECC: bl FUN_020717E8 ldr r0, [r5, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _02070EFE: add sp, #0x10 pop {r4-r6, pc} @@ -3480,7 +3480,7 @@ _02070F30: bl FUN_020717E8 ldr r0, [r4, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0xb2 lsl r0, r0, #0x4 ldrb r1, [r4, r0] @@ -3495,7 +3495,7 @@ _02070F70: bl FUN_020717E8 ldr r0, [r4, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0xb2 mov r1, #0x0 lsl r0, r0, #0x4 @@ -3525,7 +3525,7 @@ _02070FAE: cmp r1, #0x7 bne _02070FC6 ldr r0, _020710B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _020710B8 ; =0x00000B23 ldrb r0, [r4, r0] lsl r0, r0, #0x18 @@ -3544,7 +3544,7 @@ _02070FC6: bne _02070FE0 _02070FD6: ldr r0, _020710B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x0 pop {r4, pc} _02070FE0: @@ -3562,12 +3562,12 @@ _02070FE8: cmp r0, #0x0 bne _02071002 ldr r0, _020710B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x0 pop {r4, pc} _02071002: ldr r0, _020710C0 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE mov r0, #0x5 pop {r4, pc} _0207100C: @@ -3582,19 +3582,19 @@ _0207100C: cmp r1, #0x0 bne _02071030 add r0, #0x38 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_020710C4 mov r0, #0x0 pop {r4, pc} _02071030: add r0, #0x4e - bl FUN_020054C8 + bl PlaySE mov r0, #0x5 pop {r4, pc} _0207103A: add r0, #0x38 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_020710C4 mov r0, #0x0 @@ -3611,7 +3611,7 @@ _0207104A: lsr r0, r0, #0x1f bne _0207106E ldr r0, _020710B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _020710B0 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] @@ -3645,7 +3645,7 @@ _0207108E: cmp r1, #0x0 beq _020710AA ldr r0, _020710C0 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE mov r0, #0x5 _020710AA: pop {r4, pc} @@ -4210,7 +4210,7 @@ FUN_020714D0: ; 0x020714D0 tst r1, r2 beq _0207150C ldr r0, _02071554 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071558 ; =0x00000B25 ldrb r1, [r4, r0] cmp r1, #0x6 @@ -4236,7 +4236,7 @@ _0207150C: tst r1, r2 beq _02071522 ldr r0, _02071554 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_02074538 mov r0, #0x3 @@ -4348,7 +4348,7 @@ _020715EA: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4419,7 +4419,7 @@ _02071630: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4432,7 +4432,7 @@ _02071692: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4445,7 +4445,7 @@ _020716AE: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4474,7 +4474,7 @@ _020716EA: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4487,7 +4487,7 @@ _02071706: mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} @@ -4498,7 +4498,7 @@ _02071722: add r0, #0x38 add r1, #0x23 strb r2, [r1, #0x0] - bl FUN_020054C8 + bl PlaySE mov r0, #0x1b add sp, #0x8 pop {r3-r5, pc} @@ -4602,7 +4602,7 @@ FUN_020717E8: ; 0x020717E8 add r5, r1, #0x0 add r4, r2, #0x0 mov r1, #0x4 - bl FUN_0201886C + bl GetBgTilemapBuffer lsl r1, r5, #0x1 mov r3, #0x19 add r5, r4, #0x0 @@ -4696,7 +4696,7 @@ _02071886: ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #0x4 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0x0 bne _020718BA mov r0, #0x0 @@ -4831,7 +4831,7 @@ _02071994: cmp r1, #0x6 blo _020719B8 ldr r0, _02071C20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 @@ -4848,7 +4848,7 @@ _020719B8: b _02071A26 _020719CA: ldr r0, _02071C24 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] @@ -4879,7 +4879,7 @@ _020719FA: b _02071A26 _02071A08: ldr r0, _02071C20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x1 strh r1, [r4, r0] @@ -4888,7 +4888,7 @@ _02071A08: pop {r4-r6, pc} _02071A1A: ldr r0, _02071C34 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x1a pop {r4-r6, pc} @@ -4899,7 +4899,7 @@ _02071A26: tst r0, r1 beq _02071A42 ldr r0, _02071C20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 @@ -4936,7 +4936,7 @@ _02071A7A: b _02071C12 _02071A7C: ldr r0, _02071C24 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] @@ -4974,7 +4974,7 @@ _02071ABA: pop {r4-r6, pc} _02071AC6: ldr r0, _02071C34 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #0x8 mov r0, #0x1a pop {r4-r6, pc} @@ -4987,7 +4987,7 @@ _02071AD2: b _02071C12 _02071ADE: ldr r0, _02071C20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 @@ -5016,7 +5016,7 @@ _02071B0C: cmp r0, #0x1 bne _02071C12 ldr r0, _02071C24 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x3 strh r1, [r4, r0] @@ -5107,7 +5107,7 @@ _02071BE0: tst r0, r1 beq _02071C12 ldr r0, _02071C20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 @@ -5284,7 +5284,7 @@ FUN_02071D48: ; 0x02071D48 lsr r0, r0, #0x1f bne _02071D92 ldr r0, _02071DE8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x3 pop {r4, pc} _02071D72: @@ -5297,12 +5297,12 @@ _02071D72: cmp r0, #0x0 bne _02071D8C ldr r0, _02071DE8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x0 pop {r4, pc} _02071D8C: ldr r0, _02071DEC ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _02071D92: mov r0, #0x5 pop {r4, pc} @@ -5316,7 +5316,7 @@ _02071D96: lsr r0, r0, #0x1f bne _02071DB6 ldr r0, _02071DE8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02071DE4 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] @@ -5340,7 +5340,7 @@ _02071DBA: cmp r1, #0x0 beq _02071DDE ldr r0, _02071DEC ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE mov r0, #0x5 _02071DDE: pop {r4, pc} diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index a08d279d..92121142 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -81,31 +81,31 @@ FUN_02072548: ; 0x02072548 add r5, r1, #0x0 add r4, r2, #0x0 add r6, r0, #0x0 - bl FUN_02019150 + bl AddWindow add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x10 add r2, #0x8 - bl FUN_02019150 + bl AddWindow add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x20 add r2, #0x10 - bl FUN_02019150 + bl AddWindow add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x30 add r2, #0x18 - bl FUN_02019150 + bl AddWindow add r5, #0x40 add r4, #0x20 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 - bl FUN_02019150 + bl AddWindow pop {r4-r6, pc} .balign 4 @@ -203,7 +203,7 @@ _02072632: lsl r1, r1, #0x2 ldr r0, [r5, #0x0] add r1, r5, r1 - bl FUN_02019150 + bl AddWindow b _02072668 _0207265A: mov r1, #0x7d @@ -211,44 +211,44 @@ _0207265A: ldr r0, [r5, #0x0] ldr r2, _020726D4 ; =UNK_020F9724 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow _02072668: mov r1, #0x79 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726D8 ; =UNK_020F972C add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x81 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726DC ; =UNK_020F9734 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x85 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E0 ; =UNK_020F973C add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x89 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E4 ; =UNK_020F9744 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x8d lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E8 ; =UNK_020F974C add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r1, #0x91 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726EC ; =UNK_020F9754 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow add sp, #0x8 pop {r3-r5, pc} .balign 4 @@ -274,7 +274,7 @@ FUN_020726F0: ; 0x020726F0 _020726F8: lsl r0, r5, #0x4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -283,11 +283,11 @@ _020726F8: mov r4, #0x95 lsl r4, r4, #0x2 add r0, r6, r4 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x1 bne _0207271E add r0, r6, r4 - bl FUN_02019178 + bl RemoveWindow _0207271E: pop {r4-r6, pc} @@ -450,7 +450,7 @@ FUN_02072844: ; 0x02072844 ldr r0, [r5, #0x0] add r1, r5, r1 mov r3, #0x13 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x14] mov r1, #0xc bl ListMenuItems_ctor @@ -708,7 +708,7 @@ FUN_02072A54: ; 0x02072A54 cmp r0, #0x1 bne _02072A9C add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r7, pc} _02072A9C: @@ -766,7 +766,7 @@ _02072ADC: bl AddTextPrinterParameterized2 _02072B0A: add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r7, pc} .balign 4 @@ -794,7 +794,7 @@ FUN_02072B20: ; 0x02072B20 cmp r1, #0x7 beq _02072B4C add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, pc} _02072B4C: @@ -814,7 +814,7 @@ _02072B4C: mov r3, #0x3 bl FUN_0200BA78 add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, pc} nop @@ -847,7 +847,7 @@ FUN_02072B7C: ; 0x02072B7C mov r3, #0x1 bl FUN_0200B9EC add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4-r5, pc} .balign 4 @@ -872,7 +872,7 @@ FUN_02072BBC: ; 0x02072BBC add r3, r1, #0x0 bl FillWindowPixelRect add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x8 pop {r3-r5, pc} @@ -903,7 +903,7 @@ FUN_02072BE8: ; 0x02072BE8 mov r3, #0x0 bl FUN_0200B9EC add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4-r5, pc} .balign 4 @@ -948,7 +948,7 @@ _02072C64: ; jump table (using 16-bit offset) .short _02072C78 - _02072C64 - 2; case 4 _02072C6E: add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4-r7, pc} _02072C78: @@ -961,7 +961,7 @@ _02072C78: add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData b _02072CBE _02072C90: ldrb r3, [r4, #0x9] @@ -973,7 +973,7 @@ _02072C90: add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData b _02072CBE _02072CA8: ldrb r3, [r4, #0x9] @@ -985,7 +985,7 @@ _02072CA8: add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData _02072CBE: ldr r0, [sp, #0x8] ldrh r1, [r7, r6] @@ -1018,7 +1018,7 @@ _02072CBE: mov r3, #0x5 bl FillWindowPixelRect add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -1081,17 +1081,17 @@ FUN_02072D1C: ; 0x02072D1C ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x8] add r0, r7, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x14] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3-r7, pc} _02072DB0: @@ -1122,22 +1122,22 @@ FUN_02072DDC: ; 0x02072DDC add r1, r5, #0x4 lsl r0, r4, #0x4 add r0, r1, r0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0x2 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0x3 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r3-r5, pc} thumb_func_start FUN_02072E14 @@ -1149,22 +1149,22 @@ FUN_02072E14: ; 0x02072E14 add r1, r5, #0x4 lsl r0, r4, #0x4 add r0, r1, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x2 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x3 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer pop {r3-r5, pc} thumb_func_start FUN_02072E4C @@ -1501,7 +1501,7 @@ FUN_02073094: ; 0x02073094 mov r0, #0x79 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _020730FE: mov r0, #0x2 tst r0, r4 @@ -1535,7 +1535,7 @@ _020730FE: mov r0, #0x7d lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _02073148: add sp, #0x10 pop {r3-r5, pc} @@ -1586,7 +1586,7 @@ _02073198: mov r1, #0x1 bl AddTextPrinterParameterized add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r3-r6, pc} .balign 4 @@ -1658,7 +1658,7 @@ FUN_0207322C: ; 0x0207322C sub sp, #0xc add r4, r0, #0x0 mov r0, #0x1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002B7C ldr r0, _0207326C ; =0x000005A4 @@ -1713,7 +1713,7 @@ _020732A0: pop {r3, pc} _020732A6: ldr r0, _020732C4 ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE b _020732BE _020732AE: ldr r0, _020732C8 ; =0x00000483 @@ -1797,7 +1797,7 @@ _02073332: ldr r0, [sp, #0x10] bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4-r7, pc} nop @@ -1860,7 +1860,7 @@ _020733B4: ldr r0, [sp, #0x10] bl String_dtor add r0, r4, r7 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4-r7, pc} .balign 4 @@ -1908,7 +1908,7 @@ _02073416: add r0, r5, #0x0 bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r7, pc} .balign 4 @@ -1966,7 +1966,7 @@ _02073490: add r0, r5, #0x0 bl String_dtor add r0, r4, r7 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r7, pc} .balign 4 @@ -2034,7 +2034,7 @@ FUN_020734C0: ; 0x020734C0 add r1, #0x14 ldr r0, [r5, #0x0] add r1, r5, r1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x95 lsl r0, r0, #0x2 mov r1, #0x1 @@ -2133,7 +2133,7 @@ _0207356C: mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x2c pop {r4-r7, pc} .balign 4 @@ -2220,7 +2220,7 @@ _0207366E: mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4-r7, pc} nop @@ -2240,5 +2240,5 @@ FUN_020736F4: ; 0x020736F4 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s index 8aac6df0..83751041 100644 --- a/arm9/asm/unk_02073710.s +++ b/arm9/asm/unk_02073710.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 9cac1662..8a959bef 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -39,7 +39,7 @@ FUN_02073DB4: ; 0x02073DB4 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r0, _02073DEC ; =0x000006FC mov r1, #0x0 ldr r0, [r4, r0] @@ -50,7 +50,7 @@ FUN_02073DB4: ; 0x02073DB4 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .balign 4 _02073DEC: .word 0x000006FC @@ -994,11 +994,11 @@ _020745DA: strb r1, [r6, r0] ldr r0, [r6, #0x0] mov r1, #0x2 - bl FUN_0201886C + bl GetBgTilemapBuffer str r0, [sp, #0x14] ldr r0, [r6, #0x0] mov r1, #0x1 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _020746B4 ; =0x00000B0C str r0, [sp, #0x10] ldrb r3, [r6, r1] @@ -1127,7 +1127,7 @@ _020746F2: ; jump table (using 16-bit offset) _020746FC: mov r0, #0x6a lsl r0, r0, #0x4 - bl FUN_020054C8 + bl PlaySE ldr r0, _0207482C ; =0x00000305 mov r1, #0x1 strb r1, [r4, r0] @@ -1155,10 +1155,10 @@ _0207470C: bl FUN_0207499C ldr r0, [r5, #0x0] mov r1, #0x2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x0] mov r1, #0x1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, _02074838 ; =0x00000306 ldrb r1, [r4, r0] cmp r1, #0x10 @@ -1171,7 +1171,7 @@ _0207475C: bl FUN_02074AF4 mov r0, #0x6a lsl r0, r0, #0x4 - bl FUN_020054C8 + bl PlaySE ldr r0, _0207482C ; =0x00000305 mov r1, #0x3 strb r1, [r4, r0] @@ -1206,10 +1206,10 @@ _02074770: bl FUN_0207499C ldr r0, [r5, #0x0] mov r1, #0x2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x0] mov r1, #0x1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, _02074838 ; =0x00000306 ldrb r1, [r4, r0] cmp r1, #0x0 @@ -1303,7 +1303,7 @@ FUN_02074848: ; 0x02074848 ldr r3, [sp, #0x20] mov r1, #0x2 mov r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect str r6, [sp, #0x0] mov r1, #0x10 str r1, [sp, #0x4] @@ -1314,7 +1314,7 @@ FUN_02074848: ; 0x02074848 ldr r3, [sp, #0x20] mov r1, #0x1 mov r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x1c] add r1, r4, r0 ldr r0, _02074994 ; =0x00000302 @@ -1345,7 +1345,7 @@ FUN_02074848: ; 0x02074848 ldr r2, [sp, #0x20] mov r1, #0x2 add r3, r6, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, _02074998 ; =0x00000306 mov r3, #0x10 ldrb r2, [r4, r0] @@ -1368,7 +1368,7 @@ FUN_02074848: ; 0x02074848 ldr r2, [sp, #0x20] mov r1, #0x1 add r3, r6, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect add sp, #0x28 pop {r3-r7, pc} _02074918: @@ -1399,7 +1399,7 @@ _02074918: mov r1, #0x2 lsr r2, r2, #0x18 add r3, r6, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, _02074998 ; =0x00000306 ldrb r2, [r4, r0] mov r0, #0x10 @@ -1426,7 +1426,7 @@ _02074918: mov r1, #0x1 lsr r2, r2, #0x18 add r3, r6, #0x0 - bl FUN_02018170 + bl CopyToBgTilemapRect add sp, #0x28 pop {r3-r7, pc} nop diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index 9e2ab9b0..ee3ba62f 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -1020,7 +1020,7 @@ FUN_02075D20: ; 0x02075D20 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02075DB4 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE ldr r1, _02075DB8 ; =FUN_02075CE4 ldr r0, _02075DBC ; =0x00000B14 str r1, [r5, r0] @@ -1349,7 +1349,7 @@ _02076062: ldr r0, _02076098 ; =0x00000B14 str r1, [r5, r0] ldr r0, _0207609C ; =0x000005EC - bl FUN_020054C8 + bl PlaySE mov r0, #0x5 add sp, #0xc pop {r4-r7, pc} @@ -1634,7 +1634,7 @@ _02076212: mov r2, #0x1 bl FUN_02073CB4 ldr r0, _020763FC ; =0x000005EC - bl FUN_020054C8 + bl PlaySE sub r0, r7, #0x3 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -1712,7 +1712,7 @@ _02076360: tst r0, r1 beq _020763D6 ldr r0, _02076408 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _020763E0 ; =0x00000B25 ldrb r5, [r4, r0] add r0, r4, #0x0 @@ -2011,7 +2011,7 @@ _02076612: tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_020734C0 ldr r0, _0207686C ; =0x00000B27 @@ -2025,7 +2025,7 @@ _0207663C: tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207363C ldr r0, _0207686C ; =0x00000B27 @@ -2039,7 +2039,7 @@ _0207665A: tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_020736F4 ldr r0, _0207686C ; =0x00000B27 @@ -2180,7 +2180,7 @@ _02076780: tst r0, r1 beq _02076868 ldr r0, _02076874 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0207686C ; =0x00000B27 mov r1, #0x3 strb r1, [r4, r0] @@ -3394,7 +3394,7 @@ _0207716A: ldrh r1, [r1, #0x24] bl Bag_TakeItem ldr r0, _0207723C ; =0x000005EC - bl FUN_020054C8 + bl PlaySE b _02077204 _020771F6: ldr r2, _02077240 ; =0x0000069C diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 87e9cab0..cdf9258d 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -730,7 +730,7 @@ _020772FE: mov r0, #0x3 mov r1, #0x12 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r1, #0x5d add r0, r6, #0x0 lsl r1, r1, #0x4 @@ -742,7 +742,7 @@ _020772FE: add r4, r0, #0x0 bl memset mov r0, #0x12 - bl FUN_02016B94 + bl BgConfig_Alloc mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r4, r1] @@ -777,7 +777,7 @@ _020772FE: str r0, [r4, r1] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl FUN_02077B24 mov r0, #0x16 lsl r0, r0, #0x4 @@ -1050,7 +1050,7 @@ _020775E0: cmp r0, #0x0 bne _02077636 ldr r0, _020776B8 ; =0x000005E2 - bl FUN_020054C8 + bl PlaySE ldr r1, _020776BC ; =0x000004A8 mov r2, #0x0 ldr r0, [r4, r1] @@ -1191,7 +1191,7 @@ _020776F8: add r0, #0x3a bl FUN_0207916C ldr r0, _020777C4 ; =0x0000069E - bl FUN_020054C8 + bl PlaySE _0207771E: mov r2, #0x49 lsl r2, r2, #0x4 @@ -1209,7 +1209,7 @@ _0207771E: add r0, #0x3a bl FUN_0207916C ldr r0, _020777C4 ; =0x0000069E - bl FUN_020054C8 + bl PlaySE b _020777B8 _02077746: mov r2, #0x1 @@ -1526,7 +1526,7 @@ _020779C2: lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer bl FUN_0201D12C bl FUN_0201E08C mov r0, #0x16 @@ -1583,7 +1583,7 @@ _02077A0C: add r1, r0, #0x0 bl Main_SetVBlankIntrCB mov r0, #0x12 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _02077A80 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -1716,7 +1716,7 @@ FUN_02077B44: ; 0x02077B44 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02077C6C ; =UNK_020F9EC0 add r3, sp, #0x54 ldmia r5!, {r0-r1} @@ -1731,10 +1731,10 @@ FUN_02077B44: ; 0x02077B44 str r0, [r3, #0x0] add r0, r4, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02077C70 ; =UNK_020F9FA0 add r3, sp, #0x38 ldmia r5!, {r0-r1} @@ -1749,10 +1749,10 @@ FUN_02077B44: ; 0x02077B44 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02077C74 ; =UNK_020FA064 add r3, sp, #0x1c ldmia r5!, {r0-r1} @@ -1767,10 +1767,10 @@ FUN_02077B44: ; 0x02077B44 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02077C78 ; =UNK_020F9DFC add r3, sp, #0x0 ldmia r5!, {r0-r1} @@ -1785,22 +1785,22 @@ FUN_02077B44: ; 0x02077B44 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x0 bl FUN_02077C84 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 mov r3, #0x12 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0x12 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x1 lsl r0, r0, #0x1a add r4, r0, #0x0 @@ -1911,7 +1911,7 @@ FUN_02077CD4: ; 0x02077CD4 ldr r3, [r3, r5] lsr r1, r1, #0x18 mov r2, #0x0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r3, [r4, r6] mov r5, #0xc mov r0, #0x16 @@ -1924,7 +1924,7 @@ FUN_02077CD4: ; 0x02077CD4 ldr r3, [r3, r6] lsr r1, r1, #0x18 mov r2, #0x3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r6, _02077E80 ; =0x00000464 mov r0, #0x1 ldr r1, [r4, r6] @@ -1941,7 +1941,7 @@ FUN_02077CD4: ; 0x02077CD4 ldr r3, [r3, r5] lsr r1, r1, #0x18 mov r2, #0x0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, [r4, r6] mov r0, #0x1 add r3, r1, #0x0 @@ -1957,7 +1957,7 @@ FUN_02077CD4: ; 0x02077CD4 ldr r3, [r3, r6] lsr r1, r1, #0x18 mov r2, #0x3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0x46 ldr r0, _02077E84 ; =0x0000FFFF lsl r1, r1, #0x2 @@ -2231,23 +2231,23 @@ FUN_02077FA8: ; 0x02077FA8 mov r4, #0x0 _02077FB0: add r0, r5, #0x0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #0x1 add r5, #0x10 cmp r4, #0xa blt _02077FB0 add r0, r6, #0x0 mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r6, #0x0 mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r6, #0x0 mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r6, #0x0 mov r1, #0x0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x12 add r1, r6, #0x0 bl FreeToHeapExplicit @@ -2281,7 +2281,7 @@ FUN_02077FE8: ; 0x02077FE8 bl GfGfxLoader_GXLoadPal mov r0, #0x4 mov r1, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 @@ -3159,14 +3159,14 @@ _0207873C: lsr r1, r1, #0x18 mov r2, #0x0 mov r3, #0xee - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #0x3 lsl r1, r6, #0x18 add r3, r2, #0x0 ldr r0, [sp, #0x10] lsr r1, r1, #0x18 sub r3, #0x53 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5, #0x0] add sp, #0x28 add r0, r0, #0x1 @@ -3236,14 +3236,14 @@ _020787D8: ldr r3, [r4, r3] lsr r1, r1, #0x18 mov r2, #0x0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, [sp, #0x18] ldr r0, [sp, #0x10] lsl r1, r1, #0x18 ldr r3, [r5, r7] lsr r1, r1, #0x18 mov r2, #0x3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0x28 pop {r3-r7, pc} _020787FC: @@ -3275,7 +3275,7 @@ _02078820: ldr r3, [r4, r3] lsr r1, r1, #0x18 mov r2, #0x0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, [sp, #0x18] ldr r3, [sp, #0x20] lsl r1, r1, #0x18 @@ -3283,7 +3283,7 @@ _02078820: ldr r3, [r7, r3] lsr r1, r1, #0x18 mov r2, #0x3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [sp, #0x24] mov r1, #0xa ldr r0, [r4, r0] @@ -3308,7 +3308,7 @@ _02078820: ldr r0, [sp, #0x10] bl FUN_02078B88 ldr r0, _02078890 ; =0x0000069B - bl FUN_020054C8 + bl PlaySE _0207887E: add sp, #0x28 pop {r3-r7, pc} @@ -3400,7 +3400,7 @@ FUN_0207890C: ; 0x0207890C add r1, r5, r1 mov r2, #0x0 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized mov r2, #0x1 mov r1, #0xf2 lsl r1, r1, #0x2 @@ -3417,7 +3417,7 @@ FUN_0207890C: ; 0x0207890C ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5, #0x0] cmp r0, #0x4 bne _020789AE @@ -3491,7 +3491,7 @@ _020789D8: ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x7 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, [r5, #0xc] mov r0, #0xc add r2, r1, #0x0 @@ -3519,7 +3519,7 @@ _020789D8: ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0xa - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xfa lsl r0, r0, #0x2 add r0, r5, r0 @@ -3544,7 +3544,7 @@ _020789D8: ldr r0, [r5, r0] add r1, r5, r1 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02078B74 ; =0x00000438 mov r1, #0x1 add r0, r5, r0 @@ -3577,7 +3577,7 @@ _02078A90: ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02078B78 ; =0x00000448 mov r1, #0xf add r0, r5, r0 @@ -3637,7 +3637,7 @@ _02078B0E: add r1, r7, r6 mov r2, #0x2 mov r3, #0x0 - bl FUN_02019064 + bl AddWindowParameterized add r0, r7, r6 mov r1, #0x0 bl FillWindowPixelBuffer @@ -3657,7 +3657,7 @@ _02078B0E: add r0, #0xdc ldr r0, [r5, r0] add r1, r5, r1 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02078B84 ; =0x00000428 mov r1, #0x0 add r0, r5, r0 @@ -3680,13 +3680,13 @@ FUN_02078B88: ; 0x02078B88 lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0x1 - bl FUN_020178BC + bl SetBgPriority mov r0, #0x1 eor r0, r4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0x2 - bl FUN_020178BC + bl SetBgPriority pop {r4, pc} .balign 4 @@ -3829,7 +3829,7 @@ FUN_02078C98: ; 0x02078C98 tst r0, r1 beq _02078CC0 ldr r0, _02078D74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -3844,7 +3844,7 @@ _02078CC0: tst r0, r1 beq _02078CE0 ldr r0, _02078D74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -3859,7 +3859,7 @@ _02078CE0: tst r0, r1 beq _02078D00 ldr r0, _02078D74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -3874,7 +3874,7 @@ _02078D00: tst r0, r1 beq _02078D20 ldr r0, _02078D74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -3889,7 +3889,7 @@ _02078D20: tst r0, r1 beq _02078D46 ldr r0, _02078D74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -4579,7 +4579,7 @@ _0207924A: str r2, [sp, #0xc] bl FUN_02078E7C ldr r0, _02079544 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE b _02079526 _0207927C: add r0, r4, #0x0 @@ -4615,7 +4615,7 @@ _0207927C: str r2, [sp, #0xc] bl FUN_02078E7C ldr r0, _02079544 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE b _02079526 _020792CA: mov r3, #0x56 @@ -4653,7 +4653,7 @@ _020792CA: add r1, r1, #0x1 str r1, [r4, r0] ldr r0, _02079544 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE b _02079526 _0207931C: mov r2, #0x46 @@ -4679,7 +4679,7 @@ _0207931C: add r0, r0, #0x1 str r0, [r2, r1] ldr r0, _02079548 ; =0x0000069E - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -4765,7 +4765,7 @@ _020793BC: add r1, r1, #0x1 str r1, [r4, r0] ldr r0, _02079558 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -4785,7 +4785,7 @@ _0207940E: cmp r0, #0x0 bne _02079454 ldr r0, _02079560 ; =0x000005E2 - bl FUN_020054C8 + bl PlaySE ldr r0, _02079564 ; =0x000004A8 ldr r1, [r4, r0] add r1, r1, #0x1 @@ -4862,7 +4862,7 @@ _02079470: add r0, r4, r0 bl FUN_02079710 ldr r0, _02079544 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] diff --git a/arm9/asm/unk_020799E8.s b/arm9/asm/unk_020799E8.s index 9227ca82..f7318276 100644 --- a/arm9/asm/unk_020799E8.s +++ b/arm9/asm/unk_020799E8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -281,7 +281,7 @@ _02079BAE: add r0, r6, #0x0 ldr r2, [r2, #0x14] add r3, r4, #0x0 - bl FUN_02017E14 + bl BG_LoadCharTilesData b _02079C36 _02079BC6: add r0, r7, #0x0 @@ -297,7 +297,7 @@ _02079BDA: lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 - bl FUN_0201886C + bl GetBgTilemapBuffer cmp r0, #0x0 beq _02079BF8 ldr r2, [sp, #0xc] @@ -306,7 +306,7 @@ _02079BDA: lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 - bl FUN_02017DFC + bl BG_LoadScreenTilemapData _02079BF8: add r0, sp, #0x18 ldrh r0, [r0, #0x20] @@ -317,7 +317,7 @@ _02079BF8: add r0, r6, #0x0 add r2, #0xc add r3, r4, #0x0 - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram b _02079C36 _02079C10: add r0, r7, #0x0 @@ -337,7 +337,7 @@ _02079C24: ldr r1, [r1, #0xc] lsr r0, r0, #0x18 add r2, r4, #0x0 - bl FUN_02017FB4 + bl BG_LoadPlttData _02079C36: add r0, r7, #0x0 bl FreeToHeap diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 3134a96c..3bbacdab 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -87,12 +87,12 @@ FUN_02079C7C: ; 0x02079C7C strh r2, [r0, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #0x1 mov r0, #0x3 mov r1, #0x13 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _02079DAC ; =0x0000069C add r0, r4, #0x0 mov r2, #0x13 @@ -107,7 +107,7 @@ FUN_02079C7C: ; 0x02079C7C lsl r1, r1, #0x2 str r0, [r5, r1] mov r0, #0x13 - bl FUN_02016B94 + bl BgConfig_Alloc mov r1, #0x1 str r0, [r5, #0x0] mov r0, #0x13 @@ -339,7 +339,7 @@ FUN_02079ECC: ; 0x02079ECC add r0, r4, #0x0 bl OverlayManager_FreeData mov r0, #0x13 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r3-r5, pc} .balign 4 @@ -350,7 +350,7 @@ FUN_02079F24: ; 0x02079F24 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -400,7 +400,7 @@ FUN_02079F78: ; 0x02079F78 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0207A078 ; =UNK_020FA650 add r3, sp, #0x70 ldmia r5!, {r0-r1} @@ -415,10 +415,10 @@ FUN_02079F78: ; 0x02079F78 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0207A07C ; =UNK_020FA66C add r3, sp, #0x54 ldmia r5!, {r0-r1} @@ -433,15 +433,15 @@ FUN_02079F78: ; 0x02079F78 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r5, _0207A080 ; =UNK_020FA688 add r3, sp, #0x38 ldmia r5!, {r0-r1} @@ -456,7 +456,7 @@ FUN_02079F78: ; 0x02079F78 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0207A084 ; =UNK_020FA6A4 add r3, sp, #0x1c ldmia r5!, {r0-r1} @@ -471,10 +471,10 @@ FUN_02079F78: ; 0x02079F78 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0207A088 ; =UNK_020FA634 add r3, sp, #0x0 ldmia r5!, {r0-r1} @@ -489,17 +489,17 @@ FUN_02079F78: ; 0x02079F78 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x1 mov r1, #0x20 mov r2, #0x0 mov r3, #0x13 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0x13 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x9c pop {r4-r5, pc} nop @@ -518,19 +518,19 @@ FUN_0207A08C: ; 0x0207A08C bl GX_DisableEngineBLayers add r0, r4, #0x0 mov r1, #0x5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x13 add r1, r4, #0x0 bl FreeToHeapExplicit @@ -864,7 +864,7 @@ _0207A376: beq _0207A394 sub r3, #0xb2 add r0, r3, #0x0 - bl FUN_020054C8 + bl PlaySE mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -888,7 +888,7 @@ _0207A394: bne _0207A3BE sub r3, #0xb2 add r0, r3, #0x0 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207C23C pop {r4-r6, pc} @@ -898,7 +898,7 @@ _0207A3BE: cmp r1, #0x3 bne _0207A3D6 add r0, #0x10 - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -908,7 +908,7 @@ _0207A3D6: cmp r1, #0x5 bne _0207A3EA add r0, #0x10 - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -923,7 +923,7 @@ _0207A3EA: cmp r1, #0x0 beq _0207A420 sub r0, #0xaf - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -933,7 +933,7 @@ _0207A408: cmp r1, #0x7 bne _0207A420 sub r0, #0xaf - bl FUN_020054C8 + bl PlaySE mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1027,7 +1027,7 @@ FUN_0207A498: ; 0x0207A498 cmp r0, #0x1 bne _0207A4BE ldr r0, _0207A56C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A4BE: @@ -1042,7 +1042,7 @@ _0207A4C2: cmp r0, #0x1 bne _0207A4DE ldr r0, _0207A56C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A4DE: @@ -1059,7 +1059,7 @@ _0207A4E2: cmp r1, #0x4 bne _0207A510 add r0, #0xf - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A574 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -1080,7 +1080,7 @@ _0207A510: cmp r1, #0x1 beq _0207A542 sub r0, #0xb0 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207CBE8 ldr r2, _0207A570 ; =0x0000068D @@ -1101,7 +1101,7 @@ _0207A542: tst r0, r2 beq _0207A564 ldr r0, _0207A578 ; =0x0000069C - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A574 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -1139,7 +1139,7 @@ FUN_0207A57C: ; 0x0207A57C cmp r0, #0x1 bne _0207A5A2 ldr r0, _0207A648 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A5A2: @@ -1154,7 +1154,7 @@ _0207A5A6: cmp r0, #0x1 bne _0207A5C2 ldr r0, _0207A648 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A5C2: @@ -1180,7 +1180,7 @@ _0207A5C6: cmp r2, r1 beq _0207A618 sub r0, #0xb0 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B9C0 ldr r1, _0207A64C ; =0x0000068D @@ -1198,7 +1198,7 @@ _0207A5C6: b _0207A61E _0207A618: ldr r0, _0207A650 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _0207A61E: mov r0, #0x7 pop {r4, pc} @@ -1207,7 +1207,7 @@ _0207A622: tst r0, r2 beq _0207A63E ldr r0, _0207A650 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x43 lsl r0, r0, #0x4 ldr r0, [r4, r0] @@ -1256,7 +1256,7 @@ _0207A67E: cmp r0, #0x1 bne _0207A69C ldr r0, _0207A754 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A69C: @@ -1271,7 +1271,7 @@ _0207A6A0: cmp r0, #0x1 bne _0207A6BC ldr r0, _0207A754 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0x0 bl FUN_0207B8D8 _0207A6BC: @@ -1282,7 +1282,7 @@ _0207A6C0: tst r0, r2 beq _0207A72C ldr r0, _0207A758 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A75C ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x1c @@ -1333,7 +1333,7 @@ _0207A72C: tst r0, r2 beq _0207A74C ldr r0, _0207A758 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] @@ -1441,7 +1441,7 @@ _0207A7F0: tst r0, r1 beq _0207A808 ldr r0, _0207A810 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _0207A814 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] @@ -2600,10 +2600,10 @@ _0207B0EC: ldr r0, [r5, #0x0] mov r1, #0x1 mov r3, #0xe - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r5, #0x0] mov r1, #0x1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0x0 bl FUN_0207DD88 add r0, r5, #0x0 @@ -2679,7 +2679,7 @@ _0207B1D0: cmp r4, r0 beq _0207B1F4 ldr r0, _0207B1FC ; =0x000005E1 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x0 bl FUN_0207FA38 add r0, r5, #0x0 @@ -2760,10 +2760,10 @@ _0207B256: ldr r0, [r5, #0x0] mov r1, #0x3 add r2, #0xc - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [r5, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0x0 bl FreeToHeap ldr r0, _0207B2AC ; =0x0000068C @@ -2858,7 +2858,7 @@ _0207B318: ldr r0, [r6, #0x0] mov r1, #0x3 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect cmp r4, #0x8 bhs _0207B33E mov r4, #0x0 @@ -2875,7 +2875,7 @@ _0207B344: blo _0207B30A ldr r0, [r6, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4-r7, pc} nop @@ -2936,7 +2936,7 @@ _0207B3AC: ldr r0, [r6, #0x0] mov r1, #0x3 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect cmp r4, #0x8 bhs _0207B3D0 mov r4, #0x0 @@ -2953,7 +2953,7 @@ _0207B3D6: blo _0207B39C ldr r0, [r6, #0x0] mov r1, #0x3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r3-r7, pc} .balign 4 @@ -3301,30 +3301,30 @@ _0207B682: mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C6F0 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 add r0, #0x64 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -3340,14 +3340,14 @@ _0207B682: _0207B6E2: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0x40 ldr r0, [r4, #0x0] bgt _0207B702 mov r2, #0x0 mov r1, #0x2 add r3, r2, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207B774 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -3356,7 +3356,7 @@ _0207B702: mov r1, #0x2 add r2, r1, #0x0 mov r3, #0x40 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207B76E _0207B70E: bl FUN_0207ECDC @@ -3449,7 +3449,7 @@ _0207B79E: mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -3464,14 +3464,14 @@ _0207B79E: _0207B7F8: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0x80 ldr r0, [r4, #0x0] blt _0207B818 mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207B864 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -3480,20 +3480,20 @@ _0207B818: mov r1, #0x2 mov r2, #0x1 mov r3, #0x40 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207B860 _0207B824: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0x64 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 mov r1, #0x81 bl FUN_0207D924 @@ -3788,19 +3788,19 @@ FUN_0207BA74: ; 0x0207BA74 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 add r0, #0x64 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r2, #0x0 ldr r0, [r4, #0x0] mov r1, #0x2 add r3, r2, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r4, #0x0 bl FUN_0207ECDC add r0, r4, #0x0 @@ -3851,13 +3851,13 @@ _0207BB02: mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r2, #0x3 add r3, r2, #0x0 ldr r0, [r4, #0x0] mov r1, #0x2 add r3, #0xfd - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 @@ -3868,18 +3868,18 @@ _0207BB02: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 add r0, #0x64 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -3895,14 +3895,14 @@ _0207BB02: _0207BB6E: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0x40 ldr r0, [r4, #0x0] bgt _0207BB8E mov r2, #0x0 mov r1, #0x2 add r3, r2, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207BBE4 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -3911,7 +3911,7 @@ _0207BB8E: mov r1, #0x2 add r2, r1, #0x0 mov r3, #0x40 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207BBDE _0207BB9A: bl FUN_0207ECDC @@ -3980,7 +3980,7 @@ _0207BC06: mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -3995,14 +3995,14 @@ _0207BC06: _0207BC4E: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0x80 ldr r0, [r4, #0x0] blt _0207BC6E mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207BCBC ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -4011,20 +4011,20 @@ _0207BC6E: mov r1, #0x2 mov r2, #0x1 mov r3, #0x40 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207BCB6 _0207BC7A: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0x64 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 mov r1, #0x9e bl FUN_0207D924 @@ -4066,7 +4066,7 @@ FUN_0207BCC8: ; 0x0207BCC8 mov r1, #0x2 add r2, r4, #0x0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x2f str r0, [sp, #0x0] mov r0, #0x1 @@ -4082,7 +4082,7 @@ FUN_0207BCC8: ; 0x0207BCC8 mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x30 str r0, [sp, #0x0] mov r0, #0x1 @@ -4098,7 +4098,7 @@ FUN_0207BCC8: ; 0x0207BCC8 mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x30 str r0, [sp, #0x0] mov r0, #0x1 @@ -4113,7 +4113,7 @@ FUN_0207BCC8: ; 0x0207BCC8 mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3-r7, pc} @@ -4136,7 +4136,7 @@ _0207BD60: blo _0207BD60 ldr r0, [r5, #0x0] mov r1, #0x2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4-r6, pc} .balign 4 _0207BD80: .word 0x0000012E @@ -4178,7 +4178,7 @@ _0207BDB6: _0207BDCC: ldr r0, [r5, #0x0] mov r1, #0x2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r3-r7, pc} .balign 4 @@ -4232,7 +4232,7 @@ _0207BE38: mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, pc} _0207BE46: add r0, r4, #0x0 @@ -4242,7 +4242,7 @@ _0207BE46: ldr r0, [r4, #0x0] mov r1, #0x2 add r3, #0xfd - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, pc} .balign 4 _0207BE5C: .word 0x0000068C @@ -4268,34 +4268,34 @@ _0207BE7E: ldr r0, [r4, #0x0] mov r2, #0x0 add r3, #0xfe - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C6F0 add r0, r4, #0x0 add r0, #0x64 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -4311,14 +4311,14 @@ _0207BE7E: _0207BEEA: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B54 + bl Bg_GetYpos cmp r0, #0x30 ldr r0, [r4, #0x0] blt _0207BF0A mov r1, #0x2 mov r2, #0x3 mov r3, #0x38 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207BF78 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -4327,7 +4327,7 @@ _0207BF0A: mov r1, #0x2 mov r2, #0x4 mov r3, #0x10 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207BF74 _0207BF16: mov r1, #0xb5 @@ -4403,21 +4403,21 @@ _0207BFA6: lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC @@ -4430,14 +4430,14 @@ _0207BFA6: _0207BFF6: ldr r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02017B54 + bl Bg_GetYpos cmp r0, #0x8 ldr r0, [r4, #0x0] bgt _0207C016 mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, _0207C078 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] @@ -4446,28 +4446,28 @@ _0207C016: mov r1, #0x2 mov r2, #0x5 mov r3, #0x10 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207C072 _0207C022: add r0, r4, #0x0 add r0, #0x64 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 mov r1, #0xb4 bl FUN_0207D924 @@ -4611,7 +4611,7 @@ _0207C14A: beq _0207C160 _0207C15A: ldr r0, _0207C1D4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0207C160: ldr r1, _0207C1D0 ; =0x00000697 add r0, r5, #0x0 diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s index ba0e57e6..38691c40 100644 --- a/arm9/asm/unk_0207C328.s +++ b/arm9/asm/unk_0207C328.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -1826,7 +1826,7 @@ FUN_0207CFAC: ; 0x0207CFAC pop {r4, pc} _0207CFC0: add r0, r1, #0x0 - bl FUN_0201AB14 + bl GetWindowX add r1, r0, #0x0 ldr r0, _0207CFE8 ; =0x000004C4 lsl r1, r1, #0x3 diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index 5a814a79..3d3fd3fe 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -79,7 +79,7 @@ _0207D5C4: ldr r0, [r7, #0x0] add r1, r4, r6 add r2, r2, r3 - bl FUN_02019150 + bl AddWindow add r0, r4, r6 mov r1, #0x0 bl FillWindowPixelBuffer @@ -207,7 +207,7 @@ _0207D6B4: ldr r0, [r4, #0x0] add r1, r1, r7 add r2, r5, #0x0 - bl FUN_02019150 + bl AddWindow mov r0, #0x92 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -269,7 +269,7 @@ _0207D732: ldr r1, [r1, r2] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_020191A4 + bl WindowArray_dtor _0207D744: pop {r3, pc} nop @@ -284,7 +284,7 @@ FUN_0207D74C: ; 0x0207D74C add r5, r5, #0x4 _0207D758: add r0, r5, #0x0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x24 @@ -354,7 +354,7 @@ _0207D7CA: bl FUN_0207D998 _0207D7E8: add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r5, pc} nop @@ -428,7 +428,7 @@ FUN_0207D800: ; 0x0207D800 bl AddTextPrinterParameterized2 _0207D88A: add r0, r5, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4-r6, pc} .balign 4 @@ -484,11 +484,11 @@ _0207D8F2: bl FUN_0207D998 add r0, r5, #0x0 add r0, #0x64 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x81 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3-r5, pc} nop _0207D918: .word 0x0000025E @@ -515,7 +515,7 @@ FUN_0207D924: ; 0x0207D924 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3-r5, pc} nop _0207D954: .word 0x000F0E00 @@ -1039,7 +1039,7 @@ FUN_0207DD88: ; 0x0207DD88 ldr r0, [r4, #0x0] mov r1, #0x1 add r3, r2, #0x0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x12 @@ -1052,7 +1052,7 @@ FUN_0207DD88: ; 0x0207DD88 mov r1, #0x1 mov r2, #0x0 mov r3, #0xe - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, _0207DE38 ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x7 @@ -1122,31 +1122,31 @@ FUN_0207DE3C: ; 0x0207DE3C sub sp, #0x10 add r4, r0, #0x0 add r0, r4, #0x4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0x74 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0x84 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0x94 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xa4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xb4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xc4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xd4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xe4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1376,32 +1376,32 @@ _0207E058: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3-r5, pc} .balign 4 @@ -1517,7 +1517,7 @@ FUN_0207E190: ; 0x0207E190 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -1560,7 +1560,7 @@ _0207E1F4: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3-r7, pc} thumb_func_start FUN_0207E200 @@ -1569,34 +1569,34 @@ FUN_0207E200: ; 0x0207E200 sub sp, #0x18 add r4, r0, #0x0 add r0, #0x24 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 add r0, #0xf4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x41 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x45 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x49 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x4d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x51 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x55 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1803,42 +1803,42 @@ FUN_0207E200: ; 0x0207E200 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x60 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x70 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3-r5, pc} nop @@ -1856,11 +1856,11 @@ FUN_0207E4A0: ; 0x0207E4A0 sub sp, #0x10 add r4, r0, #0x0 add r0, #0x34 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x59 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1919,7 +1919,7 @@ _0207E4C6: lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] @@ -1946,7 +1946,7 @@ _0207E4C6: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] @@ -1966,7 +1966,7 @@ FUN_0207E594: ; 0x0207E594 push {r4, lr} add r4, r0, #0x0 add r0, #0x44 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -2025,22 +2025,22 @@ _0207E5BC: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} .balign 4 @@ -2049,7 +2049,7 @@ FUN_0207E650: ; 0x0207E650 push {r4, lr} add r4, r0, #0x0 add r0, #0x54 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -2108,22 +2108,22 @@ _0207E678: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} .balign 4 @@ -2135,11 +2135,11 @@ FUN_0207E70C: ; 0x0207E70C mov r0, #0x7d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -2163,7 +2163,7 @@ FUN_0207E70C: ; 0x0207E70C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _0207E780 ; =0x00000699 ldrb r0, [r4, r0] cmp r0, #0x0 @@ -2191,7 +2191,7 @@ FUN_0207E788: ; 0x0207E788 mov r0, #0x71 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0x0 mov r1, #0xa1 bl FUN_0207D924 @@ -2258,7 +2258,7 @@ _0207E7BC: lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _0207E82C: add sp, #0x10 pop {r4, pc} @@ -2419,7 +2419,7 @@ FUN_0207E840: ; 0x0207E840 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4-r6, pc} .balign 4 @@ -2486,12 +2486,12 @@ FUN_0207E9A0: ; 0x0207E9A0 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} .balign 4 _0207EA34: .word 0x0000069A @@ -2645,15 +2645,15 @@ FUN_0207EB64: ; 0x0207EB64 lsl r0, r0, #0x2 add r0, r5, r0 add r4, r1, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x69 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x6d lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -2754,17 +2754,17 @@ _0207EC1C: lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x60 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x70 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x4 pop {r3-r6, pc} .balign 4 @@ -2779,30 +2779,30 @@ FUN_0207EC94: ; 0x0207EC94 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x69 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x6d lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x60 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x70 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer pop {r4, pc} thumb_func_start FUN_0207ECDC @@ -2827,12 +2827,12 @@ FUN_0207ECDC: ; 0x0207ECDC lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} _0207ED0E: sub r0, #0xc8 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} thumb_func_start FUN_0207ED18 @@ -2842,10 +2842,10 @@ FUN_0207ED18: ; 0x0207ED18 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r0, [r4, #0x0] mov r1, #0x1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, pc} thumb_func_start FUN_0207ED30 @@ -2895,7 +2895,7 @@ FUN_0207ED30: ; 0x0207ED30 lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] @@ -2905,7 +2905,7 @@ FUN_0207ED30: ; 0x0207ED30 lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} nop _0207EDB0: .word 0x0000068D @@ -2922,17 +2922,17 @@ FUN_0207EDB4: ; 0x0207EDB4 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x60 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x70 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r4, [r5, r0] @@ -2959,7 +2959,7 @@ _0207EDF6: mov r3, #0x0 bl FUN_0207D998 add r0, r4, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3-r5, pc} .balign 4 _0207EE20: .word 0x0000068C @@ -3015,12 +3015,12 @@ FUN_0207EE2C: ; 0x0207EE2C mov r0, #0x75 lsl r0, r0, #0x2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4-r6, pc} .balign 4 @@ -3033,12 +3033,12 @@ FUN_0207EEB0: ; 0x0207EEB0 mov r0, #0x75 lsl r0, r0, #0x2 add r0, r4, r0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer pop {r4, pc} thumb_func_start FUN_0207EECC @@ -3119,7 +3119,7 @@ _0207EF10: mov r1, #0x1 bl AddTextPrinterParameterized2 add r0, r6, #0x0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4-r6, pc} .balign 4 diff --git a/arm9/asm/unk_0207EF6C.s b/arm9/asm/unk_0207EF6C.s index e4e29259..2d585edb 100644 --- a/arm9/asm/unk_0207EF6C.s +++ b/arm9/asm/unk_0207EF6C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_0207F95C.s b/arm9/asm/unk_0207F95C.s index cface8d1..4934c2fb 100644 --- a/arm9/asm/unk_0207F95C.s +++ b/arm9/asm/unk_0207F95C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .section .rodata @@ -92,7 +92,7 @@ _0207F992: ldr r0, [r4, #0x0] mov r2, #0x0 add r3, r1, #0x0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _0207F9BA _0207F9AC: ldr r1, _0207F9C4 ; =0x0000068F @@ -116,7 +116,7 @@ FUN_0207F9C8: ; 0x0207F9C8 add r4, r1, #0x0 mov r1, #0x4 add r5, r2, #0x0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r7, r0, #0x0 lsl r0, r5, #0x2 add r1, r5, r0 @@ -200,7 +200,7 @@ _0207FA52: _0207FA6C: ldr r0, [r6, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _0207FA74: pop {r3-r7, pc} nop @@ -279,7 +279,7 @@ _0207FADA: ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #0x4 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0x0 bne _0207FB12 mov r0, #0x0 @@ -318,7 +318,7 @@ FUN_0207FB28: ; 0x0207FB28 _0207FB4A: sub r1, #0xab add r0, r1, #0x0 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0x0 bl FUN_0207FA38 ldr r1, _0207FBFC ; =0x00000696 @@ -330,7 +330,7 @@ _0207FB4A: bl FUN_0207F9C8 ldr r0, [r5, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r5, #0x0 bl FUN_0207CEDC ldr r0, _0207FC00 ; =0x00000694 @@ -390,7 +390,7 @@ _0207FBD6: _0207FBE2: ldr r0, [r5, #0x0] mov r1, #0x4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x1 pop {r4-r6, pc} _0207FBEE: diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s index e48ad6f9..e920ab0b 100644 --- a/arm9/asm/unk_0207FD00.s +++ b/arm9/asm/unk_0207FD00.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 3e0d058c..4f43b41e 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -807,7 +807,7 @@ FUN_02081214: ; 0x02081214 mov r0, #0xb mov r1, #0x14 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap bl FUN_020811D8 add r4, r0, #0x0 bl GetLCRNGSeed @@ -1191,7 +1191,7 @@ _020814FE: add r0, r7, #0x0 bl FUN_0208120C mov r0, #0x14 - bl FUN_020168D0 + bl DestroyHeap pop {r3-r7, pc} .balign 4 @@ -3394,7 +3394,7 @@ FUN_0208251C: ; 0x0208251C mov r3, #0x3f bl FUN_0200A208 ldr r0, _0208259C ; =0x000005F8 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xa] add r0, r0, #0x1 strb r0, [r4, #0xa] diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index a64d7ab7..74c231ea 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -1641,7 +1641,7 @@ FUN_020833D4: ; 0x020833D4 cmp r0, #0x0 bne _020833EE mov r0, #0x1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x3 bl FUN_02002B7C mov r0, #0x1 @@ -1651,7 +1651,7 @@ _020833EE: mov r0, #0x1 bl FUN_02002B7C mov r0, #0x0 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002BB8 pop {r3, pc} @@ -1661,7 +1661,7 @@ _020833EE: FUN_02083404: ; 0x02083404 push {r3, lr} mov r0, #0x0 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0x0 bl FUN_02002B7C mov r0, #0x0 diff --git a/arm9/asm/unk_020834D0.s b/arm9/asm/unk_020834D0.s index 88308c6e..61d6b372 100644 --- a/arm9/asm/unk_020834D0.s +++ b/arm9/asm/unk_020834D0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata .global UNK_020FBED8 diff --git a/arm9/asm/unk_02083B84.s b/arm9/asm/unk_02083B84.s index 9049ff02..00b03fbd 100644 --- a/arm9/asm/unk_02083B84.s +++ b/arm9/asm/unk_02083B84.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02083D48.s b/arm9/asm/unk_02083D48.s index 1974ae4b..5b629bc6 100644 --- a/arm9/asm/unk_02083D48.s +++ b/arm9/asm/unk_02083D48.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02084098.s b/arm9/asm/unk_02084098.s index d05c8765..bb06cec2 100644 --- a/arm9/asm/unk_02084098.s +++ b/arm9/asm/unk_02084098.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -175,7 +175,7 @@ FUN_020840CC: ; 0x020840CC add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _02084110 ; =0x00000658 - bl FUN_020054C8 + bl PlaySE pop {r3-r5, pc} .balign 4 _0208410C: .word 0x00004A34 diff --git a/arm9/asm/unk_020842D0.s b/arm9/asm/unk_020842D0.s index 9b2e2af0..2b8e01a0 100644 --- a/arm9/asm/unk_020842D0.s +++ b/arm9/asm/unk_020842D0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020851B8.s b/arm9/asm/unk_020851B8.s deleted file mode 100644 index a6ed91ad..00000000 --- a/arm9/asm/unk_020851B8.s +++ /dev/null @@ -1,102 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020851B8 -FUN_020851B8: ; 0x020851B8 - push {r3, lr} - mov r1, #0xc - bl AllocFromHeap - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - strb r1, [r0, #0x4] - strb r1, [r0, #0x5] - strb r1, [r0, #0x6] - strb r1, [r0, #0x7] - strb r1, [r0, #0x8] - strb r1, [r0, #0x9] - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - pop {r3, pc} - - thumb_func_start FUN_020851DC -FUN_020851DC: ; 0x020851DC - push {r4-r6, lr} - sub r1, #0x95 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - add r1, r6, #0x0 - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02085200 - cmp r4, #0x1 - bne _020851F4 - strb r6, [r5, #0x8] -_020851F4: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020851F8 -FUN_020851F8: ; 0x020851F8 - strb r1, [r0, #0x9] - strb r2, [r0, #0xa] - strb r3, [r0, #0xb] - bx lr - - thumb_func_start FUN_02085200 -FUN_02085200: ; 0x02085200 - push {r3-r6} - lsr r6, r1, #0x1f - lsl r5, r1, #0x1b - lsr r2, r1, #0x5 - lsl r4, r2, #0x2 - sub r5, r5, r6 - mov r1, #0x1b - ror r5, r1 - ldr r3, [r0, r4] - mov r2, #0x1 - add r1, r6, r5 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - str r1, [r0, r4] - pop {r3-r6} - bx lr - .balign 4 - - thumb_func_start FUN_02085224 -FUN_02085224: ; 0x02085224 - push {r4-r5} - lsr r5, r1, #0x1f - lsl r4, r1, #0x1b - lsr r1, r1, #0x5 - lsl r1, r1, #0x2 - sub r4, r4, r5 - mov r3, #0x1b - ror r4, r3 - mov r2, #0x1 - add r3, r5, r4 - add r4, r2, #0x0 - lsl r4, r3 - ldr r0, [r0, r1] - tst r0, r4 - bne _02085244 - mov r2, #0x0 -_02085244: - lsl r0, r2, #0x18 - lsr r0, r0, #0x18 - pop {r4-r5} - bx lr - - thumb_func_start FUN_0208524C -FUN_0208524C: ; 0x0208524C - ldrb r3, [r0, #0x9] - strb r3, [r1, #0x0] - ldrb r0, [r0, #0xa] - strb r0, [r2, #0x0] - bx lr - .balign 4 diff --git a/arm9/asm/unk_02085338.s b/arm9/asm/unk_02085338.s deleted file mode 100644 index 08f7d90c..00000000 --- a/arm9/asm/unk_02085338.s +++ /dev/null @@ -1,286 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02085338 -FUN_02085338: ; 0x02085338 - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r1, #0x0 - add r0, r3, #0x0 - mov r1, #0x24 - add r6, r2, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - strb r5, [r4, #0x0] - strb r7, [r4, #0x1] - add r0, r6, #0x0 - bl Sav2_Pokedex_get - str r0, [r4, #0xc] - add r0, r6, #0x0 - bl FUN_02013B5C - str r0, [r4, #0x10] - add r0, r6, #0x0 - bl SavArray_Flags_get - bl FUN_0205ED0C - strb r0, [r4, #0x4] - mov r1, #0x0 - strb r1, [r4, #0x5] - mov r0, #0x1 - strb r0, [r4, #0x2] - add r0, r6, #0x0 - strb r1, [r4, #0x3] - bl Sav2_PlayerData_GetOptionsAddr - bl Options_GetFrame - str r0, [r4, #0x8] - cmp r5, #0x2 - bne _02085390 - add r0, r4, #0x0 - add r0, #0x14 - mov r1, #0x3 - bl MailMsg_init_withBank - b _020853A0 -_02085390: - ldr r0, _020853A4 ; =0x0000FFFF - mov r1, #0x0 - add r2, r4, #0x0 -_02085396: - add r1, r1, #0x1 - strh r0, [r2, #0x1c] - add r2, r2, #0x2 - cmp r1, #0x2 - blt _02085396 -_020853A0: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 -_020853A4: .word 0x0000FFFF - - thumb_func_start FUN_020853A8 -FUN_020853A8: ; 0x020853A8 - ldr r3, _020853AC ; =FreeToHeap - bx r3 - .balign 4 -_020853AC: .word FreeToHeap - - thumb_func_start FUN_020853B0 -FUN_020853B0: ; 0x020853B0 - strh r1, [r0, #0x1c] - bx lr - - thumb_func_start FUN_020853B4 -FUN_020853B4: ; 0x020853B4 - strh r1, [r0, #0x1c] - strh r2, [r0, #0x1e] - bx lr - .balign 4 - - thumb_func_start FUN_020853BC -FUN_020853BC: ; 0x020853BC - ldrh r2, [r1, #0x0] - strh r2, [r0, #0x14] - ldrh r2, [r1, #0x2] - strh r2, [r0, #0x16] - ldrh r2, [r1, #0x4] - strh r2, [r0, #0x18] - ldrh r1, [r1, #0x6] - strh r1, [r0, #0x1a] - bx lr - .balign 4 - - thumb_func_start FUN_020853D0 -FUN_020853D0: ; 0x020853D0 - mov r1, #0x1 - strb r1, [r0, #0x2] - mov r1, #0x0 - strb r1, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_020853DC -FUN_020853DC: ; 0x020853DC - mov r1, #0x1 - strb r1, [r0, #0x5] - bx lr - .balign 4 - - thumb_func_start FUN_020853E4 -FUN_020853E4: ; 0x020853E4 - ldrb r0, [r0, #0x2] - bx lr - - thumb_func_start FUN_020853E8 -FUN_020853E8: ; 0x020853E8 - ldrb r0, [r0, #0x3] - bx lr - - thumb_func_start FUN_020853EC -FUN_020853EC: ; 0x020853EC - ldrh r0, [r0, #0x1c] - bx lr - - thumb_func_start FUN_020853F0 -FUN_020853F0: ; 0x020853F0 - ldrh r2, [r0, #0x1c] - strh r2, [r1, #0x0] - ldrh r0, [r0, #0x1e] - strh r0, [r1, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_020853FC -FUN_020853FC: ; 0x020853FC - add r2, r0, #0x0 - ldr r3, _02085408 ; =MailMsg_copy - add r2, #0x14 - add r0, r1, #0x0 - add r1, r2, #0x0 - bx r3 - .balign 4 -_02085408: .word MailMsg_copy - - thumb_func_start FUN_0208540C -FUN_0208540C: ; 0x0208540C - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02085410 -FUN_02085410: ; 0x02085410 - ldrb r0, [r0, #0x1] - bx lr - - thumb_func_start FUN_02085414 -FUN_02085414: ; 0x02085414 - ldr r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_02085418 -FUN_02085418: ; 0x02085418 - ldr r0, [r0, #0xc] - bx lr - - thumb_func_start FUN_0208541C -FUN_0208541C: ; 0x0208541C - ldr r0, [r0, #0x10] - bx lr - - thumb_func_start FUN_02085420 -FUN_02085420: ; 0x02085420 - ldrb r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_02085424 -FUN_02085424: ; 0x02085424 - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_02085428 -FUN_02085428: ; 0x02085428 - ldrb r3, [r0, #0x0] - cmp r3, #0x0 - beq _02085438 - cmp r3, #0x1 - beq _0208543E - cmp r3, #0x2 - beq _02085448 - bx lr -_02085438: - ldrh r0, [r0, #0x1c] - strh r0, [r1, #0x0] - bx lr -_0208543E: - ldrh r2, [r0, #0x1c] - strh r2, [r1, #0x0] - ldrh r0, [r0, #0x1e] - strh r0, [r1, #0x2] - bx lr -_02085448: - ldrh r1, [r0, #0x14] - strh r1, [r2, #0x0] - ldrh r1, [r0, #0x16] - strh r1, [r2, #0x2] - ldrh r1, [r0, #0x18] - strh r1, [r2, #0x4] - ldrh r0, [r0, #0x1a] - strh r0, [r2, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_0208545C -FUN_0208545C: ; 0x0208545C - push {r3, lr} - ldrb r3, [r0, #0x0] - cmp r3, #0x0 - beq _0208546C - cmp r3, #0x1 - beq _0208547C - cmp r3, #0x2 - b _02085494 -_0208546C: - ldrh r1, [r1, #0x0] - ldrh r0, [r0, #0x1c] - cmp r1, r0 - bne _02085478 - mov r0, #0x1 - pop {r3, pc} -_02085478: - mov r0, #0x0 - pop {r3, pc} -_0208547C: - ldrh r3, [r1, #0x0] - ldrh r2, [r0, #0x1c] - cmp r3, r2 - bne _02085490 - ldrh r1, [r1, #0x2] - ldrh r0, [r0, #0x1e] - cmp r1, r0 - bne _02085490 - mov r0, #0x1 - pop {r3, pc} -_02085490: - mov r0, #0x0 - pop {r3, pc} -_02085494: - add r0, #0x14 - add r1, r2, #0x0 - bl MailMsg_compare - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020854A0 -FUN_020854A0: ; 0x020854A0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_0208545C - cmp r0, #0x0 - bne _020854B4 - mov r0, #0x1 - b _020854B6 -_020854B4: - mov r0, #0x0 -_020854B6: - strb r0, [r5, #0x3] - mov r1, #0x0 - strb r1, [r5, #0x2] - add r2, r5, #0x0 -_020854BE: - ldrh r0, [r4, #0x0] - add r1, r1, #0x1 - add r4, r4, #0x2 - strh r0, [r2, #0x1c] - add r2, r2, #0x2 - cmp r1, #0x2 - blt _020854BE - ldrh r0, [r6, #0x0] - strh r0, [r5, #0x14] - ldrh r0, [r6, #0x2] - strh r0, [r5, #0x16] - ldrh r0, [r6, #0x4] - strh r0, [r5, #0x18] - ldrh r0, [r6, #0x6] - strh r0, [r5, #0x1a] - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s index c19e1a5d..4c77e4ac 100644 --- a/arm9/asm/unk_020854E0.s +++ b/arm9/asm/unk_020854E0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -418,7 +418,7 @@ FUN_020857F8: ; 0x020857F8 mov r0, #0x3 mov r1, #0x28 lsl r2, r2, #0xc - bl FUN_0201681C + bl CreateHeap add r0, r4, #0x0 mov r1, #0x1c mov r2, #0x28 @@ -629,6 +629,6 @@ FUN_020859A0: ; 0x020859A0 add r0, r5, #0x0 bl OverlayManager_FreeData ldr r0, [r4, #0x0] - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r3-r5, pc} diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index a2f90e0a..162a8aca 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F96DC @@ -184,7 +184,7 @@ FUN_020859C0: ; 0x020859C0 mov r0, #0x3 mov r1, #0x35 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap mov r0, #0x35 bl MOD62_02230F3C bl MOD62_0222F7E0 @@ -282,7 +282,7 @@ _02085A9A: cmp r5, #0x6 blt _02085A7C mov r0, #0x35 - bl FUN_02016B94 + bl BgConfig_Alloc add r1, r4, #0x0 add r1, #0xe4 str r0, [r1, #0x0] @@ -471,37 +471,37 @@ FUN_02085C08: ; 0x02085C08 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] @@ -570,7 +570,7 @@ FUN_02085C08: ; 0x02085C08 bl OverlayManager_FreeData bl FUN_0201CD04 mov r0, #0x35 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _02085D68 ; =SDK_OVERLAY_MODULE_08_ID bl UnloadOverlayByID mov r0, #0x1 diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s index 3a4017d7..d110b7f1 100644 --- a/arm9/asm/unk_02086084.s +++ b/arm9/asm/unk_02086084.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020FA5FC @@ -23,7 +23,7 @@ FUN_02086084: ; 0x02086084 mov r0, #0x3 mov r1, #0x47 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0x0 mov r1, #0x80 mov r2, #0x47 @@ -48,7 +48,7 @@ FUN_02086084: ; 0x02086084 bl FUN_02006D98 str r0, [r4, #0x3c] mov r0, #0x47 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x4] mov r0, #0x40 mov r1, #0x47 @@ -197,16 +197,16 @@ FUN_020861DC: ; 0x020861DC bl FUN_02002FEC ldr r0, [r4, #0x4] mov r1, #0x1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x4] mov r1, #0x2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x4] mov r1, #0x3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x4] mov r1, #0x4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x4] bl FreeToHeap bl FUN_0201C29C @@ -219,7 +219,7 @@ FUN_020861DC: ; 0x020861DC add r0, r5, #0x0 bl OverlayManager_FreeData mov r0, #0x47 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 54ce0190..f01e84e2 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern NNS_GfdDefaultFuncAllocTexVram .extern NNS_GfdDefaultFuncAllocPlttVram @@ -294,7 +294,7 @@ _0208655C: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02086658 ; =UNK_020FCF84 add r3, sp, #0x54 mov r2, #0xa @@ -309,26 +309,26 @@ _020865BC: add r0, r4, #0x0 add r2, sp, #0x54 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x2 add r2, sp, #0x70 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x3 add r2, sp, #0x8c mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0x0 mov r1, #0x3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _0208665C ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] @@ -356,10 +356,10 @@ _020865BC: str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0x0 mov r1, #0x4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0xa8 pop {r3-r5, pc} .balign 4 @@ -380,7 +380,7 @@ FUN_02086664: ; 0x02086664 ldr r0, [r4, #0x8] bl FUN_0200372C ldr r0, [r4, #0x4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _02086690 ; =0x027E0000 ldr r1, _02086694 ; =0x00003FF8 mov r0, #0x1 @@ -544,7 +544,7 @@ FUN_02086784: ; 0x02086784 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r7, #0x0 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x14 @@ -655,7 +655,7 @@ FUN_02086878: ; 0x02086878 str r0, [sp, #0x10] add r0, r6, #0x0 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x2 mov r1, #0x47 bl ListMenuItems_ctor @@ -736,10 +736,10 @@ FUN_02086960: ; 0x02086960 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0x28 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 add r0, #0x28 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x48] mov r1, #0x0 bl FUN_02001C5C @@ -751,9 +751,9 @@ FUN_02086960: ; 0x02086960 FUN_0208698C: ; 0x0208698C push {r4, lr} add r4, r0, #0x0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0x0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} thumb_func_start FUN_0208699C diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index 5e0a8dfa..17c66660 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -644,7 +644,7 @@ _020874BC: cmp r0, #0x19 blt _020874DC ldr r0, _020874E0 ; =0x00000714 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] @@ -688,7 +688,7 @@ _0208750E: cmp r0, #0x2 bne _0208754C ldr r0, _02087550 ; =0x00000714 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x6c] mov r1, #0x2 bl FUN_0200C61C @@ -737,7 +737,7 @@ _0208756A: cmp r5, #0x1 bne _0208758C ldr r0, _020875A8 ; =0x00000714 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x6c] mov r1, #0x3 bl FUN_0200C61C @@ -790,7 +790,7 @@ _020875CE: cmp r5, #0x1 bne _020875F0 ldr r0, _0208760C ; =0x00000714 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x6c] mov r1, #0x4 bl FUN_0200C61C @@ -865,7 +865,7 @@ _02087658: mov r1, #0x5 bl FUN_0200C61C ldr r0, _02087818 ; =0x00000707 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x40] mov r1, #0x2 bl FUN_02086B70 @@ -1121,15 +1121,15 @@ _02087874: b _0208789A _02087884: ldr r0, _02087A0C ; =0x00000806 - bl FUN_020054C8 + bl PlaySE b _0208789A _0208788C: ldr r0, _02087A10 ; =0x000007AA - bl FUN_020054C8 + bl PlaySE b _0208789A _02087894: ldr r0, _02087A14 ; =0x00000815 - bl FUN_020054C8 + bl PlaySE _0208789A: ldr r0, [r4, #0x60] add r0, r0, #0x1 diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s index 1ab7b908..fd87dfb0 100644 --- a/arm9/asm/unk_02087A6C.s +++ b/arm9/asm/unk_02087A6C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s index 65d4db3d..a0d8867a 100644 --- a/arm9/asm/unk_02087D00.s +++ b/arm9/asm/unk_02087D00.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern UNK_020F96DC .extern UNK_020FA6E8 @@ -206,7 +206,7 @@ FUN_02087E40: ; 0x02087E40 mov r0, #0x3 mov r1, #0x2c lsl r2, r2, #0xc - bl FUN_0201681C + bl CreateHeap add r0, r4, #0x0 mov r1, #0x18 mov r2, #0x2c @@ -294,7 +294,7 @@ FUN_02087EE8: ; 0x02087EE8 add r0, r5, #0x0 bl OverlayManager_FreeData ldr r0, [r4, #0x0] - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_02088320.s b/arm9/asm/unk_02088320.s index aa080143..6439a5f7 100644 --- a/arm9/asm/unk_02088320.s +++ b/arm9/asm/unk_02088320.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02088814.s b/arm9/asm/unk_02088814.s index 1e955a77..7f0efabb 100644 --- a/arm9/asm/unk_02088814.s +++ b/arm9/asm/unk_02088814.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02088858.s b/arm9/asm/unk_02088858.s index 5f71517a..b471c877 100644 --- a/arm9/asm/unk_02088858.s +++ b/arm9/asm/unk_02088858.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata @@ -89,14 +89,14 @@ FUN_020888DC: ; 0x020888DC mov r0, #0x3 mov r1, #0x31 lsl r2, r2, #0xc - bl FUN_0201681C + bl CreateHeap add r0, r4, #0x0 bl OverlayManager_GetField18 ldr r0, [r0, #0x8] mov r1, #0x31 bl FUN_02088898 mov r0, #0x31 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x0 bl OS_ResetSystem mov r0, #0x1 diff --git a/arm9/asm/unk_0208898C.s b/arm9/asm/unk_0208898C.s index 6fef7584..0599aedb 100644 --- a/arm9/asm/unk_0208898C.s +++ b/arm9/asm/unk_0208898C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text @@ -33,7 +33,7 @@ FUN_020889B0: ; 0x020889B0 mov r0, #0x3 mov r1, #0x37 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap add r0, r4, #0x0 mov r1, #0x24 mov r2, #0x37 @@ -145,7 +145,7 @@ FUN_02088A78: ; 0x02088A78 add r0, r5, #0x0 bl OverlayManager_FreeData add r0, r6, #0x0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x1 pop {r4-r6, pc} .balign 4 diff --git a/arm9/asm/unk_02088AAC.s b/arm9/asm/unk_02088AAC.s deleted file mode 100644 index 6f47b864..00000000 --- a/arm9/asm/unk_02088AAC.s +++ /dev/null @@ -1,345 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020FD6F4 -UNK_020FD6F4: ; 0x020FD6F4 - .byte 0x04, 0xFF, 0x00, 0x00 - - .global UNK_020FD6F8 -UNK_020FD6F8: ; 0x020FD6F8 - .word MOD75_021E6BA0, MOD75_021E6D6C, MOD75_021E6F00, SDK_OVERLAY_MODULE_75_ID - - .global UNK_020FD708 -UNK_020FD708: ; 0x020FD708 - .word MOD73_021D74F0, MOD73_021D758C, MOD73_021D7640, SDK_OVERLAY_MODULE_73_ID - - .global UNK_020FD718 -UNK_020FD718: ; 0x020FD718 - .word MOD68_021D74E0, MOD68_021D75D8, MOD68_021D762C, SDK_OVERLAY_MODULE_68_ID - - .text - - thumb_func_start FUN_02088AAC -FUN_02088AAC: ; 0x02088AAC - push {r4, lr} - add r4, r1, #0x0 - ldr r1, [r4, #0x0] - cmp r1, #0x5 - bhi _02088AF6 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02088AC2: ; jump table (using 16-bit offset) - .short _02088ACE - _02088AC2 - 2; case 0 - .short _02088AD6 - _02088AC2 - 2; case 1 - .short _02088ADE - _02088AC2 - 2; case 2 - .short _02088AE6 - _02088AC2 - 2; case 3 - .short _02088AEE - _02088AC2 - 2; case 4 - .short _02088AF2 - _02088AC2 - 2; case 5 -_02088ACE: - bl FUN_02088B4C - str r0, [r4, #0x0] - b _02088AF6 -_02088AD6: - bl FUN_02088BA8 - str r0, [r4, #0x0] - b _02088AF6 -_02088ADE: - bl FUN_02088C3C - str r0, [r4, #0x0] - b _02088AF6 -_02088AE6: - bl FUN_02088CDC - str r0, [r4, #0x0] - b _02088AF6 -_02088AEE: - mov r0, #0x1 - pop {r4, pc} -_02088AF2: - mov r0, #0x4 - pop {r4, pc} -_02088AF6: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02088AFC -FUN_02088AFC: ; 0x02088AFC - push {r3-r5, lr} - sub sp, #0x10 - ldr r5, _02088B24 ; =UNK_020FD708 - add r3, sp, #0x0 - add r4, r0, #0x0 - add r2, r3, #0x0 - ldmia r5!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r5!, {r0-r1} - stmia r3!, {r0-r1} - add r0, r2, #0x0 - ldr r2, [r4, #0x0] - add r1, r4, #0x0 - bl OverlayManager_new - str r0, [r4, #0x1c] - mov r0, #0x2 - add sp, #0x10 - pop {r3-r5, pc} - nop -_02088B24: .word UNK_020FD708 - - thumb_func_start FUN_02088B28 -FUN_02088B28: ; 0x02088B28 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x1c - bl FUN_0208898C - cmp r0, #0x0 - bne _02088B3A - mov r0, #0x2 - pop {r4, pc} -_02088B3A: - ldr r0, [r4, #0x20] - cmp r0, #0x1 - bne _02088B44 - mov r0, #0x0 - pop {r4, pc} -_02088B44: - mov r0, #0x3 - pop {r4, pc} - - thumb_func_start FUN_02088B48 -FUN_02088B48: ; 0x02088B48 - mov r0, #0x4 - bx lr - - thumb_func_start FUN_02088B4C -FUN_02088B4C: ; 0x02088B4C - push {r3-r5, lr} - sub sp, #0x10 - ldr r3, _02088BA0 ; =UNK_020FD6F8 - add r2, sp, #0x0 - add r5, r0, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r5, #0x10] - ldr r1, _02088BA4 ; =UNK_020FD6F4 - ldr r0, [r0, #0x14] - ldr r2, [r5, #0x0] - bl CreateBagView - add r4, r0, #0x0 - ldrh r0, [r5, #0x6] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bne _02088B7A - mov r2, #0x5 - b _02088B7C -_02088B7A: - mov r2, #0x4 -_02088B7C: - ldr r1, [r5, #0x10] - lsl r2, r2, #0x18 - ldr r1, [r1, #0xc] - ldr r3, [r5, #0xc] - add r0, r4, #0x0 - lsr r2, r2, #0x18 - bl FUN_0206E314 - ldr r2, [r5, #0x0] - add r0, sp, #0x0 - add r1, r4, #0x0 - bl OverlayManager_new - str r0, [r5, #0x1c] - str r4, [r5, #0x18] - mov r0, #0x1 - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 -_02088BA0: .word UNK_020FD6F8 -_02088BA4: .word UNK_020FD6F4 - - thumb_func_start FUN_02088BA8 -FUN_02088BA8: ; 0x02088BA8 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x1c - bl FUN_0208898C - cmp r0, #0x0 - bne _02088BBA - mov r0, #0x1 - pop {r3-r5, pc} -_02088BBA: - ldr r0, [r4, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl BagView_new - add r5, r0, #0x0 - bl FUN_0206E308 - add r2, r0, #0x0 - ldr r1, [r4, #0x18] - add r0, r5, #0x0 - bl memcpy - ldr r0, [r4, #0x18] - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, #0x18] - add r0, r5, #0x0 - bl FUN_0206E37C - str r0, [r4, #0x8] - add r0, r5, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - bl FUN_0206E384 - cmp r0, #0x5 - bhi _02088C16 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02088C02: ; jump table (using 16-bit offset) - .short _02088C1E - _02088C02 - 2; case 0 - .short _02088C0E - _02088C02 - 2; case 1 - .short _02088C1E - _02088C02 - 2; case 2 - .short _02088C1E - _02088C02 - 2; case 3 - .short _02088C1E - _02088C02 - 2; case 4 - .short _02088C12 - _02088C02 - 2; case 5 -_02088C0E: - mov r0, #0x2 - pop {r3-r5, pc} -_02088C12: - mov r0, #0x5 - pop {r3-r5, pc} -_02088C16: - bl GF_AssertFail - mov r0, #0x95 - str r0, [r4, #0x8] -_02088C1E: - ldr r0, [r4, #0x10] - ldr r1, [r4, #0x8] - ldr r0, [r0, #0x14] - lsl r1, r1, #0x10 - ldr r3, [r4, #0x0] - lsr r1, r1, #0x10 - mov r2, #0x1 - bl Bag_TakeItem - cmp r0, #0x0 - bne _02088C38 - bl GF_AssertFail -_02088C38: - mov r0, #0x4 - pop {r3-r5, pc} - - thumb_func_start FUN_02088C3C -FUN_02088C3C: ; 0x02088C3C - push {r3-r7, lr} - sub sp, #0x18 - add r5, r0, #0x0 - ldr r0, [r5, #0x10] - ldr r3, _02088CD8 ; =UNK_020FD718 - ldr r0, [r0, #0x14] - add r2, sp, #0x8 - str r0, [sp, #0x0] - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [r5, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_020851B8 - str r0, [r5, #0x18] - ldr r1, [r5, #0x8] - mov r2, #0x1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_020851DC - mov r6, #0x0 - add r4, r6, #0x0 -_02088C70: - add r0, r4, #0x0 - bl BerryToItemId - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, [sp, #0x0] - ldr r3, [r5, #0x0] - add r1, r7, #0x0 - mov r2, #0x1 - bl Bag_HasItem - cmp r0, #0x1 - bne _02088C9A - ldr r0, [r5, #0x18] - add r1, r7, #0x0 - mov r2, #0x0 - bl FUN_020851DC - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 -_02088C9A: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x40 - blo _02088C70 - add r3, sp, #0x4 - ldr r0, [r5, #0xc] - mov r1, #0x4 - add r2, sp, #0x4 - add r3, #0x1 - bl FUN_0206F17C - add r2, sp, #0x4 - ldrb r1, [r2, #0x1] - add r3, r6, #0x2 - lsl r3, r3, #0x18 - ldrb r2, [r2, #0x0] - ldr r0, [r5, #0x18] - lsr r3, r3, #0x18 - bl FUN_020851F8 - ldr r1, [r5, #0x18] - ldr r2, [r5, #0x0] - add r0, sp, #0x8 - bl OverlayManager_new - str r0, [r5, #0x1c] - mov r0, #0x3 - add sp, #0x18 - pop {r3-r7, pc} - nop -_02088CD8: .word UNK_020FD718 - - thumb_func_start FUN_02088CDC -FUN_02088CDC: ; 0x02088CDC - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, #0x1c - bl FUN_0208898C - cmp r0, #0x0 - bne _02088CF2 - add sp, #0x4 - mov r0, #0x3 - pop {r3-r4, pc} -_02088CF2: - add r1, sp, #0x0 - ldr r0, [r4, #0x18] - add r1, #0x1 - add r2, sp, #0x0 - bl FUN_0208524C - add r3, sp, #0x0 - ldrb r2, [r3, #0x0] - ldrb r3, [r3, #0x1] - ldr r0, [r4, #0xc] - mov r1, #0x4 - bl FUN_0206F190 - ldr r0, [r4, #0x18] - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, #0x18] - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 diff --git a/arm9/asm/unk_02088D1C.s b/arm9/asm/unk_02088D1C.s index f82d0498..b5d502ee 100644 --- a/arm9/asm/unk_02088D1C.s +++ b/arm9/asm/unk_02088D1C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_02088DD8.s b/arm9/asm/unk_02088DD8.s index 1dda59b0..3df58ffe 100644 --- a/arm9/asm/unk_02088DD8.s +++ b/arm9/asm/unk_02088DD8.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_02088F0C.s b/arm9/asm/unk_02088F0C.s index aab23503..fa94ecfc 100644 --- a/arm9/asm/unk_02088F0C.s +++ b/arm9/asm/unk_02088F0C.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .rodata diff --git a/arm9/asm/unk_020893E0.s b/arm9/asm/unk_020893E0.s index 566bab92..5772c051 100644 --- a/arm9/asm/unk_020893E0.s +++ b/arm9/asm/unk_020893E0.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .section .data diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s index 3facd182..b6b6ec25 100644 --- a/arm9/asm/unk_02089498.s +++ b/arm9/asm/unk_02089498.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -42,7 +42,7 @@ FUN_02089498: ; 0x02089498 mov r0, #0x3 mov r1, #0x58 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0x0 mov r1, #0x38 mov r2, #0x58 @@ -119,7 +119,7 @@ _020894FC: str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0x0 bl FUN_0208961C add r0, r4, #0x0 @@ -197,7 +197,7 @@ FUN_020895F0: ; 0x020895F0 add r0, r5, #0x0 bl OverlayManager_FreeData add r0, r4, #0x0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x0 bl OS_ResetSystem mov r0, #0x1 @@ -209,7 +209,7 @@ FUN_02089610: ; 0x02089610 ldr r0, [r0, #0x14] bx r3 nop -_02089618: .word FUN_0201AB60 +_02089618: .word DoScheduledBgGpuUpdates thumb_func_start FUN_0208961C FUN_0208961C: ; 0x0208961C @@ -227,7 +227,7 @@ _02089628: add r0, sp, #0x34 bl GX_SetBanks ldr r0, [r4, #0x0] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x24 ldr r5, _020896CC ; =UNK_020FF314 str r0, [r4, #0x14] @@ -237,7 +237,7 @@ _02089628: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _020896D0 ; =UNK_020FF324 add r3, sp, #0x8 ldmia r5!, {r0-r1} @@ -252,10 +252,10 @@ _02089628: str r0, [r3, #0x0] ldr r0, [r4, #0x14] add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x14] mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] @@ -280,13 +280,13 @@ _02089628: ldr r3, [r4, #0x0] mov r1, #0x20 add r2, r0, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _020896DC ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _020896DC ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x5c pop {r4-r5, pc} .balign 4 @@ -303,31 +303,31 @@ FUN_020896E0: ; 0x020896E0 add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x1 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x2 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x3 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x4 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x5 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x6 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x7 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x14] mov r1, #0x0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x14] bl FreeToHeap pop {r4, pc} @@ -350,7 +350,7 @@ FUN_02089734: ; 0x02089734 ldr r0, [r4, #0x14] ldr r2, _02089778 ; =UNK_020FF304 add r1, #0x1c - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 @@ -371,7 +371,7 @@ FUN_0208977C: ; 0x0208977C push {r4, lr} add r4, r0, #0x0 add r0, #0x1c - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x18] bl DestroyMsgData pop {r4, pc} @@ -502,7 +502,7 @@ _0208986C: _0208987E: ldr r0, [r4, #0x14] add r1, r5, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r5, #0x1 _02089888: add r0, r5, #0x0 diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s index 9c06a4ab..7af6109f 100644 --- a/arm9/asm/unk_02089960.s +++ b/arm9/asm/unk_02089960.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -38,7 +38,7 @@ FUN_02089960: ; 0x02089960 mov r0, #0x3 mov r1, #0x58 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0x0 mov r1, #0x3c mov r2, #0x58 @@ -101,7 +101,7 @@ _020899B8: str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r6, #0x0 bl FUN_02089A6C add r0, r6, #0x0 @@ -141,7 +141,7 @@ FUN_02089A40: ; 0x02089A40 add r0, r5, #0x0 bl OverlayManager_FreeData add r0, r4, #0x0 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _02089A64 ; =SDK_OVERLAY_MODULE_83_ID ldr r1, _02089A68 ; =MOD83_0223A360 bl RegisterMainOverlay @@ -167,7 +167,7 @@ _02089A78: add r0, sp, #0x34 bl GX_SetBanks ldr r0, [r4, #0x0] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x24 ldr r5, _02089B1C ; =UNK_020FF380 str r0, [r4, #0x18] @@ -177,7 +177,7 @@ _02089A78: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02089B20 ; =UNK_020FF390 add r3, sp, #0x8 ldmia r5!, {r0-r1} @@ -192,10 +192,10 @@ _02089A78: str r0, [r3, #0x0] ldr r0, [r4, #0x18] add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] @@ -220,13 +220,13 @@ _02089A78: ldr r3, [r4, #0x0] mov r1, #0x20 add r2, r0, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x0 add r1, r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x4 mov r1, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x5c pop {r4-r5, pc} .balign 4 @@ -242,31 +242,31 @@ FUN_02089B2C: ; 0x02089B2C add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x1 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x2 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x3 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x4 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x5 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x6 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x7 mov r1, #0x0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x18] mov r1, #0x0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] bl FreeToHeap pop {r4, pc} @@ -289,7 +289,7 @@ FUN_02089B80: ; 0x02089B80 ldr r0, [r4, #0x18] ldr r2, _02089BC8 ; =UNK_020FF378 add r1, #0x20 - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 @@ -311,7 +311,7 @@ FUN_02089BCC: ; 0x02089BCC push {r4, lr} add r4, r0, #0x0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x1c] bl DestroyMsgData pop {r4, pc} @@ -373,10 +373,10 @@ _02089C34: _02089C3C: ldr r1, _02089CC8 ; =0x00006C21 add r0, r5, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _02089CC8 ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x6 mov r1, #0x1 str r0, [sp, #0x0] @@ -424,10 +424,10 @@ _02089CA2: bne _02089CC2 add r0, r5, #0x0 add r1, r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x4 add r1, r5, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x5 str r0, [r4, #0x4] b _02089CC2 diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s index e7b88272..4ef386dd 100644 --- a/arm9/asm/unk_02089D90.s +++ b/arm9/asm/unk_02089D90.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -57,7 +57,7 @@ FUN_02089D90: ; 0x02089D90 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, _02089EFC ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -79,18 +79,18 @@ FUN_02089D90: ; 0x02089D90 ldr r0, _02089F0C ; =UNK_020FF418 bl GX_SetBanks add r0, r4, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc add r5, r0, #0x0 ldr r0, _02089F10 ; =UNK_020FF3EC - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0x0 ldr r2, _02089F14 ; =UNK_020FF3FC add r0, r5, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _02089F18 ; =0x000001F7 @@ -106,13 +106,13 @@ FUN_02089D90: ; 0x02089D90 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _02089F1C ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _02089F1C ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x1 mov r1, #0x1a mov r2, #0x5 @@ -128,7 +128,7 @@ FUN_02089D90: ; 0x02089D90 ldr r2, _02089F20 ; =UNK_020FF3E4 add r0, r5, #0x0 add r1, sp, #0xc - bl FUN_02019150 + bl AddWindow mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s index b5c93a8a..63f6e77a 100644 --- a/arm9/asm/unk_02089F24.s +++ b/arm9/asm/unk_02089F24.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain .extern UNK_020FF3E4 @@ -61,7 +61,7 @@ FUN_02089F24: ; 0x02089F24 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, _0208A090 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -83,18 +83,18 @@ FUN_02089F24: ; 0x02089F24 ldr r0, _0208A0A0 ; =UNK_020FF418 bl GX_SetBanks add r0, r4, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc add r5, r0, #0x0 ldr r0, _0208A0A4 ; =UNK_020FF3EC - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0x0 ldr r2, _0208A0A8 ; =UNK_020FF3FC add r0, r5, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0208A0AC ; =0x000001F7 @@ -110,13 +110,13 @@ FUN_02089F24: ; 0x02089F24 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _0208A0B0 ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _0208A0B0 ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x1 mov r1, #0x1a mov r2, #0x5 @@ -132,7 +132,7 @@ FUN_02089F24: ; 0x02089F24 ldr r2, _0208A0B4 ; =UNK_020FF3E4 add r0, r5, #0x0 add r1, sp, #0xc - bl FUN_02019150 + bl AddWindow mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 @@ -230,7 +230,7 @@ _0208A0C8: str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, _0208A230 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] @@ -252,18 +252,18 @@ _0208A0C8: ldr r0, _0208A240 ; =UNK_020FF474 bl GX_SetBanks add r0, r4, #0x0 - bl FUN_02016B94 + bl BgConfig_Alloc add r5, r0, #0x0 ldr r0, _0208A244 ; =UNK_020FF448 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0x0 ldr r2, _0208A248 ; =UNK_020FF458 add r0, r5, #0x0 add r3, r1, #0x0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0x0 mov r1, #0x0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0208A24C ; =0x000001F7 @@ -279,13 +279,13 @@ _0208A0C8: mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _0208A250 ; =0x00006C21 mov r0, #0x0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _0208A250 ; =0x00006C21 mov r0, #0x4 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #0x1 mov r1, #0x1a mov r2, #0x6 @@ -301,7 +301,7 @@ _0208A0C8: ldr r2, _0208A254 ; =UNK_020FF440 add r0, r5, #0x0 add r1, sp, #0xc - bl FUN_02019150 + bl AddWindow mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 diff --git a/arm9/asm/unk_0208A258.s b/arm9/asm/unk_0208A258.s index 21a8f91a..450155ad 100644 --- a/arm9/asm/unk_0208A258.s +++ b/arm9/asm/unk_0208A258.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .text diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index f96c2e10..8cc2030f 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -1,5 +1,5 @@ - .include "asm/macros.inc" - .include "global.inc" + .include "asm/macros.inc" + .include "global.inc" .extern gMain @@ -94,36 +94,36 @@ FUN_0208A400: ; 0x0208A400 push {r4, lr} add r4, r0, #0x0 add r0, #0x18 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _0208A41E add r0, r4, #0x0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0x0 add r0, #0x18 bl InitWindow _0208A41E: add r0, r4, #0x0 add r0, #0x28 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _0208A43A add r0, r4, #0x0 add r0, #0x28 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0x0 add r0, #0x28 bl InitWindow _0208A43A: add r0, r4, #0x0 add r0, #0x38 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _0208A456 add r0, r4, #0x0 add r0, #0x38 - bl FUN_02019178 + bl RemoveWindow add r4, #0x38 add r0, r4, #0x0 bl InitWindow @@ -455,7 +455,7 @@ _0208A6F4: bl ReadMsgDataIntoString _0208A6FA: add r0, r4, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _0208A722 ldr r0, [r5, #0x0] @@ -508,7 +508,7 @@ FUN_0208A760: ; 0x0208A760 add r4, r0, #0x0 add r4, #0x18 add r0, r4, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 beq _0208A778 add r0, r4, #0x0 @@ -526,7 +526,7 @@ FUN_0208A77C: ; 0x0208A77C add r7, r5, #0x0 add r7, #0x28 add r0, r7, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _0208A808 mov r0, #0x0 @@ -553,7 +553,7 @@ FUN_0208A77C: ; 0x0208A77C ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x11 - bl FUN_02019064 + bl AddWindowParameterized add r0, r7, #0x0 mov r1, #0xf bl FillWindowPixelBuffer @@ -614,7 +614,7 @@ FUN_0208A82C: ; 0x0208A82C add r7, r5, #0x0 add r7, #0x38 add r0, r7, #0x0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0x0 bne _0208A8B8 mov r0, #0x0 @@ -641,7 +641,7 @@ FUN_0208A82C: ; 0x0208A82C ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x19 - bl FUN_02019064 + bl AddWindowParameterized add r0, r7, #0x0 mov r1, #0xf bl FillWindowPixelBuffer @@ -742,7 +742,7 @@ _0208A928: tst r1, r0 beq _0208A93A ldr r0, _0208A994 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add sp, #0x8 ldr r0, [r4, #0x5c] pop {r4, pc} @@ -751,7 +751,7 @@ _0208A93A: tst r0, r1 beq _0208A94E ldr r0, _0208A994 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x60] add sp, #0x8 sub r0, r0, #0x1 @@ -779,9 +779,9 @@ _0208A954: lsl r3, r3, #0x4 bl ListMenuUpdateCursorObj ldr r0, [r4, #0x68] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, _0208A994 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x0 mvn r0, r0 add sp, #0x8 diff --git a/arm9/global.inc b/arm9/global.inc index c513e6b4..fb7fe343 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -220,7 +220,7 @@ .extern FUN_02002218 .extern RenderText .extern FUN_02002840 -.extern FUN_02002B60 +.extern TextFlags_SetCanABSpeedUpPrint .extern FUN_02002B7C .extern FUN_02002BB8 .extern FUN_02002BD4 @@ -350,7 +350,7 @@ .extern FUN_0200541C .extern FUN_02005454 .extern FUN_020054A8 -.extern FUN_020054C8 +.extern PlaySE .extern FUN_020054F0 .extern FUN_02005508 .extern FUN_02005514 @@ -1010,116 +1010,116 @@ .extern Main_SetVBlankIntrCB .extern FUN_02015F1C .extern FUN_02015F34 -.extern FUN_020161A4 -.extern FUN_020161F8 -.extern FUN_020162FC -.extern FUN_02016324 -.extern FUN_020163BC +.extern AllocAndReadFile +.extern OpenAndReadWholeFile +.extern ClearFileCache +.extern OpenFileCached +.extern InitKeypadAndTouchpad .extern FUN_02016438 .extern FUN_02016444 .extern FUN_02016454 -.extern FUN_02016464 -.extern FUN_0201669C -.extern FUN_020166A8 -.extern FUN_020166B8 -.extern FUN_020166C8 -.extern FUN_0201681C -.extern FUN_02016828 -.extern FUN_020168D0 +.extern ReadKeypadAndTocuhpad +.extern SetKeyRepeatTimers +.extern SetSoftResetDisableMask +.extern ClearSoftResetDisableMask +.extern InitHeapSystem +.extern CreateHeap +.extern CreateHeapAtEnd +.extern DestroyHeap .extern AllocFromHeap .extern AllocFromHeapAtEnd .extern FreeToHeap .extern FreeToHeapExplicit -.extern FUN_02016AF8 -.extern FUN_02016B20 -.extern FUN_02016B44 -.extern FUN_02016B90 -.extern FUN_02016B94 -.extern FUN_02016BB8 -.extern FUN_02016BBC -.extern FUN_02016BF4 -.extern FUN_02016C18 -.extern FUN_020170F4 -.extern FUN_020178A0 -.extern FUN_020178BC -.extern FUN_0201797C -.extern FUN_020179E0 -.extern FUN_02017B48 -.extern FUN_02017B54 -.extern FUN_02017B60 -.extern FUN_02017BD0 -.extern FUN_02017CD0 -.extern FUN_02017CE8 -.extern FUN_02017DFC -.extern FUN_02017E14 -.extern FUN_02017F18 -.extern FUN_02017F48 -.extern FUN_02017FB4 -.extern FUN_02017FE4 -.extern FUN_02018148 -.extern FUN_02018170 -.extern FUN_020181EC -.extern FUN_02018540 -.extern FUN_020186B4 -.extern FUN_02018744 -.extern FUN_02018768 -.extern FUN_0201878C -.extern FUN_020187B0 -.extern FUN_0201886C -.extern FUN_02018878 -.extern FUN_02018884 +.extern GF_ExpHeap_FndGetTotalFreeSize +.extern GF_ExpHeap_FndInitAllocator +.extern ReallocFromHeap +.extern GF_heap_c_dummy_return_true +.extern BgConfig_Alloc +.extern BgConfig_GetHeapId +.extern SetBothScreensModesAndDisable +.extern SetScreenModeAndDisable +.extern InitBgFromTemplate +.extern SetBgControlParam +.extern FreeBgTilemapBuffer +.extern SetBgPriority +.extern ToggleBgLayer +.extern BgSetPosTextAndCommit +.extern Bg_GetXpos +.extern Bg_GetYpos +.extern Bg_SetTextDimAndAffineParams +.extern SetBgAffine +.extern BgCommitTilemapBufferToVram +.extern BgCopyOrUncompressTilemapBufferRangeToVram +.extern BG_LoadScreenTilemapData +.extern BG_LoadCharTilesData +.extern BG_ClearCharDataRange +.extern BG_FillCharDataRange +.extern BG_LoadPlttData +.extern BG_SetMaskColor +.extern LoadRectToBgTilemapRect +.extern CopyToBgTilemapRect +.extern CopyRectToBgTilemapRect +.extern FillBgTilemapRect +.extern BgTilemapRectChangePalette +.extern BgClearTilemapBufferAndCommit +.extern BgFillTilemapBufferAndCommit +.extern BgFillTilemapBufferAndSchedule +.extern BgGetCharPtr +.extern GetBgTilemapBuffer +.extern GetBgAffineRotation +.extern GetBgPriority .extern BlitBitmapRect4Bit -.extern FUN_02018F4C +.extern FillBitmapRect8Bit .extern AllocWindows .extern InitWindow -.extern FUN_02019048 -.extern FUN_02019064 -.extern FUN_020190EC -.extern FUN_02019150 -.extern FUN_02019178 -.extern FUN_020191A4 +.extern WindowIsInUse +.extern AddWindowParameterized +.extern AddTextWindowTopLeftCorner +.extern AddWindow +.extern RemoveWindow +.extern WindowArray_dtor .extern CopyWindowToVram -.extern FUN_02019220 -.extern FUN_02019270 -.extern FUN_0201928C -.extern FUN_020192B8 -.extern FUN_020192D4 -.extern FUN_02019358 -.extern FUN_020193B4 -.extern FUN_02019444 -.extern FUN_0201949C -.extern FUN_020194C8 -.extern FUN_020194E0 -.extern FUN_0201951C -.extern FUN_02019548 -.extern FUN_02019570 -.extern FUN_0201958C -.extern FUN_020195A8 -.extern FUN_020195D0 -.extern FUN_020195E4 -.extern FUN_0201960C +.extern ScheduleWindowCopyToVram +.extern PutWindowTilemap +.extern PutWindowTilemapRectAnchoredTopLeft +.extern ClearWindowTilemap +.extern PutWindowTilemap_TextMode +.extern PutWindowTilemap_AffineMode +.extern ClearWindowTilemapText +.extern ClearWindowTilemapAffine +.extern CopyWindowToVram_TextMode +.extern ScheduleWindowCopyToVram_TextMode +.extern CopyWindowToVram_AffineMode +.extern ScheduleWindowCopyToVram_AffineMode +.extern CopyWindowPixelsToVram_TextMode +.extern ClearWindowTilemapAndCopyToVram +.extern ClearWindowTilemapAndScheduleTransfer +.extern ClearWindowTilemapAndNowCopy_TextMode +.extern ClearWindowTilemapAndCommit_TextMode +.extern ClearWindowTilemapAndNowCopy_AffineMode +.extern ClearWindowTilemapAndCommit_AffineMode .extern FillWindowPixelBuffer .extern BlitBitmapRectToWindow .extern BlitBitmapRect .extern FillWindowPixelRect -.extern FUN_0201974C +.extern CopyGlyphToWindow .extern ScrollWindow -.extern FUN_0201AB08 +.extern GetWindowBgId .extern GetWindowWidth .extern GetWindowHeight -.extern FUN_0201AB14 -.extern FUN_0201AB18 -.extern FUN_0201AB1C -.extern FUN_0201AB20 -.extern FUN_0201AB24 -.extern FUN_0201AB28 -.extern FUN_0201AB44 -.extern FUN_0201AB60 -.extern FUN_0201AC68 -.extern FUN_0201AEE4 -.extern FUN_0201AF08 -.extern FUN_0201AF50 -.extern FUN_0201AFBC +.extern GetWindowX +.extern GetWindowY +.extern MoveWindowX +.extern MoveWindowY +.extern SetWindowPaletteNum +.extern LoadCharacterDataFromFile +.extern LoadPaletteDataFromFile +.extern DoScheduledBgGpuUpdates +.extern ScheduleBgTilemapBufferTransfer +.extern ScheduleSetBgPosText +.extern ScheduleSetBgAffineRotation +.extern ScheduleSetBgAffinePos +.extern DoesPixelAtScreenXYMatchPtrVal .extern FUN_0201B21C .extern FUN_0201B234 .extern FUN_0201B254 @@ -3319,7 +3319,7 @@ .extern ScrCmd_Unk0216 .extern ScrCmd_Unk0217 .extern ScrCmd_GiveMon -.extern ScrCmd_GetPartySpecies +.extern ScrCmd_GetPartyMonSpecies .extern ScrCmd_CheckPartyMonOTID .extern ScrCmd_GiveEgg .extern ScrCmd_SetPartyMonMove @@ -3331,29 +3331,29 @@ .extern ScrCmd_GetPartyMonNature .extern ScrCmd_FindPartyMonWithNature .extern ScrCmd_GetPartyMonFriendship -.extern ScrCmd_Unk01BA -.extern ScrCmd_Unk01BB -.extern ScrCmd_Unk0281 -.extern ScrCmd_Unk0247 -.extern ScrCmd_Unk0248 -.extern ScrCmd_Unk0177 -.extern ScrCmd_Unk019A -.extern ScrCmd_Unk019B -.extern ScrCmd_Unk019C -.extern ScrCmd_Unk019D -.extern ScrCmd_Unk0119 -.extern ScrCmd_Unk011A -.extern ScrCmd_Unk01C8 -.extern ScrCmd_Unk01C9 -.extern ScrCmd_Unk01CA -.extern ScrCmd_Unk01EE -.extern ScrCmd_Unk01F0 -.extern ScrCmd_Unk01C0 -.extern ScrCmd_Unk022E -.extern ScrCmd_Unk022F -.extern ScrCmd_Unk0230 -.extern ScrCmd_Unk0231 -.extern ScrCmd_Unk02B7 +.extern ScrCmd_AddPartyMonFriendship +.extern ScrCmd_SubtractPartyMonFriendship +.extern ScrCmd_GetPartyMonContestCondition +.extern ScrCmd_GetLeadingPartyMonSlot +.extern ScrCmd_GetPartyMonTypes +.extern ScrCmd_CountPartyMons +.extern ScrCmd_CountPartyMons_OmitEggs +.extern ScrCmd_CountAvailablePartyMons_IgnoreSlot +.extern ScrCmd_CountAvailablePartyAndPCMons +.extern ScrCmd_GetPartyEggCount +.extern ScrCmd_CheckPartyForPokerus +.extern ScrCmd_GetPartyMonGender +.extern ScrCmd_CountPartyMonMoves +.extern ScrCmd_ForgetPartyMonMove +.extern ScrCmd_GetPartyMonMove +.extern ScrCmd_GetPartyMonHeldItem +.extern ScrCmd_ResetPartyMonHeldItem +.extern ScrCmd_CheckPartyForSpecies +.extern ScrCmd_CountPartyMonRibbons +.extern ScrCmd_CountTotalPartyRibbons +.extern ScrCmd_PartyMonHasRibbon +.extern ScrCmd_GivePartyMonRibbon +.extern ScrCmd_CheckPartyForBadEgg .extern ScrCmd_Unk00A0 .extern ScrCmd_CountFossils .extern ScrCmd_GetFossilPokemon @@ -4974,10 +4974,10 @@ .extern FUN_0206E2AC .extern FUN_0206E2E0 .extern FUN_0206E2E8 -.extern BagView_new -.extern FUN_0206E308 +.extern BagView_New +.extern BagView_sizeof .extern FUN_0206E314 -.extern BagView_setitem +.extern BagView_SetItem .extern FUN_0206E340 .extern FUN_0206E354 .extern FUN_0206E358 @@ -5798,10 +5798,10 @@ .extern NNS_SndArcPlayerStartSeqEx .extern NNS_SndArcPlayerStartSeq .extern NNS_SndArcPlayerSetup -.extern FUN_020C5D8C -.extern FUN_020C5E04 -.extern FUN_020C6034 -.extern FUN_020C605C +.extern GX_GetBankForTex +.extern GX_DisableBankForSubBG +.extern GX_ResetBankForSubBGExtPltt +.extern GX_ResetBankForSubOBJ .extern CARDi_TryWaitAsync .extern FUN_020D9564 .extern FX_Atan @@ -5906,12 +5906,12 @@ .extern GX_DisableBankForClearImage .extern GX_DisableBankForLCDC .extern GX_DisableBankForOBJExtPltt -.extern GX_DisableBankForOBJExtPltt_2 +.extern GX_DisableBankForOBJ .extern GX_DisableBankForSubBGExtPltt .extern GX_DisableBankForSubOBJExtPltt -.extern GX_DisableBankForSubOBJExtPltt_2 +.extern GX_DisableBankForSubOBJ .extern GX_DisableBankForTexPltt -.extern GX_DisableBankForTexPltt_2 +.extern GX_DisableBankForTex .extern GX_DispOff .extern GX_DispOn .extern GX_EndLoadBGExtPltt @@ -5920,12 +5920,12 @@ .extern GX_EndLoadTex .extern GX_EndLoadTexPltt .extern GX_GetBankForBGExtPltt -.extern GX_GetBankForBGExtPltt_2 +.extern GX_GetBankForBG .extern GX_GetBankForLCDC .extern GX_GetBankForOBJ .extern GX_GetBankForOBJExtPltt .extern GX_GetBankForSubBGExtPltt -.extern GX_GetBankForSubBGExtPltt_2 +.extern GX_GetBankForSubBG .extern GX_GetBankForSubOBJ .extern GX_GetBankForSubOBJExtPltt .extern GX_GetBankForTexPltt @@ -5956,7 +5956,7 @@ .extern GX_ResetBankForOBJ .extern GX_ResetBankForOBJExtPltt .extern GX_ResetBankForSubBG -.extern GX_ResetBankForSubOBJ +.extern GX_ResetBankForSubOBJExtPltt .extern GX_ResetBankForTex .extern GX_ResetBankForTexPltt .extern GX_SendFifo48B @@ -8228,11 +8228,11 @@ .extern UNK_021C93A0 .extern UNK_021C9520 .extern UNK_021C9EE0 -.extern UNK_021D74A8 +.extern errno .extern Unk_0210683C -.extern UNK_0210420C -.extern UNK_0210428C -.extern UNK_0210430C +.extern __lower_mapC +.extern __upper_mapC +.extern __msl_digit .extern Unk_02106840 .extern Unk_02106900 .extern Unk_02106A00 @@ -8403,7 +8403,7 @@ .extern atod .extern atol .extern cardi_common -.extern disableBankForX_ +.extern GX_DisableBankForBG .extern double2hex .extern double2hex_wide .extern exit @@ -8458,7 +8458,7 @@ .extern strspn .extern strstr .extern strtold -.extern strtold2 +.extern strtol .extern strtoul .extern swprintf .extern sys_exit @@ -8668,3 +8668,32 @@ .extern NNSi_SndArcLoadSeq .extern NNSi_SndSeqArcGetSeqInfo .extern NNSi_SndPlayerFreeSeqPlayer +.extern OSi_ThreadInfo +.extern __StringRead +.extern __console_exit +.extern __cs +.extern __cs_id +.extern __cs_ref +.extern __double_huge +.extern __files +.extern __fill_mem +.extern __float_huge +.extern __float_nan +.extern __flush_all +.extern __flush_buffer +.extern __fpclassifyf +.extern __memrchr +.extern __msl_digit +.extern __msl_generic_count_bits64 +.extern __prep_buffer +.extern __signbitf +.extern __stdio_exit +.extern __wctype_mapC +.extern copysign +.extern errno +.extern fabs +.extern fwide +.extern memchr +.extern wcschr +.extern wcscpy +.extern wmemchr diff --git a/arm9/lib/include/GX_bgcnt.h b/arm9/lib/include/GX_bgcnt.h index a581443e..b64d4432 100644 --- a/arm9/lib/include/GX_bgcnt.h +++ b/arm9/lib/include/GX_bgcnt.h @@ -285,6 +285,14 @@ typedef enum } GXBGExtPltt; +typedef enum +{ + GX_BG_EXTMODE_256x16PLTT = (0 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (0 << REG_G2_BG2CNT_COLORMODE_SHIFT), + GX_BG_EXTMODE_256BITMAP = (0 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (1 << REG_G2_BG2CNT_COLORMODE_SHIFT), + GX_BG_EXTMODE_DCBITMAP = (1 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (1 << REG_G2_BG2CNT_COLORMODE_SHIFT) +} +GXBGExtMode; + //GX_capture typedef enum { @@ -344,4 +352,410 @@ typedef enum } GXCaptureMode; +static inline void G2_SetBG0Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt) +{ + reg_G2_BG0CNT = (u16)((reg_G2_BG0CNT & (REG_G2_BG0CNT_PRIORITY_MASK | REG_G2_BG0CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG0CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG0CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG0CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG0CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2_BG0CNT_BGPLTTSLOT_SHIFT)); +} + +static inline void G2S_SetBG0Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt) +{ + reg_G2S_DB_BG0CNT = (u16)((reg_G2S_DB_BG0CNT & (REG_G2S_DB_BG0CNT_PRIORITY_MASK | REG_G2S_DB_BG0CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG0CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG0CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT)); +} + +static inline void G2_SetBG1Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt) +{ + reg_G2_BG1CNT = (u16)((reg_G2_BG1CNT & (REG_G2_BG1CNT_PRIORITY_MASK | REG_G2_BG1CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG1CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG1CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG1CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG1CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2_BG1CNT_BGPLTTSLOT_SHIFT)); +} + +static inline void G2S_SetBG1Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt) +{ + reg_G2S_DB_BG1CNT = (u16)((reg_G2S_DB_BG1CNT & (REG_G2S_DB_BG1CNT_PRIORITY_MASK | REG_G2S_DB_BG1CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG1CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG1CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT)); +} + +static inline void G2_SetBG2ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ((REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG2CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT)); +} + +static inline void G2S_SetBG2ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ((REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG2CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT)); +} + +static inline void G2_SetBG2ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ((REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG2ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ((REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG2Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG2Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG2Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG2Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG2ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG2ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG2ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG2ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG3ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ((REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG3CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT)); +} + +static inline void G2S_SetBG3ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ((REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG3CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT)); +} + +static inline void G2_SetBG3ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ((REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG3ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ((REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG3Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG3Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG3Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG3Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG3ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG3ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2_SetBG3ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2S_SetBG3ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT)); +} + +static inline void G2_BG0Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2_BG0CNT |= REG_G2_BG0CNT_MOSAIC_MASK; + } + else + { + reg_G2_BG0CNT &= ~REG_G2_BG0CNT_MOSAIC_MASK; + } +} + +static inline void G2S_BG0Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2S_DB_BG0CNT |= REG_G2S_DB_BG0CNT_MOSAIC_MASK; + } + else + { + reg_G2S_DB_BG0CNT &= ~REG_G2S_DB_BG0CNT_MOSAIC_MASK; + } +} + +static inline void G2_BG1Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2_BG1CNT |= REG_G2_BG1CNT_MOSAIC_MASK; + } + else + { + reg_G2_BG1CNT &= ~REG_G2_BG1CNT_MOSAIC_MASK; + } +} + +static inline void G2S_BG1Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2S_DB_BG1CNT |= REG_G2S_DB_BG1CNT_MOSAIC_MASK; + } + else + { + reg_G2S_DB_BG1CNT &= ~REG_G2S_DB_BG1CNT_MOSAIC_MASK; + } +} + +static inline void G2_BG2Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2_BG2CNT |= REG_G2_BG2CNT_MOSAIC_MASK; + } + else + { + reg_G2_BG2CNT &= ~REG_G2_BG2CNT_MOSAIC_MASK; + } +} + +static inline void G2S_BG2Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2S_DB_BG2CNT |= REG_G2S_DB_BG2CNT_MOSAIC_MASK; + } + else + { + reg_G2S_DB_BG2CNT &= ~REG_G2S_DB_BG2CNT_MOSAIC_MASK; + } +} + +static inline void G2_BG3Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2_BG3CNT |= REG_G2_BG3CNT_MOSAIC_MASK; + } + else + { + reg_G2_BG3CNT &= ~REG_G2_BG3CNT_MOSAIC_MASK; + } +} + +static inline void G2S_BG3Mosaic(BOOL enable) +{ + if (enable) + { + reg_G2S_DB_BG3CNT |= REG_G2S_DB_BG3CNT_MOSAIC_MASK; + } + else + { + reg_G2S_DB_BG3CNT &= ~REG_G2S_DB_BG3CNT_MOSAIC_MASK; + } +} + +static inline void G2_SetBG0Priority(int priority) +{ + reg_G2_BG0CNT = (u16)((reg_G2_BG0CNT & ~REG_G2_BG0CNT_PRIORITY_MASK) | (priority << REG_G2_BG0CNT_PRIORITY_SHIFT)); +} + +static inline void G2S_SetBG0Priority(int priority) +{ + reg_G2S_DB_BG0CNT = (u16)((reg_G2S_DB_BG0CNT & ~REG_G2S_DB_BG0CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG0CNT_PRIORITY_SHIFT)); +} + +static inline void G2_SetBG1Priority(int priority) +{ + reg_G2_BG1CNT = (u16)((reg_G2_BG1CNT & ~REG_G2_BG1CNT_PRIORITY_MASK) | (priority << REG_G2_BG1CNT_PRIORITY_SHIFT)); +} + +static inline void G2S_SetBG1Priority(int priority) +{ + reg_G2S_DB_BG1CNT = (u16)((reg_G2S_DB_BG1CNT & ~REG_G2S_DB_BG1CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG1CNT_PRIORITY_SHIFT)); +} + +static inline void G2_SetBG2Priority(int priority) +{ + reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ~REG_G2_BG2CNT_PRIORITY_MASK) | (priority << REG_G2_BG2CNT_PRIORITY_SHIFT)); +} + +static inline void G2S_SetBG2Priority(int priority) +{ + reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ~REG_G2S_DB_BG2CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG2CNT_PRIORITY_SHIFT)); +} + +static inline void G2_SetBG3Priority(int priority) +{ + reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ~REG_G2_BG3CNT_PRIORITY_MASK) | (priority << REG_G2_BG3CNT_PRIORITY_SHIFT)); +} + +static inline void G2S_SetBG3Priority(int priority) +{ + reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ~REG_G2S_DB_BG3CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG3CNT_PRIORITY_SHIFT)); +} + +static inline GXBg01Control G2_GetBG0Control(void) +{ + return *(volatile GXBg01Control *)®_G2_BG0CNT; +} + +static inline GXBg01Control G2S_GetBG0Control(void) +{ + return *(volatile GXBg01Control *)®_G2S_DB_BG0CNT; +} + +static inline GXBg01Control G2_GetBG1Control(void) +{ + return *(volatile GXBg01Control *)®_G2_BG1CNT; +} + +static inline GXBg01Control G2S_GetBG1Control(void) +{ + return *(volatile GXBg01Control *)®_G2S_DB_BG1CNT; +} + +static inline GXBg23ControlText G2_GetBG2ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2_BG2CNT; +} + +static inline GXBg23ControlText G2S_GetBG2ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlAffine G2_GetBG2ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2_BG2CNT; +} + +static inline GXBg23ControlAffine G2S_GetBG2ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23Control256x16Pltt G2_GetBG2Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2_BG2CNT; +} + +static inline GXBg23Control256x16Pltt G2S_GetBG2Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23Control256Bmp G2_GetBG2Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2_BG2CNT; +} + +static inline GXBg23Control256Bmp G2S_GetBG2Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlDCBmp G2_GetBG2ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2_BG2CNT; +} + +static inline GXBg23ControlDCBmp G2S_GetBG2ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg2ControlLargeBmp G2_GetBG2ControlLargeBmp(void) +{ + return *(volatile GXBg2ControlLargeBmp *)®_G2_BG2CNT; +} + +static inline GXBg2ControlLargeBmp G2S_GetBG2ControlLargeBmp(void) +{ + return *(volatile GXBg2ControlLargeBmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlText G2_GetBG3ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2_BG3CNT; +} + +static inline GXBg23ControlText G2S_GetBG3ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23ControlAffine G2_GetBG3ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2_BG3CNT; +} + +static inline GXBg23ControlAffine G2S_GetBG3ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23Control256x16Pltt G2_GetBG3Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2_BG3CNT; +} + +static inline GXBg23Control256x16Pltt G2S_GetBG3Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23Control256Bmp G2_GetBG3Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2_BG3CNT; +} + +static inline GXBg23Control256Bmp G2S_GetBG3Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23ControlDCBmp G2_GetBG3ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2_BG3CNT; +} + +static inline GXBg23ControlDCBmp G2S_GetBG3ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2S_DB_BG3CNT; +} + #endif //GUARD_GX_BGCNT_H diff --git a/arm9/lib/include/GX_g2.h b/arm9/lib/include/GX_g2.h index 372be12b..97fa0e10 100644 --- a/arm9/lib/include/GX_g2.h +++ b/arm9/lib/include/GX_g2.h @@ -4,7 +4,7 @@ #include "fx.h" #include "registers.h" -void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d); +void G2x_SetBGyAffine_(u32 ptr, const struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d); void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d); void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness); void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness); @@ -43,6 +43,84 @@ static inline void G2_SetWndOutsidePlane(int wnd, BOOL effect) reg_G2_WINOUT = (u16)tmp; } +static inline void G2_SetBG0Offset(int hOffset, int vOffset) +{ + reg_G2_BG0OFS = (u32)(((hOffset << REG_G2_BG0OFS_HOFFSET_SHIFT) & REG_G2_BG0OFS_HOFFSET_MASK) | + ((vOffset << REG_G2_BG0OFS_VOFFSET_SHIFT) & REG_G2_BG0OFS_VOFFSET_MASK)); +} + +static inline void G2_SetBG1Offset(int hOffset, int vOffset) +{ + reg_G2_BG1OFS = (u32)(((hOffset << REG_G2_BG1OFS_HOFFSET_SHIFT) & REG_G2_BG1OFS_HOFFSET_MASK) | + ((vOffset << REG_G2_BG1OFS_VOFFSET_SHIFT) & REG_G2_BG1OFS_VOFFSET_MASK)); +} + +static inline void G2_SetBG2Offset(int hOffset, int vOffset) +{ + reg_G2_BG2OFS = (u32)(((hOffset << REG_G2_BG2OFS_HOFFSET_SHIFT) & REG_G2_BG2OFS_HOFFSET_MASK) | + ((vOffset << REG_G2_BG2OFS_VOFFSET_SHIFT) & REG_G2_BG2OFS_VOFFSET_MASK)); +} + +static inline void G2_SetBG3Offset(int hOffset, int vOffset) +{ + reg_G2_BG3OFS = (u32)(((hOffset << REG_G2_BG3OFS_HOFFSET_SHIFT) & REG_G2_BG3OFS_HOFFSET_MASK) | + ((vOffset << REG_G2_BG3OFS_VOFFSET_SHIFT) & REG_G2_BG3OFS_VOFFSET_MASK)); +} + +static inline void G2S_SetBG0Offset(int hOffset, int vOffset) +{ + reg_G2S_DB_BG0OFS = (u32)(((hOffset << REG_G2S_DB_BG0OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG0OFS_HOFFSET_MASK) | + ((vOffset << REG_G2S_DB_BG0OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG0OFS_VOFFSET_MASK)); +} + +static inline void G2S_SetBG1Offset(int hOffset, int vOffset) +{ + reg_G2S_DB_BG1OFS = (u32)(((hOffset << REG_G2S_DB_BG1OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG1OFS_HOFFSET_MASK) | + ((vOffset << REG_G2S_DB_BG1OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG1OFS_VOFFSET_MASK)); +} + +static inline void G2S_SetBG2Offset(int hOffset, int vOffset) +{ + reg_G2S_DB_BG2OFS = (u32)(((hOffset << REG_G2S_DB_BG2OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG2OFS_HOFFSET_MASK) | + ((vOffset << REG_G2S_DB_BG2OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG2OFS_VOFFSET_MASK)); +} + +static inline void G2S_SetBG3Offset(int hOffset, int vOffset) +{ + reg_G2S_DB_BG3OFS = (u32)(((hOffset << REG_G2S_DB_BG3OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG3OFS_HOFFSET_MASK) | + ((vOffset << REG_G2S_DB_BG3OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG3OFS_VOFFSET_MASK)); +} + +static inline void G2_SetBG2Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1) +{ + G2x_SetBGyAffine_((u32)®_G2_BG2PA, mtx, centerX, centerY, x1, y1); +} + +static inline void G2_SetBG3Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1) +{ + G2x_SetBGyAffine_((u32)®_G2_BG3PA, mtx, centerX, centerY, x1, y1); +} + +static inline void G2S_SetBG2Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1) +{ + G2x_SetBGyAffine_((u32)®_G2S_DB_BG2PA, mtx, centerX, centerY, x1, y1); +} + +static inline void G2S_SetBG3Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1) +{ + G2x_SetBGyAffine_((u32)®_G2S_DB_BG3PA, mtx, centerX, centerY, x1, y1); +} + +static inline void G2_BlendNone(void) +{ + reg_G2_BLDCNT = 0; +} + +static inline void G2S_BlendNone(void) +{ + reg_G2S_DB_BLDCNT = 0; +} + //The g2 and g2_oam headers contain a lot of inline functions and enums that may want to be ported over at some point #endif //GUARD_GX_G2_H diff --git a/arm9/lib/include/GX_vramcnt.h b/arm9/lib/include/GX_vramcnt.h index 6fe677bc..3b82d28c 100644 --- a/arm9/lib/include/GX_vramcnt.h +++ b/arm9/lib/include/GX_vramcnt.h @@ -16,7 +16,7 @@ void GX_SetBankForSubBG(s32 subbg); void GX_SetBankForSubOBJ(s32 subobj); void GX_SetBankForSubBGExtPltt(s32 subbgextpltt); void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt); -u32 FUN_020C6130(u16 *ptr); +u32 resetBankForX_(u16 *ptr); u32 GX_ResetBankForBG(); u32 GX_ResetBankForOBJ(); u32 GX_ResetBankForBGExtPltt(); @@ -25,31 +25,31 @@ u32 GX_ResetBankForTex(); u32 GX_ResetBankForTexPltt(); u32 GX_ResetBankForClearImage(); u32 GX_ResetBankForSubBG(); -u32 FUN_020C605C(); -u32 FUN_020C6034(); u32 GX_ResetBankForSubOBJ(); -u32 FUN_020C5F28(u16 *ptr); -u32 disableBankForX_(); -u32 GX_DisableBankForOBJExtPltt_2(); +u32 GX_ResetBankForSubBGExtPltt(); +u32 GX_ResetBankForSubOBJExtPltt(); +u32 disableBankForX_(u16 *ptr); +u32 GX_DisableBankForBG(); +u32 GX_DisableBankForOBJ(); u32 GX_DisableBankForBGExtPltt(); u32 GX_DisableBankForOBJExtPltt(); -u32 GX_DisableBankForTexPltt_2(); +u32 GX_DisableBankForTex(); u32 GX_DisableBankForTexPltt(); u32 GX_DisableBankForClearImage(); u32 GX_DisableBankForARM7(); u32 GX_DisableBankForLCDC(); +u32 GX_DisableBankForSubBG(); +u32 GX_DisableBankForSubOBJ(); u32 GX_DisableBankForSubBGExtPltt(); -u32 GX_DisableBankForSubOBJExtPltt_2(); -u32 FUN_020C5E04(); u32 GX_DisableBankForSubOBJExtPltt(); -u32 GX_GetBankForBGExtPltt_2(); +u32 GX_GetBankForBG(); u32 GX_GetBankForOBJ(); u32 GX_GetBankForBGExtPltt(); u32 GX_GetBankForOBJExtPltt(); -u32 FUN_020C5D8C(); +u32 GX_GetBankForTex(); u32 GX_GetBankForTexPltt(); u32 GX_GetBankForLCDC(); -u32 GX_GetBankForSubBGExtPltt_2(); +u32 GX_GetBankForSubBG(); u32 GX_GetBankForSubOBJ(); u32 GX_GetBankForSubBGExtPltt(); u32 GX_GetBankForSubOBJExtPltt(); diff --git a/arm9/lib/include/NNS_FND_allocator.h b/arm9/lib/include/NNS_FND_allocator.h new file mode 100644 index 00000000..48df282a --- /dev/null +++ b/arm9/lib/include/NNS_FND_allocator.h @@ -0,0 +1,34 @@ +#ifndef GUARD_NNS_FND_ALLOCATOR_H
+#define GUARD_NNS_FND_ALLOCATOR_H
+
+#include "NNS_FND_heapcommon.h"
+
+typedef struct NNSFndAllocator NNSFndAllocator;
+
+typedef void* (*NNSFndFuncAllocatorAlloc)(
+ NNSFndAllocator* pAllocator,
+ u32 size);
+
+typedef void (*NNSFndFuncAllocatorFree)(
+ NNSFndAllocator* pAllocator,
+ void* memBlock);
+
+typedef struct NNSFndAllocatorFunc NNSFndAllocatorFunc;
+
+struct NNSFndAllocatorFunc
+{
+ NNSFndFuncAllocatorAlloc pfAlloc;
+ NNSFndFuncAllocatorFree pfFree;
+};
+
+struct NNSFndAllocator
+{
+ NNSFndAllocatorFunc const * pFunc;
+ void* pHeap;
+ u32 heapParam1;
+ u32 heapParam2;
+};
+
+void NNS_FndInitAllocatorForExpHeap(NNSFndAllocator * pAllocator, NNSFndHeapHandle heap, int alignment);
+
+#endif //GUARD_NNS_FND_ALLOCATOR_H
diff --git a/arm9/lib/include/NNS_FND_expheap.h b/arm9/lib/include/NNS_FND_expheap.h new file mode 100644 index 00000000..c0008f28 --- /dev/null +++ b/arm9/lib/include/NNS_FND_expheap.h @@ -0,0 +1,55 @@ +#ifndef GUARD_NNS_FND_EXPHEAP_H
+#define GUARD_NNS_FND_EXPHEAP_H
+
+#include "NNS_FND_heapcommon.h"
+
+typedef struct NNSiFndExpHeapMBlockHead NNSiFndExpHeapMBlockHead;
+
+struct NNSiFndExpHeapMBlockHead
+{
+ u16 signature; // Signature
+ u16 attribute; // Attribute
+ // [8:groupID]
+ // [7:alignment]
+ // [1:temporary flag]
+
+ u32 blockSize; // Block size (data area only)
+
+ NNSiFndExpHeapMBlockHead* pMBHeadPrev; // Previous block
+ NNSiFndExpHeapMBlockHead* pMBHeadNext; // Next block
+};
+
+typedef struct NNSiFndExpMBlockList NNSiFndExpMBlockList;
+
+struct NNSiFndExpMBlockList
+{
+ NNSiFndExpHeapMBlockHead* head; // Pointer for memory block linked to header
+ NNSiFndExpHeapMBlockHead* tail; // Pointer to the memory block linked to the tail of the expanded heap
+};
+
+typedef struct NNSiFndExpHeapHead NNSiFndExpHeapHead;
+
+struct NNSiFndExpHeapHead
+{
+ NNSiFndExpMBlockList mbFreeList; // Free list
+ NNSiFndExpMBlockList mbUsedList; // Used list
+
+ u16 groupID; // Current group ID (lower 8 bits only)
+ u16 feature; // Attribute
+};
+
+NNSFndHeapHandle NNS_FndCreateExpHeapEx(void *startAddress, u32 size, u32 optFlag);
+void *NNS_FndAllocFromExpHeapEx(NNSFndHeapHandle heap, u32 size, int alignment);
+void NNS_FndDestroyExpHeap(NNSFndHeapHandle heap);
+void NNS_FndFreeToExpHeap(NNSFndHeapHandle heap, void *memBlock);
+u32 NNS_FndGetTotalFreeSizeForExpHeap(NNSFndHeapHandle heap);
+u32 NNS_FndGetSizeForMBlockExpHeap(const void *memBlock);
+void NNS_FndResizeForMBlockExpHeap(NNSFndHeapHandle heap, void *memBlock, u32 size);
+
+#define NNS_FndCreateExpHeap(startAddress, size) \
+ NNS_FndCreateExpHeapEx(startAddress, size, 0)
+#define NNS_FndAllocFromExpHeap(heap, size) \
+ NNS_FndAllocFromExpHeapEx(heap, size, NNS_FND_HEAP_DEFAULT_ALIGNMENT)
+
+
+#endif //GUARD_NNS_FND_EXPHEAP_H
diff --git a/arm9/lib/include/NNS_FND_heapcommon.h b/arm9/lib/include/NNS_FND_heapcommon.h new file mode 100644 index 00000000..eb6f1bdb --- /dev/null +++ b/arm9/lib/include/NNS_FND_heapcommon.h @@ -0,0 +1,26 @@ +#ifndef GUARD_NNS_FND_HEAPCOMMON_H
+#define GUARD_NNS_FND_HEAPCOMMON_H
+
+#include "NNS_FND_list.h"
+
+#define NNS_FND_HEAP_DEFAULT_ALIGNMENT 4
+
+typedef struct NNSiFndHeapHead NNSiFndHeapHead;
+
+struct NNSiFndHeapHead
+{
+ u32 signature;
+
+ NNSFndLink link;
+ NNSFndList childList;
+
+ void* heapStart; // Heap start address
+ void* heapEnd; // Heap end (+1) address
+
+ u32 attribute; // Attribute
+ // [8:Option flag]
+};
+
+typedef NNSiFndHeapHead* NNSFndHeapHandle; // Type to represent heap handle
+
+#endif //GUARD_NNS_FND_HEAPCOMMON_H
diff --git a/arm9/lib/include/NNS_FND_list.h b/arm9/lib/include/NNS_FND_list.h new file mode 100644 index 00000000..5df01e5f --- /dev/null +++ b/arm9/lib/include/NNS_FND_list.h @@ -0,0 +1,20 @@ +#ifndef GUARD_NNS_FND_LIST_H
+#define GUARD_NNS_FND_LIST_H
+
+typedef struct
+{
+ void* prevObject; // Pointer to the previous linked object.
+ void* nextObject; // Pointer to the next linked object.
+
+} NNSFndLink;
+
+typedef struct
+{
+ void* headObject; // Pointer for the object linked to the top of the list.
+ void* tailObject; // Pointer for the object linked to the end of the list.
+ u16 numObjects; // Number of objects linked in the list.
+ u16 offset; // Offset for NNSFndLink type structure member.
+
+} NNSFndList;
+
+#endif //GUARD_NNS_FND_LIST_H
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index d063b817..130ad2de 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -12,6 +12,8 @@ #define OS_IE_V_COUNT (1UL << REG_OS_IE_VE_SHIFT) #define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT) #define OS_IE_TIMER1 (1UL << REG_OS_IE_T1_SHIFT) +#define OS_IE_TIMER2 (1UL << REG_OS_IE_T2_SHIFT) +#define OS_IE_TIMER3 (1UL << REG_OS_IE_T3_SHIFT) #define OS_IE_SPFIFO_RECV (1UL << REG_OS_IE_IFN_SHIFT) #define OS_IE_CARD_DATA (1UL << REG_OS_IE_MC_SHIFT) diff --git a/arm9/lib/include/OS_irqHandler.h b/arm9/lib/include/OS_irqHandler.h index f052016d..ea12a0ad 100644 --- a/arm9/lib/include/OS_irqHandler.h +++ b/arm9/lib/include/OS_irqHandler.h @@ -16,6 +16,6 @@ static inline OSIrqMask OS_GetIrqCheckFlag(void) void OS_IrqHandler(void); void OS_IrqHandler_ThreadSwitch(void); -void OS_WaitIrq(BOOL param1, u32 param2); +void OS_WaitIrq(BOOL clear, OSIrqMask irqFlags); #endif //POKEDIAMOND_OS_IRQHANDLER_H diff --git a/arm9/lib/include/consts.h b/arm9/lib/include/consts.h index a41f22ae..1ad79b93 100644 --- a/arm9/lib/include/consts.h +++ b/arm9/lib/include/consts.h @@ -52,6 +52,7 @@ #define OSi_TCM_REGION_BASE_MASK 0xfffff000 #define OS_IE_V_BLANK (1UL << 0) +#define OS_IE_H_BLANK (1UL << 1) #define HW_CPU_CLOCK_ARM9 67027964 diff --git a/arm9/lib/include/fx.h b/arm9/lib/include/fx.h index 4a844872..38506194 100644 --- a/arm9/lib/include/fx.h +++ b/arm9/lib/include/fx.h @@ -65,6 +65,9 @@ typedef s64 fx64c; #define FX16_CONST(x) FX_F32_TO_FX16(x) #define FX32_CONST(x) FX_F32_TO_FX32(x) +#define FX16_ONE ((fx16)0x1000) +#define FX32_ONE ((fx32)0x00001000L) + struct Vecx32 { fx32 x; diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index 11081942..7e6606fa 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -27,15 +27,6 @@ void GXi_NopClearFifo128_(void *); #include "GX_g3imm.h" #include "GX_dma.h" -void GX_Init(); -u32 GX_HBlankIntr(u32 enable); -u32 GX_VBlankIntr(u32 enable); -void GX_DispOff(); -void GX_DispOn(); -void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3); -void GXS_SetGraphicsMode(u32 mode); -void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness); - typedef union { u32 raw; @@ -181,4 +172,63 @@ typedef enum } GXOBJVRamModeChar; +void GX_Init(); +u32 GX_HBlankIntr(u32 enable); +u32 GX_VBlankIntr(u32 enable); +void GX_DispOff(); +void GX_DispOn(); +void GX_SetGraphicsMode(GXDispMode dispMode, GXBGMode bgMode, GXBG0As bg0_2d3d); +void GXS_SetGraphicsMode(GXBGMode mode); +void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness); + +static inline void GX_SetMasterBrightness(int brightness) +{ + GXx_SetMasterBrightness_(®_GX_MASTER_BRIGHT, brightness); +} + +static inline void GX_SetVisiblePlane(int plane) +{ + reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_DISPLAY_MASK) | (plane << REG_GX_DISPCNT_DISPLAY_SHIFT)); +} + +static inline void GXS_SetVisiblePlane(int plane) +{ + reg_GXS_DB_DISPCNT = (u32)((reg_GXS_DB_DISPCNT & ~REG_GXS_DB_DISPCNT_DISPLAY_MASK) | (plane << REG_GXS_DB_DISPCNT_DISPLAY_SHIFT)); +} + +static inline void GXS_DispOn(void) +{ + reg_GXS_DB_DISPCNT |= REG_GXS_DB_DISPCNT_MODE_MASK; +} + +static inline void GX_SetDispSelect(GXDispSelect sel) +{ + reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~REG_GX_POWCNT_DSEL_MASK) | (sel << REG_GX_POWCNT_DSEL_SHIFT)); +} + +static inline void GX_SetBGScrOffset(GXBGScrOffset offset) +{ + reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_BGSCREENOFFSET_MASK) | (offset << REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT)); +} + +static inline void GX_SetBGCharOffset(GXBGCharOffset offset) +{ + reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_BGCHAROFFSET_MASK) | (offset << REG_GX_DISPCNT_BGCHAROFFSET_SHIFT)); +} + +static inline void GX_SetVisibleWnd(int window) +{ + reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~(REG_GX_DISPCNT_W0_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_OW_MASK)) | (window << REG_GX_DISPCNT_W0_SHIFT)); +} + +static inline void GXS_SetVisibleWnd(int window) +{ + reg_GXS_DB_DISPCNT = (u32)((reg_GXS_DB_DISPCNT & ~(REG_GXS_DB_DISPCNT_W0_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_OW_MASK)) | (window << REG_GXS_DB_DISPCNT_W0_SHIFT)); +} + +static inline void GXS_SetOBJVRamModeChar(GXOBJVRamModeChar mode) +{ + reg_GXS_DB_DISPCNT = (u32)(reg_GXS_DB_DISPCNT & ~(REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK | REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK) | mode); +} + #endif //GUARD_GX_H diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index 7a0155da..b4fd8ce7 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -350,12 +350,11 @@ #define REG_OS_IE_VE_SHIFT 2 #define REG_OS_IE_T0_SHIFT 3 #define REG_OS_IE_T1_SHIFT 4 +#define REG_OS_IE_T2_SHIFT 5 +#define REG_OS_IE_T3_SHIFT 6 #define REG_OS_IE_IFN_SHIFT 18 #define REG_OS_IE_MC_SHIFT 19 -#define REG_OS_TM0CNT_H_I_MASK 0x0040 -#define REG_OS_TM0CNT_H_E_MASK 0x0080 - #define REG_PAD_KEYINPUT_L_SHIFT 9 #define REG_PAD_KEYINPUT_L_SIZE 1 #define REG_PAD_KEYINPUT_L_MASK 0x0200 @@ -659,4 +658,412 @@ #define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 #define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 +// MASTER BRIGHT +#define REG_GX_MASTER_BRIGHT_E_MOD_SHIFT 14 +#define REG_GX_MASTER_BRIGHT_E_MOD_SIZE 2 +#define REG_GX_MASTER_BRIGHT_E_MOD_MASK 0xc000 + +#define REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT 0 +#define REG_GX_MASTER_BRIGHT_E_VALUE_SIZE 5 +#define REG_GX_MASTER_BRIGHT_E_VALUE_MASK 0x001f + +// DISPSTAT +#define REG_GX_DISPSTAT_VCOUNTER_SHIFT 7 +#define REG_GX_DISPSTAT_VCOUNTER_SIZE 9 +#define REG_GX_DISPSTAT_VCOUNTER_MASK 0xff80 + +#define REG_GX_DISPSTAT_VQI_SHIFT 5 +#define REG_GX_DISPSTAT_VQI_SIZE 1 +#define REG_GX_DISPSTAT_VQI_MASK 0x0020 + +#define REG_GX_DISPSTAT_HBI_SHIFT 4 +#define REG_GX_DISPSTAT_HBI_SIZE 1 +#define REG_GX_DISPSTAT_HBI_MASK 0x0010 + +#define REG_GX_DISPSTAT_VBI_SHIFT 3 +#define REG_GX_DISPSTAT_VBI_SIZE 1 +#define REG_GX_DISPSTAT_VBI_MASK 0x0008 + +#define REG_GX_DISPSTAT_LYC_SHIFT 2 +#define REG_GX_DISPSTAT_LYC_SIZE 1 +#define REG_GX_DISPSTAT_LYC_MASK 0x0004 + +#define REG_GX_DISPSTAT_HBLK_SHIFT 1 +#define REG_GX_DISPSTAT_HBLK_SIZE 1 +#define REG_GX_DISPSTAT_HBLK_MASK 0x0002 + +#define REG_GX_DISPSTAT_VBLK_SHIFT 0 +#define REG_GX_DISPSTAT_VBLK_SIZE 1 +#define REG_GX_DISPSTAT_VBLK_MASK 0x0001 + +// G2_BG0CNT +#define REG_G2_BG0CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG0CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG0CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2_BG0CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2_BG0CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2_BG0CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2_BG0CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG0CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG0CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2_BG0CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG0CNT_COLORMODE_SIZE 1 +#define REG_G2_BG0CNT_COLORMODE_MASK 0x0080 + +#define REG_G2_BG0CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG0CNT_MOSAIC_SIZE 1 +#define REG_G2_BG0CNT_MOSAIC_MASK 0x0040 + +#define REG_G2_BG0CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG0CNT_CHARBASE_SIZE 4 +#define REG_G2_BG0CNT_CHARBASE_MASK 0x003c + +#define REG_G2_BG0CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG0CNT_PRIORITY_SIZE 2 +#define REG_G2_BG0CNT_PRIORITY_MASK 0x0003 + +// G2_BG1CNT +#define REG_G2_BG1CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG1CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG1CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2_BG1CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2_BG1CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2_BG1CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2_BG1CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG1CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG1CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2_BG1CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG1CNT_COLORMODE_SIZE 1 +#define REG_G2_BG1CNT_COLORMODE_MASK 0x0080 + +#define REG_G2_BG1CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG1CNT_MOSAIC_SIZE 1 +#define REG_G2_BG1CNT_MOSAIC_MASK 0x0040 + +#define REG_G2_BG1CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG1CNT_CHARBASE_SIZE 4 +#define REG_G2_BG1CNT_CHARBASE_MASK 0x003c + +#define REG_G2_BG1CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG1CNT_PRIORITY_SIZE 2 +#define REG_G2_BG1CNT_PRIORITY_MASK 0x0003 + +// G2_BG2CNT +#define REG_G2_BG2CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG2CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG2CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2_BG2CNT_AREAOVER_SHIFT 13 +#define REG_G2_BG2CNT_AREAOVER_SIZE 1 +#define REG_G2_BG2CNT_AREAOVER_MASK 0x2000 + +#define REG_G2_BG2CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG2CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG2CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2_BG2CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG2CNT_COLORMODE_SIZE 1 +#define REG_G2_BG2CNT_COLORMODE_MASK 0x0080 + +#define REG_G2_BG2CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG2CNT_MOSAIC_SIZE 1 +#define REG_G2_BG2CNT_MOSAIC_MASK 0x0040 + +#define REG_G2_BG2CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG2CNT_CHARBASE_SIZE 4 +#define REG_G2_BG2CNT_CHARBASE_MASK 0x003c + +#define REG_G2_BG2CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG2CNT_PRIORITY_SIZE 2 +#define REG_G2_BG2CNT_PRIORITY_MASK 0x0003 + +// G2_BG3CNT +#define REG_G2_BG3CNT_SCREENSIZE_SHIFT 14 +#define REG_G2_BG3CNT_SCREENSIZE_SIZE 2 +#define REG_G2_BG3CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2_BG3CNT_AREAOVER_SHIFT 13 +#define REG_G2_BG3CNT_AREAOVER_SIZE 1 +#define REG_G2_BG3CNT_AREAOVER_MASK 0x2000 + +#define REG_G2_BG3CNT_SCREENBASE_SHIFT 8 +#define REG_G2_BG3CNT_SCREENBASE_SIZE 5 +#define REG_G2_BG3CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2_BG3CNT_COLORMODE_SHIFT 7 +#define REG_G2_BG3CNT_COLORMODE_SIZE 1 +#define REG_G2_BG3CNT_COLORMODE_MASK 0x0080 + +#define REG_G2_BG3CNT_MOSAIC_SHIFT 6 +#define REG_G2_BG3CNT_MOSAIC_SIZE 1 +#define REG_G2_BG3CNT_MOSAIC_MASK 0x0040 + +#define REG_G2_BG3CNT_CHARBASE_SHIFT 2 +#define REG_G2_BG3CNT_CHARBASE_SIZE 4 +#define REG_G2_BG3CNT_CHARBASE_MASK 0x003c + +#define REG_G2_BG3CNT_PRIORITY_SHIFT 0 +#define REG_G2_BG3CNT_PRIORITY_SIZE 2 +#define REG_G2_BG3CNT_PRIORITY_MASK 0x0003 + +// G2S_DB_BG0CNT +#define REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG0CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG0CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG0CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG0CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2S_DB_BG0CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG0CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG0CNT_COLORMODE_MASK 0x0080 + +#define REG_G2S_DB_BG0CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG0CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG0CNT_MOSAIC_MASK 0x0040 + +#define REG_G2S_DB_BG0CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG0CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG0CNT_CHARBASE_MASK 0x003c + +#define REG_G2S_DB_BG0CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG0CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG0CNT_PRIORITY_MASK 0x0003 + +// G2S_DB_BG1CNT +#define REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG1CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG1CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT 13 +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SIZE 1 +#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_MASK 0x2000 + +#define REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG1CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG1CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2S_DB_BG1CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG1CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG1CNT_COLORMODE_MASK 0x0080 + +#define REG_G2S_DB_BG1CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG1CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG1CNT_MOSAIC_MASK 0x0040 + +#define REG_G2S_DB_BG1CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG1CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG1CNT_CHARBASE_MASK 0x003c + +#define REG_G2S_DB_BG1CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG1CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG1CNT_PRIORITY_MASK 0x0003 + +// G2S_DB_BG2CNT +#define REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG2CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG2CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2S_DB_BG2CNT_AREAOVER_SHIFT 13 +#define REG_G2S_DB_BG2CNT_AREAOVER_SIZE 1 +#define REG_G2S_DB_BG2CNT_AREAOVER_MASK 0x2000 + +#define REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG2CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG2CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2S_DB_BG2CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG2CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG2CNT_COLORMODE_MASK 0x0080 + +#define REG_G2S_DB_BG2CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG2CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG2CNT_MOSAIC_MASK 0x0040 + +#define REG_G2S_DB_BG2CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG2CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG2CNT_CHARBASE_MASK 0x003c + +#define REG_G2S_DB_BG2CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG2CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG2CNT_PRIORITY_MASK 0x0003 + +// G2S_DB_BG3CNT +#define REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT 14 +#define REG_G2S_DB_BG3CNT_SCREENSIZE_SIZE 2 +#define REG_G2S_DB_BG3CNT_SCREENSIZE_MASK 0xc000 + +#define REG_G2S_DB_BG3CNT_AREAOVER_SHIFT 13 +#define REG_G2S_DB_BG3CNT_AREAOVER_SIZE 1 +#define REG_G2S_DB_BG3CNT_AREAOVER_MASK 0x2000 + +#define REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT 8 +#define REG_G2S_DB_BG3CNT_SCREENBASE_SIZE 5 +#define REG_G2S_DB_BG3CNT_SCREENBASE_MASK 0x1f00 + +#define REG_G2S_DB_BG3CNT_COLORMODE_SHIFT 7 +#define REG_G2S_DB_BG3CNT_COLORMODE_SIZE 1 +#define REG_G2S_DB_BG3CNT_COLORMODE_MASK 0x0080 + +#define REG_G2S_DB_BG3CNT_MOSAIC_SHIFT 6 +#define REG_G2S_DB_BG3CNT_MOSAIC_SIZE 1 +#define REG_G2S_DB_BG3CNT_MOSAIC_MASK 0x0040 + +#define REG_G2S_DB_BG3CNT_CHARBASE_SHIFT 2 +#define REG_G2S_DB_BG3CNT_CHARBASE_SIZE 4 +#define REG_G2S_DB_BG3CNT_CHARBASE_MASK 0x003c + +#define REG_G2S_DB_BG3CNT_PRIORITY_SHIFT 0 +#define REG_G2S_DB_BG3CNT_PRIORITY_SIZE 2 +#define REG_G2S_DB_BG3CNT_PRIORITY_MASK 0x0003 + +// G2_BG0OFS +#define REG_G2_BG0OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG0OFS_VOFFSET_SIZE 9 +#define REG_G2_BG0OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2_BG0OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG0OFS_HOFFSET_SIZE 9 +#define REG_G2_BG0OFS_HOFFSET_MASK 0x000001ff + +// G2_BG1OFS +#define REG_G2_BG1OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG1OFS_VOFFSET_SIZE 9 +#define REG_G2_BG1OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2_BG1OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG1OFS_HOFFSET_SIZE 9 +#define REG_G2_BG1OFS_HOFFSET_MASK 0x000001ff + +// G2_BG2OFS +#define REG_G2_BG2OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG2OFS_VOFFSET_SIZE 9 +#define REG_G2_BG2OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2_BG2OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG2OFS_HOFFSET_SIZE 9 +#define REG_G2_BG2OFS_HOFFSET_MASK 0x000001ff + +// G2_BG3OFS +#define REG_G2_BG3OFS_VOFFSET_SHIFT 16 +#define REG_G2_BG3OFS_VOFFSET_SIZE 9 +#define REG_G2_BG3OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2_BG3OFS_HOFFSET_SHIFT 0 +#define REG_G2_BG3OFS_HOFFSET_SIZE 9 +#define REG_G2_BG3OFS_HOFFSET_MASK 0x000001ff + +// G2S_DB_BG0OFS +#define REG_G2S_DB_BG0OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG0OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG0OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2S_DB_BG0OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG0OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG0OFS_HOFFSET_MASK 0x000001ff + +// G2S_DB_BG1OFS +#define REG_G2S_DB_BG1OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG1OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG1OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2S_DB_BG1OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG1OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG1OFS_HOFFSET_MASK 0x000001ff + +// G2S_DB_BG2OFS +#define REG_G2S_DB_BG2OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG2OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG2OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2S_DB_BG2OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG2OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG2OFS_HOFFSET_MASK 0x000001ff + +// G2S_DB_BG3OFS +#define REG_G2S_DB_BG3OFS_VOFFSET_SHIFT 16 +#define REG_G2S_DB_BG3OFS_VOFFSET_SIZE 9 +#define REG_G2S_DB_BG3OFS_VOFFSET_MASK 0x01ff0000 + +#define REG_G2S_DB_BG3OFS_HOFFSET_SHIFT 0 +#define REG_G2S_DB_BG3OFS_HOFFSET_SIZE 9 +#define REG_G2S_DB_BG3OFS_HOFFSET_MASK 0x000001ff + +// Timer control + +#define REG_OS_TM0CNT_L_TIMER0CNT_SHIFT 0 +#define REG_OS_TM0CNT_L_TIMER0CNT_SIZE 16 +#define REG_OS_TM0CNT_L_TIMER0CNT_MASK 0xffff + +#define REG_OS_TM0CNT_H_E_SHIFT 7 +#define REG_OS_TM0CNT_H_E_SIZE 1 +#define REG_OS_TM0CNT_H_E_MASK 0x0080 + +#define REG_OS_TM0CNT_H_I_SHIFT 6 +#define REG_OS_TM0CNT_H_I_SIZE 1 +#define REG_OS_TM0CNT_H_I_MASK 0x0040 + +#define REG_OS_TM0CNT_H_PS_SHIFT 0 +#define REG_OS_TM0CNT_H_PS_SIZE 2 +#define REG_OS_TM0CNT_H_PS_MASK 0x0003 + +#define REG_OS_TM1CNT_L_TIMER0CNT_SHIFT 0 +#define REG_OS_TM1CNT_L_TIMER0CNT_SIZE 16 +#define REG_OS_TM1CNT_L_TIMER0CNT_MASK 0xffff + +#define REG_OS_TM1CNT_H_E_SHIFT 7 +#define REG_OS_TM1CNT_H_E_SIZE 1 +#define REG_OS_TM1CNT_H_E_MASK 0x0080 + +#define REG_OS_TM1CNT_H_I_SHIFT 6 +#define REG_OS_TM1CNT_H_I_SIZE 1 +#define REG_OS_TM1CNT_H_I_MASK 0x0040 + +#define REG_OS_TM1CNT_H_PS_SHIFT 0 +#define REG_OS_TM1CNT_H_PS_SIZE 2 +#define REG_OS_TM1CNT_H_PS_MASK 0x0003 + +#define REG_OS_TM2CNT_L_TIMER0CNT_SHIFT 0 +#define REG_OS_TM2CNT_L_TIMER0CNT_SIZE 16 +#define REG_OS_TM2CNT_L_TIMER0CNT_MASK 0xffff + +#define REG_OS_TM2CNT_H_E_SHIFT 7 +#define REG_OS_TM2CNT_H_E_SIZE 1 +#define REG_OS_TM2CNT_H_E_MASK 0x0080 + +#define REG_OS_TM2CNT_H_I_SHIFT 6 +#define REG_OS_TM2CNT_H_I_SIZE 1 +#define REG_OS_TM2CNT_H_I_MASK 0x0040 + +#define REG_OS_TM2CNT_H_PS_SHIFT 0 +#define REG_OS_TM2CNT_H_PS_SIZE 2 +#define REG_OS_TM2CNT_H_PS_MASK 0x0003 + +#define REG_OS_TM3CNT_L_TIMER0CNT_SHIFT 0 +#define REG_OS_TM3CNT_L_TIMER0CNT_SIZE 16 +#define REG_OS_TM3CNT_L_TIMER0CNT_MASK 0xffff + +#define REG_OS_TM3CNT_H_E_SHIFT 7 +#define REG_OS_TM3CNT_H_E_SIZE 1 +#define REG_OS_TM3CNT_H_E_MASK 0x0080 + +#define REG_OS_TM3CNT_H_I_SHIFT 6 +#define REG_OS_TM3CNT_H_I_SIZE 1 +#define REG_OS_TM3CNT_H_I_MASK 0x0040 + +#define REG_OS_TM3CNT_H_PS_SHIFT 0 +#define REG_OS_TM3CNT_H_PS_SIZE 2 +#define REG_OS_TM3CNT_H_PS_MASK 0x0003 + #endif //POKEDIAMOND_ARM9_REGISTERS_H diff --git a/arm9/lib/include/tp.h b/arm9/lib/include/tp.h index d2687545..dc762f10 100644 --- a/arm9/lib/include/tp.h +++ b/arm9/lib/include/tp.h @@ -1,6 +1,14 @@ #ifndef NITRO_TP_H_ #define NITRO_TP_H_ +#define TP_TOUCH_OFF 0 // Not being touched +#define TP_TOUCH_ON 1 // Being touched + +#define TP_VALIDITY_VALID 0 // Valid +#define TP_VALIDITY_INVALID_X 1 // Data with invalid X coordinate +#define TP_VALIDITY_INVALID_Y 2 // Data with invalid Y coordinate +#define TP_VALIDITY_INVALID_XY (TP_VALIDITY_INVALID_X | TP_VALIDITY_INVALID_Y) // Data with invalid X and Y coordinates + // Touch panel input structure typedef struct { diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c index 69ad8718..688e41b7 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/src/GX.c @@ -7,16 +7,18 @@ vu16 GXi_VRamLockId = 0; static u16 sDispMode = 0; static u16 sIsDispOn = TRUE; +#define _powcnt_init_mask (REG_GX_POWCNT_E2DGB_MASK | REG_GX_POWCNT_E2DG_MASK | REG_GX_POWCNT_RE_MASK | REG_GX_POWCNT_GE_MASK) + ARM_FUNC void GX_Init(){ - reg_GX_POWCNT |= 0x8000; - reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~0x20E) | 0x20E); - reg_GX_POWCNT = (u16)(reg_GX_POWCNT | 0x1); + reg_GX_POWCNT |= REG_GX_POWCNT_DSEL_MASK; + reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~_powcnt_init_mask) | _powcnt_init_mask); + reg_GX_POWCNT = (u16)(reg_GX_POWCNT | REG_GX_POWCNT_LCD_MASK); GX_InitGXState(); s32 temp; while (GXi_VRamLockId == 0) { temp = OS_GetLockID(); - if (temp == -3) + if (temp == OS_LOCK_ID_ERROR) { OS_Terminate(); } @@ -47,62 +49,62 @@ ARM_FUNC void GX_Init(){ } ARM_FUNC u32 GX_HBlankIntr(u32 enable){ - u32 temp = (u32)(reg_GX_DISPSTAT & 0x10); + u32 temp = (u32)(reg_GX_DISPSTAT & REG_GX_DISPSTAT_HBI_MASK); if (enable) { - reg_GX_DISPSTAT |= 0x10; + reg_GX_DISPSTAT |= REG_GX_DISPSTAT_HBI_MASK; } else { - reg_GX_DISPSTAT &= ~0x10; + reg_GX_DISPSTAT &= ~REG_GX_DISPSTAT_HBI_MASK; } return temp; } ARM_FUNC u32 GX_VBlankIntr(u32 enable){ - u32 temp = (u32)(reg_GX_DISPSTAT & 0x8); + u32 temp = (u32)(reg_GX_DISPSTAT & REG_GX_DISPSTAT_VBI_MASK); if (enable) { - reg_GX_DISPSTAT |= 0x8; + reg_GX_DISPSTAT |= REG_GX_DISPSTAT_VBI_MASK; } else { - reg_GX_DISPSTAT &= ~0x8; + reg_GX_DISPSTAT &= ~REG_GX_DISPSTAT_VBI_MASK; } return temp; } ARM_FUNC void GX_DispOff(){ u32 temp = reg_GX_DISPCNT; - sIsDispOn = 0x0; - sDispMode = (u16)((temp & 0x30000) >> 0x10); - reg_GX_DISPCNT = temp & ~0x30000; + sIsDispOn = FALSE; + sDispMode = (u16)((temp & REG_GX_DISPCNT_MODE_MASK) >> REG_GX_DISPCNT_MODE_SHIFT); + reg_GX_DISPCNT = temp & ~REG_GX_DISPCNT_MODE_MASK; } ARM_FUNC void GX_DispOn(){ - sIsDispOn = 0x1; + sIsDispOn = TRUE; if (sDispMode) { - reg_GX_DISPCNT = (reg_GX_DISPCNT & ~0x30000) | (sDispMode << 0x10); + reg_GX_DISPCNT = (reg_GX_DISPCNT & ~REG_GX_DISPCNT_MODE_MASK) | (sDispMode << REG_GX_DISPCNT_MODE_SHIFT); } else { - reg_GX_DISPCNT = reg_GX_DISPCNT | 0x10000; + reg_GX_DISPCNT = reg_GX_DISPCNT | (GX_DISPMODE_GRAPHICS << REG_GX_DISPCNT_MODE_SHIFT); } } -ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){ +ARM_FUNC void GX_SetGraphicsMode(GXDispMode dispMode, GXBGMode bgMode, GXBG0As bg0_2d3d){ u32 temp2 = reg_GX_DISPCNT; - sDispMode = (u16)mode1; + sDispMode = (u16)dispMode; if (!sIsDispOn) - mode1 = 0; - reg_GX_DISPCNT = (mode2 | ((temp2 & 0xFFF0FFF0) | (mode1 << 0x10))) | (mode3 << 0x3); + dispMode = 0; + reg_GX_DISPCNT = ((bgMode << REG_GX_DISPCNT_BGMODE_SHIFT) | ((temp2 & ~(REG_GX_DISPCNT_BGMODE_MASK | REG_GX_DISPCNT_MODE_MASK | REG_GX_DISPCNT_BG02D3D_MASK | REG_GX_DISPCNT_VRAM_MASK)) | (dispMode << REG_GX_DISPCNT_MODE_SHIFT))) | (bg0_2d3d << REG_GX_DISPCNT_BG02D3D_SHIFT); if (!sDispMode) - sIsDispOn = 0x0; + sIsDispOn = FALSE; } -ARM_FUNC void GXS_SetGraphicsMode(u32 mode){ - reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~0x7) | mode; +ARM_FUNC void GXS_SetGraphicsMode(GXBGMode mode){ + reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~REG_GXS_DB_DISPCNT_BGMODE_MASK) | mode; } ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ @@ -112,10 +114,10 @@ ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ } else if (brightness > 0) { - *dst = (u16)(0x4000 | brightness); + *dst = (u16)((1 << REG_GX_MASTER_BRIGHT_E_MOD_SHIFT) | brightness); } else { - *dst = (u16)(0x8000 | -brightness); + *dst = (u16)((2 << REG_GX_MASTER_BRIGHT_E_MOD_SHIFT) | -brightness); } } diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/src/GX_g2.c index 99ba0e26..39b8bff4 100644 --- a/arm9/lib/src/GX_g2.c +++ b/arm9/lib/src/GX_g2.c @@ -1,16 +1,16 @@ #include "global.h" #include "gx.h" -ARM_FUNC void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){ +ARM_FUNC void G2x_SetBGyAffine_(u32 ptr, const struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){ fx32 temp0, temp1, temp2, temp3; - ptr[0] = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10); - ptr[1] = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10); + *((vu32 *)ptr + 0) = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10); + *((vu32 *)ptr + 1) = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10); temp0 = c - a; temp1 = d - b; temp2 = mtx->_[0] * temp0 + mtx->_[1] * temp1 + (a << 0xC); temp3 = mtx->_[2] * temp0 + mtx->_[3] * temp1 + (b << 0xC); - ptr[2] = (u32)(temp2 >> 4); - ptr[3] = (u32)(temp3 >> 4); + *((vu32 *)ptr + 2) = (u32)(temp2 >> 4); + *((vu32 *)ptr + 3) = (u32)(temp3 >> 4); } ARM_FUNC void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d){ diff --git a/arm9/lib/src/GX_load2d.c b/arm9/lib/src/GX_load2d.c index 132de9ee..6bff54be 100644 --- a/arm9/lib/src/GX_load2d.c +++ b/arm9/lib/src/GX_load2d.c @@ -195,7 +195,7 @@ ARM_FUNC void GX_EndLoadOBJExtPltt(){ } ARM_FUNC void GXS_BeginLoadBGExtPltt(){ - sSubBGExtPltt = (s32)FUN_020C6034(); + sSubBGExtPltt = (s32)GX_ResetBankForSubBGExtPltt(); } ARM_FUNC void GXS_LoadBGExtPltt(void *src, u32 offset, u32 size){ @@ -209,7 +209,7 @@ ARM_FUNC void GXS_EndLoadBGExtPltt(){ } ARM_FUNC void GXS_BeginLoadOBJExtPltt(){ - sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJ(); + sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJExtPltt(); } ARM_FUNC void GXS_LoadOBJExtPltt(void *src, u32 offset, u32 size){ diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/src/GX_vramcnt.c index c9d5a1bd..abfcd77e 100644 --- a/arm9/lib/src/GX_vramcnt.c +++ b/arm9/lib/src/GX_vramcnt.c @@ -396,7 +396,7 @@ ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){ GX_VRAMCNT_SetLCDC_(gGXState.lcdc); } -ARM_FUNC u32 FUN_020C6130(u16 *ptr){ +ARM_FUNC u32 resetBankForX_(u16 *ptr){ u16 temp = *ptr; *ptr = 0; gGXState.lcdc |= temp; @@ -405,54 +405,54 @@ ARM_FUNC u32 FUN_020C6130(u16 *ptr){ } ARM_FUNC u32 GX_ResetBankForBG(){ - return FUN_020C6130(&gGXState.bg); + return resetBankForX_(&gGXState.bg); } ARM_FUNC u32 GX_ResetBankForOBJ(){ - return FUN_020C6130(&gGXState.obj); + return resetBankForX_(&gGXState.obj); } ARM_FUNC u32 GX_ResetBankForBGExtPltt(){ reg_GX_DISPCNT &= ~0x40000000; - return FUN_020C6130(&gGXState.bgExtPltt); + return resetBankForX_(&gGXState.bgExtPltt); } ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){ reg_GX_DISPCNT &= ~0x80000000; - return FUN_020C6130(&gGXState.objExtPltt); + return resetBankForX_(&gGXState.objExtPltt); } ARM_FUNC u32 GX_ResetBankForTex(){ - return FUN_020C6130(&gGXState.tex); + return resetBankForX_(&gGXState.tex); } ARM_FUNC u32 GX_ResetBankForTexPltt(){ - return FUN_020C6130(&gGXState.texPltt); + return resetBankForX_(&gGXState.texPltt); } ARM_FUNC u32 GX_ResetBankForClearImage(){ - return FUN_020C6130(&gGXState.clrImg); + return resetBankForX_(&gGXState.clrImg); } ARM_FUNC u32 GX_ResetBankForSubBG(){ - return FUN_020C6130(&gGXState.sub_bg); + return resetBankForX_(&gGXState.sub_bg); } -ARM_FUNC u32 FUN_020C605C(){ - return FUN_020C6130(&gGXState.sub_obj); +ARM_FUNC u32 GX_ResetBankForSubOBJ(){ + return resetBankForX_(&gGXState.sub_obj); } -ARM_FUNC u32 FUN_020C6034(){ - reg_GXS_DB_DISPCNT &= ~0x40000000; - return FUN_020C6130(&gGXState.sub_bgExtPltt); +ARM_FUNC u32 GX_ResetBankForSubBGExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_BG_MASK; + return resetBankForX_(&gGXState.sub_bgExtPltt); } -ARM_FUNC u32 GX_ResetBankForSubOBJ(){ - reg_GXS_DB_DISPCNT &= ~0x80000000; - return FUN_020C6130(&gGXState.sub_objExtPltt); +ARM_FUNC u32 GX_ResetBankForSubOBJExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_O_MASK; + return resetBankForX_(&gGXState.sub_objExtPltt); } -ARM_FUNC u32 FUN_020C5F28(u16 *ptr){ +ARM_FUNC u32 disableBankForX_(u16 *ptr){ u32 temp = *ptr; *ptr = 0; if (temp & (0x1 << 0)) @@ -477,63 +477,63 @@ ARM_FUNC u32 FUN_020C5F28(u16 *ptr){ return temp; } -ARM_FUNC u32 disableBankForX_(){ - return FUN_020C5F28(&gGXState.bg); +ARM_FUNC u32 GX_DisableBankForBG(){ + return disableBankForX_(&gGXState.bg); } -ARM_FUNC u32 GX_DisableBankForOBJExtPltt_2(){ - return FUN_020C5F28(&gGXState.obj); +ARM_FUNC u32 GX_DisableBankForOBJ(){ + return disableBankForX_(&gGXState.obj); } ARM_FUNC u32 GX_DisableBankForBGExtPltt(){ - reg_GX_DISPCNT &= ~0x40000000; - return FUN_020C5F28(&gGXState.bgExtPltt); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK; + return disableBankForX_(&gGXState.bgExtPltt); } ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){ - reg_GX_DISPCNT &= ~0x80000000; - return FUN_020C5F28(&gGXState.objExtPltt); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_O_MASK; + return disableBankForX_(&gGXState.objExtPltt); } -ARM_FUNC u32 GX_DisableBankForTexPltt_2(){ - return FUN_020C5F28(&gGXState.tex); +ARM_FUNC u32 GX_DisableBankForTex(){ + return disableBankForX_(&gGXState.tex); } ARM_FUNC u32 GX_DisableBankForTexPltt(){ - return FUN_020C5F28(&gGXState.texPltt); + return disableBankForX_(&gGXState.texPltt); } ARM_FUNC u32 GX_DisableBankForClearImage(){ - return FUN_020C5F28(&gGXState.clrImg); + return disableBankForX_(&gGXState.clrImg); } ARM_FUNC u32 GX_DisableBankForARM7(){ - return FUN_020C5F28(&gGXState.arm7); + return disableBankForX_(&gGXState.arm7); } ARM_FUNC u32 GX_DisableBankForLCDC(){ - return FUN_020C5F28(&gGXState.lcdc); + return disableBankForX_(&gGXState.lcdc); } -ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){ - return FUN_020C5F28(&gGXState.sub_bg); +ARM_FUNC u32 GX_DisableBankForSubBG(){ + return disableBankForX_(&gGXState.sub_bg); } -ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt_2(){ - return FUN_020C5F28(&gGXState.sub_obj); +ARM_FUNC u32 GX_DisableBankForSubOBJ(){ + return disableBankForX_(&gGXState.sub_obj); } -ARM_FUNC u32 FUN_020C5E04(){ - reg_GXS_DB_DISPCNT &= ~0x40000000; - return FUN_020C5F28(&gGXState.sub_bgExtPltt); +ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK; + return disableBankForX_(&gGXState.sub_bgExtPltt); } ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt(){ - reg_GXS_DB_DISPCNT &= ~0x80000000; - return FUN_020C5F28(&gGXState.sub_objExtPltt); + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_O_MASK; + return disableBankForX_(&gGXState.sub_objExtPltt); } -ARM_FUNC u32 GX_GetBankForBGExtPltt_2(){ +ARM_FUNC u32 GX_GetBankForBG(){ return gGXState.bg; } @@ -549,7 +549,7 @@ ARM_FUNC u32 GX_GetBankForOBJExtPltt(){ return gGXState.objExtPltt; } -ARM_FUNC u32 FUN_020C5D8C(){ +ARM_FUNC u32 GX_GetBankForTex(){ return gGXState.tex; } @@ -561,7 +561,7 @@ ARM_FUNC u32 GX_GetBankForLCDC(){ return gGXState.lcdc; } -ARM_FUNC u32 GX_GetBankForSubBGExtPltt_2(){ +ARM_FUNC u32 GX_GetBankForSubBG(){ return gGXState.sub_bg; } diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index 49201028..259f9f52 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -161,7 +161,7 @@ _021D8F40: ldr r0, _021D91BC ; =UNK04_02210468 mov r2, #0 ldr r1, [r0] - ldr r0, _021D91C4 ; =UNK_021D74A8 + ldr r0, _021D91C4 ; =errno str r2, [sp] str r2, [r0] add r0, r1, #0x1000 @@ -169,7 +169,7 @@ _021D8F40: ldr r1, _021D91C8 ; =UNK04_0220BF3C bl MOD04_021DA388 bl atol - ldr r1, _021D91C4 ; =UNK_021D74A8 + ldr r1, _021D91C4 ; =errno ldr r1, [r1] cmp r1, #0x22 bne _021D8F9C @@ -220,7 +220,7 @@ _021D9014: add r1, sp, #0 add r0, r2, r0 mov r2, #0xa - bl strtold2 + bl strtol ldr r2, _021D91BC ; =UNK04_02210468 ldr r1, _021D91D4 ; =0x0000100C ldr r5, [r2] @@ -324,7 +324,7 @@ _021D91B0: .align 2, 0 _021D91BC: .word UNK04_02210468 _021D91C0: .word UNK04_0220BF34 -_021D91C4: .word UNK_021D74A8 +_021D91C4: .word errno _021D91C8: .word UNK04_0220BF3C _021D91CC: .word 0x00004E85 _021D91D0: .word 0x000059D8 @@ -3164,7 +3164,7 @@ _021DB970: bl MOD04_021DA388 bl atol mov sl, r0 - ldr r0, _021DC690 ; =UNK_021D74A8 + ldr r0, _021DC690 ; =errno ldr r0, [r0] cmp r0, #0x22 bne _021DB9A0 @@ -3653,7 +3653,7 @@ _021DC080: bl MOD04_021DA388 bl atol mov sl, r0 - ldr r0, _021DC690 ; =UNK_021D74A8 + ldr r0, _021DC690 ; =errno ldr r0, [r0] cmp r0, #0x22 bne _021DC0BC @@ -3705,7 +3705,7 @@ _021DC118: _021DC14C: add r0, sp, #0x64 bl atol - ldr r1, _021DC690 ; =UNK_021D74A8 + ldr r1, _021DC690 ; =errno ldr r1, [r1] cmp r1, #0x22 bne _021DC17C @@ -3873,7 +3873,7 @@ _021DC3B4: strb r2, [r1, r0] mov r0, r1 bl atol - ldr r1, _021DC690 ; =UNK_021D74A8 + ldr r1, _021DC690 ; =errno ldr r1, [r1] cmp r1, #0x22 bne _021DC3F0 @@ -4067,7 +4067,7 @@ _021DC680: .word UNK04_0220C36C _021DC684: .word OSi_ThreadInfo _021DC688: .word 0x00001B34 _021DC68C: .word UNK04_0220C418 -_021DC690: .word UNK_021D74A8 +_021DC690: .word errno _021DC694: .word 0x0000012E _021DC698: .word UNK04_0221048C _021DC69C: .word UNK04_0220BEB4 @@ -4408,7 +4408,7 @@ MOD04_021DCA84: ; 0x021DCA84 mov r1, r6 bl strcpy mov r2, #0 - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno add r0, sp, #0x28 strb r2, [sp, #0x23] strb r2, [sp, #0x27] @@ -4418,7 +4418,7 @@ MOD04_021DCA84: ; 0x021DCA84 strb r2, [sp, #0x35] str r2, [r1] bl atol - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno str r0, [sp] ldr r1, [r1] cmp r1, #0x22 @@ -4445,12 +4445,12 @@ _021DCBC4: ldr r0, [sp, #4] cmp r0, #0xc bhi _021DCCA8 - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno mov r2, #0 add r0, sp, #0x21 str r2, [r1] bl atol - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno str r0, [sp, #8] ldr r0, [r1] cmp r0, #0x22 @@ -4459,7 +4459,7 @@ _021DCBC4: add r0, sp, #0x2d str r2, [r1] bl atol - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno str r0, [sp, #0x10] ldr r0, [r1] cmp r0, #0x22 @@ -4468,7 +4468,7 @@ _021DCBC4: add r0, sp, #0x30 str r2, [r1] bl atol - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno str r0, [sp, #0x14] ldr r0, [r1] cmp r0, #0x22 @@ -4477,7 +4477,7 @@ _021DCBC4: add r0, sp, #0x33 str r2, [r1] bl atol - ldr r1, _021DCCB8 ; =UNK_021D74A8 + ldr r1, _021DCCB8 ; =errno str r0, [sp, #0x18] ldr r0, [r1] cmp r0, #0x22 @@ -4505,7 +4505,7 @@ _021DCCA8: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021DCCB4: .word UNK04_0220C580 -_021DCCB8: .word UNK_021D74A8 +_021DCCB8: .word errno _021DCCBC: .word UNK04_0220C550 _021DCCC0: .word UNK04_022104FC _021DCCC4: .word UNK04_022104F8 @@ -4550,7 +4550,7 @@ _021DCD20: ldmia sp!, {r4, pc} _021DCD4C: bl atol - ldr r1, _021DCEE4 ; =UNK_021D74A8 + ldr r1, _021DCEE4 ; =errno mov r2, r0 ldr r0, [r1] cmp r0, #0x22 @@ -4588,7 +4588,7 @@ _021DCDA0: _021DCDD4: add r0, sp, #0 bl atol - ldr r1, _021DCEE4 ; =UNK_021D74A8 + ldr r1, _021DCEE4 ; =errno mov r2, r0 ldr r0, [r1] cmp r0, #0x22 @@ -4659,7 +4659,7 @@ _021DCED4: .word UNK04_02210504 _021DCED8: .word 0xFFFF9DF3 _021DCEDC: .word UNK04_0220C5A0 _021DCEE0: .word UNK04_0220C5A8 -_021DCEE4: .word UNK_021D74A8 +_021DCEE4: .word errno _021DCEE8: .word 0xFFFF9E58 _021DCEEC: .word UNK04_0220C5B4 _021DCEF0: .word 0xFFFFA240 @@ -27563,7 +27563,7 @@ MOD04_021F01C4: ; 0x021F01C4 mov r2, r0 cmp r3, #0 beq _021F01FC - ldr r1, _021F0204 ; =UNK_0210420C + ldr r1, _021F0204 ; =__lower_mapC _021F01D8: cmp r3, #0 blt _021F01EC @@ -27579,7 +27579,7 @@ _021F01FC: mov r0, r2 bx lr .align 2, 0 -_021F0204: .word UNK_0210420C +_021F0204: .word __lower_mapC arm_func_end MOD04_021F01C4 arm_func_start MOD04_021F0208 @@ -33471,7 +33471,7 @@ _021F5418: blt _021F5434 cmp r1, #0x80 bge _021F5434 - ldr r0, _021F5844 ; =UNK_0210428C + ldr r0, _021F5844 ; =__upper_mapC ldrb r1, [r0, r1] _021F5434: mov r0, r1, lsl #0x18 @@ -33758,7 +33758,7 @@ _021F5834: .word UNK04_0220E2B8 _021F5838: .word UNK04_0220E2C4 _021F583C: .word UNK04_0220E2D0 _021F5840: .word UNK04_0220E2E8 -_021F5844: .word UNK_0210428C +_021F5844: .word __upper_mapC _021F5848: .word UNK04_0220E2F8 _021F584C: .word UNK04_0220E2FC _021F5850: .word UNK04_0220E300 @@ -45849,7 +45849,7 @@ _021FFDB8: add r3, r4, #1 cmp r0, #0 beq _021FFE10 - ldr r1, _021FFEA8 ; =UNK_0210430C + ldr r1, _021FFEA8 ; =__msl_digit mov r2, #0 _021FFDD0: cmp r0, #0 @@ -45915,7 +45915,7 @@ _021FFE84: .align 2, 0 _021FFEA0: .word UNK04_0220EFD8 _021FFEA4: .word UNK04_0220EFF8 -_021FFEA8: .word UNK_0210430C +_021FFEA8: .word __msl_digit _021FFEAC: .word 0x0000FFFF arm_func_end MOD04_021FFD28 @@ -49986,7 +49986,7 @@ MOD04_022034F4: ; 0x022034F4 mov ip, #0 cmp lr, #0 beq _02203538 - ldr r3, _0220354C ; =UNK_0210420C + ldr r3, _0220354C ; =__lower_mapC ldr r2, _02203550 ; =0x9CCF9319 _02203514: cmp lr, #0 @@ -50006,7 +50006,7 @@ _02203538: add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 -_0220354C: .word UNK_0210420C +_0220354C: .word __lower_mapC _02203550: .word 0x9CCF9319 arm_func_end MOD04_022034F4 @@ -50366,7 +50366,7 @@ _022039A8: mov r1, #0 b _022039C0 _022039B0: - ldr r1, _022039DC ; =UNK_0210430C + ldr r1, _022039DC ; =__msl_digit mov r2, r2, lsl #1 ldrh r1, [r1, r2] and r1, r1, #8 @@ -50381,7 +50381,7 @@ _022039D0: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _022039D8: .word UNK04_0220F7E0 -_022039DC: .word UNK_0210430C +_022039DC: .word __msl_digit arm_func_end MOD04_0220394C arm_func_start MOD04_022039E0 @@ -53297,7 +53297,7 @@ MOD04_02206124: ; 0x02206124 mov ip, #0 cmp lr, #0 beq _02206168 - ldr r3, _0220617C ; =UNK_0210420C + ldr r3, _0220617C ; =__lower_mapC ldr r2, _02206180 ; =0x9CCF9319 _02206144: cmp lr, #0 @@ -53317,7 +53317,7 @@ _02206168: add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 -_0220617C: .word UNK_0210420C +_0220617C: .word __lower_mapC _02206180: .word 0x9CCF9319 arm_func_end MOD04_02206124 diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index 730bfc00..9cea7a32 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -8,7 +8,7 @@ MOD05_021D74E0: ; 0x021D74E0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_02009F80 ldr r0, [r4, #0x34] @@ -69,7 +69,7 @@ _021D7564: mov r0, #3 ldr r2, [r2, #4] mov r1, #4 - bl FUN_0201681C + bl CreateHeap ldr r0, [r4, #4] cmp r0, #0 beq _021D757A @@ -101,7 +101,7 @@ _021D757A: bl MOD05_021D7B38 bl GX_SwapDisplay mov r0, #4 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #8] bl MOD05_021D7A30 mov r0, #0 @@ -361,7 +361,7 @@ _021D7806: mov r0, #0 str r0, [r4, #4] mov r0, #4 - bl FUN_020168D0 + bl DestroyHeap ldr r0, [r4, #0x70] ldr r0, [r0] lsl r0, r0, #8 @@ -617,7 +617,7 @@ MOD05_021D7A30: ; 0x021D7A30 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7B04 ; =UNK05_021F6468 add r3, sp, #0x3c ldmia r5!, {r0, r1} @@ -632,15 +632,15 @@ MOD05_021D7A30: ; 0x021D7A30 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7B08 ; =UNK05_021F644C add r3, sp, #0x20 ldmia r5!, {r0, r1} @@ -655,15 +655,15 @@ MOD05_021D7A30: ; 0x021D7A30 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7B0C ; =UNK05_021F6484 add r3, sp, #4 ldmia r5!, {r0, r1} @@ -678,15 +678,15 @@ MOD05_021D7A30: ; 0x021D7A30 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 add r1, sp, #0 strh r0, [r1] @@ -713,13 +713,13 @@ MOD05_021D7B10: ; 0x021D7B10 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021D80E8.s b/arm9/modules/05/asm/mod05_021D80E8.s index e228ee0a..bda94277 100644 --- a/arm9/modules/05/asm/mod05_021D80E8.s +++ b/arm9/modules/05/asm/mod05_021D80E8.s @@ -575,7 +575,7 @@ _021D856A: cmp r0, #1 bne _021D858E ldr r0, _021D8598 ; =0x000005FD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl FUN_02035080 add sp, #8 @@ -770,7 +770,7 @@ _021D8710: lsr r0, r0, #0x1f beq _021D8726 ldr r0, _021D8730 ; =0x000005FD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl FUN_0203515C mov r0, #1 @@ -881,7 +881,7 @@ _021D87F4: lsr r0, r0, #0x1f beq _021D8816 ldr r0, _021D881C ; =0x000005FD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl FUN_02035118 mov r0, #4 @@ -1027,7 +1027,7 @@ _021D892C: lsr r0, r0, #0x1f beq _021D8946 ldr r0, _021D8950 ; =0x000005FD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl FUN_02035080 add sp, #4 diff --git a/arm9/modules/05/asm/mod05_021D9320.s b/arm9/modules/05/asm/mod05_021D9320.s index ec304548..419b92fd 100644 --- a/arm9/modules/05/asm/mod05_021D9320.s +++ b/arm9/modules/05/asm/mod05_021D9320.s @@ -53,7 +53,7 @@ _021D9374: str r0, [sp, #0x20] ldr r1, [r6] add r0, r4, #0 - bl FUN_020161A4 + bl AllocAndReadFile ldr r1, [sp, #0x20] str r0, [sp, #0x24] add r2, r4, #0 @@ -161,7 +161,7 @@ _021D944A: ldr r1, [sp, #0x10] add r0, r4, #0 ldr r1, [r1, #0x18] - bl FUN_020161A4 + bl AllocAndReadFile mov r3, #0x4e lsl r3, r3, #2 ldr r1, [r5, r3] diff --git a/arm9/modules/05/asm/mod05_021D9A48.s b/arm9/modules/05/asm/mod05_021D9A48.s index ee169f98..442bfb26 100644 --- a/arm9/modules/05/asm/mod05_021D9A48.s +++ b/arm9/modules/05/asm/mod05_021D9A48.s @@ -199,7 +199,7 @@ _021D9B98: mov r1, #4 add r0, r7, #0 add r2, r1, #0 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator mov r0, #0x6e mov r1, #4 bl NARC_ctor @@ -1564,7 +1564,7 @@ _021DA526: beq _021DA542 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _021DA542: add r0, r5, #0 mov r1, #0 diff --git a/arm9/modules/05/asm/mod05_021DA5B8.s b/arm9/modules/05/asm/mod05_021DA5B8.s index b4648ab3..eb8560b0 100644 --- a/arm9/modules/05/asm/mod05_021DA5B8.s +++ b/arm9/modules/05/asm/mod05_021DA5B8.s @@ -1489,7 +1489,7 @@ _021DB164: str r0, [r5, #8] strb r0, [r5, #4] ldr r0, _021DB1C8 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 @@ -1552,7 +1552,7 @@ _021DB1F0: str r0, [r4, #8] strb r0, [r4, #4] ldr r0, _021DB24C ; =0x00000603 - bl FUN_020054C8 + bl PlaySE mov r1, #0 str r1, [sp] mov r0, #6 diff --git a/arm9/modules/05/asm/mod05_021DB44C.s b/arm9/modules/05/asm/mod05_021DB44C.s index eaee32f8..bba92897 100644 --- a/arm9/modules/05/asm/mod05_021DB44C.s +++ b/arm9/modules/05/asm/mod05_021DB44C.s @@ -255,7 +255,7 @@ MOD05_021DB61C: ; 0x021DB61C str r1, [sp] mov r0, #4 add r1, r2, #0 - bl FUN_020161A4 + bl AllocAndReadFile mov r1, #0 str r0, [sp, #0x14] str r1, [sp, #8] diff --git a/arm9/modules/05/asm/mod05_021DBEF4.s b/arm9/modules/05/asm/mod05_021DBEF4.s index f65de9d8..ae93e2a3 100644 --- a/arm9/modules/05/asm/mod05_021DBEF4.s +++ b/arm9/modules/05/asm/mod05_021DBEF4.s @@ -120,7 +120,7 @@ _021DBFA8: add r7, #0x10 mov r0, #4 add r1, sp, #0xc - bl FUN_020161A4 + bl AllocAndReadFile str r0, [r7, r5] add r0, r6, #0 str r0, [sp, #8] @@ -128,7 +128,7 @@ _021DBFA8: str r0, [sp, #8] ldr r0, [r7, r5] mov r1, #4 - bl FUN_02016324 + bl OpenFileCached ldr r1, [sp, #8] str r0, [r1, r5] add r0, r1, #0 diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index 7b1e767f..0e77cb4b 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -1903,7 +1903,7 @@ MOD05_021DCECC: ; 0x021DCECC ldr r1, [r1, #0xc] mov r2, #0x20 mov r3, #0xc0 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r0, [sp] bl FreeToHeap mov r0, #0 @@ -1945,7 +1945,7 @@ MOD05_021DCF14: ; 0x021DCF14 ldr r0, [r0, #8] ldr r3, [r3, #0x10] mov r1, #2 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #8] bl FreeToHeap mov r0, #0 @@ -1997,7 +1997,7 @@ _021DCFA0: ldr r0, [r0, #8] mov r1, #2 add r2, #0xc - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram mov r0, #0x41 lsl r0, r0, #2 ldr r3, [sp, #0x18] @@ -2007,7 +2007,7 @@ _021DCFA0: ldr r3, [r3, #8] mov r1, #2 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData mov r0, #0x20 str r0, [sp] str r0, [sp, #4] @@ -2019,13 +2019,13 @@ _021DCFA0: ldr r0, [r0, #8] mov r1, #2 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 ldr r0, [r0, #8] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [sp, #0x14] bl FreeToHeap mov r0, #0 @@ -8960,13 +8960,13 @@ _021E060E: mov r0, #0x24 str r0, [r4, #8] ldr r0, _021E06F4 ; =0x0000063D - bl FUN_020054C8 + bl PlaySE b _021E06CC _021E0644: mov r0, #0xc8 str r0, [r4, #8] ldr r0, _021E06F8 ; =0x0000063C - bl FUN_020054C8 + bl PlaySE b _021E06CC _021E0650: ldr r0, [r4, #0x14] @@ -10156,7 +10156,7 @@ _021E0FB6: lsr r0, r0, #0x10 add r1, r1, #4 strh r0, [r5, r1] - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _021E0FCC: .word 0x00000F5C diff --git a/arm9/modules/05/asm/mod05_021E1374.s b/arm9/modules/05/asm/mod05_021E1374.s index 0e1a6b44..f3c8709a 100644 --- a/arm9/modules/05/asm/mod05_021E1374.s +++ b/arm9/modules/05/asm/mod05_021E1374.s @@ -118,7 +118,7 @@ _021E1442: _021E1456: mov r0, #0x62 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #8] mov r1, #0 bl FUN_0205F42C diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 22b26c5d..20fc2752 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -274,7 +274,7 @@ _021E1CA8: ldr r0, [r0, #8] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -531,7 +531,7 @@ MOD05_021E1ECC: ; 0x021E1ECC push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _021E1F30 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 add r0, #0xb0 ldr r0, [r0] @@ -545,7 +545,7 @@ MOD05_021E1ECC: ; 0x021E1ECC add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] - bl FUN_02019178 + bl RemoveWindow mov r4, #0 add r5, r6, #0 _021E1EFC: @@ -685,7 +685,7 @@ _021E1FC8: ldr r0, [r0, #8] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized b _021E2032 _021E2002: add r1, r4, #0 @@ -710,7 +710,7 @@ _021E2002: ldr r0, [r0, #8] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized _021E2032: mov r0, #0 str r0, [sp] @@ -1061,7 +1061,7 @@ _021E22B8: cmp r6, r0 beq _021E22EE ldr r0, _021E235C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021E22EE: ldr r0, _021E2360 ; =gMain mov r1, #0x40 @@ -1098,7 +1098,7 @@ _021E2320: cmp r0, #1 bne _021E235A ldr r0, _021E235C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0xa0 ldr r1, _021E2364 ; =0x0000FFFE @@ -1109,7 +1109,7 @@ _021E2320: pop {r4, r5, r6, pc} _021E2346: ldr r0, _021E235C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] @@ -1128,7 +1128,7 @@ MOD05_021E2368: ; 0x021E2368 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _021E23CC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x6d lsl r0, r0, #2 mov r1, #0 @@ -1142,7 +1142,7 @@ MOD05_021E2368: ; 0x021E2368 bl FUN_0200CCF8 add r0, r6, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow mov r4, #0 add r5, r6, #0 _021E2398: @@ -1291,7 +1291,7 @@ _021E2496: ldr r0, [r0, #8] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -1411,7 +1411,7 @@ MOD05_021E25A4: ; 0x021E25A4 add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] - bl FUN_02019178 + bl RemoveWindow mov r4, #0 add r5, r6, #0 _021E25D0: @@ -1626,7 +1626,7 @@ _021E270A: ldr r0, [r0, #8] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -1733,7 +1733,7 @@ MOD05_021E27E8: ; 0x021E27E8 add r1, r4, #0 mov r2, #3 add r3, r7, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -1791,7 +1791,7 @@ MOD05_021E288C: ; 0x021E288C bl FUN_0200CCF8 add r0, r4, #0 mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor pop {r4, pc} thumb_func_start MOD05_021E28A0 @@ -1865,7 +1865,7 @@ MOD05_021E28A0: ; 0x021E28A0 ldr r0, [sp, #0xc] bl DestroyMsgData add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -1893,7 +1893,7 @@ MOD05_021E2950: ; 0x021E2950 add r1, r4, #0 mov r2, #3 add r3, r7, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -1925,7 +1925,7 @@ MOD05_021E29B4: ; 0x021E29B4 bl FUN_0200CCF8 add r0, r4, #0 mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor pop {r4, pc} thumb_func_start MOD05_021E29C8 @@ -1992,7 +1992,7 @@ MOD05_021E29C8: ; 0x021E29C8 add r0, r7, #0 bl DestroyMsgData ldr r0, [sp, #0xc] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -2022,7 +2022,7 @@ MOD05_021E2A70: ; 0x021E2A70 add r1, r4, #0 mov r2, #3 add r3, r7, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -2112,7 +2112,7 @@ MOD05_021E2AD4: ; 0x021E2AD4 add r0, r7, #0 bl DestroyMsgData ldr r0, [sp, #0xc] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s index a81ba2f1..9a7c0b1f 100644 --- a/arm9/modules/05/asm/mod05_021E2E88.s +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -36,7 +36,7 @@ MOD05_021E2EA4: ; 0x021E2EA4 add r1, #0x20 str r0, [sp, #0x10] ldr r0, [r4, #0x1c] - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] ldr r2, _021E2EE0 ; =0x000003CF @@ -61,7 +61,7 @@ MOD05_021E2EE4: ; 0x021E2EE4 add r0, #0x38 mov r1, #4 add r7, r3, #0 - bl FUN_0201AB28 + bl LoadCharacterDataFromFile str r0, [r5, #0x34] add r3, r0, #0 str r4, [sp] @@ -69,11 +69,11 @@ MOD05_021E2EE4: ; 0x021E2EE4 ldr r0, [r5, #0x1c] ldr r3, [r3, #0x10] add r1, r6, #0 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r2, _021E2F30 ; =UNK05_021FD62C add r0, sp, #4 mov r1, #4 - bl FUN_0201AB44 + bl LoadPaletteDataFromFile ldr r0, [r0, #0xc] mov r1, #1 add r2, r7, #0 @@ -367,7 +367,7 @@ _021E314E: ldr r0, [r4, #0x1c] ldr r3, [r4, #0xc] add r2, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0xc] cmp r0, #0 bne _021E31D0 @@ -401,7 +401,7 @@ _021E318E: ldr r0, [r4, #0x1c] ldr r3, [r4, #0xc] add r2, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0xc] cmp r0, #0x26 bne _021E31D0 @@ -498,7 +498,7 @@ MOD05_021E3248: ; 0x021E3248 bl DestroyMsgData add r0, r4, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x40] bl String_dtor ldr r0, [r4, #0x38] @@ -522,7 +522,7 @@ MOD05_021E3270: ; 0x021E3270 ldr r0, [r4, #0x1c] add r2, r1, #0 mov r3, #0x26 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x26 str r0, [r4, #0xc] ldr r0, _021E32EC ; =MOD05_021E3124 @@ -584,12 +584,12 @@ MOD05_021E32F0: ; 0x021E32F0 _021E32FE: add r0, r4, #0 add r0, #0x20 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r1, #3 ldr r0, [r4, #0x1c] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, [r4, #0x1c] add r0, r4, #0 bl MOD05_021E3114 diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index 42f9037e..9bd14da2 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1055,7 +1055,7 @@ MOD05_021E3C14: ; 0x021E3C14 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -1071,20 +1071,20 @@ MOD05_021E3C14: ; 0x021E3C14 mov r1, #1 str r0, [r2] add r0, r4, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 add r2, sp, #0x38 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers @@ -1100,20 +1100,20 @@ MOD05_021E3C14: ; 0x021E3C14 mov r1, #2 str r0, [r2] add r0, r4, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 add r2, sp, #0x1c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers @@ -1129,20 +1129,20 @@ MOD05_021E3C14: ; 0x021E3C14 str r0, [r2] add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 add r2, sp, #0 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #8 mov r1, #0 bl GX_EngineAToggleLayers @@ -1214,7 +1214,7 @@ MOD05_021E3D70: ; 0x021E3D70 lsl r1, r1, #0x18 ldr r3, [r3, #0x20] lsr r1, r1, #0x18 - bl FUN_02017B60 + bl Bg_SetTextDimAndAffineParams add r0, r4, #0 bl FUN_0200CAB4 add sp, #0xc diff --git a/arm9/modules/05/asm/mod05_021E4AE4.s b/arm9/modules/05/asm/mod05_021E4AE4.s index 98146a9c..09f66fe5 100644 --- a/arm9/modules/05/asm/mod05_021E4AE4.s +++ b/arm9/modules/05/asm/mod05_021E4AE4.s @@ -1093,7 +1093,7 @@ MOD05_021E5294: ; 0x021E5294 add r1, r0, #0 add r0, r4, #0 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator pop {r4, pc} .section .rodata diff --git a/arm9/modules/05/asm/mod05_021E5AB4.s b/arm9/modules/05/asm/mod05_021E5AB4.s index 3b0d6a5f..eebf0d96 100644 --- a/arm9/modules/05/asm/mod05_021E5AB4.s +++ b/arm9/modules/05/asm/mod05_021E5AB4.s @@ -99,7 +99,7 @@ MOD05_021E5B30: ; 0x021E5B30 mov r3, #0 bl MOD05_021E4DC4 ldr r0, _021E5B7C ; =0x00000609 - bl FUN_020054C8 + bl PlaySE add sp, #0x1c pop {r4, r5, pc} nop diff --git a/arm9/modules/05/asm/mod05_021E5FD8.s b/arm9/modules/05/asm/mod05_021E5FD8.s index f341dfd8..6064c13b 100644 --- a/arm9/modules/05/asm/mod05_021E5FD8.s +++ b/arm9/modules/05/asm/mod05_021E5FD8.s @@ -92,7 +92,7 @@ _021E6088: mov r1, #0 bl FUN_02055450 ldr r0, _021E6098 ; =0x00000618 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} .balign 4, 0 _021E6098: .word 0x00000618 @@ -474,7 +474,7 @@ _021E636C: add r0, r6, #0 bl FUN_0205ADDC ldr r0, _021E63D0 ; =0x00000627 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1011,7 +1011,7 @@ MOD05_021E67C0: ; 0x021E67C0 b _021E68C6 _021E67E4: ldr r0, _021E68CC ; =0x00000651 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1029,7 +1029,7 @@ _021E6804: cmp r0, #5 blt _021E6824 ldr r0, _021E68D0 ; =0x00000652 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0xc] mov r1, #1 bl FUN_0205574C @@ -1177,7 +1177,7 @@ _021E6938: add r0, r4, #0 bl FUN_02057654 ldr r0, _021E6950 ; =0x0000065B - bl FUN_020054C8 + bl PlaySE mov r0, #0 pop {r4, pc} nop @@ -1352,7 +1352,7 @@ MOD05_021E6A58: ; 0x021E6A58 bl MOD06_0224F0BC str r0, [r5, #0x2c] ldr r0, _021E6AA8 ; =0x00000627 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -1631,7 +1631,7 @@ MOD05_021E6CA0: ; 0x021E6CA0 cmp r0, #1 bne _021E6CBA ldr r0, _021E6CC0 ; =0x0000064D - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1862,7 +1862,7 @@ MOD05_021E6E6C: ; 0x021E6E6C cmp r0, #1 bne _021E6E86 ldr r0, _021E6E8C ; =0x0000064D - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] diff --git a/arm9/modules/05/asm/mod05_021E7504.s b/arm9/modules/05/asm/mod05_021E7504.s index d7f960b2..dc029b32 100644 --- a/arm9/modules/05/asm/mod05_021E7504.s +++ b/arm9/modules/05/asm/mod05_021E7504.s @@ -65,7 +65,7 @@ _021E7564: mov r0, #1 str r0, [r5, #8] ldr r0, _021E760C ; =0x0000064F - bl FUN_020054C8 + bl PlaySE _021E756E: ldr r0, [r5, #0xc] lsr r2, r0, #0x1f @@ -192,7 +192,7 @@ _021E763C: add r0, r4, #0 bl MOD05_021F1D8C ldr r0, _021E774C ; =0x0000064F - bl FUN_020054C8 + bl PlaySE mov r0, #1 str r0, [r5, #8] _021E7694: diff --git a/arm9/modules/05/asm/mod05_021E779C.s b/arm9/modules/05/asm/mod05_021E779C.s index 7c09387c..012dbb1d 100644 --- a/arm9/modules/05/asm/mod05_021E779C.s +++ b/arm9/modules/05/asm/mod05_021E779C.s @@ -340,7 +340,7 @@ MOD05_021E79A8: ; 0x021E79A8 cmp r0, #1 bne _021E79FC ldr r0, _021E7A04 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E79FC: mov r0, #1 add sp, #0xc @@ -523,7 +523,7 @@ MOD05_021E7B08: ; 0x021E7B08 cmp r0, #1 bne _021E7B6C ldr r0, _021E7B74 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E7B6C: mov r0, #1 add sp, #0xc diff --git a/arm9/modules/05/asm/mod05_021E80F8.s b/arm9/modules/05/asm/mod05_021E80F8.s index 82fd7a02..3d6303b2 100644 --- a/arm9/modules/05/asm/mod05_021E80F8.s +++ b/arm9/modules/05/asm/mod05_021E80F8.s @@ -26,7 +26,7 @@ MOD05_021E8110: ; 0x021E8110 lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E8120 - bl FUN_02019178 + bl RemoveWindow _021E8120: add r0, r4, #0 bl FreeToHeap @@ -147,7 +147,7 @@ MOD05_021E81D0: ; 0x021E81D0 ldr r0, [r4, #8] add r2, r1, #0 sub r3, #0x33 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, [r4, #0x60] ldrb r0, [r1, #0x13] lsl r0, r0, #0x18 @@ -179,7 +179,7 @@ MOD05_021E820C: ; 0x021E820C lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E825A - bl FUN_02019178 + bl RemoveWindow mov r0, #0x12 str r0, [sp] mov r0, #0x20 @@ -192,15 +192,15 @@ MOD05_021E820C: ; 0x021E820C ldr r0, [r4, #8] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #8] mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r1, #3 ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r2, [r4, #0x60] mov r0, #0x80 ldrb r1, [r2, #0x13] @@ -217,7 +217,7 @@ MOD05_021E8260: ; 0x021E8260 add r4, r0, #0 ldr r0, [r4, #8] mov r1, #3 - bl FUN_02017B54 + bl Bg_GetYpos cmp r0, #0 bne _021E8274 mov r0, #1 @@ -235,13 +235,13 @@ _021E8280: ldr r0, [r4, #8] add r2, r1, #0 sub r3, #0x33 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _021E828E: ldr r0, [r4, #8] mov r1, #3 mov r2, #4 mov r3, #0x10 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 pop {r4, pc} .balign 4, 0 @@ -253,7 +253,7 @@ MOD05_021E82A0: ; 0x021E82A0 add r4, r0, #0 ldr r0, [r4, #8] mov r1, #3 - bl FUN_02017B54 + bl Bg_GetYpos mov r1, #0x2f mvn r1, r1 cmp r0, r1 @@ -270,15 +270,15 @@ MOD05_021E82A0: ; 0x021E82A0 ldr r0, [r4, #8] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #8] mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r1, #3 ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0x10 mov r0, #1 pop {r4, pc} @@ -291,13 +291,13 @@ _021E82F2: ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _021E82FE: ldr r0, [r4, #8] mov r1, #3 mov r2, #5 mov r3, #0x10 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 add sp, #0x10 pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s index 5bf27853..6c9c422b 100644 --- a/arm9/modules/05/asm/mod05_021E8310.s +++ b/arm9/modules/05/asm/mod05_021E8310.s @@ -264,7 +264,7 @@ MOD05_021E84F4: ; 0x021E84F4 ldrb r2, [r4, #8] ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] ldr r0, [r4, #4] @@ -301,7 +301,7 @@ MOD05_021E856C: ; 0x021E856C mov r1, #0 bl FUN_0200CCF8 ldr r0, [r4, #0x10] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x10] bl FreeToHeap pop {r4, pc} diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 006e8bb1..0157aedb 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -2753,7 +2753,7 @@ _021E9C02: ldr r0, [r0, #0x10] mov r2, #3 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized mov r1, #0 add r0, sp, #0x28 strh r1, [r0] @@ -2761,7 +2761,7 @@ _021E9C02: add r1, sp, #0x28 mov r2, #2 mov r3, #0x1e - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2770,7 +2770,7 @@ _021E9C02: mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 @@ -3160,26 +3160,26 @@ _021E9FA4: mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02019178 + bl RemoveWindow mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [sp, #0x1c] mov r1, #3 ldr r0, [r0, #0x10] ldr r0, [r0, #8] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, [sp, #0x1c] mov r0, #4 ldr r1, [r1, #0xc] @@ -3275,7 +3275,7 @@ _021EA0B0: mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x1c] ldr r0, [r0] cmp r0, #7 @@ -3725,7 +3725,7 @@ _021EA430: ldr r0, [r0, #0x10] mov r2, #3 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized mov r1, #0 add r0, sp, #0x28 strh r1, [r0] @@ -3733,7 +3733,7 @@ _021EA430: add r1, sp, #0x28 mov r2, #2 mov r3, #0x1e - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] @@ -3742,7 +3742,7 @@ _021EA430: mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #4 bl MOD05_021E4394 mov r1, #0x81 @@ -4030,7 +4030,7 @@ _021EA6FA: mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x83 lsl r0, r0, #2 add r0, r4, r0 @@ -4093,26 +4093,26 @@ _021EA76C: mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] - bl FUN_02019178 + bl RemoveWindow mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [sp, #0x18] mov r1, #3 ldr r0, [r0, #0x10] ldr r0, [r0, #8] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, [sp, #0x18] mov r0, #4 ldr r1, [r1, #0xc] @@ -5393,7 +5393,7 @@ _021EB18E: ldr r1, [r4] ldr r0, [r0, #8] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r1, #0 add r0, sp, #0x14 strh r1, [r0] @@ -5401,12 +5401,12 @@ _021EB18E: add r1, sp, #0x14 mov r2, #2 mov r3, #0x1e - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r0, [r4] mov r1, #0 bl FillWindowPixelBuffer ldr r0, [r4] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -5535,7 +5535,7 @@ _021EB344: str r0, [r5] _021EB36C: ldr r0, [r4] - bl FUN_02019220 + bl ScheduleWindowCopyToVram b _021EB3F2 _021EB374: mov r0, #0 @@ -5566,21 +5566,21 @@ _021EB394: add r0, #8 bl MOD05_021E3E44 ldr r0, [r4] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r4] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r5, #0x10] mov r1, #3 ldr r0, [r0, #8] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _021EB410 ; =0x0400004D mov r1, #0 strb r1, [r0] @@ -13882,7 +13882,7 @@ MOD05_021EF4F8: ; 0x021EF4F8 MOD05_021EF514: ; 0x021EF514 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 - bl FUN_020162FC + bl ClearFileCache bl NNS_GfdResetLnkTexVramState bl NNS_GfdResetLnkPlttVramState mov r4, #0 @@ -15215,7 +15215,7 @@ MOD05_021EFEDC: ; 0x021EFEDC ldr r0, [r0, #8] mov r2, #3 mov r3, #0x13 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _021EFFBC ; =0x000003D9 add r0, #0x20 @@ -15311,7 +15311,7 @@ MOD05_021EFFC8: ; 0x021EFFC8 pop {r3, r4, r5, r6, r7, pc} _021EFFE6: ldr r0, _021F007C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0x8c ldr r0, [r0] @@ -15328,7 +15328,7 @@ _021EFFE6: b _021F0056 _021F000E: ldr r0, _021F007C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0x90 str r4, [r0] @@ -15362,7 +15362,7 @@ _021F0056: bl FUN_0200CCF8 add r0, r5, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow mov r1, #0 ldr r0, [r5, #4] add r2, r1, #0 @@ -15565,12 +15565,12 @@ MOD05_021F01EC: ; 0x021F01EC add r4, r0, #0 add r0, #0x10 add r5, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021F0204 add r0, r4, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow _021F0204: ldr r0, [r4, #0x3c] ldr r2, [r4, #8] @@ -15648,12 +15648,12 @@ MOD05_021F0290: ; 0x021F0290 bl String_dtor add r0, r4, #0 add r0, #0x10 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021F02C0 add r4, #0x10 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _021F02C0: pop {r4, pc} .balign 4, 0 @@ -15695,7 +15695,7 @@ MOD05_021F0304: ; 0x021F0304 cmp r2, #0 bne _021F0310 ldr r0, _021F0314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021F0310: pop {r3, pc} nop @@ -24673,7 +24673,7 @@ _021F4732: str r0, [r4, #8] mov r0, #0x61 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} .balign 4, 0 _021F47A4: .word MOD05_021F48CC @@ -24929,7 +24929,7 @@ MOD05_021F4968: ; 0x021F4968 sub r1, r1, r0 bx r3 nop -_021F4974: .word FUN_02016B44 +_021F4974: .word ReallocFromHeap thumb_func_start MOD05_021F4978 MOD05_021F4978: ; 0x021F4978 @@ -26506,12 +26506,12 @@ MOD05_021F5518: ; 0x021F5518 bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers ldr r0, _021F5560 ; =0x00000648 - bl FUN_020054C8 + bl PlaySE add sp, #4 pop {r3, r4, pc} .balign 4, 0 @@ -26629,7 +26629,7 @@ MOD05_021F5608: ; 0x021F5608 add r1, sp, #4 add r2, r0, #0 mov r3, #0xc2 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #4 mov r1, #0x20 bl AllocFromHeap @@ -26643,13 +26643,13 @@ MOD05_021F5608: ; 0x021F5608 mov r1, #2 add r2, r4, #0 mov r3, #0x20 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r4, #0 bl FreeToHeap ldr r2, _021F565C ; =0x00006001 add r0, r5, #0 mov r1, #2 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit add sp, #8 pop {r3, r4, r5, pc} nop @@ -26694,21 +26694,21 @@ _021F5696: thumb_func_start MOD05_021F569C MOD05_021F569C: ; 0x021F569C - ldr r3, _021F56A4 ; =FUN_02017FE4 + ldr r3, _021F56A4 ; =BG_SetMaskColor mov r0, #2 mov r1, #0 bx r3 .balign 4, 0 -_021F56A4: .word FUN_02017FE4 +_021F56A4: .word BG_SetMaskColor thumb_func_start MOD05_021F56A8 MOD05_021F56A8: ; 0x021F56A8 - ldr r3, _021F56B0 ; =FUN_02017FE4 + ldr r3, _021F56B0 ; =BG_SetMaskColor mov r0, #2 ldr r1, _021F56B4 ; =0x00007FFF bx r3 .balign 4, 0 -_021F56B0: .word FUN_02017FE4 +_021F56B0: .word BG_SetMaskColor _021F56B4: .word 0x00007FFF thumb_func_start MOD05_021F56B8 @@ -26733,17 +26733,17 @@ MOD05_021F56B8: ; 0x021F56B8 mov r0, #2 add r1, sp, #4 add r2, r0, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r1, #2 str r1, [sp] ldr r0, [r4, #8] add r2, r1, #0 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange ldr r0, [r4, #8] ldr r2, _021F5718 ; =0x00006002 mov r1, #2 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers @@ -26777,17 +26777,17 @@ MOD05_021F571C: ; 0x021F571C strh r2, [r1] add r1, sp, #4 mov r2, #2 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r2, #2 str r2, [sp] ldr r0, [r4, #8] mov r1, #3 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange ldr r0, [r4, #8] ldr r2, _021F577C ; =0x00006002 mov r1, #3 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit mov r0, #8 mov r1, #1 bl GX_EngineAToggleLayers @@ -26928,7 +26928,7 @@ _021F5856: mov r0, #2 mov r1, #0 strh r0, [r4, #8] - bl FUN_020178BC + bl SetBgPriority mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers @@ -27007,7 +27007,7 @@ _021F58EE: strh r1, [r0] mov r0, #2 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #8 strh r0, [r4, #8] b _021F5980 @@ -27084,7 +27084,7 @@ MOD05_021F5990: ; 0x021F5990 str r0, [sp] add r7, r1, #0 str r3, [sp, #4] - bl FUN_0201681C + bl CreateHeap cmp r0, #1 beq _021F59B2 bl GF_AssertFail @@ -27142,7 +27142,7 @@ _021F5A0E: add r0, r6, #0 bl FreeToHeap add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap pop {r4, r5, r6, pc} .balign 4, 0 @@ -27686,7 +27686,7 @@ MOD05_021F5DF8: ; 0x021F5DF8 bne _021F5E0E mov r0, #0x65 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE _021F5E0E: ldr r0, [r4, #0x10] cmp r0, #0x22 @@ -28181,7 +28181,7 @@ MOD05_021F617C: ; 0x021F617C bl FUN_0200D0E0 add r4, #0x38 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow mov r0, #1 pop {r4, pc} _021F61AA: diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c index 73fddb7e..686dfdf9 100644 --- a/arm9/modules/05/src/mod05_021E72FC.c +++ b/arm9/modules/05/src/mod05_021E72FC.c @@ -3,7 +3,7 @@ #include "heap.h" -extern void FUN_020054C8(u32 param0); +extern void PlaySE(u32 param0); extern void FUN_020463CC(u32 param0, void *func, UnkStruct021E7358 *param2); extern u32 FUN_020553A0(u32 param0); extern u32 FUN_02058720(u32 param0); @@ -57,7 +57,7 @@ THUMB_FUNC void MOD05_021E7358(u32 param0, u32 param1, u32 param2) res->Unk0C = param0; res->Unk10 = param1; res->Unk00 = param2; - FUN_020054C8(1624); + PlaySE(1624); FUN_020463CC(param0, MOD05_021E73B4, res); } diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index d258860d..0701bc8c 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -90,11 +90,11 @@ MOD06_02239728: ; 0x02239728 MOD06_0223972C: ; 0x0223972C push {r4, lr} add r4, r0, #0 - bl GX_GetBankForBGExtPltt_2 + bl GX_GetBankForBG str r0, [r4] bl GX_GetBankForBGExtPltt str r0, [r4, #4] - bl GX_GetBankForSubBGExtPltt_2 + bl GX_GetBankForSubBG str r0, [r4, #8] bl GX_GetBankForSubBGExtPltt str r0, [r4, #0xc] @@ -106,7 +106,7 @@ MOD06_0223972C: ; 0x0223972C str r0, [r4, #0x18] bl GX_GetBankForSubOBJExtPltt str r0, [r4, #0x1c] - bl FUN_020C5D8C + bl GX_GetBankForTex str r0, [r4, #0x20] bl GX_GetBankForTexPltt str r0, [r4, #0x24] @@ -145,7 +145,7 @@ MOD06_02239790: ; 0x02239790 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -163,15 +163,15 @@ MOD06_02239790: ; 0x02239790 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x2c pop {r4, r5, pc} nop @@ -477,7 +477,7 @@ _02239A1E: add r0, r0, #1 str r0, [r4, #0xc] ldr r0, _02239AA8 ; =0x0000065C - bl FUN_020054C8 + bl PlaySE b _02239AA4 _02239A36: ldr r0, [r4] @@ -1907,7 +1907,7 @@ MOD06_0223A460: ; 0x0223A460 ldr r0, [sp, #0x28] str r0, [r5, #0x48] ldr r0, _0223A4DC ; =0x000006D5 - bl FUN_020054C8 + bl PlaySE add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -2183,7 +2183,7 @@ _0223A69A: bl FUN_0200CA98 str r0, [r5, #0x20] ldr r0, _0223A6D8 ; =0x000006D4 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} nop _0223A6D0: .word 0x0400006C @@ -2285,7 +2285,7 @@ MOD06_0223A75C: ; 0x0223A75C add r0, r4, r0 mov r1, #4 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r4, #0 pop {r3, r4, r5, pc} @@ -2964,7 +2964,7 @@ MOD06_0223AC78: ; 0x0223AC78 add r0, r4, r0 add r1, r5, #0 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator mov r2, #0x4f lsl r2, r2, #2 add r0, r4, #0 @@ -3517,7 +3517,7 @@ _0223B0B2: cmp r0, #0 bge _0223B162 ldr r0, _0223B164 ; =0x000006D2 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x48 add r0, #0xf0 @@ -3540,7 +3540,7 @@ _0223B0E0: cmp r0, #0 bge _0223B162 ldr r0, _0223B168 ; =0x000006D3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x4b lsl r1, r1, #2 @@ -3564,7 +3564,7 @@ _0223B110: cmp r0, #0 bge _0223B162 ldr r0, _0223B16C ; =0x000006D6 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x84 add r0, #0xf0 @@ -3587,7 +3587,7 @@ _0223B13E: cmp r0, #0 bge _0223B162 ldr r0, _0223B170 ; =0x000006D7 - bl FUN_020054C8 + bl PlaySE mov r0, #4 add r4, #0xf4 str r0, [r4] @@ -4020,7 +4020,7 @@ MOD06_0223B458: ; 0x0223B458 add r0, #0xc4 add r1, r7, #0 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r6, #0 add r0, #0x78 mov r1, #0x62 @@ -4587,7 +4587,7 @@ MOD06_0223B828: ; 0x0223B828 add r0, #0xdc add r1, r7, #0 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r6, #0 add r0, #0x78 mov r1, #0x62 @@ -4684,7 +4684,7 @@ MOD06_0223B8EC: ; 0x0223B8EC mov r1, #1 bl MOD06_0223A408 ldr r0, _0223B920 ; =0x000006D8 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r3, r4, pc} .align 2, 0 @@ -5151,13 +5151,13 @@ _0223BCDA: str r0, [sp, #0x10] _0223BCDE: mov r0, #4 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _0223BCEC bl GF_AssertFail _0223BCEC: mov r0, #0xb - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _0223BCFA bl GF_AssertFail @@ -5864,13 +5864,13 @@ _0223C2DC: str r0, [sp, #0x10] _0223C2E4: mov r0, #4 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _0223C2F2 bl GF_AssertFail _0223C2F2: mov r0, #0xb - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _0223C300 bl GF_AssertFail @@ -8472,7 +8472,7 @@ MOD06_0223D63C: ; 0x0223D63C ldr r0, [r5] add r1, #8 add r2, r4, #0 - bl FUN_02019064 + bl AddWindowParameterized b _0223D710 _0223D6B8: mov r4, #2 @@ -8514,7 +8514,7 @@ _0223D6B8: ldr r0, [r5] add r1, #8 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized _0223D710: add r0, r5, #0 add r0, #0x84 @@ -8609,7 +8609,7 @@ MOD06_0223D7B8: ; 0x0223D7B8 bl FUN_0200CCF8 add r0, r4, #0 add r0, #8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x80 ldr r0, [r0] @@ -8621,7 +8621,7 @@ MOD06_0223D7B8: ; 0x0223D7B8 bl ListMenuItems_dtor add r4, #8 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} thumb_func_start MOD06_0223D7EC @@ -8649,7 +8649,7 @@ _0223D804: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x88 ldr r0, [r0] @@ -8780,7 +8780,7 @@ MOD06_0223D918: ; 0x0223D918 ldr r0, [r4] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0 bl MOD06_0223D7B8 add r0, r4, #0 @@ -8825,13 +8825,13 @@ _0223D984: ldr r0, [r5] ldr r2, _0223D9BC ; =0x0224F350 add r1, r4, #0 - bl FUN_02019150 + bl AddWindow b _0223D9A6 _0223D99C: ldr r0, [r5] add r1, r4, #0 add r2, r7, #0 - bl FUN_02019150 + bl AddWindow _0223D9A6: add r6, r6, #1 add r4, #0x10 @@ -8855,9 +8855,9 @@ MOD06_0223D9C0: ; 0x0223D9C0 add r5, #8 _0223D9D0: add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #6 @@ -8955,37 +8955,37 @@ MOD06_0223DA8C: ; 0x0223DA8C str r0, [r4, r1] ldr r0, [r4] mov r1, #0 - bl FUN_02018884 + bl GetBgPriority mov r1, #0x8d lsl r1, r1, #2 strb r0, [r4, r1] ldr r0, [r4] mov r1, #1 - bl FUN_02018884 + bl GetBgPriority ldr r1, _0223DB10 ; =0x00000235 strb r0, [r4, r1] ldr r0, [r4] mov r1, #2 - bl FUN_02018884 + bl GetBgPriority ldr r1, _0223DB14 ; =0x00000236 strb r0, [r4, r1] ldr r0, [r4] mov r1, #3 - bl FUN_02018884 + bl GetBgPriority ldr r1, _0223DB18 ; =0x00000237 strb r0, [r4, r1] mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #0 mov r1, #1 bl GX_EngineAToggleLayers @@ -9012,19 +9012,19 @@ MOD06_0223DB1C: ; 0x0223DB1C lsl r1, r1, #2 ldrb r1, [r4, r1] mov r0, #0 - bl FUN_020178BC + bl SetBgPriority ldr r1, _0223DB58 ; =0x00000235 mov r0, #1 ldrb r1, [r4, r1] - bl FUN_020178BC + bl SetBgPriority ldr r1, _0223DB5C ; =0x00000236 mov r0, #2 ldrb r1, [r4, r1] - bl FUN_020178BC + bl SetBgPriority ldr r1, _0223DB60 ; =0x00000237 mov r0, #3 ldrb r1, [r4, r1] - bl FUN_020178BC + bl SetBgPriority mov r0, #0x8e lsl r0, r0, #2 ldr r0, [r4, r0] @@ -9241,7 +9241,7 @@ MOD06_0223DCF0: ; 0x0223DCF0 cmp r6, #1 beq _0223DD0C ldr r0, _0223DE28 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE _0223DD0C: add r0, r4, #0 add r0, #0x18 @@ -9323,7 +9323,7 @@ _0223DDB2: _0223DDBA: add r0, r4, #0 add r0, #0x18 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r1, sp, #0x14 ldr r0, [sp, #0x10] add r1, #2 @@ -9546,7 +9546,7 @@ _0223DF30: bl String_dtor add r5, #0x28 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -9604,9 +9604,9 @@ _0223E006: bl MOD06_0223DB1C ldr r0, [r5] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _0223E188 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xc pop {r3, r4, r5, pc} _0223E034: @@ -9640,7 +9640,7 @@ _0223E034: bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x18 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 add r0, #0x58 mov r1, #0 @@ -9702,7 +9702,7 @@ _0223E0FC: cmp r2, #1 bne _0223E112 ldr r0, _0223E188 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD06_0223E384 pop {r3, r4, r5, pc} @@ -9753,7 +9753,7 @@ _0223E124: mov r1, #1 bl MOD06_0223EBF8 ldr r0, _0223E188 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #5 pop {r3, r4, r5, pc} _0223E182: @@ -9881,7 +9881,7 @@ _0223E214: bl String_dtor add r5, #0x48 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4, r5, r6, r7, pc} nop @@ -9900,7 +9900,7 @@ MOD06_0223E29C: ; 0x0223E29C cmp r0, #0 beq _0223E2C4 ldr r0, _0223E378 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #1 bl MOD06_0223E4E8 @@ -9936,7 +9936,7 @@ _0223E2C4: mov r1, #0xf bl FillWindowPixelBuffer ldr r0, _0223E380 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD06_0223E384 pop {r4, pc} @@ -9975,9 +9975,9 @@ _0223E314: bl MOD06_0223ECC8 add r4, #0x18 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _0223E380 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #4 pop {r4, pc} _0223E374: @@ -10268,7 +10268,7 @@ _0223E50A: bl String_dtor add r5, #0x38 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -10443,7 +10443,7 @@ _0223E704: lsl r1, r1, #2 strb r0, [r5, r1] ldr r0, _0223E798 ; =0x00000644 - bl FUN_020054C8 + bl PlaySE mov r0, #9 pop {r3, r4, r5, pc} _0223E74A: @@ -10471,7 +10471,7 @@ _0223E74A: bl MOD06_0223ECC8 add r5, #0x18 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #4 pop {r3, r4, r5, pc} _0223E78C: @@ -10684,7 +10684,7 @@ _0223E902: bl MOD06_0223ECC8 add r5, #0x18 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #4 pop {r3, r4, r5, pc} _0223E944: @@ -10736,7 +10736,7 @@ _0223E966: bl MOD06_0223ECC8 add r4, #0x18 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #4 pop {r4, pc} _0223E9B2: @@ -10917,7 +10917,7 @@ MOD06_0223EB04: ; 0x0223EB04 _0223EB1A: add r0, r4, #0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 bl MOD06_0223D63C mov r0, #1 @@ -11285,7 +11285,7 @@ _0223EE16: ldr r0, _0223EE70 ; =0x02252420 ldr r0, [r0] add r0, #0x40 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0223EE34 ldr r0, _0223EE70 ; =0x02252420 @@ -11333,7 +11333,7 @@ MOD06_0223EE74: ; 0x0223EE74 ldr r0, _0223EF10 ; =0x02252420 ldr r0, [r0] add r0, #0x20 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0223EEB8 ldr r0, _0223EF10 ; =0x02252420 @@ -11358,7 +11358,7 @@ MOD06_0223EE74: ; 0x0223EE74 ldr r0, [r1, #0x68] add r1, #0x20 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized _0223EEB8: ldr r0, _0223EF10 ; =0x02252420 ldr r2, _0223EF14 ; =0x000003D9 @@ -11570,7 +11570,7 @@ _0223F060: cmp r1, #0 beq _0223F07A add r0, #0x40 - bl FUN_02019178 + bl RemoveWindow _0223F07A: ldr r0, _0223F08C ; =0x02252420 ldr r0, [r0] @@ -11606,7 +11606,7 @@ MOD06_0223F0A8: ; 0x0223F0A8 cmp r2, #0 bne _0223F0BE ldr r0, _0223F0C4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0223F0BE: pop {r3, pc} .align 2, 0 @@ -11820,7 +11820,7 @@ MOD06_0223F270: ; 0x0223F270 ldr r0, _0223F330 ; =0x02252420 ldr r0, [r0] add r0, #0x30 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0223F2AA ldr r0, _0223F330 ; =0x02252420 @@ -11840,7 +11840,7 @@ MOD06_0223F270: ; 0x0223F270 add r1, #0x30 ldr r0, [r0, #8] mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0223F2AA: ldr r0, _0223F330 ; =0x02252420 ldr r2, _0223F334 ; =0x000003D9 @@ -12088,7 +12088,7 @@ _0223F4A4: pop {r3, r4, r5, pc} _0223F4BA: ldr r0, _0223F51C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0223F518 ; =0x02252420 mov r1, #1 ldr r0, [r0] @@ -12101,7 +12101,7 @@ _0223F4BA: pop {r3, r4, r5, pc} _0223F4D8: ldr r0, _0223F51C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 ldr r0, [r4, #0x5c] add r1, #0x8e @@ -12578,7 +12578,7 @@ MOD06_0223F8C8: ; 0x0223F8C8 ldr r0, _0223F950 ; =0x02252420 ldr r0, [r0] add r0, #0x30 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0223F910 ldr r0, _0223F950 ; =0x02252420 @@ -12598,7 +12598,7 @@ MOD06_0223F8C8: ; 0x0223F8C8 add r1, #0x30 ldr r0, [r0, #8] mov r3, #0x16 - bl FUN_02019064 + bl AddWindowParameterized _0223F910: ldr r0, _0223F950 ; =0x02252420 ldr r2, _0223F954 ; =0x000003D9 @@ -13005,7 +13005,7 @@ _0223FC32: add r1, #0x95 strb r0, [r1] ldr r0, _0223FCF4 ; =0x0000060D - bl FUN_020054C8 + bl PlaySE ldr r0, [sp, #4] ldr r1, [sp, #4] add r0, #0x95 @@ -13856,10 +13856,10 @@ MOD06_02240364: ; 0x02240364 bl DestroyListMenu add r0, r4, #0 add r0, #0x20 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x97 ldrb r0, [r0] @@ -13873,11 +13873,11 @@ MOD06_02240364: ; 0x02240364 ldr r0, _022403DC ; =0x02252420 ldr r0, [r0] add r0, #0x30 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _022403DC ; =0x02252420 ldr r0, [r0] add r0, #0x30 - bl FUN_02019178 + bl RemoveWindow mov r0, #0 add r4, #0x97 strb r0, [r4] @@ -14468,7 +14468,7 @@ MOD06_02240864: ; 0x02240864 add r5, r0, #0 add r0, #0x54 add r4, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0224089E add r0, r5, #0 @@ -14524,11 +14524,11 @@ MOD06_022408D4: ; 0x022408D4 bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x54 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _022408EC: add r4, #0x54 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 @@ -14572,7 +14572,7 @@ MOD06_02240924: ; 0x02240924 add r6, r6, #1 _02240940: add r0, r4, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _022409D2 add r0, r6, #2 @@ -14594,7 +14594,7 @@ _02240940: add r1, r4, #0 ldr r0, [r0, #8] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02240A20 ; =0x000003D9 add r0, #0x34 @@ -14695,10 +14695,10 @@ MOD06_02240A28: ; 0x02240A28 add r1, #0x38 ldrb r1, [r1] ldr r0, [r4, #0x34] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0 add r0, #0x34 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #8] bl ListMenuItems_dtor mov r0, #0 @@ -14731,7 +14731,7 @@ MOD06_02240A64: ; 0x02240A64 cmp r6, r0 beq _02240A9C ldr r0, _02240B00 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02240A9C: mov r0, #1 mvn r0, r0 @@ -14748,7 +14748,7 @@ _02240AB0: pop {r4, r5, r6, pc} _02240AB4: ldr r0, _02240B00 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x10] mov r1, #0 add r0, #0xac @@ -14759,7 +14759,7 @@ _02240AB4: pop {r4, r5, r6, pc} _02240ACC: ldr r0, _02240B00 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x10] mov r1, #0 add r0, #0xac @@ -14771,7 +14771,7 @@ _02240ACC: pop {r4, r5, r6, pc} _02240AE6: ldr r0, _02240B00 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x10] add r1, r4, #0 ldr r0, [r0, #0xc] @@ -14810,7 +14810,7 @@ MOD06_02240B04: ; 0x02240B04 ldr r0, [r0, #8] mov r2, #3 mov r3, #0x16 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02240BB0 ; =0x000003D9 add r0, #0x44 @@ -14893,7 +14893,7 @@ MOD06_02240BB8: ; 0x02240BB8 cmp r6, r0 beq _02240BF0 ldr r0, _02240C54 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02240BF0: mov r0, #1 mvn r0, r0 @@ -14906,13 +14906,13 @@ _02240BF0: pop {r4, r5, r6, pc} _02240C02: ldr r0, _02240C54 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r4, #0 mvn r4, r4 b _02240C1A _02240C0E: ldr r0, _02240C54 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD06_02240A28 _02240C1A: @@ -14930,10 +14930,10 @@ _02240C1A: add r1, #0x48 ldrb r1, [r1] ldr r0, [r5, #0x44] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r5, #0 add r0, #0x44 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r5, #0xc] bl ListMenuItems_dtor mov r0, #0 @@ -14984,7 +14984,7 @@ MOD06_02240C58: ; 0x02240C58 ldr r0, [r0, #0x10] mov r3, #4 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x24] ldr r2, _02240F00 ; =0x000003D9 mov r1, #1 @@ -15286,10 +15286,10 @@ MOD06_02240F1C: ; 0x02240F1C add r1, #0x28 ldrb r1, [r1] ldr r0, [r4, #0x24] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r4, #0x24 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 @@ -15320,7 +15320,7 @@ _02240F6A: pop {r4, pc} _02240F70: ldr r0, _02240FE8 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r1, #0x78 ldrh r1, [r1] @@ -15345,7 +15345,7 @@ _02240F70: b _02240FE2 _02240FAA: ldr r0, _02240FE8 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r1, #0x78 ldrh r1, [r1] @@ -16402,7 +16402,7 @@ _022417F4: add r0, r4, #0 bl MOD05_021DA0E0 ldr r0, _02241868 ; =0x0000065A - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _02241868: .word 0x0000065A @@ -16559,7 +16559,7 @@ _022419A2: mov r1, #0 bl FUN_02055560 ldr r0, _02241A38 ; =0x00000611 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -16610,7 +16610,7 @@ _02241A02: mov r1, #1 bl FUN_0205557C ldr r0, _02241A40 ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -16658,7 +16658,7 @@ _02241A72: mov r1, #0 bl FUN_02055560 ldr r0, _02241B04 ; =0x00000611 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -16706,7 +16706,7 @@ _02241ACE: mov r1, #1 bl FUN_0205557C ldr r0, _02241B0C ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17168,7 +17168,7 @@ _02241E8A: mov r1, #0 bl FUN_02055560 ldr r0, _02241F70 ; =0x00000611 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17258,7 +17258,7 @@ _02241F48: mov r1, #1 bl FUN_0205557C ldr r0, _02241F78 ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17317,7 +17317,7 @@ _02241FBA: mov r1, #0x49 bl FUN_0205ADDC ldr r0, _022420C4 ; =0x00000611 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17417,7 +17417,7 @@ _02242092: add r0, r6, #0 bl FUN_0205AE50 ldr r0, _022420C8 ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17477,7 +17477,7 @@ _02242112: mov r1, #0x49 bl FUN_0205ADDC ldr r0, _0224221C ; =0x00000611 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -17580,7 +17580,7 @@ _022421E4: add r0, r5, #0 bl FUN_0205AE50 ldr r0, _02242220 ; =0x0000061A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -18283,7 +18283,7 @@ _02242776: ; jump table .short _0224282E - _02242776 - 2 ; case 3 _0224277E: ldr r0, _02242840 ; =0x00000616 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x24] cmp r0, #4 bne _02242794 @@ -18725,7 +18725,7 @@ _02242ACE: str r0, [r6] strb r0, [r4, #0x13] ldr r0, _02242AE4 ; =0x0000063F - bl FUN_020054C8 + bl PlaySE ldr r0, [r7, #0x10] ldr r1, _02242AE8 ; =MOD06_02242AEC ldr r2, [sp] @@ -18878,7 +18878,7 @@ MOD06_02242BE0: ; 0x02242BE0 bl FUN_02046528 add r7, r0, #0 ldr r0, _02242C70 ; =0x0000067C - bl FUN_020054C8 + bl PlaySE mov r1, #0x11 mov r0, #4 lsl r1, r1, #4 @@ -19005,7 +19005,7 @@ MOD06_02242CDC: ; 0x02242CDC add r1, r4, #4 mov r2, #3 add r3, r6, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #4 @@ -19426,14 +19426,14 @@ MOD06_02243024: ; 0x02243024 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _0224307C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 add r0, #0x14 mov r1, #0 bl FUN_0200D0E0 add r0, r6, #0 add r0, #0x14 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0 add r0, #0x88 mov r1, #0 @@ -19444,7 +19444,7 @@ MOD06_02243024: ; 0x02243024 mov r1, #0 bl FUN_0200CCF8 add r0, r6, #4 - bl FUN_02019178 + bl RemoveWindow mov r4, #0 add r5, r6, #0 _02243060: @@ -20061,7 +20061,7 @@ MOD06_022434D0: ; 0x022434D0 mov r0, #3 mov r1, #0x3b lsl r2, r2, #0xe - bl FUN_02016828 + bl CreateHeapAtEnd ldr r1, _02243684 ; =0x000008CC mov r0, #0x3b bl AllocFromHeap @@ -20275,7 +20275,7 @@ _022436A6: add r0, r4, #0 bl FreeToHeap add r0, r5, #0 - bl FUN_020168D0 + bl DestroyHeap _022436BE: pop {r3, r4, r5, pc} .align 2, 0 @@ -24074,7 +24074,7 @@ _022453F0: cmp r0, #4 bne _022453FC ldr r0, _02245474 ; =0x000006DB - bl FUN_020054C8 + bl PlaySE _022453FC: ldrb r0, [r4, #5] add r0, r0, #1 @@ -24179,7 +24179,7 @@ MOD06_02245478: ; 0x02245478 cmp r2, #0 bne _022454CC ldr r0, _02245540 ; =0x000006DA - bl FUN_020054C8 + bl PlaySE _022454CC: ldrb r0, [r5, #6] add r0, r0, #1 @@ -24220,7 +24220,7 @@ _022454D8: cmp r2, #0 bne _0224551C ldr r0, _02245540 ; =0x000006DA - bl FUN_020054C8 + bl PlaySE _0224551C: ldrb r0, [r5, #6] add r0, r0, #1 @@ -24294,7 +24294,7 @@ _02245578: cmp r0, #0 bne _022455B4 ldr r0, _0224564C ; =0x000006D9 - bl FUN_020054C8 + bl PlaySE _022455B4: ldrb r0, [r4, #6] add r0, r0, #1 @@ -24312,7 +24312,7 @@ _022455BC: cmp r0, #6 bne _022455D8 ldr r0, _02245650 ; =0x000006DA - bl FUN_020054C8 + bl PlaySE _022455D8: ldrb r0, [r4, #6] sub r0, r0, #1 @@ -24341,7 +24341,7 @@ _022455E0: cmp r0, #0 bne _02245616 ldr r0, _0224564C ; =0x000006D9 - bl FUN_020054C8 + bl PlaySE _02245616: ldrb r0, [r4, #6] add r0, r0, #1 @@ -24359,7 +24359,7 @@ _0224561E: cmp r0, #6 bne _0224563A ldr r0, _02245650 ; =0x000006DA - bl FUN_020054C8 + bl PlaySE _0224563A: ldrb r0, [r4, #6] sub r0, r0, #1 @@ -27300,7 +27300,7 @@ MOD06_02246C08: ; 0x02246C08 pop {r4, pc} _02246C18: ldr r0, _02246C34 ; =0x00000649 - bl FUN_020054C8 + bl PlaySE mov r0, #2 lsl r0, r0, #0xa str r0, [r4, #0x54] @@ -27719,12 +27719,12 @@ MOD06_02246F0C: ; 0x02246F0C ldr r0, [r5, #0x60] mov r1, #0 ldr r0, [r0, #8] - bl FUN_02018884 + bl GetBgPriority strh r0, [r5, #0x24] ldr r0, [r5, #0x60] mov r1, #3 ldr r0, [r0, #8] - bl FUN_02018884 + bl GetBgPriority strh r0, [r5, #0x26] ldr r2, _02246FB4 ; =0x0400000A mov r1, #3 @@ -28496,7 +28496,7 @@ MOD06_02247544: ; 0x02247544 ldr r1, [r1, #0xc] mov r2, #0x20 lsl r3, r0, #7 - bl FUN_02017FB4 + bl BG_LoadPlttData add r0, r4, #0 bl FreeToHeap pop {r3, r4, r5, pc} @@ -28521,7 +28521,7 @@ MOD06_0224756C: ; 0x0224756C ldr r3, [r3, #0x10] add r0, r5, #0 mov r1, #3 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r6, #0 bl FreeToHeap add sp, #4 @@ -28539,12 +28539,12 @@ MOD06_022475A4: ; 0x022475A4 mov r1, #3 add r3, r2, #0 add r5, r0, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 add r0, r5, #0 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r6, #0 add r1, r7, #0 mov r2, #4 @@ -28558,7 +28558,7 @@ MOD06_022475A4: ; 0x022475A4 ldr r3, [r3, #8] mov r1, #3 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData mov r0, #0x20 str r0, [sp] str r0, [sp, #4] @@ -28568,10 +28568,10 @@ MOD06_022475A4: ; 0x022475A4 add r0, r5, #0 mov r1, #3 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r5, #0 mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl FreeToHeap add sp, #0xc @@ -28579,11 +28579,11 @@ MOD06_022475A4: ; 0x022475A4 thumb_func_start MOD06_02247610 MOD06_02247610: ; 0x02247610 - ldr r3, _02247618 ; =FUN_02018744 + ldr r3, _02247618 ; =BgClearTilemapBufferAndCommit mov r1, #3 bx r3 nop -_02247618: .word FUN_02018744 +_02247618: .word BgClearTilemapBufferAndCommit thumb_func_start MOD06_0224761C MOD06_0224761C: ; 0x0224761C @@ -38707,7 +38707,7 @@ _0224C3C2: add r0, r0, r1 str r0, [sp, #0x34] ldr r0, _0224C518 ; =0x000005FE - bl FUN_020054C8 + bl PlaySE add r0, sp, #0x20 str r0, [sp] ldr r0, [r5, #0x4c] @@ -38956,7 +38956,7 @@ _0224C604: mov r1, #1 bl MOD05_021DA4EC ldr r0, _0224C670 ; =0x00000612 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #2] add r0, r0, #1 strb r0, [r4, #2] @@ -38971,7 +38971,7 @@ _0224C61C: mov r1, #0 bl FUN_020054F0 ldr r0, _0224C674 ; =0x000005F1 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #1 @@ -39151,15 +39151,15 @@ MOD06_0224C75C: ; 0x0224C75C b _0224C7AA _0224C794: ldr r0, _0224C7B8 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE b _0224C7AA _0224C79C: ldr r0, _0224C7B8 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE b _0224C7AA _0224C7A4: ldr r0, _0224C7BC ; =0x0000064E - bl FUN_020054C8 + bl PlaySE _0224C7AA: mov r0, #0 pop {r4, pc} @@ -40876,7 +40876,7 @@ MOD06_0224D46C: ; 0x0224D46C add r0, r5, #0 add r1, r4, #0 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r3, #0xb @@ -41093,9 +41093,9 @@ MOD06_0224D6A4: ; 0x0224D6A4 mov r1, #1 bl FUN_0200CCF8 add r0, r4, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x10] bl DestroyMsgData ldr r0, [r4, #0x14] @@ -41381,7 +41381,7 @@ _0224D8DC: ldr r0, [r4, #0x14] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x61 lsl r0, r0, #2 add r0, r4, r0 @@ -41403,7 +41403,7 @@ _0224D8DC: mov r0, #5 str r0, [r4, #4] ldr r0, _0224DB64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0224DB9A _0224D942: mov r1, #1 @@ -41431,7 +41431,7 @@ _0224D94C: mov r0, #0xc str r0, [r4, #4] ldr r0, _0224DB64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0224DB9A _0224D97E: mov r0, #0xb9 @@ -41746,7 +41746,7 @@ MOD06_0224DBCC: ; 0x0224DBCC bl FUN_02002ED0 ldr r0, [r4, #0x14] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #8 pop {r4, pc} .align 2, 0 @@ -41756,7 +41756,7 @@ MOD06_0224DC28: ; 0x0224DC28 push {r3, lr} ldr r0, [r0, #0x14] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #1 bl FUN_02054590 @@ -41810,7 +41810,7 @@ MOD06_0224DC5C: ; 0x0224DC5C add r0, r4, #0 mov r2, #3 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5, #4] mov r1, #0xf bl FillWindowPixelBuffer @@ -41834,12 +41834,12 @@ MOD06_0224DCB4: ; 0x0224DCB4 cmp r0, #0 beq _0224DCD6 ldr r0, [r4, #4] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r4, #4] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #4] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #0 str r0, [r4] _0224DCD6: @@ -42055,7 +42055,7 @@ MOD06_0224DE60: ; 0x0224DE60 add r0, r4, #0 mov r2, #3 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x14] bl ScrStrBufs_new str r0, [r6, #8] @@ -42106,12 +42106,12 @@ _0224DEE6: ldr r0, [r6, #8] bl ScrStrBufs_delete ldr r0, [r6, #4] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r6, #4] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r6, #4] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #0 str r0, [r6] _0224DF18: @@ -42230,7 +42230,7 @@ _0224DFC0: add r0, r4, #0 mov r2, #3 mov r3, #0x11 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x14] bl ScrStrBufs_new mov r1, #0x49 @@ -42447,12 +42447,12 @@ _0224E1C0: add r2, r1, #0 bl DestroyListMenu ldr r0, [r6, #4] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r6, #4] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r6, #4] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #1 str r0, [r6] _0224E1E2: @@ -42487,7 +42487,7 @@ MOD06_0224E1E4: ; 0x0224E1E4 ldr r2, [r5, r2] blx r2 ldr r0, _0224E248 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD06_0224E39C b _0224E242 @@ -42780,10 +42780,10 @@ _0224E448: ldr r0, [r5, #4] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r5, #4] mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r3, r4, r5, pc} @@ -43590,7 +43590,7 @@ MOD06_0224EA64: ; 0x0224EA64 add r0, #0xdc mov r1, #4 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r4, #0 add r0, #0xdc mov r1, #3 @@ -43603,7 +43603,7 @@ MOD06_0224EA64: ; 0x0224EA64 add r1, r4, #0 bl MOD06_0224E8C4 ldr r0, _0224EAA8 ; =0x0000064B - bl FUN_020054C8 + bl PlaySE mov r0, #0 add r4, #0xec str r0, [r4] @@ -43704,7 +43704,7 @@ MOD06_0224EB30: ; 0x0224EB30 add r0, #0xdc mov r1, #4 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r4, #0 add r0, #0xdc mov r2, #4 @@ -43717,7 +43717,7 @@ MOD06_0224EB30: ; 0x0224EB30 add r1, r4, #0 bl MOD06_0224E8C4 ldr r0, _0224EB74 ; =0x0000064A - bl FUN_020054C8 + bl PlaySE mov r0, #0 add r4, #0xec str r0, [r4] @@ -43738,7 +43738,7 @@ MOD06_0224EB78: ; 0x0224EB78 add r0, #0xdc mov r1, #4 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r4, #0 add r0, #0xdc mov r2, #4 @@ -43752,7 +43752,7 @@ MOD06_0224EB78: ; 0x0224EB78 add r2, r4, #0 bl MOD06_0224E858 ldr r0, _0224EBC0 ; =0x0000064A - bl FUN_020054C8 + bl PlaySE mov r0, #0 add r4, #0xec str r0, [r4] @@ -43878,7 +43878,7 @@ MOD06_0224EC5C: ; 0x0224EC5C add r0, r0, r1 mov r1, #4 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator ldr r5, [sp, #8] mov r1, #0x6e add r4, sp, #0x10 @@ -43912,7 +43912,7 @@ _0224ECA8: add r0, #0xdc bl MOD05_021F54CC ldr r0, _0224ECF0 ; =0x0000064D - bl FUN_020054C8 + bl PlaySE mov r1, #0x72 ldr r0, [sp, #8] mov r2, #0 @@ -44074,7 +44074,7 @@ _0224EDF0: mov r1, #1 bl MOD05_021F54CC ldr r0, _0224EE14 ; =0x00000627 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} nop @@ -44299,7 +44299,7 @@ MOD06_0224EF98: ; 0x0224EF98 mov r1, #4 add r0, r5, r0 mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r5, #0 mov r1, #0x8d mov r2, #8 @@ -46245,4 +46245,3 @@ MOD6_02252420: ; 0x02252420 .global MOD6_02252424 MOD6_02252424: ; 0x02252424 .space 0x1C - diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 80472fdf..234e29fe 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -146,7 +146,7 @@ MOD07_02211F34: ; 0x02211F34 bl MOD07_02211F14 ldr r0, [r4] ldr r0, [r0, #0x24] - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0xc] ldr r0, [r4] ldr r0, [r0, #0x24] @@ -423,7 +423,7 @@ MOD07_022121AC: ; 0x022121AC add r4, r0, #0 ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0x18 bgt _02212248 ldr r1, _02212370 ; =0x00000B82 @@ -437,13 +437,13 @@ MOD07_022121AC: ; 0x022121AC ldr r0, [r4, #0xc] mov r1, #3 mov r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r2, #0 add r3, r2, #0 ldr r0, [r4, #0xc] mov r1, #2 sub r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #0 add r0, r4, #0 add r2, r1, #0 @@ -492,13 +492,13 @@ _02212248: ldr r3, [r4, r3] mov r1, #3 mov r2, #2 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r3, _02212374 ; =0x00000B74 ldr r0, [r4, #0xc] ldr r3, [r4, r3] mov r1, #2 mov r2, #1 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r3, _02212370 ; =0x00000B82 mov r1, #0 ldrb r0, [r4, r3] @@ -655,11 +655,11 @@ _02212394: cmp r0, #1 bne _022123AE ldr r0, _02212578 ; =0x00000715 - bl FUN_020054C8 + bl PlaySE b _022123B4 _022123AE: ldr r0, _0221257C ; =0x00000852 - bl FUN_020054C8 + bl PlaySE _022123B4: ldr r0, _02212574 ; =0x00000B82 ldrb r1, [r5, r0] @@ -669,23 +669,23 @@ _022123B4: mov r1, #3 mov r2, #0 mov r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r2, #0 add r3, r2, #0 ldr r0, [r5, #0xc] mov r1, #2 sub r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #3 ldr r0, [r5, #0xc] add r2, r1, #0 mov r3, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0xc] mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #0 add r0, r5, #0 add r2, r1, #0 @@ -798,23 +798,23 @@ _022124CC: mov r1, #3 mov r2, #0 add r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r3, r6, #0 ldr r0, [r5, #0xc] mov r1, #2 mov r2, #0 sub r3, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #3 ldr r0, [r5, #0xc] add r2, r1, #0 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0xc] mov r1, #2 mov r2, #3 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r5, #0 mov r1, #0 add r2, r6, #0 @@ -915,18 +915,18 @@ _022125D0: cmp r0, #0 bne _022125DE ldr r0, _022126B0 ; =0x00000719 - bl FUN_020054C8 + bl PlaySE _022125DE: ldr r0, [r4, #0xc] mov r1, #3 mov r2, #1 mov r3, #0x10 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #2 ldr r0, [r4, #0xc] add r2, r1, #0 mov r3, #0x10 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r2, _022126A4 ; =0x00000B82 mov r1, #0 ldrb r0, [r4, r2] @@ -1086,7 +1086,7 @@ MOD07_02212720: ; 0x02212720 ldr r3, _02212818 ; =0x02214960 add r2, r1, #0 ldrb r3, [r3, r5] - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r3, _02212814 ; =0x00000B82 ldr r0, [r4, #0xc] ldrb r3, [r4, r3] @@ -1095,7 +1095,7 @@ MOD07_02212720: ; 0x02212720 lsl r5, r3, #1 ldr r3, _02212818 ; =0x02214960 ldrb r3, [r3, r5] - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r2, _02212814 ; =0x00000B82 mov r1, #0 ldrb r2, [r4, r2] @@ -1173,7 +1173,7 @@ MOD07_02212720: ; 0x02212720 cmp r0, #0 bne _022127FA ldr r0, _02212820 ; =0x00000853 - bl FUN_020054C8 + bl PlaySE _022127FA: ldr r0, _02212814 ; =0x00000B82 ldrb r1, [r4, r0] @@ -1206,7 +1206,7 @@ MOD07_02212824: ; 0x02212824 ldr r3, _0221294C ; =0x02214960 mov r2, #1 ldrb r3, [r3, r5] - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r3, _02212948 ; =0x00000B82 ldr r0, [r4, #0xc] ldrb r3, [r4, r3] @@ -1215,7 +1215,7 @@ MOD07_02212824: ; 0x02212824 lsl r5, r3, #1 ldr r3, _0221294C ; =0x02214960 ldrb r3, [r3, r5] - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r2, _02212948 ; =0x00000B82 mov r1, #0 ldrb r2, [r4, r2] @@ -1317,7 +1317,7 @@ MOD07_02212824: ; 0x02212824 cmp r0, #0 bne _0221292E ldr r0, _02212954 ; =0x00000853 - bl FUN_020054C8 + bl PlaySE _0221292E: ldr r0, _02212948 ; =0x00000B82 ldrb r1, [r4, r0] @@ -1429,7 +1429,7 @@ MOD07_022129FC: ; 0x022129FC push {r4, lr} add r4, r0, #0 ldr r0, _02212A34 ; =0x0000071A - bl FUN_020054C8 + bl PlaySE mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -1459,7 +1459,7 @@ MOD07_02212A3C: ; 0x02212A3C push {r4, lr} add r4, r0, #0 ldr r0, _02212A5C ; =0x0000071A - bl FUN_020054C8 + bl PlaySE mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -1535,7 +1535,7 @@ _02212AC6: bl FUN_02003210 _02212ADA: ldr r0, _02212AEC ; =0x0000071B - bl FUN_020054C8 + bl PlaySE ldr r0, _02212AF0 ; =0x00000B81 mov r1, #0x40 strb r1, [r4, r0] @@ -1555,7 +1555,7 @@ MOD07_02212AF4: ; 0x02212AF4 cmp r0, #0 bne _02212B06 ldr r0, _02212B44 ; =0x00000719 - bl FUN_020054C8 + bl PlaySE _02212B06: ldr r1, _02212B40 ; =0x00000B82 ldrb r0, [r4, r1] @@ -1868,7 +1868,7 @@ MOD07_02212D68: ; 0x02212D68 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r0, [r4, #8] bl FUN_0200372C bl FUN_0201C30C @@ -1897,7 +1897,7 @@ MOD07_02212D98: ; 0x02212D98 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02212E58 ; =0x02214A2C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -1912,16 +1912,16 @@ MOD07_02212D98: ; 0x02212D98 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #3 add r3, r1, #0 ldr r0, [r4, #0xc] mov r2, #0 add r3, #0xfd - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r5, _02212E5C ; =0x02214A48 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -1936,16 +1936,16 @@ MOD07_02212D98: ; 0x02212D98 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0xff ldr r0, [r4, #0xc] mov r1, #2 mov r2, #0 mvn r3, r3 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r5, _02212E60 ; =0x02214A64 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -1960,10 +1960,10 @@ MOD07_02212D98: ; 0x02212D98 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers @@ -1984,13 +1984,13 @@ MOD07_02212E64: ; 0x02212E64 bl GX_EngineAToggleLayers ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] bl FreeToHeap pop {r4, pc} @@ -2063,7 +2063,7 @@ MOD07_02212E90: ; 0x02212E90 bl FUN_02003108 ldr r1, _02212F28 ; =0x000018C6 mov r0, #1 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2452,7 +2452,7 @@ MOD07_02213220: ; 0x02213220 add r1, r5, #0 mov r2, #8 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r1, #0 str r1, [sp] mov r0, #0xff @@ -2508,7 +2508,7 @@ MOD07_02213220: ; 0x02213220 mov r1, #0 bl FUN_02011A60 add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -3203,7 +3203,7 @@ MOD07_02213858: ; 0x02213858 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _022138EC ; =0x02214A9C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -3218,10 +3218,10 @@ MOD07_02213858: ; 0x02213858 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _022138F0 ; =0x02214A10 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -3236,10 +3236,10 @@ MOD07_02213858: ; 0x02213858 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _022138F4 ; =0x02214A80 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -3254,7 +3254,7 @@ MOD07_02213858: ; 0x02213858 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add sp, #0x64 pop {r4, r5, pc} nop @@ -3272,13 +3272,13 @@ MOD07_022138F8: ; 0x022138F8 bl GX_EngineAToggleLayers ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] bl FreeToHeap pop {r4, pc} @@ -3327,7 +3327,7 @@ MOD07_02213924: ; 0x02213924 mov r3, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r1, [sp, #0x10] ldr r0, _022139B4 ; =0x000004E4 ldr r1, [r1, #0xc] @@ -3401,7 +3401,7 @@ _022139EE: ldrb r3, [r6, #1] ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #0x86 lsl r0, r0, #2 ldrh r0, [r7, r0] @@ -3419,7 +3419,7 @@ _022139EE: ldrb r3, [r6, #1] ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_020186B4 + bl BgTilemapRectChangePalette cmp r4, #3 bhs _02213A46 ldr r0, [r5] @@ -3443,7 +3443,7 @@ _02213A54: add r1, r5, r1 mov r2, #0x20 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData b _02213A7A _02213A68: ldr r1, _02213A9C ; =0x000004E4 @@ -3453,7 +3453,7 @@ _02213A68: add r1, r5, r1 mov r2, #0x20 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData _02213A7A: add r4, r4, #1 add r7, #0x18 @@ -3462,7 +3462,7 @@ _02213A7A: blo _022139C8 ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -3478,7 +3478,7 @@ MOD07_02213AA0: ; 0x02213AA0 ldr r0, [r4, #0xc] str r1, [sp] add r1, r2, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r6, r0, #0 ldr r0, [r4] add r0, #0x29 @@ -3527,10 +3527,10 @@ MOD07_02213AEC: ; 0x02213AEC bl MOD07_02213AA0 ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, pc} .align 2, 0 _02213B18: .word 0x00000544 @@ -3565,7 +3565,7 @@ MOD07_02213B20: ; 0x02213B20 ldr r0, [r5, #0xc] mov r1, #1 lsr r2, r2, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, _02213BE8 ; =0x00000844 lsl r2, r6, #0x18 str r4, [sp] @@ -3582,7 +3582,7 @@ MOD07_02213B20: ; 0x02213B20 ldr r0, [r5, #0xc] mov r1, #2 lsr r2, r2, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect b _02213BCE _02213B80: ldr r2, _02213BE4 ; =0x00000544 @@ -3603,7 +3603,7 @@ _02213B80: ldr r0, [r5, #0xc] mov r1, #1 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r1, _02213BE8 ; =0x00000844 mov r2, #0 str r4, [sp] @@ -3621,14 +3621,14 @@ _02213B80: ldr r0, [r5, #0xc] mov r1, #2 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect _02213BCE: ldr r0, [r5, #0xc] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r3, r4, r5, r6, pc} nop @@ -4445,7 +4445,7 @@ _02214258: ldr r0, [r7, #0xc] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -4463,7 +4463,7 @@ MOD07_02214274: ; 0x02214274 add r5, #0x10 _0221427C: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0x18 @@ -4817,7 +4817,7 @@ _02214558: add r1, r5, r1 mov r2, #4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData b _0221459E _02214570: ldrb r3, [r4, #9] @@ -4829,7 +4829,7 @@ _02214570: add r1, r5, r1 mov r2, #4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData b _0221459E _02214588: ldrb r3, [r4, #9] @@ -4841,7 +4841,7 @@ _02214588: add r1, r5, r1 mov r2, #4 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData _0221459E: ldr r0, [sp, #8] ldrh r1, [r7, r6] @@ -4941,16 +4941,16 @@ MOD07_02214600: ; 0x02214600 add r1, r6, #0 bl MOD07_02214510 add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, r4 add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, r4 add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, r4 add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index a02c3f48..4a0a6d1c 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -616,7 +616,7 @@ _022122C6: add r0, #0xc4 ldr r0, [r0] mov r1, #0 - bl FUN_02018884 + bl GetBgPriority mov r1, #0x1a lsl r1, r1, #4 strb r0, [r4, r1] @@ -624,21 +624,21 @@ _022122C6: add r0, #0xc4 ldr r0, [r0] mov r1, #1 - bl FUN_02018884 + bl GetBgPriority ldr r1, _02212374 ; =0x000001A1 strb r0, [r4, r1] add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] mov r1, #2 - bl FUN_02018884 + bl GetBgPriority ldr r1, _02212378 ; =0x000001A2 strb r0, [r4, r1] add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] mov r1, #3 - bl FUN_02018884 + bl GetBgPriority ldr r1, _0221237C ; =0x000001A3 mov r3, #0 strb r0, [r4, r1] @@ -1139,7 +1139,7 @@ _02212638: sub r0, r0, #1 strb r0, [r5, #0x18] ldrh r0, [r5, #0x1a] - bl FUN_020054C8 + bl PlaySE ldrh r0, [r5, #0x1a] ldr r1, _02212660 ; =0x0000FFFF ldr r2, [r5, #0x14] @@ -1165,7 +1165,7 @@ MOD08_02212664: ; 0x02212664 cmp r2, #0 bne _02212686 ldrh r0, [r4, #0x1a] - bl FUN_020054C8 + bl PlaySE ldrh r0, [r4, #0x1a] ldr r1, _02212688 ; =0x0000FFFF ldr r2, [r4, #0x14] @@ -1816,7 +1816,7 @@ _02212AE8: lsr r0, r0, #0x18 lsl r1, r1, #0xe mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 bl MOD08_02212490 add r4, r0, #0 @@ -1827,10 +1827,10 @@ _02212AE8: lsl r1, r1, #0x18 add r0, r4, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer b _02212B40 _02212B3C: bl MOD12_02233560 @@ -1839,47 +1839,47 @@ _02212B40: lsl r1, r1, #4 ldrb r1, [r5, r1] mov r0, #0 - bl FUN_020178BC + bl SetBgPriority ldr r1, _02212BB8 ; =0x000001A1 mov r0, #1 ldrb r1, [r5, r1] - bl FUN_020178BC + bl SetBgPriority ldr r1, _02212BBC ; =0x000001A2 mov r0, #2 ldrb r1, [r5, r1] - bl FUN_020178BC + bl SetBgPriority ldr r1, _02212BC0 ; =0x000001A3 mov r0, #3 ldrb r1, [r5, r1] - bl FUN_020178BC + bl SetBgPriority add r0, r5, #0 add r0, #0xc4 mov r2, #0 ldr r0, [r0] mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 add r0, #0xc4 mov r2, #0 ldr r0, [r0] mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 add r0, #0xc4 mov r1, #3 ldr r0, [r0] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} @@ -3052,13 +3052,13 @@ _02213410: mov r1, #2 mov r2, #0 neg r3, r6 - bl FUN_020179E0 + bl BgSetPosTextAndCommit sub r4, #0x28 ldr r0, [r5] mov r1, #2 mov r2, #3 neg r3, r4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _02213452: pop {r4, r5, r6, pc} @@ -3156,14 +3156,14 @@ _022134FE: mov r7, #0xc8 _02213500: mov r0, #2 - bl FUN_020187B0 + bl BgGetCharPtr mov r2, #0x19 mov r1, #0 lsl r2, r2, #8 bl MI_CpuFill8 mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0 str r0, [sp] add r0, r5, #0 @@ -3173,7 +3173,7 @@ _02213500: ldr r2, [sp, #0x18] mov r1, #2 lsl r3, r3, #6 - bl FUN_02017E14 + bl BG_LoadCharTilesData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3262,7 +3262,7 @@ _022135AC: mov r1, #2 mov r2, #0 neg r3, r7 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 add r0, #0xc4 sub r4, #0x28 @@ -3270,17 +3270,17 @@ _022135AC: mov r1, #2 mov r2, #3 neg r3, r4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r0, r5, #0 bl MOD08_02215574 add r1, r0, #0 lsl r1, r1, #0x18 mov r0, #2 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -3296,7 +3296,7 @@ MOD08_02213630: ; 0x02213630 add r0, r0, #4 str r0, [r4, #0x18] mov r0, #2 - bl FUN_020187B0 + bl BgGetCharPtr mov r2, #0x19 mov r1, #0 lsl r2, r2, #8 @@ -4166,7 +4166,7 @@ MOD08_02213C94: ; 0x02213C94 lsl r1, r4, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 mov r6, #2 bl MOD08_02212004 @@ -4364,14 +4364,14 @@ _02213E50: lsl r1, r4, #0x18 mov r0, #3 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority lsl r1, r4, #0x18 mov r0, #2 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldrb r0, [r5, #5] add r0, r0, #1 strb r0, [r5, #5] @@ -4383,7 +4383,7 @@ _02213E8E: ldr r0, [r0] mov r2, #2 add r3, r1, #0 - bl FUN_020170F4 + bl SetBgControlParam ldr r0, [r5, #0x48] bl MOD08_02212004 cmp r0, #1 @@ -4394,7 +4394,7 @@ _02213E8E: ldr r0, [r0] mov r1, #3 add r3, r2, #0 - bl FUN_020170F4 + bl SetBgControlParam _02213EB8: ldr r1, [r5, #0x48] ldr r3, [r5, #0x10] @@ -4491,7 +4491,7 @@ _02213F56: ; jump table _02213F60: mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldrb r0, [r4, #5] add r0, r0, #1 strb r0, [r4, #5] @@ -4506,11 +4506,11 @@ _02213F6E: lsl r1, r5, #0x18 mov r0, #3 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority lsl r1, r5, #0x18 mov r0, #2 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldrb r0, [r4, #0xa] mov r1, #4 mov r2, #8 @@ -4591,21 +4591,21 @@ _0221401E: ldr r0, [r0] mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x48] mov r1, #3 add r0, #0xc4 ldr r0, [r0] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x48] mov r1, #3 add r0, #0xc4 ldr r0, [r0] mov r2, #2 mov r3, #4 - bl FUN_020170F4 + bl SetBgControlParam ldr r0, [r4, #0x48] bl MOD08_02212004 cmp r0, #0 @@ -4616,7 +4616,7 @@ _0221401E: ldr r0, [r0] mov r2, #0 mov r3, #1 - bl FUN_020170F4 + bl SetBgControlParam ldr r0, [r4, #0x48] mov r1, #3 bl MOD08_02215638 @@ -4800,7 +4800,7 @@ _022141BE: ldr r0, [r0] mov r1, #3 add r3, r2, #0 - bl FUN_020170F4 + bl SetBgControlParam ldr r1, [r4, #0x48] ldr r3, [r4, #0x10] add r0, r4, #0 @@ -4981,7 +4981,7 @@ _02214324: _02214338: mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x48] bl MOD08_02212004 cmp r0, #0 @@ -4992,7 +4992,7 @@ _02214338: ldr r0, [r0] mov r2, #0 mov r3, #1 - bl FUN_020170F4 + bl SetBgControlParam ldr r0, [r4, #0x48] mov r1, #3 bl MOD08_02215638 @@ -5060,7 +5060,7 @@ _022143BE: bl GfGfxLoader_LoadScrnData mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldrb r0, [r4, #5] add r0, r0, #1 strb r0, [r4, #5] @@ -5071,14 +5071,14 @@ _022143F0: ldr r0, [r0] mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x48] mov r1, #3 add r0, #0xc4 ldr r0, [r0] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldrb r0, [r4, #0xd] ldr r2, [r4, #0x48] cmp r0, #0 @@ -5208,7 +5208,7 @@ _022144DA: ldr r0, [r4] lsr r1, r1, #0x18 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _02214508: mov r0, #0xa ldrsh r0, [r4, r0] @@ -5221,7 +5221,7 @@ _02214508: ldr r0, [r4] lsr r1, r1, #0x18 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _02214522: pop {r3, r4, r5, pc} @@ -5546,11 +5546,11 @@ MOD08_0221477C: ; 0x0221477C lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer add r0, r5, #0 bl MOD08_02212004 cmp r0, #1 @@ -5562,7 +5562,7 @@ MOD08_0221477C: ; 0x0221477C lsr r1, r1, #0x18 mov r2, #2 mov r3, #4 - bl FUN_020170F4 + bl SetBgControlParam b _022147E4 _022147C0: add r0, r5, #0 @@ -5572,7 +5572,7 @@ _022147C0: lsr r1, r1, #0x18 mov r2, #0 mov r3, #1 - bl FUN_020170F4 + bl SetBgControlParam add r0, r5, #0 add r0, #0xc4 lsl r1, r4, #0x18 @@ -5580,14 +5580,14 @@ _022147C0: lsr r1, r1, #0x18 mov r2, #2 mov r3, #4 - bl FUN_020170F4 + bl SetBgControlParam _022147E4: add r0, r5, #0 add r0, #0xc4 lsl r1, r4, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 bl MOD08_02212004 cmp r0, #1 @@ -5646,7 +5646,7 @@ MOD08_02214850: ; 0x02214850 lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add r0, r5, #0 bl MOD08_02212004 cmp r0, #1 @@ -5658,7 +5658,7 @@ MOD08_02214850: ; 0x02214850 lsr r1, r1, #0x18 mov r2, #2 mov r3, #3 - bl FUN_020170F4 + bl SetBgControlParam b _022148AC _02214888: add r0, r5, #0 @@ -5668,7 +5668,7 @@ _02214888: ldr r0, [r0] lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020170F4 + bl SetBgControlParam add r0, r5, #0 add r0, #0xc4 lsl r1, r4, #0x18 @@ -5676,13 +5676,13 @@ _02214888: lsr r1, r1, #0x18 mov r2, #2 mov r3, #3 - bl FUN_020170F4 + bl SetBgControlParam _022148AC: add r5, #0xc4 lsl r1, r4, #0x18 ldr r0, [r5] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r3, r4, r5, pc} .align 2, 0 @@ -6040,7 +6040,7 @@ MOD08_02214B38: ; 0x02214B38 thumb_func_start MOD08_02214B3C MOD08_02214B3C: ; 0x02214B3C ldr r1, [r0, #0x18] - ldr r3, _02214B50 ; =FUN_020054C8 + ldr r3, _02214B50 ; =PlaySE add r1, r1, #4 str r1, [r0, #0x18] ldr r2, [r1] @@ -6050,7 +6050,7 @@ MOD08_02214B3C: ; 0x02214B3C lsr r0, r0, #0x10 bx r3 .align 2, 0 -_02214B50: .word FUN_020054C8 +_02214B50: .word PlaySE thumb_func_start MOD08_02214B54 MOD08_02214B54: ; 0x02214B54 @@ -6087,7 +6087,7 @@ MOD08_02214B70: ; 0x02214B70 bl MOD08_02215354 add r5, r0, #0 add r0, r4, #0 - bl FUN_020054C8 + bl PlaySE ldr r1, _02214BA4 ; =0x0000FFFF add r0, r4, #0 add r2, r5, #0 @@ -6174,7 +6174,7 @@ MOD08_02214BC4: ; 0x02214BC4 bl MOD08_0221540C str r0, [r4, #0x10] ldrh r0, [r4, #0x1a] - bl FUN_020054C8 + bl PlaySE ldrh r0, [r4, #0x1a] ldr r1, _02214C60 ; =0x0000FFFF ldr r2, [r4, #8] @@ -6232,7 +6232,7 @@ MOD08_02214C64: ; 0x02214C64 add r0, r0, #4 str r0, [r5, #0x18] ldrh r0, [r4, #0x1a] - bl FUN_020054C8 + bl PlaySE ldrh r0, [r4, #0x1a] ldr r1, _02214CD8 ; =0x0000FFFF ldr r2, [r4, #8] @@ -6308,7 +6308,7 @@ MOD08_02214CDC: ; 0x02214CDC bl MOD08_02215354 str r0, [r4, #0x10] ldrh r0, [r4, #0x1a] - bl FUN_020054C8 + bl PlaySE ldrh r0, [r4, #0x1a] ldr r1, _02214D7C ; =0x0000FFFF ldr r2, [r4, #8] @@ -7555,7 +7555,7 @@ MOD08_02215638: ; 0x02215638 ldr r0, [r0] lsr r1, r1, #0x18 lsl r3, r3, #0x10 - bl FUN_02017E14 + bl BG_LoadCharTilesData pop {r3, pc} .align 2, 0 @@ -15184,7 +15184,7 @@ _02218F32: ldr r0, [r5, #0x18] mov r1, #3 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, r4, r5, r6, r7, pc} _02218F4E: ldr r0, [r5, #8] @@ -15287,7 +15287,7 @@ _02219008: bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldrb r0, [r4, #0x1c] add r0, r0, #1 strb r0, [r4, #0x1c] @@ -15377,7 +15377,7 @@ _022190A4: _022190B2: mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x20] add r1, r5, #0 bl MOD08_02212438 @@ -15453,13 +15453,13 @@ _02219136: ldr r0, [r4, #0x30] mov r1, #2 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, r4, r5, pc} .align 2, 0 _02219154: .word 0x04000050 @@ -15565,7 +15565,7 @@ _02219228: strh r0, [r4, #0x18] mov r0, #2 str r1, [r4, #4] - bl FUN_0201797C + bl ToggleBgLayer add r0, r5, #0 mov r1, #0 bl MOD08_02212498 @@ -15605,7 +15605,7 @@ _02219228: bl FUN_020030E8 ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 mov r6, #2 bl MOD08_02212004 @@ -15645,13 +15645,13 @@ _022192BC: ldr r0, [r4, #0x30] mov r1, #2 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x20] ldr r1, _02219310 ; =MOD08_02218FE8 add r2, r4, #0 @@ -15690,7 +15690,7 @@ _02219334: bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldrb r0, [r4, #0x1c] add r0, r0, #1 strb r0, [r4, #0x1c] @@ -15778,7 +15778,7 @@ _022193CC: _022193DA: mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x20] add r1, r5, #0 bl MOD08_02212438 @@ -15854,13 +15854,13 @@ _0221945E: ldr r0, [r4, #0x30] mov r1, #2 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, r4, r5, pc} .align 2, 0 _0221947C: .word 0x04000050 @@ -15969,7 +15969,7 @@ _02219550: strh r0, [r4, #0x18] mov r0, #2 str r1, [r4, #4] - bl FUN_0201797C + bl ToggleBgLayer add r0, r5, #0 mov r1, #0 bl MOD08_02212498 @@ -16009,7 +16009,7 @@ _02219550: bl FUN_020030E8 ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 mov r6, #2 bl MOD08_02212004 @@ -16049,13 +16049,13 @@ _022195EA: ldr r0, [r4, #0x30] mov r1, #2 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x20] ldr r1, _0221963C ; =MOD08_02219314 add r2, r4, #0 @@ -20509,7 +20509,7 @@ _0221BA38: ldr r0, [r4, #0x28] lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0221BA50: ldr r0, [r4, #0x24] cmp r0, #0 @@ -20520,7 +20520,7 @@ _0221BA50: lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0221BA66: ldrb r0, [r4, #1] add sp, #4 @@ -20540,7 +20540,7 @@ _0221BA70: ldr r0, [r4, #0x28] lsr r1, r1, #0x18 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0221BA8C: mov r3, #0xd6 ldrsh r0, [r4, r3] @@ -20554,7 +20554,7 @@ _0221BA8C: ldr r0, [r4, #0x28] lsr r1, r1, #0x18 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #4 pop {r3, r4, pc} _0221BAAC: @@ -26110,7 +26110,7 @@ _0221E84C: ldr r0, [r4, #8] mov r1, #3 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0xc pop {r4, r5, r6, r7, pc} _0221E866: @@ -26622,13 +26622,13 @@ _0221EC7A: ldr r0, [r5, #0x14] mov r1, #3 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x4e mov r1, #3 ldrsh r3, [r5, r3] ldr r0, [r5, #0x14] add r2, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, r4, r5, r6, r7, pc} _0221ECA0: ldr r0, [r5, #4] @@ -29589,7 +29589,7 @@ MOD08_0222042C: ; 0x0222042C bl MOD08_0221477C mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #8] ldr r1, _022204C8 ; =MOD08_02220304 add r2, r4, #0 @@ -31969,7 +31969,7 @@ _022218B0: lsl r1, r1, #0x18 mov r0, #2 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority _022218C4: ldr r0, [r4, #0x1c] mov r1, #0 @@ -33520,7 +33520,7 @@ _0222255E: mov r1, #2 mov r2, #0 neg r3, r3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4] bl MOD08_02212490 mov r3, #0x12 @@ -33528,7 +33528,7 @@ _0222255E: mov r1, #2 mov r2, #3 neg r3, r3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] @@ -33578,14 +33578,14 @@ _022225CE: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] mov r1, #1 bl MOD08_02215588 @@ -33598,7 +33598,7 @@ _022225CE: lsr r0, r0, #0x18 lsl r1, r1, #0xe mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4] bl MOD08_02212490 add r5, r0, #0 @@ -33609,7 +33609,7 @@ _022225CE: lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4] add r1, r6, #0 bl MOD08_02212438 @@ -33762,7 +33762,7 @@ _022226FC: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 @@ -33770,7 +33770,7 @@ _022226FC: lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority _022227AE: ldr r0, [sp, #0x14] add r1, r4, #0 @@ -34338,14 +34338,14 @@ _02222C3E: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4, #0x10] mov r1, #6 mov r2, #0 @@ -34362,7 +34362,7 @@ _02222C3E: lsr r0, r0, #0x18 lsl r1, r1, #0xe mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4] bl MOD08_02212490 add r5, r0, #0 @@ -34373,7 +34373,7 @@ _02222C3E: lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4] add r1, r6, #0 bl MOD08_02212438 @@ -34466,7 +34466,7 @@ _02222D6A: lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 @@ -34474,7 +34474,7 @@ _02222D6A: lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4, #0x48] mov r1, #0 bl FUN_0200C644 @@ -40527,14 +40527,14 @@ _02225E68: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] mov r1, #1 bl MOD08_02215588 @@ -40547,7 +40547,7 @@ _02225E68: lsr r0, r0, #0x18 lsl r1, r1, #0xe mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4] bl MOD08_02212490 add r5, r0, #0 @@ -40558,7 +40558,7 @@ _02225E68: lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 bl FreeToHeap ldr r0, [r4] @@ -40647,7 +40647,7 @@ MOD08_02225EFC: ; 0x02225EFC lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] bl MOD08_02215574 add r1, r0, #0 @@ -40655,7 +40655,7 @@ MOD08_02225EFC: ; 0x02225EFC lsl r1, r1, #0x18 mov r0, #0 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority _02225FD0: ldr r0, [r4] ldr r1, _02225FDC ; =MOD08_02225E14 @@ -42728,7 +42728,7 @@ MOD08_02227068: ; 0x02227068 lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -42760,7 +42760,7 @@ MOD08_02227068: ; 0x02227068 lsl r1, r4, #0x18 ldr r0, [r5, #0x2c] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -42860,7 +42860,7 @@ _02227180: bne _022271B2 ldr r0, [r4, #0x2c] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x34] mov r1, #0 bl FUN_0200C644 @@ -42899,12 +42899,12 @@ _022271C0: ldr r0, [r4, #0x2c] mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x2c] mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -42934,13 +42934,13 @@ _0222720E: ldrsh r3, [r4, r3] ldr r0, [r4, #0x2c] mov r1, #2 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x12 ldrsh r3, [r4, r3] ldr r0, [r4, #0x2c] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x34] bl FUN_0200C5A8 ldr r0, [r4, #0x38] diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 003e2dc8..07d0fa04 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -425,7 +425,7 @@ _022121B6: cmp r0, #1 beq _0221220E ldr r0, _02212214 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -433,7 +433,7 @@ _022121B6: pop {r4, pc} _022121E2: ldr r0, _02212214 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r1, [r4] add r0, r4, #0 ldrb r1, [r1, #0x11] @@ -642,7 +642,7 @@ _02212384: ; jump table .short _022123F6 - _02212384 - 2 ; case 3 _0221238C: ldr r0, _02212414 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #7 bl MOD09_022181C8 @@ -664,7 +664,7 @@ _022123B2: cmp r0, #1 beq _0221240E ldr r0, _02212414 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #8 bl MOD09_022181C8 @@ -679,7 +679,7 @@ _022123D4: cmp r0, #1 beq _0221240E ldr r0, _02212414 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xa bl MOD09_022181C8 @@ -690,7 +690,7 @@ _022123D4: pop {r4, pc} _022123F6: ldr r0, _02212414 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -736,7 +736,7 @@ _0221243C: ldr r1, [r4] strb r0, [r1, #0x11] ldr r0, _022124D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xc bl MOD09_022181C8 @@ -756,7 +756,7 @@ _0221246A: ldr r1, [r4] strb r0, [r1, #0x11] ldr r0, _022124D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xd bl MOD09_022181C8 @@ -767,7 +767,7 @@ _0221246A: pop {r4, pc} _02212496: ldr r0, _022124D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xb bl MOD09_022181C8 @@ -778,7 +778,7 @@ _02212496: pop {r4, pc} _022124AE: ldr r0, _022124D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -833,7 +833,7 @@ _02212506: cmp r0, #0 beq _022125CE ldr r0, _022125D4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r1, #0xe lsl r1, r1, #0x18 @@ -860,7 +860,7 @@ _0221253E: ldr r1, [r4] strb r0, [r1, #0x11] ldr r0, _022125D4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xc bl MOD09_022181C8 @@ -880,7 +880,7 @@ _0221256C: ldr r1, [r4] strb r0, [r1, #0x11] ldr r0, _022125D4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xd bl MOD09_022181C8 @@ -891,7 +891,7 @@ _0221256C: pop {r3, r4, r5, pc} _02212598: ldr r0, _022125D4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #9 bl MOD09_022181C8 @@ -902,7 +902,7 @@ _02212598: pop {r3, r4, r5, pc} _022125B0: ldr r0, _022125D4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -960,7 +960,7 @@ _02212604: beq _0221264A _02212622: ldr r0, _02212650 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, #0x34 strb r5, [r0] @@ -968,7 +968,7 @@ _02212622: pop {r3, r4, r5, pc} _02212632: ldr r0, _02212650 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -1034,7 +1034,7 @@ _022126A6: ldr r0, _0221273C ; =0x0000208D strb r1, [r4, r0] ldr r0, _02212740 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r5, #0x17 lsl r1, r5, #0x18 add r0, r4, #0 @@ -1067,7 +1067,7 @@ _022126D0: add r0, #0x16 strb r5, [r4, r0] ldr r0, _02212740 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x12 bl MOD09_022181C8 @@ -1082,7 +1082,7 @@ _02212710: add r0, #0x34 strb r1, [r0] ldr r0, _02212740 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -1136,7 +1136,7 @@ _0221277C: b _0221284A _0221278A: ldr r0, _02212858 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _0221285C ; =0x00002077 ldrb r0, [r5, r0] lsl r0, r0, #0x1c @@ -1187,7 +1187,7 @@ _022127E6: lsr r0, r0, #0x1c beq _0221284A ldr r0, _02212858 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0x12 bl MOD09_022181C8 @@ -1216,7 +1216,7 @@ _022127E6: pop {r3, r4, r5, pc} _0221282C: ldr r0, _02212858 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #6 bl MOD09_022181C8 @@ -1294,7 +1294,7 @@ _022128B6: add r0, #0x34 strb r5, [r0] ldr r0, _0221295C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r1, #0x13 lsl r1, r1, #0x18 @@ -1342,7 +1342,7 @@ _0221290E: pop {r3, r4, r5, r6, pc} _02212934: ldr r0, _0221295C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD09_022181C8 @@ -1694,7 +1694,7 @@ _02212BAA: strb r2, [r4, r0] _02212BC6: ldr r0, _02212C88 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE b _02212C78 _02212BCE: ldrb r1, [r5, #0x11] @@ -1854,7 +1854,7 @@ _02212CF4: add r0, r5, #0 bl MOD09_02216378 ldr r0, _02212DB0 ; =0x000005EC - bl FUN_020054C8 + bl PlaySE ldr r0, _02212DAC ; =0x0000207C mov r1, #1 strb r1, [r5, r0] @@ -2027,7 +2027,7 @@ MOD09_02212E4C: ; 0x02212E4C stmia r3!, {r0, r1} add r0, r2, #0 mov r1, #1 - bl FUN_02016BF4 + bl SetScreenModeAndDisable ldr r5, _02212F4C ; =0x0221AF48 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -2044,7 +2044,7 @@ MOD09_02212E4C: ; 0x02212E4C lsl r0, r0, #2 ldr r0, [r4, r0] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02212F50 ; =0x0221AF80 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -2061,7 +2061,7 @@ MOD09_02212E4C: ; 0x02212E4C lsl r0, r0, #2 ldr r0, [r4, r0] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02212F54 ; =0x0221AF9C add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -2078,12 +2078,12 @@ MOD09_02212E4C: ; 0x02212E4C lsl r0, r0, #2 ldr r0, [r4, r0] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02212F58 ; =0x0221AF64 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -2100,34 +2100,34 @@ MOD09_02212E4C: ; 0x02212E4C lsl r0, r0, #2 ldr r0, [r4, r0] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r3, [r4] mov r0, #5 ldr r3, [r3, #0xc] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #4 ldr r3, [r3, #0xc] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x80 pop {r3, r4, r5, pc} .align 2, 0 @@ -2146,16 +2146,16 @@ MOD09_02212F5C: ; 0x02212F5C bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 @@ -3156,7 +3156,7 @@ _02213778: lsl r0, r0, #2 ldr r0, [r6, r0] mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _0221378E: pop {r3, r4, r5, r6, r7, pc} @@ -3181,7 +3181,7 @@ MOD09_02213790: ; 0x02213790 mov r1, #7 add r2, r5, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -3208,7 +3208,7 @@ MOD09_022137C0: ; 0x022137C0 mov r1, #7 add r2, r4, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0xe str r0, [sp] mov r0, #1 @@ -3226,7 +3226,7 @@ MOD09_022137C0: ; 0x022137C0 mov r1, #7 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0xf str r0, [sp] mov r0, #1 @@ -3244,7 +3244,7 @@ MOD09_022137C0: ; 0x022137C0 mov r1, #7 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0xf str r0, [sp] mov r0, #1 @@ -3261,7 +3261,7 @@ MOD09_022137C0: ; 0x022137C0 mov r1, #7 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} @@ -3338,7 +3338,7 @@ _022138E2: lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _022138EE: pop {r3, r4, r5, r6, r7, pc} @@ -3353,13 +3353,13 @@ MOD09_022138F0: ; 0x022138F0 ldr r0, [r5, r0] mov r1, #4 mov r2, #0 - bl FUN_0201878C + bl BgFillTilemapBufferAndSchedule mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 mov r2, #0 - bl FUN_0201878C + bl BgFillTilemapBufferAndSchedule add r0, r5, #0 add r1, r4, #0 bl MOD09_02216D80 @@ -3425,14 +3425,14 @@ _02213976: lsr r1, r1, #0x18 add r2, #0xc mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r0, #0x79 lsl r0, r0, #2 add r1, r4, #6 lsl r1, r1, #0x18 ldr r0, [r5, r0] lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r7, #0 bl FreeToHeap add r4, r4, #1 @@ -3758,15 +3758,15 @@ MOD09_02213C34: ; 0x02213C34 ldr r0, _02213C68 ; =0x00002070 ldr r0, [r4, r0] add r0, #0xa0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r0, _02213C68 ; =0x00002070 ldr r0, [r4, r0] add r0, #0x60 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r0, _02213C68 ; =0x00002070 ldr r0, [r4, r0] add r0, #0x70 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer pop {r4, pc} nop _02213C64: .word 0x00002020 @@ -3781,7 +3781,7 @@ MOD09_02213C6C: ; 0x02213C6C lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, pc} .align 2, 0 @@ -3825,7 +3825,7 @@ _02213CC4: ldr r0, [r7, r0] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -3941,7 +3941,7 @@ _02213D90: lsl r2, r5, #3 ldr r0, [r4, r0] add r2, r6, r2 - bl FUN_02019150 + bl AddWindow add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -3974,7 +3974,7 @@ MOD09_02213DE0: ; 0x02213DE0 bx r3 nop _02213DF0: .word 0x00002070 -_02213DF4: .word FUN_020191A4 +_02213DF4: .word WindowArray_dtor thumb_func_start MOD09_02213DF8 MOD09_02213DF8: ; 0x02213DF8 @@ -3984,13 +3984,13 @@ MOD09_02213DF8: ; 0x02213DF8 ldr r0, [r5, r1] add r1, r1, #4 ldrb r1, [r5, r1] - bl FUN_020191A4 + bl WindowArray_dtor ldr r0, _02213E24 ; =0x00002050 mov r4, #0 add r5, r5, r0 _02213E0E: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #2 @@ -4235,7 +4235,7 @@ _02214002: bl String_dtor _02214008: add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop @@ -4280,7 +4280,7 @@ MOD09_02214038: ; 0x02214038 ldr r0, _0221407C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -4340,7 +4340,7 @@ MOD09_02214080: ; 0x02214080 ldr r0, _022140F8 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -4388,7 +4388,7 @@ _02214144: ldr r0, [sp, #8] lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _02214156: @@ -4451,7 +4451,7 @@ _0221415E: ldr r0, _022141D4 ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -4508,7 +4508,7 @@ MOD09_022141D8: ; 0x022141D8 ldr r0, _0221425C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -4579,7 +4579,7 @@ _022142BA: ldr r0, _022142F8 ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -4655,7 +4655,7 @@ _02214362: add r0, r7, #0 bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -4695,7 +4695,7 @@ MOD09_022143A0: ; 0x022143A0 ldr r0, _022143F4 ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -4740,7 +4740,7 @@ MOD09_022143F8: ; 0x022143F8 bl String_dtor ldr r0, _02214450 ; =0x00002050 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -4786,7 +4786,7 @@ MOD09_0221445C: ; 0x0221445C add r0, r7, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -4975,21 +4975,21 @@ _022145F4: mov r0, #0x13 lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214684 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r7 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214684 ; =0x00002070 ldr r1, [r5, r0] mov r0, #5 lsl r0, r0, #6 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214684 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5094,11 +5094,11 @@ MOD09_02214694: ; 0x02214694 ldr r0, _02214780 ; =0x00002070 ldr r0, [r5, r0] add r0, #0xe0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214780 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -5203,11 +5203,11 @@ MOD09_02214790: ; 0x02214790 ldr r0, _0221487C ; =0x00002070 ldr r0, [r5, r0] add r0, #0xf0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _0221487C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -5315,11 +5315,11 @@ MOD09_0221488C: ; 0x0221488C mov r0, #1 lsl r0, r0, #8 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _0221497C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5427,11 +5427,11 @@ MOD09_0221498C: ; 0x0221498C mov r0, #0x11 lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214A7C ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5539,11 +5539,11 @@ MOD09_02214A8C: ; 0x02214A8C mov r0, #0x12 lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214B7C ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5716,11 +5716,11 @@ MOD09_02214B8C: ; 0x02214B8C ldr r0, _02214D14 ; =0x00002070 ldr r0, [r5, r0] add r0, #0xd0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02214D14 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -5777,7 +5777,7 @@ MOD09_02214D24: ; 0x02214D24 ldr r0, _02214D9C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -5812,7 +5812,7 @@ MOD09_02214DA0: ; 0x02214DA0 add r0, r6, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, r5, r6, pc} nop @@ -5914,7 +5914,7 @@ _02214E42: bl String_dtor _02214EB8: add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop @@ -5948,7 +5948,7 @@ MOD09_02214ED0: ; 0x02214ED0 add r0, r6, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, r5, r6, pc} nop @@ -6050,7 +6050,7 @@ _02214F72: bl String_dtor _02214FE8: add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop @@ -6093,7 +6093,7 @@ MOD09_02215000: ; 0x02215000 add r0, r7, #0 bl DestroyMsgData add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6140,7 +6140,7 @@ MOD09_02215060: ; 0x02215060 ldr r0, [sp, #0x10] bl DestroyMsgData add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -6186,7 +6186,7 @@ MOD09_022150C8: ; 0x022150C8 add r0, r7, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6247,7 +6247,7 @@ _0221516C: add r0, r6, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 @@ -6378,7 +6378,7 @@ MOD09_022151A8: ; 0x022151A8 ldr r0, [sp, #0x2c] bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6434,7 +6434,7 @@ _02215306: add r0, r6, #0 bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6481,7 +6481,7 @@ _02215368: add r0, r4, #0 bl String_dtor add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -6625,7 +6625,7 @@ MOD09_022153B0: ; 0x022153B0 add r0, r7, #0 bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6717,7 +6717,7 @@ MOD09_022154FC: ; 0x022154FC ldr r0, [sp, #0x14] bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -6930,11 +6930,11 @@ _0221576A: ldr r0, _02215780 ; =0x00002070 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215780 ; =0x00002070 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} .align 2, 0 _02215780: .word 0x00002070 @@ -7094,7 +7094,7 @@ _022158C0: bl String_dtor _022158C6: ldr r0, [sp, #0x18] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -7224,22 +7224,22 @@ _022159C8: ldr r1, [r5, r0] ldr r0, [sp, #0x18] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215A20 ; =0x00002070 ldr r1, [r5, r0] ldr r0, [sp, #0x14] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215A20 ; =0x00002070 ldr r1, [r5, r0] ldr r0, [sp, #0x10] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215A20 ; =0x00002070 ldr r1, [r5, r0] ldr r0, [sp, #0xc] add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, _02215A1C ; =0x00002075 mov r0, #1 ldrb r2, [r5, r1] @@ -7753,23 +7753,23 @@ _02215E4C: ldr r0, _02215EC4 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215EC4 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215EC4 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215EC4 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02215EC4 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -8066,19 +8066,19 @@ _02216156: ldr r0, _02216184 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02216184 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02216184 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _02216184 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -8184,7 +8184,7 @@ MOD09_022161B0: ; 0x022161B0 ldr r0, _02216304 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [r5] add r0, r1, #0 add r0, #0x34 @@ -8288,7 +8288,7 @@ MOD09_0221633C: ; 0x0221633C sub sp, #0xc add r4, r0, #0 mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint ldr r0, [r4] ldr r0, [r0, #8] bl MOD11_02230E54 @@ -11750,12 +11750,12 @@ MOD09_02217F88: ; 0x02217F88 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp, #0x18] bl FreeToHeap add sp, #0x1c @@ -11824,7 +11824,7 @@ _0221803C: ldrb r1, [r6, r1] lsl r1, r1, #4 add r0, r0, r1 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3, r4, r5, r6, r7, pc} _02218070: mov r4, #0 @@ -11845,7 +11845,7 @@ _02218072: ldrb r0, [r6, r4] lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -12988,7 +12988,7 @@ _022189AA: ; jump table .short _02218A06 - _022189AA - 2 ; case 5 _022189B6: ldr r0, _02218A2C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE lsl r0, r5, #0x18 lsr r1, r0, #0x18 ldr r0, _02218A30 ; =0x0000114D @@ -13007,7 +13007,7 @@ _022189D6: cmp r0, #0 beq _02218A24 ldr r0, _02218A2C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] ldrb r1, [r0, #0x1f] ldr r0, _02218A30 ; =0x0000114D @@ -13025,7 +13025,7 @@ _022189D6: pop {r3, r4, r5, pc} _02218A06: ldr r0, _02218A2C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] mov r2, #0 strh r2, [r0, #0x1c] @@ -13094,7 +13094,7 @@ _02218A84: cmp r0, #0 beq _02218B30 ldr r0, _02218B38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _02218B3C ; =0x0000114D ldr r2, [r4] ldrb r1, [r4, r0] @@ -13121,7 +13121,7 @@ _02218ABA: cmp r0, #0 beq _02218B30 ldr r0, _02218B38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _02218B40 ; =0x0000114B mov r1, #7 strb r1, [r4, r0] @@ -13143,7 +13143,7 @@ _02218AE8: cmp r0, #0 beq _02218B30 ldr r0, _02218B38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _02218B40 ; =0x0000114B mov r1, #7 strb r1, [r4, r0] @@ -13158,7 +13158,7 @@ _02218AE8: pop {r3, r4, r5, pc} _02218B16: ldr r0, _02218B38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _02218B40 ; =0x0000114B mov r1, #4 strb r1, [r4, r0] @@ -13268,7 +13268,7 @@ _02218BEA: b _02218C44 _02218BF4: ldr r0, _02218C4C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r1, _02218C50 ; =0x0000114D ldr r2, [r5] ldrb r1, [r5, r1] @@ -13292,7 +13292,7 @@ _02218BF4: pop {r3, r4, r5, pc} _02218C2A: ldr r0, _02218C4C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _02218C54 ; =0x0000114B mov r1, #5 strb r1, [r5, r0] @@ -13744,7 +13744,7 @@ _02218FC2: cmp r0, #1 bne _02218FFA ldr r0, _022190C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _022190C4 ; =0x0000114D mov r1, #2 strb r1, [r4, r0] @@ -13784,7 +13784,7 @@ _02219014: cmp r0, #1 bne _02219054 ldr r0, _022190C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _022190C4 ; =0x0000114D ldr r3, [r4] ldrb r1, [r4, r0] @@ -13828,7 +13828,7 @@ _0221906E: cmp r0, #1 bne _022190AE ldr r0, _022190C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r1, _022190C4 ; =0x0000114D ldr r2, [r4] ldrb r1, [r4, r1] @@ -13878,7 +13878,7 @@ MOD09_022190CC: ; 0x022190CC stmia r3!, {r0, r1} add r0, r2, #0 mov r1, #1 - bl FUN_02016BF4 + bl SetScreenModeAndDisable ldr r5, _0221918C ; =0x0221BBCC add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -13893,7 +13893,7 @@ MOD09_022190CC: ; 0x022190CC str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02219190 ; =0x0221BBB0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -13908,10 +13908,10 @@ MOD09_022190CC: ; 0x022190CC str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02219194 ; =0x0221BB94 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -13926,28 +13926,28 @@ MOD09_022190CC: ; 0x022190CC str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r3, [r4] mov r0, #5 ldr r3, [r3, #0xc] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #4 ldr r3, [r3, #0xc] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #4] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #4] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x64 pop {r4, r5, pc} .align 2, 0 @@ -13965,13 +13965,13 @@ MOD09_02219198: ; 0x02219198 bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 @@ -14141,12 +14141,12 @@ _02219316: ldr r0, [r4, #4] mov r1, #6 add r3, r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4, #4] mov r1, #6 mov r2, #3 mov r3, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, pc} _02219330: mov r1, #6 @@ -14154,25 +14154,25 @@ _02219330: ldr r0, [r4, #4] mov r2, #0 add r3, #0xfa - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4, #4] mov r1, #6 mov r2, #3 mov r3, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, pc} _0221934C: mov r2, #0 ldr r0, [r4, #4] mov r1, #6 add r3, r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r2, #3 add r3, r2, #0 ldr r0, [r4, #4] mov r1, #6 add r3, #0xfd - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, pc} thumb_func_start MOD09_02219368 @@ -14196,7 +14196,7 @@ MOD09_02219368: ; 0x02219368 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_020186B4 + bl BgTilemapRectChangePalette mov r0, #0x1c str r0, [sp] mov r0, #8 @@ -14211,7 +14211,7 @@ MOD09_02219368: ; 0x02219368 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_020186B4 + bl BgTilemapRectChangePalette _022193B2: add sp, #0xc pop {r3, r4, pc} @@ -14230,11 +14230,11 @@ MOD09_022193BC: ; 0x022193BC ldr r0, [r5, #4] mov r1, #4 mov r2, #0 - bl FUN_0201878C + bl BgFillTilemapBufferAndSchedule ldr r0, [r5, #4] mov r1, #5 mov r2, #0 - bl FUN_0201878C + bl BgFillTilemapBufferAndSchedule add r0, r5, #0 bl MOD09_02219510 add r0, r5, #0 @@ -14311,7 +14311,7 @@ MOD09_02219474: ; 0x02219474 ldr r0, [r4, #4] ldr r2, _02219490 ; =0x0221BC2C add r1, #0x1c - bl FUN_02019150 + bl AddWindow ldr r1, _02219494 ; =0x0000114C add r0, r4, #0 ldrb r1, [r4, r1] @@ -14370,7 +14370,7 @@ _022194E2: lsl r2, r4, #3 ldr r0, [r5, #4] add r2, r6, r2 - bl FUN_02019150 + bl AddWindow add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -14395,7 +14395,7 @@ MOD09_02219510: ; 0x02219510 ldrb r1, [r1] bx r3 .align 2, 0 -_0221951C: .word FUN_020191A4 +_0221951C: .word WindowArray_dtor thumb_func_start MOD09_02219520 MOD09_02219520: ; 0x02219520 @@ -14405,10 +14405,10 @@ MOD09_02219520: ; 0x02219520 add r1, #0x30 ldrb r1, [r1] ldr r0, [r4, #0x2c] - bl FUN_020191A4 + bl WindowArray_dtor add r4, #0x1c add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 @@ -14469,7 +14469,7 @@ MOD09_02219560: ; 0x02219560 ldr r0, [sp, #0x10] bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -14570,7 +14570,7 @@ _022195C4: bl String_dtor ldr r0, [r5, #0x2c] add r0, #0x40 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _0221968A: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} @@ -14646,7 +14646,7 @@ MOD09_02219694: ; 0x02219694 bl String_dtor _02219726: add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -14716,7 +14716,7 @@ MOD09_02219738: ; 0x02219738 bl String_dtor _022197BA: add r0, r4, r7 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -14795,7 +14795,7 @@ MOD09_0221983C: ; 0x0221983C ldr r0, [r4, #4] mov r1, #5 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r5, #0 _0221985E: add r0, r4, #0 @@ -14945,7 +14945,7 @@ MOD09_02219884: ; 0x02219884 mov r0, #0x19 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop @@ -15104,7 +15104,7 @@ MOD09_02219A8C: ; 0x02219A8C add r0, r7, #0 bl String_dtor add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -15151,7 +15151,7 @@ MOD09_02219AFC: ; 0x02219AFC add r0, r7, #0 bl String_dtor add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -15243,7 +15243,7 @@ MOD09_02219C08: ; 0x02219C08 sub sp, #0xc add r4, r0, #0 mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint ldr r0, [r4] ldr r0, [r0] bl MOD11_02230E54 @@ -16848,10 +16848,10 @@ MOD09_0221A884: ; 0x0221A884 str r7, [sp, #8] ldr r0, [r5, #4] mov r1, #6 - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [r5, #4] mov r1, #6 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp, #0x18] bl FreeToHeap add sp, #0x1c @@ -16918,7 +16918,7 @@ _0221A93C: ldr r1, [r6, #0x2c] lsl r0, r0, #4 add r0, r1, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -17391,7 +17391,7 @@ _0221ACA8: ldr r0, [r0] bl MOD11_0225D5DC ldr r0, _0221ACE0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0221ACD4: mov r0, #0 add sp, #4 @@ -17624,7 +17624,7 @@ _0221AE70: ldr r0, [r5] bl MOD11_0225D5DC ldr r0, _0221AEC0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0221AE8A: mov r0, #0 add sp, #0x14 @@ -17644,7 +17644,7 @@ _0221AEA2: tst r1, r0 beq _0221AEB6 ldr r0, _0221AEC4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 add sp, #0x14 mvn r0, r0 diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 2a6bb196..23f0a76c 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -42,7 +42,7 @@ _0222D600: mov r0, #3 mov r1, #5 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, [r5] mov r0, #4 tst r0, r1 @@ -175,7 +175,7 @@ _0222D704: b _0222D7EA _0222D714: mov r0, #5 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xd str r0, [r4] b _0222D7EA @@ -187,7 +187,7 @@ _0222D720: ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID bl UnloadOverlayByID mov r0, #5 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x3e bl FUN_02031588 mov r0, #0xc @@ -210,7 +210,7 @@ _0222D752: mov r0, #3 mov r1, #0x49 lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r0, [r5, #4] ldr r1, [sp, #0x24] bl GetPartyMonByIndex @@ -266,7 +266,7 @@ _0222D7C2: add r0, r5, #0 bl FUN_0206C92C mov r0, #0x49 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xd str r0, [r4] b _0222D7EA @@ -325,7 +325,7 @@ MOD11_0222D840: ; 0x0222D840 ldr r0, [r4, r0] bl MOD11_02258658 ldr r0, [r4, #8] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #4] bl MOD11_0222E4E8 add r0, r4, #0 @@ -424,7 +424,7 @@ MOD11_0222D944: ; 0x0222D944 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] - bl FUN_02019178 + bl RemoveWindow mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers @@ -433,13 +433,13 @@ MOD11_0222D944: ; 0x0222D944 bl GX_EngineAToggleLayers ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD11_02231410 pop {r4, pc} @@ -471,26 +471,26 @@ _0222D99A: ldr r0, [r5, #4] add r2, sp, #0x14 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r5, #4] mov r1, #2 add r2, sp, #0x30 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r5, #4] mov r1, #3 add r2, sp, #0x4c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _0222DB40 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -630,7 +630,7 @@ _0222D99A: str r0, [sp, #0x10] ldr r0, [r5, #4] ldr r1, [r5, #8] - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5, #8] mov r1, #0xff bl FillWindowPixelBuffer @@ -742,7 +742,7 @@ MOD11_0222DB50: ; 0x0222DB50 mov r3, #5 bl FUN_02003008 mov r0, #5 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] mov r0, #5 mov r1, #3 @@ -792,7 +792,7 @@ _0222DC42: ldr r1, [r4, #8] mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r4, #8] mov r1, #0xff bl FillWindowPixelBuffer @@ -1348,14 +1348,14 @@ _0222E194: bl MOD11_0222D840 _0222E1AC: mov r0, #0 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl FUN_02002B7C mov r0, #0 bl FUN_02002BB8 ldr r0, [r4, #8] mov r1, #3 - bl FUN_020191A4 + bl WindowArray_dtor ldr r0, [r4, #4] bl FreeToHeap mov r0, #0x87 @@ -1467,7 +1467,7 @@ _0222E282: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r1, _0222E458 ; =0x000023FB mov r0, #1 ldrb r2, [r5, r1] @@ -1489,26 +1489,26 @@ _0222E2F0: add r0, r4, #0 add r2, sp, #0x48 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0x64 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0x80 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _0222E460 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -1712,13 +1712,13 @@ MOD11_0222E4E8: ; 0x0222E4E8 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD11_022584AC pop {r4, pc} @@ -3157,7 +3157,7 @@ _0222F088: ldr r0, [r4, #0x28] bl FUN_0200372C ldr r0, [r4, #4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0222F0CC ; =0x027E0000 ldr r1, _0222F0D0 ; =0x00003FF8 mov r0, #1 @@ -3183,7 +3183,7 @@ MOD11_0222F0D4: ; 0x0222F0D4 bl FUN_0200372C bl FUN_0201C30C ldr r0, [r4, #4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0222F0F8 ; =0x027E0000 ldr r1, _0222F0FC ; =0x00003FF8 mov r0, #1 @@ -3302,7 +3302,7 @@ _0222F1D0: cmp r0, #0 bne _0222F1F6 ldr r0, _0222F250 ; =0x00000704 - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 mov r1, #1 bl MOD11_02231484 @@ -3338,7 +3338,7 @@ _0222F214: sub r1, r4, #1 bne _0222F244 ldr r0, _0222F250 ; =0x00000704 - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 mov r1, #4 bl MOD11_022314B0 @@ -3366,7 +3366,7 @@ MOD11_0222F254: ; 0x0222F254 ldr r0, [r4, #4] ldr r3, [r4, r3] mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, _0222F280 ; =0x00002434 ldr r0, [r4, r0] cmp r0, #0 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 451daa87..9b184cfc 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -41,7 +41,7 @@ MOD11_0222F29C: ; 0x0222F29C add r3, r1, #0 bl FUN_02003914 mov r0, #5 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5, #4] mov r0, #5 mov r1, #1 @@ -98,7 +98,7 @@ _0222F30E: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r6, _0222F4D0 ; =MOD11_0225DA04 add r3, sp, #0x14 ldmia r6!, {r0, r1} @@ -113,10 +113,10 @@ _0222F30E: str r0, [r3] ldr r0, [r5, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] @@ -183,7 +183,7 @@ _0222F30E: ldr r1, [r5, #8] mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5, #8] mov r1, #0xff bl FillWindowPixelBuffer @@ -810,13 +810,13 @@ MOD11_0222F93C: ; 0x0222F93C bl FUN_02002FEC ldr r0, [r4, #8] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] bl FreeToHeap add r0, r4, #0 @@ -1478,7 +1478,7 @@ _0222FEA6: mov r0, #3 bl FUN_02002B7C mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #1 bl FUN_02002BB8 pop {r3, pc} @@ -4128,7 +4128,7 @@ _022311D0: ldr r2, [r4, r2] mov r1, #3 lsl r3, r3, #5 - bl FUN_02017E14 + bl BG_LoadCharTilesData mov r0, #0x5f lsl r0, r0, #2 add r0, r4, r0 @@ -6262,7 +6262,7 @@ _0223223C: b _02232252 _02232244: ldr r0, _0223225C ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE b _02232252 _0223224C: ldr r0, _02232260 ; =0x00000483 @@ -23819,10 +23819,10 @@ _0223AC50: strh r1, [r0] mov r0, #1 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] mov r1, #2 bl MOD11_02231564 @@ -23859,7 +23859,7 @@ _0223AC50: add r1, r5, #0 mov r2, #2 mov r3, #0x11 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0xff bl FillWindowPixelBuffer @@ -24041,7 +24041,7 @@ _0223AE3C: beq _0223AEDC _0223AE4E: ldr r0, _0223AF70 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x28] add sp, #0xd4 add r0, r0, #1 @@ -24055,7 +24055,7 @@ _0223AE5E: mov r1, #0 bl FUN_0200CCF8 add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow ldr r1, _0223AF50 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -24064,10 +24064,10 @@ _0223AE5E: orr r2, r0 strh r2, [r1] mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] mov r1, #0 bl MOD11_02231564 @@ -24931,7 +24931,7 @@ _0223B57C: mov r0, #1 str r0, [r4, #0x28] ldr r0, _0223B7F8 ; =0x0000070A - bl FUN_020054C8 + bl PlaySE ldr r2, [r4] ldr r0, _0223B7FC ; =0x0000241E ldrh r1, [r2, r0] @@ -24962,7 +24962,7 @@ _0223B5A4: mov r0, #1 str r0, [r4, #0x28] ldr r0, _0223B7F8 ; =0x0000070A - bl FUN_020054C8 + bl PlaySE ldr r2, [r4] ldr r0, _0223B7FC ; =0x0000241E ldrh r1, [r2, r0] @@ -25410,7 +25410,7 @@ _0223B9AA: cmp r0, #0 beq _0223B9BC ldr r0, _0223BBE4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xe str r0, [r4, #0x28] _0223B9BC: @@ -28107,7 +28107,7 @@ _0223CF5C: add r1, sp, #0x68 mov r2, #0xc mov r3, #4 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r1, #0 str r1, [sp] mov r0, #0xff @@ -28167,7 +28167,7 @@ _0223CF5C: ldr r0, [r5, #0x14] bl FUN_02011AC0 add r0, sp, #0x68 - bl FUN_02019178 + bl RemoveWindow add sp, #0x78 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -62296,7 +62296,7 @@ MOD11_0224D518: ; 0x0224D518 mov r1, #0xff bl FillWindowPixelBuffer add r0, r6, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r1, #0x65 lsl r1, r1, #2 ldrb r1, [r4, r1] @@ -63233,7 +63233,7 @@ _0224DCAE: mov r1, #3 mov r2, #2 mov r3, #0x84 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0224DCBE: ldr r0, _0224DCE0 ; =MOD11_02250060 add r1, r4, #0 @@ -67678,7 +67678,7 @@ _02250086: mov r1, #3 mov r2, #1 mov r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] @@ -68574,7 +68574,7 @@ _0225073C: cmp r0, #3 beq _022507E2 ldr r0, _022508A0 ; =0x0000070A - bl FUN_020054C8 + bl PlaySE _022507E2: cmp r5, #4 bne _0225088A @@ -69325,7 +69325,7 @@ _02250DD0: mov r0, #0xa strb r0, [r4, #0xb] ldr r0, _02250E9C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #6 add sp, #0x4c strb r0, [r4, #0xa] @@ -69707,7 +69707,7 @@ _02251114: cmp r0, r1 beq _022511B6 ldr r0, _022511C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] @@ -69990,7 +69990,7 @@ _02251366: cmp r0, r1 beq _02251418 ldr r0, _0225141C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xf] add sp, #0x2c add r0, r0, #1 @@ -71659,7 +71659,7 @@ _022520D2: mov r1, #0xff bl FillWindowPixelBuffer add r0, r6, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4] bl MOD11_02230094 bl MOD11_0225C76C @@ -72355,7 +72355,7 @@ _0225267E: cmp r0, r1 beq _0225270A ldr r0, _02252710 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #3 add sp, #0x2c strb r0, [r4, #0xe] @@ -72853,7 +72853,7 @@ _02252A86: add r0, #0x4e strb r1, [r0] ldr r0, _02252B2C ; =0x0000070B - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x40] add r0, r4, #0 bl MOD11_022571B8 @@ -73522,7 +73522,7 @@ _02252FCE: add r1, #0xb bl MOD11_0225805C ldr r0, _02253004 ; =0x0000070C - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xa] add r0, r0, #1 strb r0, [r4, #0xa] @@ -73694,7 +73694,7 @@ _02253104: ldr r0, [r4, #8] bl MOD08_0222A1DC ldr r0, _022533E0 ; =0x0000084F - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x14] add sp, #0x18 add r0, r0, #1 @@ -73738,7 +73738,7 @@ _0225318C: bne _0225319A mov r0, #0x85 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE _0225319A: ldrb r0, [r4, #0x15] cmp r0, #0x1c @@ -82482,7 +82482,7 @@ MOD11_022574F0: ; 0x022574F0 add r1, sp, #0x24 mov r2, #8 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r1, #0 str r1, [sp] mov r0, #0xff @@ -82570,7 +82570,7 @@ MOD11_022574F0: ; 0x022574F0 ldrh r2, [r3, r2] bl MIi_CpuCopy16 add r0, sp, #0x24 - bl FUN_02019178 + bl RemoveWindow ldr r0, [sp, #0x18] bl String_dtor ldr r0, [sp, #0x1c] @@ -83055,7 +83055,7 @@ _02257A26: add r1, sp, #0x18 mov r2, #0xd mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r1, #0 str r1, [sp] mov r0, #0xff @@ -83116,7 +83116,7 @@ _02257A26: mov r2, #0xe0 bl MIi_CpuCopy16 add r0, sp, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r7, #0 bl String_dtor add sp, #0x28 @@ -83181,7 +83181,7 @@ _02257B1E: add r1, sp, #0x24 mov r2, #0xd mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r1, #0 str r1, [sp] mov r0, #0xff @@ -83241,7 +83241,7 @@ _02257B1E: mov r2, #0xe0 bl MIi_CpuCopy16 add r0, sp, #0x24 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0 bl String_dtor ldr r0, [sp, #0x18] @@ -84398,27 +84398,27 @@ _0225845A: lsr r1, r1, #0x18 add r2, r6, #0 add r3, r7, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r1, r4, #4 lsl r1, r1, #0x18 ldr r2, _022584A8 ; =0x000002FF add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit add r1, r4, #4 lsl r1, r1, #0x18 mov r2, #0 add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, r4, #1 add r6, #0x1c cmp r4, #4 @@ -84439,12 +84439,12 @@ _022584B4: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 - bl FUN_0201797C + bl ToggleBgLayer add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #4 blo _022584B4 @@ -84905,12 +84905,12 @@ _022588AE: ldr r2, [r2, #0x3c] lsr r1, r1, #0x18 lsl r3, r3, #0xa - bl FUN_02017DFC + bl BG_LoadScreenTilemapData add r1, r4, #4 lsl r1, r1, #0x18 ldr r0, [sp, #0x28] lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _022588D0: add r4, r4, #1 add r6, r6, #2 @@ -85968,7 +85968,7 @@ _0225910E: mov r1, #6 mov r2, #0 asr r3, r6, #8 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 bl MOD11_0225902C cmp r4, #1 @@ -85976,13 +85976,13 @@ _0225910E: ldr r2, _02259160 ; =0x000002FF add r0, r7, #0 mov r1, #7 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r2, _02259164 ; =0x04001000 ldr r0, _02259168 ; =0xFFFF1FFF ldr r1, [r2] @@ -86080,7 +86080,7 @@ MOD11_0225916C: ; 0x0225916C bl _s32_div_f strh r0, [r4, #0xe] ldr r0, _0225925C ; =0x0000070E - bl FUN_020054C8 + bl PlaySE ldr r0, _02259260 ; =MOD11_0225B438 ldr r2, _02259264 ; =0x000004BA add r1, r4, #0 @@ -86408,10 +86408,10 @@ MOD11_022594DC: ; 0x022594DC add r4, r0, #0 mov r1, #4 mov r3, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0 mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x4e lsl r0, r0, #4 ldr r0, [r5, r0] @@ -86463,7 +86463,7 @@ MOD11_02259554: ; 0x02259554 mov r1, #4 mov r3, #0 add r4, r0, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x10 str r0, [sp] mov r0, #0xa @@ -86476,10 +86476,10 @@ MOD11_02259554: ; 0x02259554 add r0, r4, #0 mov r1, #4 mov r3, #0x16 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0 mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #0x4e lsl r0, r0, #4 ldr r0, [r5, r0] @@ -87845,10 +87845,10 @@ _0225A116: ldr r2, _0225A15C ; =0x000002FF add r6, r0, #0 mov r1, #5 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit add r0, r6, #0 mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0 add r1, r5, #0 bl MOD11_0225ADD0 @@ -88290,7 +88290,7 @@ _0225A49C: add r1, sp, #0x3c lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -88374,7 +88374,7 @@ _0225A50A: cmp r4, #0 bne _0225A570 add r0, sp, #0x3c - bl FUN_02019178 + bl RemoveWindow _0225A570: str r7, [r5] add r3, sp, #0x30 @@ -88427,7 +88427,7 @@ MOD11_0225A5C0: ; 0x0225A5C0 ldr r0, [r7] bl MOD11_0222FF68 mov r1, #5 - bl FUN_0201886C + bl GetBgTilemapBuffer add r4, r0, #0 add r0, r7, #0 add r1, sp, #4 @@ -88591,7 +88591,7 @@ _0225A6E4: cmp r0, #0 beq _0225A6FE add r0, r7, #0 - bl FUN_02019178 + bl RemoveWindow _0225A6FE: add r0, r4, #0 add r0, #0xec @@ -88599,7 +88599,7 @@ _0225A6FE: cmp r0, #0 beq _0225A70E add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow _0225A70E: mov r0, #0x4f lsl r0, r0, #2 @@ -88607,7 +88607,7 @@ _0225A70E: cmp r0, #0 beq _0225A71E add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow _0225A71E: ldr r0, [sp, #4] add r4, #0x14 @@ -88911,7 +88911,7 @@ MOD11_0225A968: ; 0x0225A968 cmp r0, #0 beq _0225A994 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _0225A994: add r0, r4, #0 bl InitWindow @@ -88925,7 +88925,7 @@ _0225A994: lsl r2, r2, #0x18 lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -89218,7 +89218,7 @@ MOD11_0225ABA4: ; 0x0225ABA4 bl FUN_02003054 add r0, r6, #0 mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, _0225AC58 ; =MOD11_0225F71C lsl r1, r4, #2 ldrb r2, [r0, r1] @@ -89244,10 +89244,10 @@ MOD11_0225ABA4: ; 0x0225ABA4 ldrb r3, [r3, #2] ldr r2, _0225AC5C ; =0x000002FF add r0, r6, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r6, #0 mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -89269,13 +89269,13 @@ _0225AC68: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r4, #0 - bl FUN_0201797C + bl ToggleBgLayer b _0225AC84 _0225AC7A: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 - bl FUN_0201797C + bl ToggleBgLayer _0225AC84: add r5, r5, #1 cmp r5, #4 @@ -89482,7 +89482,7 @@ MOD11_0225ADD8: ; 0x0225ADD8 bl MOD11_0222FF68 mov r1, #4 str r0, [sp, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 lsl r0, r7, #2 add r0, r5, r0 @@ -89528,7 +89528,7 @@ _0225AE36: _0225AE40: ldr r0, [sp, #4] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -90373,22 +90373,22 @@ _0225B4D6: add r0, r4, #0 mov r1, #4 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #4 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #0 add r0, r4, #0 mov r1, #5 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #5 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5] mov r1, #1 ldr r0, [r0] @@ -90427,7 +90427,7 @@ _0225B55A: add r0, r6, #0 mov r1, #4 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r4, [r5, r3] mov r3, #0xff @@ -90435,7 +90435,7 @@ _0225B55A: mov r1, #5 mov r2, #0 sub r3, r3, r4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #8 ldrsh r0, [r5, r0] mov r1, #0x64 @@ -90453,13 +90453,13 @@ _0225B590: add r0, r6, #0 mov r1, #4 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r5, r3] add r0, r6, #0 mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #8 ldrsh r0, [r5, r0] mov r1, #0x64 @@ -90471,12 +90471,12 @@ _0225B5B6: mov r1, #4 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r6, #0 mov r1, #5 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0xa ldrsh r0, [r5, r0] mov r1, #0x64 @@ -90556,24 +90556,24 @@ MOD11_0225B644: ; 0x0225B644 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x10 ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #4 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #0 add r0, r5, #0 mov r1, #5 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x10 ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #5 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, r5, r6, pc} _0225B68E: cmp r0, #0xc0 @@ -90591,7 +90591,7 @@ _0225B68E: mov r1, #4 mov r2, #0 sub r3, r3, r6 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r4, [r4, r3] mov r3, #0xff @@ -90599,31 +90599,31 @@ _0225B68E: mov r1, #5 mov r2, #0 sub r3, r3, r4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _0225B6E0 _0225B6C6: mov r3, #0xc ldrsh r3, [r4, r3] mov r1, #4 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0xc ldrsh r3, [r4, r3] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0225B6E0: add r0, r5, #0 mov r1, #4 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 mov r1, #5 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0225B6F8: pop {r4, r5, r6, pc} nop @@ -90650,14 +90650,14 @@ _0225B716: lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer b _0225B736 _0225B72A: add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer _0225B736: add r4, r4, #1 add r5, r5, #2 @@ -90671,7 +90671,7 @@ _0225B740: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add r4, r4, #1 add r6, r6, #2 cmp r4, #4 @@ -90888,7 +90888,7 @@ _0225B8EC: cmp r0, #0 bne _0225B8F6 ldr r0, _0225B920 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0225B8F6: mov r1, #1 ldr r0, _0225B924 ; =0x000006F4 @@ -91032,7 +91032,7 @@ _0225B9EC: mov r0, #1 strb r0, [r4, #1] ldr r0, _0225BAFC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r5, #0x20 b _0225BA34 _0225BA1E: @@ -91044,7 +91044,7 @@ _0225BA1E: mov r0, #1 strb r0, [r4, #1] ldr r0, _0225BAFC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r5, #0x10 _0225BA34: cmp r5, #0x20 @@ -92834,7 +92834,7 @@ _0225C738: beq _0225C754 _0225C74C: ldr r0, _0225C768 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0225C75E _0225C754: mov r0, #0xf0 @@ -93398,7 +93398,7 @@ _0225CB80: bl FUN_0200CA44 str r0, [r5, #4] ldr r0, _0225CBB8 ; =0x00000711 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} nop _0225CBA8: .word MOD11_0225FE48 @@ -93863,7 +93863,7 @@ _0225CF22: bgt _0225CF50 str r0, [r4, #0x1c] ldrh r0, [r4, #0x2a] - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x2c ldrb r0, [r0] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index effb333a..5cb61425 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -40,7 +40,7 @@ MOD12_0222D5C0: ; 0x0222D5C0 mov r0, #3 mov r1, #0x15 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222D868 ; =0x00001658 add r0, r5, #0 mov r2, #0x15 @@ -95,14 +95,14 @@ MOD12_0222D5C0: ; 0x0222D5C0 mov r3, #0x15 bl FUN_02003008 mov r0, #0x15 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x30] mov r0, #0x40 mov r1, #0x15 bl FUN_0201C24C mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #0x23 add r1, r4, #0 lsl r2, r2, #4 @@ -445,7 +445,7 @@ MOD12_0222D9B0: ; 0x0222D9B0 bl MOD12_0222E0FC add r0, r4, #0 add r0, #0x34 - bl FUN_02019178 + bl RemoveWindow mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers @@ -454,13 +454,13 @@ MOD12_0222D9B0: ; 0x0222D9B0 bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] bl MOD12_022319FC ldr r0, _0222DAD8 ; =0x0000081C @@ -521,7 +521,7 @@ MOD12_0222D9B0: ; 0x0222D9B0 bl Main_SetVBlankIntrCB bl FUN_02015F1C mov r0, #0x15 - bl FUN_020168D0 + bl DestroyHeap bl FUN_02083404 bl FUN_02033ED0 ldr r0, _0222DADC ; =SDK_OVERLAY_MODULE_08_ID @@ -546,7 +546,7 @@ MOD12_0222DAE4: ; 0x0222DAE4 ldr r0, [r4, #0x5c] bl FUN_0200372C ldr r0, [r4, #0x30] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0222DB10 ; =0x027E0000 ldr r1, _0222DB14 ; =0x00003FF8 mov r0, #1 @@ -632,7 +632,7 @@ _0222DB60: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0222DC78 ; =MOD12_02244A50 add r3, sp, #0x38 mov r2, #0xa @@ -647,56 +647,56 @@ _0222DBC0: add r0, r4, #0 add r2, sp, #0x38 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0x54 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0x70 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 add r0, r4, #0 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, _0222DC7C ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -737,7 +737,7 @@ MOD12_0222DC80: ; 0x0222DC80 add r1, #0x34 mov r2, #1 mov r3, #0xb - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {pc} @@ -1069,10 +1069,10 @@ MOD12_0222DF30: ; 0x0222DF30 bl GfGfxLoader_LoadScrnData mov r0, #1 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority add r0, r5, #0 bl MOD12_022335B0 cmp r4, #1 @@ -1087,16 +1087,16 @@ _0222DF9A: lsl r1, r0, #0xd mov r2, #0 mov r3, #0x15 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r5, #0x30] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority _0222DFBE: add sp, #0x10 pop {r3, r4, r5, pc} @@ -3175,7 +3175,7 @@ MOD12_0222EF04: ; 0x0222EF04 mov r0, #3 mov r1, #0x16 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222F168 ; =0x00000F68 add r0, r4, #0 mov r2, #0x16 @@ -3230,14 +3230,14 @@ MOD12_0222EF04: ; 0x0222EF04 mov r3, #0x16 bl FUN_02003008 mov r0, #0x16 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5, #0x30] mov r0, #0x40 mov r1, #0x16 bl FUN_0201C24C mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, [r5, #0x30] bl MOD12_0222F548 bl FUN_0201CC08 @@ -3378,7 +3378,7 @@ MOD12_0222EF04: ; 0x0222EF04 add r1, r5, #0 bl Main_SetVBlankIntrCB ldr r0, _0222F198 ; =0x00000605 - bl FUN_020054C8 + bl PlaySE mov r0, #1 add sp, #0xc pop {r4, r5, pc} @@ -3470,7 +3470,7 @@ _0222F1CA: mov r3, #6 bl FUN_02003210 ldr r0, _0222F308 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE mov r0, #1 str r0, [r5] b _0222F2FA @@ -3601,7 +3601,7 @@ MOD12_0222F324: ; 0x0222F324 bl MOD12_0222F98C add r0, r4, #0 add r0, #0x34 - bl FUN_02019178 + bl RemoveWindow mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers @@ -3610,19 +3610,19 @@ MOD12_0222F324: ; 0x0222F324 bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x30] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x28] ldr r1, [r4, #0x2c] bl FUN_0200C398 @@ -3686,7 +3686,7 @@ _0222F3AE: bl Main_SetVBlankIntrCB bl FUN_02015F1C mov r0, #0x16 - bl FUN_020168D0 + bl DestroyHeap bl FUN_02083404 bl FUN_02033ED0 ldr r0, _0222F450 ; =SDK_OVERLAY_MODULE_08_ID @@ -3759,7 +3759,7 @@ _0222F4BA: ldr r0, [r6, #0x50] bl FUN_0200372C ldr r0, [r6, #0x30] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0222F4EC ; =0x027E0000 ldr r1, _0222F4F0 ; =0x00003FF8 mov r0, #1 @@ -3861,7 +3861,7 @@ _0222F558: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0222F6A8 ; =MOD12_02244B70 add r3, sp, #0x54 mov r2, #0xa @@ -3876,56 +3876,56 @@ _0222F5B8: add r0, r4, #0 add r2, sp, #0x54 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0x70 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0x8c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 add r0, r4, #0 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, _0222F6AC ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -3949,20 +3949,20 @@ _0222F5B8: str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #4 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #4 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0xa8 pop {r3, r4, r5, pc} .align 2, 0 @@ -3991,7 +3991,7 @@ MOD12_0222F6B4: ; 0x0222F6B4 add r1, #0x34 mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {pc} .align 2, 0 @@ -4200,7 +4200,7 @@ MOD12_0222F834: ; 0x0222F834 bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0x30] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5015,7 +5015,7 @@ MOD12_0222FE4C: ; 0x0222FE4C mov r0, #3 mov r1, #0x17 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _022300EC ; =0x00001BF4 add r0, r4, #0 mov r2, #0x17 @@ -5092,14 +5092,14 @@ MOD12_0222FE4C: ; 0x0222FE4C mov r1, #1 bl MOD12_0223EC7C mov r0, #0x17 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5, #0x74] mov r0, #0x40 mov r1, #0x17 bl FUN_0201C24C mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r1, r5, #0 ldr r0, [r5] add r1, #0x14 @@ -5240,7 +5240,7 @@ MOD12_0222FE4C: ; 0x0222FE4C sub r2, #0x3f bl G2x_SetBlendBrightness_ ldr r0, _02230120 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE ldr r0, _02230124 ; =MOD12_022303C0 add r1, r5, #0 bl Main_SetVBlankIntrCB @@ -5435,7 +5435,7 @@ _02230254: add r5, #0x78 _02230296: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r6, r6, #1 add r5, #0x10 cmp r6, #2 @@ -5448,13 +5448,13 @@ _02230296: bl GX_EngineAToggleLayers ldr r0, [r4, #0x74] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x74] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x74] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x74] bl MOD12_0223B474 ldr r0, _022303B0 ; =0x00001130 @@ -5530,7 +5530,7 @@ _02230296: bl Main_SetVBlankIntrCB bl FUN_02015F1C mov r0, #0x17 - bl FUN_020168D0 + bl DestroyHeap bl FUN_02083404 bl FUN_02033ED0 ldr r0, _022303B8 ; =SDK_OVERLAY_MODULE_08_ID @@ -5642,7 +5642,7 @@ _02230464: ldr r0, [r0] bl FUN_0200372C ldr r0, [r4, #0x74] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _022304A8 ; =0x027E0000 ldr r1, _022304AC ; =0x00003FF8 mov r0, #1 @@ -5807,7 +5807,7 @@ _02230584: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0223069C ; =MOD12_02244C94 add r3, sp, #0x38 mov r2, #0xa @@ -5822,56 +5822,56 @@ _022305E4: add r0, r4, #0 add r2, sp, #0x38 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0x54 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0x70 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 add r0, r4, #0 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, _022306A0 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -5912,7 +5912,7 @@ MOD12_022306A4: ; 0x022306A4 add r1, #0x78 mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb str r0, [sp] mov r0, #0x1b @@ -5927,7 +5927,7 @@ MOD12_022306A4: ; 0x022306A4 add r4, #0x88 add r1, r4, #0 mov r2, #1 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {r3, r4, pc} @@ -7577,7 +7577,7 @@ _022313B0: add r1, sp, #0x34 lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -7648,7 +7648,7 @@ _02231454: sub r2, #8 bl FUN_020118C4 add r0, sp, #0x34 - bl FUN_02019178 + bl RemoveWindow str r6, [r5] add r3, sp, #0x28 ldmia r3!, {r0, r1} @@ -8288,7 +8288,7 @@ MOD12_0223190C: ; 0x0223190C mov r3, #0x3f bl FUN_0200A208 ldr r0, _02231978 ; =0x000005F8 - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r4, #8] ldrb r0, [r4, #0x11] @@ -8354,27 +8354,27 @@ _022319AE: lsr r1, r1, #0x18 add r2, r6, #0 add r3, r7, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #0 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit add r1, r4, #4 lsl r1, r1, #0x18 mov r2, #0 add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, r4, #1 add r6, #0x1c cmp r4, #4 @@ -8394,12 +8394,12 @@ _02231A04: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 - bl FUN_0201797C + bl ToggleBgLayer add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #4 blo _02231A04 @@ -8590,7 +8590,7 @@ _02231B90: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add r4, r4, #1 add r5, r5, #2 cmp r4, #4 @@ -8632,12 +8632,12 @@ _02231BDE: ldr r2, [r2, #0x20] lsr r1, r1, #0x18 lsl r3, r3, #0xa - bl FUN_02017DFC + bl BG_LoadScreenTilemapData add r1, r5, #4 lsl r1, r1, #0x18 ldr r0, [sp, #0xc] lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _02231C00: add r5, r5, #1 add r6, r6, #2 @@ -9550,7 +9550,7 @@ _022322FE: add r1, sp, #0x3c lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -9633,7 +9633,7 @@ _0223236C: cmp r4, #0 bne _022323D0 add r0, sp, #0x3c - bl FUN_02019178 + bl RemoveWindow _022323D0: str r7, [r5] add r3, sp, #0x30 @@ -9846,7 +9846,7 @@ MOD12_02232538: ; 0x02232538 mov r1, #4 add r4, r2, #0 str r0, [sp, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 lsl r0, r7, #2 add r0, r5, r0 @@ -9892,7 +9892,7 @@ _02232594: _0223259E: ldr r0, [sp, #4] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -10680,7 +10680,7 @@ _02232B9A: cmp r0, #0 beq _02232BAA ldr r0, [sp] - bl FUN_02019178 + bl RemoveWindow _02232BAA: mov r0, #2 lsl r0, r0, #8 @@ -10688,7 +10688,7 @@ _02232BAA: cmp r0, #0 beq _02232BBA add r0, r7, #0 - bl FUN_02019178 + bl RemoveWindow _02232BBA: mov r0, #0x25 lsl r0, r0, #4 @@ -10696,7 +10696,7 @@ _02232BBA: cmp r0, #0 beq _02232BCA add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow _02232BCA: ldr r0, [sp] add r4, #0x14 @@ -10720,7 +10720,7 @@ _02232BEC: cmp r0, #0 beq _02232BF8 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _02232BF8: add r6, r6, #1 add r5, #0x14 @@ -10925,7 +10925,7 @@ MOD12_02232D7C: ; 0x02232D7C cmp r0, #0 beq _02232DA8 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _02232DA8: add r0, r4, #0 bl InitWindow @@ -10939,7 +10939,7 @@ _02232DA8: add r1, r4, #0 lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -11020,7 +11020,7 @@ _02232E54: cmp r0, #0 bne _02232E5E ldr r0, _02232E88 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02232E5E: mov r1, #1 mov r0, #0xc7 @@ -11707,7 +11707,7 @@ _02233338: beq _02233354 _0223334C: ldr r0, _02233368 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0223335E _02233354: mov r0, #0xf0 @@ -11738,7 +11738,7 @@ MOD12_0223336C: ; 0x0223336C ldr r2, [r2, #0x14] mov r1, #4 lsl r3, r3, #0xc - bl FUN_02017E14 + bl BG_LoadCharTilesData mov r0, #0xb6 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -11774,14 +11774,14 @@ _022333C0: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r7, #0 - bl FUN_0201797C + bl ToggleBgLayer b _022333E0 _022333D4: add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer _022333E0: add r4, r4, #1 add r5, r5, #2 @@ -11991,7 +11991,7 @@ MOD12_0223356C: ; 0x0223356C add r5, r1, #0 mov r1, #2 add r4, r2, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r1, #0xc0 mul r1, r5 lsl r1, r1, #1 @@ -12042,7 +12042,7 @@ _022335CC: blt _022335BC ldr r0, [r5, #0x30] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r3, r4, r5, r6, r7, pc} nop _022335DC: .word MOD12_022451D0 @@ -12862,19 +12862,19 @@ _02233C36: ; jump table .short _02233C56 - _02233C36 - 2 ; case 3 _02233C3E: ldr r0, _02233C68 ; =0x000006E1 - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _02233C46: ldr r0, _02233C6C ; =0x000006DF - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _02233C4E: ldr r0, _02233C70 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _02233C56: ldr r0, _02233C70 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _02233C5C: pop {r4, r5, r6, pc} nop @@ -13533,7 +13533,7 @@ _02234170: cmp r4, r0 bgt _022340EE ldr r0, _02234194 ; =0x000006E1 - bl FUN_020054C8 + bl PlaySE ldr r2, [sp, #8] ldr r0, _02234194 ; =0x000006E1 sub r2, r2, #1 @@ -14070,7 +14070,7 @@ _022345AC: bl FUN_0200C644 mov r0, #0x6e lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl FreeToHeap add r0, r5, #0 @@ -15298,7 +15298,7 @@ _02234F42: _02234F96: ldr r0, [r5, #0x30] mov r1, #1 - bl FUN_02017B48 + bl Bg_GetXpos add r0, r6, #0 bl String_dtor add sp, #0x10 @@ -15804,7 +15804,7 @@ _02235354: pop {r3, r4, r5, pc} _02235362: ldr r0, _02235468 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE ldr r0, _02235468 ; =0x000006E5 ldr r1, [r4, #4] bl FUN_0200488C @@ -16320,7 +16320,7 @@ _02235778: mov r1, #0 bl FUN_0200C644 ldr r0, _022357AC ; =0x000005E1 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #4] bl MOD12_02233638 ldr r1, [r5, #0xc] @@ -16509,7 +16509,7 @@ _022358CE: lsl r0, r0, #8 str r0, [r5, #0x20] ldr r0, _02235A84 ; =0x000007F9 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r5, #0xe] add r0, r0, #1 strb r0, [r5, #0xe] @@ -16649,7 +16649,7 @@ _022359F6: str r0, [r5, #0x18] _02235A16: ldr r0, _02235A90 ; =0x000006EA - bl FUN_020054C8 + bl PlaySE ldrb r0, [r5, #0xe] add sp, #8 add r0, r0, #1 @@ -16689,7 +16689,7 @@ _02235A5E: mov r1, #0 bl FUN_0200C644 ldr r0, _02235A94 ; =0x000005E1 - bl FUN_020054C8 + bl PlaySE ldr r1, [r5, #8] ldrb r0, [r1] sub r0, r0, #1 @@ -17436,7 +17436,7 @@ _02235F98: bl MOD12_02234FB0 _02235FAA: ldr r0, _0223603C ; =0x000006F9 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xc] add sp, #8 add r0, r0, #1 @@ -17665,7 +17665,7 @@ _02236162: cmp r2, r0 bne _02236176 ldr r0, _02236204 ; =0x000006F8 - bl FUN_020054C8 + bl PlaySE _02236176: ldrb r0, [r4, #0x14] add r0, r0, #1 @@ -18972,7 +18972,7 @@ _02236B70: cmp r0, #0 bne _02236BA0 ldr r0, _02236CEC ; =0x000006F6 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xe] add r0, r0, #1 strb r0, [r4, #0xe] @@ -19013,7 +19013,7 @@ _02236BD0: bl GetMonData strh r0, [r4, #0x10] ldr r0, _02236CF0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 @@ -19077,7 +19077,7 @@ _02236C52: beq _02236CE4 strh r0, [r4, #0x12] ldr r0, _02236CF0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 @@ -19591,7 +19591,7 @@ _0223700E: add r6, r6, #1 bl MOD12_02234628 ldr r0, _022370F8 ; =0x000006DF - bl FUN_020054C8 + bl PlaySE _02237036: add r5, r5, #1 cmp r5, #3 @@ -19664,7 +19664,7 @@ _022370A6: lsr r2, r2, #0x1e bl MOD12_02235200 ldr r0, _02237100 ; =0x000006E2 - bl FUN_020054C8 + bl PlaySE _022370BC: add r5, r5, #1 cmp r5, #4 @@ -20194,7 +20194,7 @@ _02237484: add r0, #0xc bl MOD12_02234628 ldr r0, _02237650 ; =0x000006DF - bl FUN_020054C8 + bl PlaySE _022374A6: ldrb r0, [r4, #0xc] add sp, #8 @@ -20754,27 +20754,27 @@ _022378B4: mov r0, #0x6f lsl r0, r0, #4 mov r6, #4 - bl FUN_020054C8 + bl PlaySE b _022378F0 _022378C6: cmp r0, #1 bne _022378D4 ldr r0, _02237A94 ; =0x000006EF mov r6, #5 - bl FUN_020054C8 + bl PlaySE b _022378F0 _022378D4: cmp r0, #2 bne _022378E2 ldr r0, _02237A98 ; =0x000006EE mov r6, #6 - bl FUN_020054C8 + bl PlaySE b _022378F0 _022378E2: mov r0, #3 strb r0, [r4, #0xc] ldr r0, _02237A9C ; =0x000006DF - bl FUN_020054C8 + bl PlaySE add sp, #8 pop {r3, r4, r5, r6, r7, pc} _022378F0: @@ -25300,7 +25300,7 @@ _0223993C: add r1, r4, #0 bl FUN_0200CA44 ldr r0, _0223997C ; =0x000006E1 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} nop _0223996C: .word MOD12_02245F14 @@ -25931,7 +25931,7 @@ _02239E14: mov r1, #2 bl FUN_02003A64 ldr r0, _02239E94 ; =0x000006EC - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -26255,7 +26255,7 @@ _0223A0D4: b _0223A248 _0223A0D6: ldr r0, _0223A264 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE mov r0, #0xf strb r0, [r5, #0x11] ldrb r0, [r5, #0x10] @@ -26269,7 +26269,7 @@ _0223A0E6: mov r0, #0 strb r0, [r5, #0x11] ldr r0, _0223A264 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r5, #0x10] add sp, #8 add r0, r0, #1 @@ -26691,7 +26691,7 @@ _0223A418: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x30] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -26791,7 +26791,7 @@ _0223A4D2: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -26921,7 +26921,7 @@ _0223A5CC: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x30] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -27041,7 +27041,7 @@ _0223A6AE: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -27517,7 +27517,7 @@ _0223AA5C: cmp r0, #1 bne _0223AAA2 ldr r0, _0223AABC ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r5, #0x10] add sp, #0x10 add r0, r0, #1 @@ -28094,7 +28094,7 @@ _0223AED6: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r2, r4, #0 ldrb r1, [r4, #0x17] ldr r0, [r4] @@ -28140,7 +28140,7 @@ _0223AF34: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -28471,7 +28471,7 @@ _0223B1C6: cmp r0, #1 bne _0223B1DE ldr r0, _0223B350 ; =0x000006ED - bl FUN_020054C8 + bl PlaySE ldr r0, [sp] mov r1, #0 strb r1, [r0, #0x15] @@ -28480,7 +28480,7 @@ _0223B1DE: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -28580,7 +28580,7 @@ _0223B294: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] mov r1, #0xc ldrb r0, [r0, #0x12] @@ -28711,7 +28711,7 @@ MOD12_0223B37C: ; 0x0223B37C ldr r0, [sp] str r6, [r4, #0xc] ldrh r0, [r0, #0x10] - bl FUN_020054C8 + bl PlaySE ldr r0, _0223B3C0 ; =MOD12_0223B3C8 ldr r2, _0223B3C4 ; =0x00007530 add r1, r4, #0 @@ -28778,27 +28778,27 @@ _0223B426: lsr r1, r1, #0x18 add r2, r6, #0 add r3, r7, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #0 - bl FUN_02018768 + bl BgFillTilemapBufferAndCommit add r1, r4, #4 lsl r1, r1, #0x18 mov r2, #0 add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, r4, #1 add r6, #0x1c cmp r4, #4 @@ -28818,12 +28818,12 @@ _0223B47C: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r6, #0 - bl FUN_0201797C + bl ToggleBgLayer add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #4 blo _0223B47C @@ -29192,7 +29192,7 @@ _0223B794: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_020178BC + bl SetBgPriority add r4, r4, #1 add r5, r5, #2 cmp r4, #4 @@ -29256,12 +29256,12 @@ _0223B80A: ldr r2, [r2] lsr r1, r1, #0x18 lsl r3, r3, #0xa - bl FUN_02017DFC + bl BG_LoadScreenTilemapData add r1, r5, #4 lsl r1, r1, #0x18 ldr r0, [sp, #0xc] lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _0223B82E: add r5, r5, #1 add r4, r4, #2 @@ -29760,7 +29760,7 @@ _0223BBEC: strh r0, [r4, #0x1a] lsl r0, r7, #0x18 lsr r0, r0, #0x18 - bl FUN_020187B0 + bl BgGetCharPtr str r0, [r4, #4] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} @@ -29914,7 +29914,7 @@ _0223BD1C: add r1, sp, #0x38 lsr r2, r2, #0x18 mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -29982,7 +29982,7 @@ _0223BD74: add r2, #0xf8 bl FUN_020118C4 add r0, sp, #0x38 - bl FUN_02019178 + bl RemoveWindow str r6, [r5] add r3, sp, #0x2c ldmia r3!, {r0, r1} @@ -30475,14 +30475,14 @@ _0223C162: lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r7, #0 - bl FUN_0201797C + bl ToggleBgLayer b _0223C182 _0223C176: add r0, r4, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer _0223C182: add r4, r4, #1 add r5, r5, #2 @@ -30517,7 +30517,7 @@ MOD12_0223C19C: ; 0x0223C19C ldr r2, [r2] mov r1, #4 lsl r3, r3, #0xc - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, _0223C1D8 ; =0x0000FFFF add r4, #0x94 strh r0, [r4] @@ -30738,7 +30738,7 @@ _0223C338: ldr r0, [sp] mov r1, #3 ldr r0, [r0, #0x60] - bl FUN_0201886C + bl GetBgTilemapBuffer add r2, r0, #0 mov r1, #0 cmp r4, #0 @@ -30851,7 +30851,7 @@ _0223C410: ldr r0, [sp] mov r1, #3 ldr r0, [r0, #0x60] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop @@ -32903,11 +32903,11 @@ _0223D3F2: cmp r0, #1 bne _0223D404 ldr r0, _0223D4C4 ; =0x000006F5 - bl FUN_020054C8 + bl PlaySE b _0223D40A _0223D404: ldr r0, _0223D4C8 ; =0x000006F4 - bl FUN_020054C8 + bl PlaySE _0223D40A: ldr r0, _0223D4CC ; =0x00000ACC ldrb r0, [r5, r0] @@ -32944,7 +32944,7 @@ _0223D438: bne _0223D454 mov r0, #0x6f lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} _0223D454: @@ -32952,17 +32952,17 @@ _0223D454: cmp r0, r1 bne _0223D464 ldr r0, _0223D4D4 ; =0x000006EF - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} _0223D464: ldr r0, _0223D4D8 ; =0x000006EE - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} _0223D46E: ldr r0, _0223D4DC ; =0x000006F1 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} _0223D478: @@ -32972,12 +32972,12 @@ _0223D478: cmp r0, #1 bne _0223D48C ldr r0, _0223D4E0 ; =0x000006F2 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r4, r5, r6, r7, pc} _0223D48C: ldr r0, _0223D4E4 ; =0x000005F6 - bl FUN_020054C8 + bl PlaySE _0223D492: add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -35079,7 +35079,7 @@ _0223E49A: bl FUN_0200D0BC ldr r0, [r5, #0x74] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r5, #0 add r0, #0x98 ldr r1, _0223E520 ; =MOD12_02246224 @@ -35138,7 +35138,7 @@ MOD12_0223E528: ; 0x0223E528 bl FUN_0200D0E0 ldr r0, [r4, #0x74] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, _0223E544 ; =0x00001BF1 mov r1, #0 strb r1, [r4, r0] @@ -35629,7 +35629,7 @@ _0223E8D2: lsl r0, r0, #8 strh r0, [r4, #8] ldr r0, _0223E8E8 ; =0x000006F8 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _0223E8E8: .word 0x000006F8 @@ -36006,7 +36006,7 @@ _0223EBAC: lsl r2, r2, #2 bl FUN_0200CA44 ldr r0, _0223EC24 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE add sp, #0xc pop {r3, r4, pc} .align 2, 0 @@ -36105,7 +36105,7 @@ _0223ECB4: cmp r4, #4 blt _0223EC9E ldr r0, _0223ECCC ; =0x000006EC - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0223ECC4: .word 0x00007FFF @@ -36487,7 +36487,7 @@ _0223EF78: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x74] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -36587,7 +36587,7 @@ _0223F032: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x74] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -36724,7 +36724,7 @@ _0223F140: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x74] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -36844,7 +36844,7 @@ _0223F222: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x74] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -36982,7 +36982,7 @@ _0223F328: add r0, #0x14 bl MOD12_0223CC9C ldr r0, _0223F3AC ; =0x000006EC - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -38606,7 +38606,7 @@ _0223FF86: bl MOD12_0223E488 _0223FF8C: ldr r0, _02240040 ; =0x000006F7 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x10] add sp, #0x18 add r0, r0, #1 @@ -39313,7 +39313,7 @@ _02240522: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x74] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r2, r4, #0 ldrb r1, [r4, #0x1a] ldr r0, [r4] @@ -39359,7 +39359,7 @@ _02240580: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x74] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -39582,7 +39582,7 @@ _02240734: ldr r0, _0224076C ; =0x0000046F bl FUN_0200521C ldr r0, _02240770 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x50 ldrb r0, [r0] @@ -41102,7 +41102,7 @@ MOD12_02241210: ; 0x02241210 mov r0, #3 mov r1, #0x18 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #0x4a add r0, r4, #0 lsl r1, r1, #6 @@ -41175,14 +41175,14 @@ MOD12_02241210: ; 0x02241210 mov r3, #0x18 bl FUN_02003008 mov r0, #0x18 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5, #0x30] mov r0, #0x40 mov r1, #0x18 bl FUN_0201C24C mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers ldr r0, [r5, #0x30] bl MOD12_02241864 bl FUN_0201CC08 @@ -41300,7 +41300,7 @@ MOD12_02241210: ; 0x02241210 bl FUN_0200CA60 str r0, [r5, #8] ldr r0, _0224148C ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE mov r0, #1 add sp, #0xc pop {r4, r5, pc} @@ -41472,7 +41472,7 @@ MOD12_022415A8: ; 0x022415A8 add r5, #0x34 _022415D4: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r6, r6, #1 add r5, #0x10 cmp r6, #9 @@ -41485,19 +41485,19 @@ _022415D4: bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x30] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x30] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x28] ldr r1, [r4, #0x2c] bl FUN_0200C398 @@ -41577,7 +41577,7 @@ _022415D4: bl Main_SetVBlankIntrCB bl FUN_02015F1C mov r0, #0x18 - bl FUN_020168D0 + bl DestroyHeap bl FUN_02083404 mov r1, #5 mov r2, #2 @@ -41665,7 +41665,7 @@ MOD12_02241754: ; 0x02241754 ldr r0, [r0] bl FUN_0200372C ldr r0, [r4, #0x30] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _022417D4 ; =0x027E0000 ldr r1, _022417D8 ; =0x00003FF8 mov r0, #1 @@ -41694,14 +41694,14 @@ MOD12_022417DC: ; 0x022417DC bgt _022417FC mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority pop {r3, pc} _022417FC: cmp r0, #0x90 bge _02241808 mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority _02241808: pop {r3, pc} nop @@ -41717,7 +41717,7 @@ MOD12_02241814: ; 0x02241814 bne _02241826 mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority _02241826: pop {r3, pc} .align 2, 0 @@ -41797,7 +41797,7 @@ _02241874: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _022419C4 ; =MOD12_022465C0 add r3, sp, #0x54 mov r2, #0xa @@ -41812,56 +41812,56 @@ _022418D4: add r0, r4, #0 add r2, sp, #0x54 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0x70 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0x8c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 add r0, r4, #0 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, _022419C8 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -41885,20 +41885,20 @@ _022418D4: str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #4 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #4 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0xa8 pop {r3, r4, r5, pc} .align 2, 0 @@ -41928,7 +41928,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0x34 mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r2, #1 add r1, r4, #0 str r2, [sp] @@ -41943,7 +41943,7 @@ MOD12_022419D0: ; 0x022419D0 ldr r0, [r4, #0x30] add r1, #0x44 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #5 str r0, [sp] mov r0, #8 @@ -41959,7 +41959,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0x54 mov r2, #1 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #9 str r0, [sp] mov r0, #8 @@ -41975,7 +41975,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0x64 mov r2, #1 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r1, #0xd str r1, [sp] mov r0, #8 @@ -41990,7 +41990,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0x74 mov r2, #1 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r2, #1 add r1, r4, #0 str r2, [sp] @@ -42005,7 +42005,7 @@ MOD12_022419D0: ; 0x022419D0 ldr r0, [r4, #0x30] add r1, #0x84 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #5 str r0, [sp] mov r0, #8 @@ -42021,7 +42021,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0x94 mov r2, #1 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #9 str r0, [sp] mov r0, #8 @@ -42037,7 +42037,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, #0xa4 mov r2, #1 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r1, #0xd str r1, [sp] mov r0, #8 @@ -42052,7 +42052,7 @@ MOD12_022419D0: ; 0x022419D0 add r1, r4, #0 mov r2, #1 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {r3, r4, pc} .align 2, 0 @@ -43645,7 +43645,7 @@ MOD12_022426BC: ; 0x022426BC bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0x30] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -43702,7 +43702,7 @@ MOD12_022426BC: ; 0x022426BC bl FUN_020030E8 ldr r0, [r5, #0x30] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -43815,7 +43815,7 @@ MOD12_02242804: ; 0x02242804 bl GfGfxLoader_LoadScrnData ldr r0, [r6, #0x30] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -44728,7 +44728,7 @@ MOD12_02242FD0: ; 0x02242FD0 mov r1, #1 bl FUN_0200C644 ldr r0, _02242FF4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _02242FF4: .word 0x000005DD @@ -46285,7 +46285,7 @@ _02243B98: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x30] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -46385,7 +46385,7 @@ _02243C52: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -46515,7 +46515,7 @@ _02243D4C: ldr r0, [r0] mov r1, #2 ldr r0, [r0, #0x30] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 str r0, [sp, #8] @@ -46635,7 +46635,7 @@ _02243E2E: mov r1, #2 ldr r0, [r0] ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [sp] ldrb r0, [r0, #0x12] add r1, r0, #1 @@ -46799,7 +46799,7 @@ _02243F56: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _02243F7A: ldrb r1, [r4, #0x1a] add r2, r4, #0 @@ -46846,7 +46846,7 @@ _02243FBA: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x30] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -47304,7 +47304,7 @@ _02244348: ldr r0, _02244430 ; =0x0000049E bl FUN_0200521C ldr r0, _02244434 ; =0x000006E5 - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x10] add sp, #0xc add r0, r0, #1 @@ -47535,7 +47535,7 @@ _02244510: ; jump table .short _022445E8 - _02244510 - 2 ; case 5 _0224451C: ldr r0, _02244604 ; =0x000006FA - bl FUN_020054C8 + bl PlaySE ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -47563,7 +47563,7 @@ _0224454A: cmp r1, #0 ble _02244558 ldr r0, _02244608 ; =0x000006FB - bl FUN_020054C8 + bl PlaySE b _02244560 _02244558: add r2, r2, #1 @@ -47629,7 +47629,7 @@ _022445C2: cmp r1, #0 ble _022445D0 ldr r0, _0224460C ; =0x000006F9 - bl FUN_020054C8 + bl PlaySE b _022445D8 _022445D0: add r3, r3, #1 diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s index 5aee0b46..36288367 100644 --- a/arm9/modules/13/asm/module_13_arm2.s +++ b/arm9/modules/13/asm/module_13_arm2.s @@ -35163,10 +35163,10 @@ _0223BEA4: .word 0x05000400 MOD13_0223BEA8: ; 0x0223BEA8 stmdb sp!, {lr} sub sp, sp, #4 - bl disableBankForX_ - bl GX_DisableBankForOBJExtPltt_2 - bl GX_DisableBankForSubBGExtPltt - bl GX_DisableBankForSubOBJExtPltt_2 + bl GX_DisableBankForBG + bl GX_DisableBankForOBJ + bl GX_DisableBankForSubBG + bl GX_DisableBankForSubOBJ bl MOD13_0223BE1C ldr r0, _0223BFB8 ; =0x022431D8 ldr r0, [r0] @@ -35246,10 +35246,10 @@ _0223BFE0: .word 0x0400101C MOD13_0223BFE4: ; 0x0223BFE4 stmdb sp!, {lr} sub sp, sp, #4 - bl disableBankForX_ + bl GX_DisableBankForBG ldr r1, _0223C09C ; =0x022431D8 str r0, [r1] - bl GX_DisableBankForOBJExtPltt_2 + bl GX_DisableBankForOBJ ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #4] bl GX_DisableBankForBGExtPltt @@ -35258,7 +35258,7 @@ MOD13_0223BFE4: ; 0x0223BFE4 bl GX_DisableBankForOBJExtPltt ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0xc] - bl GX_DisableBankForTexPltt_2 + bl GX_DisableBankForTex ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0x10] bl GX_DisableBankForTexPltt @@ -35267,13 +35267,13 @@ MOD13_0223BFE4: ; 0x0223BFE4 bl GX_DisableBankForClearImage ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0x18] - bl GX_DisableBankForSubBGExtPltt + bl GX_DisableBankForSubBG ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0x1c] - bl GX_DisableBankForSubOBJExtPltt_2 + bl GX_DisableBankForSubOBJ ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0x20] - bl FUN_020C5E04 + bl GX_DisableBankForSubBGExtPltt ldr r1, _0223C09C ; =0x022431D8 str r0, [r1, #0x24] bl GX_DisableBankForSubOBJExtPltt diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index bdfed5b1..e1acb188 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -11,12 +11,12 @@ StoragePC_Overlay_Init: ; 0x021D74E0 mov r0, #3 mov r1, #9 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r2, #0xf mov r0, #3 mov r1, #0xa lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r1, #0x87 add r0, r5, #0 lsl r1, r1, #2 @@ -132,9 +132,9 @@ _021D75DE: add r0, r4, #0 bl MOD14_021DB398 mov r0, #9 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xa - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, pc} .align 2, 0 @@ -459,7 +459,7 @@ _021D7846: b _021D792E _021D785A: ldr r0, _021D7990 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D792E _021D7862: mov r0, #0x61 @@ -482,7 +482,7 @@ _021D7876: cmp r0, #1 bne _021D78BC ldr r0, _021D7994 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -503,7 +503,7 @@ _021D7876: b _021D7930 _021D78BC: ldr r0, _021D7990 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D792E _021D78C4: add r0, r4, #0 @@ -515,7 +515,7 @@ _021D78C4: cmp r0, #1 bne _021D790A ldr r0, _021D7994 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -536,11 +536,11 @@ _021D78C4: b _021D7930 _021D790A: ldr r0, _021D7990 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D792E _021D7912: ldr r0, _021D7994 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC180 mov r0, #0x45 @@ -774,7 +774,7 @@ _021D7ADC: b _021D7BC4 _021D7AF0: ldr r0, _021D7D14 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7BC4 _021D7AF8: mov r0, #0x61 @@ -797,7 +797,7 @@ _021D7B0C: cmp r0, #1 bne _021D7B52 ldr r0, _021D7D18 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -818,7 +818,7 @@ _021D7B0C: b _021D7BC6 _021D7B52: ldr r0, _021D7D14 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7BC4 _021D7B5A: add r0, r4, #0 @@ -830,7 +830,7 @@ _021D7B5A: cmp r0, #1 bne _021D7BA0 ldr r0, _021D7D18 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -851,11 +851,11 @@ _021D7B5A: b _021D7BC6 _021D7BA0: ldr r0, _021D7D14 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7BC4 _021D7BA8: ldr r0, _021D7D18 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC180 mov r0, #0x45 @@ -913,7 +913,7 @@ _021D7C08: cmp r0, #0 beq _021D7C42 ldr r0, _021D7D14 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE ldr r1, [sp] add r0, r4, #0 bl MOD14_021DBA44 @@ -1137,7 +1137,7 @@ _021D7DEA: b _021D7EE8 _021D7DFE: ldr r0, _021D7F04 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7EE8 _021D7E06: mov r0, #0x61 @@ -1160,7 +1160,7 @@ _021D7E1A: cmp r0, #1 bne _021D7E5E ldr r0, _021D7F08 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1180,7 +1180,7 @@ _021D7E1A: b _021D7EE8 _021D7E5E: ldr r0, _021D7F04 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7EE8 _021D7E66: add r0, r4, #0 @@ -1192,7 +1192,7 @@ _021D7E66: cmp r0, #1 bne _021D7EAA ldr r0, _021D7F08 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1212,11 +1212,11 @@ _021D7E66: b _021D7EE8 _021D7EAA: ldr r0, _021D7F04 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D7EE8 _021D7EB2: ldr r0, _021D7F08 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC180 mov r0, #0x45 @@ -1365,7 +1365,7 @@ _021D7FDC: b _021D80F2 _021D7FF0: ldr r0, _021D8110 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D80F2 _021D7FF8: mov r0, #0x61 @@ -1388,7 +1388,7 @@ _021D800C: cmp r0, #1 bne _021D8050 ldr r0, _021D8114 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1408,7 +1408,7 @@ _021D800C: b _021D80F2 _021D8050: ldr r0, _021D8110 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D80F2 _021D8058: add r0, r4, #0 @@ -1420,7 +1420,7 @@ _021D8058: cmp r0, #1 bne _021D809C ldr r0, _021D8114 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1440,11 +1440,11 @@ _021D8058: b _021D80F2 _021D809C: ldr r0, _021D8110 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D80F2 _021D80A4: ldr r0, _021D8114 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC180 mov r0, #0x45 @@ -1533,7 +1533,7 @@ _021D813E: b _021D83C4 _021D8166: ldr r0, _021D83CC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x12 bl MOD14_021DBA44 @@ -1635,7 +1635,7 @@ _021D822C: b _021D83C4 _021D8240: ldr r0, _021D83CC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D83C4 _021D8248: mov r0, #0x61 @@ -1658,7 +1658,7 @@ _021D825C: cmp r0, #1 bne _021D82A0 ldr r0, _021D83E0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1678,7 +1678,7 @@ _021D825C: b _021D83C4 _021D82A0: ldr r0, _021D83CC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D83C4 _021D82A8: add r0, r4, #0 @@ -1690,7 +1690,7 @@ _021D82A8: cmp r0, #1 bne _021D82EC ldr r0, _021D83E0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC170 ldr r1, [r4, #8] @@ -1710,11 +1710,11 @@ _021D82A8: b _021D83C4 _021D82EC: ldr r0, _021D83CC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _021D83C4 _021D82F4: ldr r0, _021D83E0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021DC180 mov r0, #0x45 @@ -2038,7 +2038,7 @@ _021D8590: cmp r0, #1 beq _021D85BA ldr r0, _021D86AC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x11 bl MOD14_021DBA44 @@ -2068,7 +2068,7 @@ _021D85CC: cmp r0, #0 beq _021D86A6 ldr r0, _021D86B0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xb bl MOD14_021DBA44 @@ -2112,7 +2112,7 @@ _021D862A: pop {r3, r4, r5, pc} _021D8638: ldr r0, _021D86B0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2199,7 +2199,7 @@ _021D86E2: cmp r0, #1 beq _021D870A ldr r0, _021D87F0 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x11 bl MOD14_021DBA44 @@ -2226,7 +2226,7 @@ _021D870A: pop {r3, r4, r5, pc} _021D8728: ldr r0, _021D87F8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xc bl MOD14_021DBA44 @@ -2375,7 +2375,7 @@ _021D8828: pop {r3, r4, r5, pc} _021D8864: ldr r0, _021D8A38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2427,7 +2427,7 @@ _021D88C0: pop {r3, r4, r5, pc} _021D88CC: ldr r0, _021D8A38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2572,7 +2572,7 @@ _021D89CA: mov r1, #6 bl MOD14_021DCB2C ldr r0, _021D8A38 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #5 str r0, [r5] pop {r3, r4, r5, pc} @@ -2676,7 +2676,7 @@ _021D8AD8: cmp r0, #0 beq _021D8B08 ldr r0, _021D8D58 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x22 bl MOD14_021DBA44 @@ -2703,7 +2703,7 @@ _021D8B08: pop {r3, r4, r5, pc} _021D8B24: ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2755,7 +2755,7 @@ _021D8B80: pop {r3, r4, r5, pc} _021D8B8C: ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2766,7 +2766,7 @@ _021D8B8C: pop {r3, r4, r5, pc} _021D8BA4: ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #3 str r0, [r5] pop {r3, r4, r5, pc} @@ -2810,7 +2810,7 @@ _021D8BD4: mov r1, #0x14 bl MOD14_021DCB2C ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #5 str r0, [r5] pop {r3, r4, r5, pc} @@ -2827,7 +2827,7 @@ _021D8C12: cmp r0, #0 beq _021D8C42 ldr r0, _021D8D58 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x18 bl MOD14_021DBA44 @@ -2856,7 +2856,7 @@ _021D8C42: mov r1, #0x13 bl MOD14_021DCB2C ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #5 str r0, [r5] pop {r3, r4, r5, pc} @@ -2872,7 +2872,7 @@ _021D8C7C: cmp r0, #0 beq _021D8CAC ldr r0, _021D8D58 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x18 bl MOD14_021DBA44 @@ -2899,7 +2899,7 @@ _021D8CAC: mov r1, #0x15 bl MOD14_021DCB2C ldr r0, _021D8D5C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #5 str r0, [r5] pop {r3, r4, r5, pc} @@ -3006,7 +3006,7 @@ _021D8D9A: cmp r0, #0 ldr r0, _021D8EB4 ; =0x000005DD beq _021D8DC8 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD14_021E6220 mov r1, #0x6e @@ -3016,7 +3016,7 @@ _021D8D9A: str r0, [r5] pop {r3, r4, r5, pc} _021D8DC8: - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -3610,7 +3610,7 @@ _021D9254: mov r1, #0x2c bl MOD14_021DCB2C ldr r0, _021D945C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #1 str r0, [r5] pop {r3, r4, r5, pc} @@ -3640,7 +3640,7 @@ _021D9284: cmp r2, r0 bne _021D9342 ldr r0, _021D9464 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021D92B6: add r0, r4, #0 @@ -3687,7 +3687,7 @@ _021D9306: mov r1, #0x2f bl MOD14_021DCB2C ldr r0, _021D9468 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE mov r0, #2 str r0, [r5] pop {r3, r4, r5, pc} @@ -3729,7 +3729,7 @@ _021D935A: cmp r2, r0 bne _021D9454 ldr r0, _021D9464 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021D9372: mov r0, #0x45 @@ -3798,20 +3798,20 @@ _021D93E2: mov r1, #0xa bl MOD14_021DCB2C ldr r0, _021D946C ; =0x000005EA - bl FUN_020054C8 + bl PlaySE mov r0, #4 str r0, [r5] pop {r3, r4, r5, pc} _021D9416: ldr r0, _021D9464 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021D941E: mov r0, #2 tst r0, r1 beq _021D9454 ldr r0, _021D9464 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021D942C: mov r0, #0x45 @@ -3911,7 +3911,7 @@ _021D94DC: cmp r0, #0 bne _021D950E ldr r0, _021D95A8 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r1, r4, #0 bl MOD14_021DBA5C @@ -3925,7 +3925,7 @@ _021D94DC: pop {r3, r4, r5, pc} _021D950E: ldr r0, _021D95AC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD14_021DBA44 @@ -3939,7 +3939,7 @@ _021D950E: pop {r3, r4, r5, pc} _021D952E: ldr r0, _021D95A8 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r1, r4, #0 bl MOD14_021DBA5C @@ -4020,7 +4020,7 @@ _021D95CA: mov r1, #0xa bl MOD14_021DCB2C ldr r0, _021D9664 ; =0x000005EA - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD14_021DC3CC cmp r0, #1 @@ -4138,7 +4138,7 @@ _021D96C6: cmp r0, #0 beq _021D96F0 ldr r0, _021D9764 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE ldr r1, [sp] add r0, r5, #0 bl MOD14_021DBA44 @@ -4155,7 +4155,7 @@ _021D96F0: add r1, r5, #0 bl MOD14_021DBD34 ldr r0, _021D9768 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -4260,7 +4260,7 @@ _021D979C: pop {r3, r4, r5, pc} _021D97D2: ldr r0, _021D992C ; =0x000005EB - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r1, r4, #0 bl MOD14_021DBA5C @@ -4450,7 +4450,7 @@ _021D995A: cmp r0, #1 bne _021D9998 ldr r0, _021D9B78 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #6 bl MOD14_021DBA44 @@ -4474,7 +4474,7 @@ _021D9998: cmp r0, #0 beq _021D99D0 ldr r0, _021D9B78 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE ldr r1, [sp] add r0, r4, #0 bl MOD14_021DBA44 @@ -4582,7 +4582,7 @@ _021D9A62: pop {r3, r4, r5, pc} _021D9A92: ldr r0, _021D9B78 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xd bl MOD14_021DBA44 @@ -4875,7 +4875,7 @@ _021D9CC4: pop {r3, r4, r5, pc} _021D9CF0: ldr r0, _021D9F78 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE ldr r1, [sp] add r0, r4, #0 bl MOD14_021DBA44 @@ -5546,7 +5546,7 @@ _021DA1FE: ldr r0, [r4, r0] bl MOD14_021DCA38 mov r0, #0xa - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x12 lsl r0, r0, #4 ldr r0, [r4, r0] @@ -5592,7 +5592,7 @@ _021DA256: mov r0, #3 mov r1, #0xa lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r2, #0x12 lsl r2, r2, #4 ldr r0, [r4, r2] @@ -5658,7 +5658,7 @@ _021DA2F2: ldr r0, [r5, r0] bl MOD14_021DCA38 mov r0, #0xa - bl FUN_020168D0 + bl DestroyHeap add r0, r5, #0 bl MOD14_021D83E4 mov r1, #0x4b @@ -5693,7 +5693,7 @@ _021DA334: mov r0, #3 mov r1, #0xa lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 bl MOD14_021DC3F4 cmp r0, #1 @@ -5803,7 +5803,7 @@ _021DA41E: ldr r0, [r4, r0] bl MOD14_021DCA38 mov r0, #0xa - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -5889,7 +5889,7 @@ _021DA4F4: mov r0, #3 mov r1, #0xa lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r0, #0x45 lsl r0, r0, #2 add r0, r4, r0 @@ -5969,7 +5969,7 @@ _021DA58E: tst r0, r1 beq _021DA5D6 ldr r0, _021DA5EC ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -6029,7 +6029,7 @@ _021DA614: cmp r0, #0 beq _021DA648 ldr r0, _021DA7B8 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x18 bl MOD14_021DBA44 @@ -6193,7 +6193,7 @@ _021DA76C: tst r0, r1 beq _021DA7B2 ldr r0, _021DA7C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -6251,7 +6251,7 @@ _021DA7EA: cmp r0, #0 beq _021DA81E ldr r0, _021DA9C4 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x18 bl MOD14_021DBA44 @@ -6441,7 +6441,7 @@ _021DA978: tst r0, r1 beq _021DA9BE ldr r0, _021DA9CC ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -6725,7 +6725,7 @@ _021DABB6: tst r1, r0 beq _021DABC6 ldr r0, _021DABE4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, r4, r5, pc} _021DABC6: @@ -6733,7 +6733,7 @@ _021DABC6: tst r0, r1 beq _021DABDC ldr r0, _021DABE4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0 mvn r0, r0 strb r0, [r4, #5] @@ -6842,7 +6842,7 @@ _021DAC98: ; jump table .short _021DAF4A - _021DAC98 - 2 ; case 5 _021DACA4: ldr r0, _021DAF60 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #1 bl MOD14_021DC350 @@ -6904,7 +6904,7 @@ _021DAD04: pop {r3, r4, r5, r6, r7, pc} _021DAD2C: ldr r0, _021DAF68 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} _021DAD34: ldr r0, _021DAF6C ; =gMain @@ -6913,7 +6913,7 @@ _021DAD34: tst r0, r1 beq _021DAD6C ldr r0, _021DAF70 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 bl MOD14_021DC350 @@ -7052,7 +7052,7 @@ _021DAE4A: mov r1, #0x29 bl MOD14_021DCB2C ldr r0, _021DAF74 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #2 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} @@ -7202,7 +7202,7 @@ _021DAF92: ; jump table .short _021DB19C - _021DAF92 - 2 ; case 3 _021DAF9A: ldr r0, _021DB1B4 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #2 bl MOD14_021DC350 @@ -7268,7 +7268,7 @@ _021DB01E: tst r0, r1 beq _021DB046 ldr r0, _021DB1C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 bl MOD14_021DC350 @@ -7285,7 +7285,7 @@ _021DB046: cmp r0, #0 beq _021DB072 ldr r0, _021DB1C0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -7371,7 +7371,7 @@ _021DB0DE: mov r1, #0x29 bl MOD14_021DCB2C ldr r0, _021DB1C4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #2 add sp, #8 str r0, [r6] @@ -10480,7 +10480,7 @@ MOD14_021DC76C: ; 0x021DC76C lsl r0, r0, #4 str r5, [r4, r0] mov r0, #0xa - bl FUN_02016B94 + bl BgConfig_Alloc mov r1, #0x57 lsl r1, r1, #2 str r0, [r4, r1] @@ -10829,22 +10829,22 @@ MOD14_021DCA38: ; 0x021DCA38 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -11076,7 +11076,7 @@ MOD14_021DCCA0: ; 0x021DCCA0 pop {r3, r4, pc} _021DCCB4: ldr r0, _021DCCFC ; =0x0000060D - bl FUN_020054C8 + bl PlaySE mov r0, #0xa str r0, [sp] ldr r0, _021DCD00 ; =0x04000050 @@ -11262,7 +11262,7 @@ _021DCDF0: add r2, r7, #0 bl MOD14_021DE2E8 ldr r0, _021DCE64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldrh r0, [r4, #6] add r0, r0, #1 strh r0, [r4, #6] @@ -11306,7 +11306,7 @@ MOD14_021DCE68: ; 0x021DCE68 pop {r3, r4, r5, pc} _021DCE7A: ldr r0, _021DCEB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _021DCEBC ; =0x00005DC0 add r0, r4, r0 bl MOD14_021DF484 @@ -12074,7 +12074,7 @@ MOD14_021DD460: ; 0x021DD460 lsl r0, r0, #4 ldr r5, [r4, r0] ldr r0, _021DD488 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD48C ; =0x000065F4 add r5, #0x74 add r0, r4, r0 @@ -12096,7 +12096,7 @@ MOD14_021DD490: ; 0x021DD490 lsl r0, r0, #4 ldr r5, [r4, r0] ldr r0, _021DD4B8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD4BC ; =0x000065F4 add r5, #0x74 add r0, r4, r0 @@ -12154,7 +12154,7 @@ MOD14_021DD4FC: ; 0x021DD4FC pop {r3, r4, r5, pc} _021DD50E: ldr r0, _021DD52C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD530 ; =0x0000662C add r0, r4, r0 bl MOD14_021E1FC0 @@ -12259,7 +12259,7 @@ _021DD5CA: ; jump table .short _021DD64C - _021DD5CA - 2 ; case 3 _021DD5D2: ldr r0, _021DD660 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD664 ; =0x00005DC0 add r0, r5, r0 bl MOD14_021DFBB8 @@ -12344,7 +12344,7 @@ MOD14_021DD66C: ; 0x021DD66C pop {r3, r4, r5, pc} _021DD67E: ldr r0, _021DD6B0 ; =0x00000633 - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD6B4 ; =0x00005DC0 add r0, r4, r0 bl MOD14_021DFF1C @@ -12407,7 +12407,7 @@ _021DD6EA: strh r0, [r4, #6] _021DD6FC: ldr r0, _021DD734 ; =0x00000634 - bl FUN_020054C8 + bl PlaySE ldr r0, _021DD738 ; =0x0000B22C add r0, r5, r0 bl MOD14_021E2BB0 @@ -12800,7 +12800,7 @@ MOD14_021DD9E4: ; 0x021DD9E4 pop {r3, r4, pc} _021DD9F8: ldr r0, _021DDA34 ; =0x0000060E - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 @@ -12846,28 +12846,28 @@ MOD14_021DDA38: ; 0x021DDA38 add r2, r0, #0 bl GX_SetGraphicsMode ldr r0, _021DDB28 ; =MOD14_021E627C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB2C ; =MOD14_021E6350 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB30 ; =MOD14_021E6334 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB34 ; =MOD14_021E62FC mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 bl MOD14_021DC3C4 cmp r0, #4 @@ -12878,28 +12878,28 @@ MOD14_021DDA38: ; 0x021DDA38 ldr r2, _021DDB38 ; =MOD14_021E6318 mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB3C ; =MOD14_021E62E0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB40 ; =MOD14_021E62C4 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB44 ; =MOD14_021E62A8 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate b _021DDB1A _021DDADA: mov r0, #0x57 @@ -12908,28 +12908,28 @@ _021DDADA: ldr r2, _021DDB38 ; =MOD14_021E6318 mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB48 ; =MOD14_021E6388 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB4C ; =MOD14_021E628C mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, _021DDB44 ; =MOD14_021E62A8 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate _021DDB1A: bl MOD14_021DDC78 pop {r3, r4, r5, pc} @@ -12978,12 +12978,12 @@ MOD14_021DDB50: ; 0x021DDB50 ldr r0, [r5, r0] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -13584,7 +13584,7 @@ MOD14_021DE014: ; 0x021DE014 ldr r0, _021DE060 ; =0x00005984 mov r1, #3 ldr r0, [r4, r0] - bl FUN_02017B48 + bl Bg_GetXpos ldr r1, _021DE064 ; =0x0000585C str r0, [r4, #0xc] ldr r1, [r4, r1] @@ -13597,7 +13597,7 @@ MOD14_021DE014: ; 0x021DE014 ldr r0, _021DE060 ; =0x00005984 str r3, [r4, #0xc] ldr r0, [r4, r0] - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0 str r3, [sp] mov r0, #0x40 @@ -13610,7 +13610,7 @@ MOD14_021DE014: ; 0x021DE014 mov r1, #3 ldr r0, [r4, r0] mov r2, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -13862,7 +13862,7 @@ _021DE250: ldr r0, [r6, r0] ldr r3, [r3, #0x10] mov r1, #3 - bl FUN_02017E14 + bl BG_LoadCharTilesData _021DE262: ldr r0, [sp, #0x10] bl FreeToHeap @@ -13899,7 +13899,7 @@ MOD14_021DE278: ; 0x021DE278 ldr r0, _021DE2E4 ; =0x00005984 mov r1, #3 ldr r0, [r5, r0] - bl FUN_0201886C + bl GetBgTilemapBuffer add r7, r0, #0 beq _021DE2C2 ldr r1, [sp, #0x20] @@ -13920,7 +13920,7 @@ _021DE2C2: mov r1, #3 add r2, r7, #0 lsl r3, r3, #0xc - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram _021DE2DC: add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -13937,7 +13937,7 @@ MOD14_021DE2E8: ; 0x021DE2E8 ldr r0, [r5, r0] mov r1, #3 add r6, r2, #0 - bl FUN_02017B48 + bl Bg_GetXpos lsl r0, r0, #0x17 lsr r1, r0, #0xb mov r0, #0xb8 @@ -14105,7 +14105,7 @@ MOD14_021DE3E4: ; 0x021DE3E4 ldr r3, [r5, #0xc] ldr r0, [r5, r0] mov r1, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5, #4] sub r0, r0, #1 str r0, [r5, #4] @@ -14116,7 +14116,7 @@ _021DE45C: ldr r0, [r5, r0] mov r1, #3 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r1, _021DE480 ; =0x00000618 add r0, r5, #0 add r5, #0xa8 @@ -19503,7 +19503,7 @@ MOD14_021E0E44: ; 0x021E0E44 _021E0E58: ldr r0, [r5, #4] add r0, r0, r4 - bl FUN_02019178 + bl RemoveWindow add r6, r6, #1 add r4, #0x10 cmp r6, #4 @@ -19646,18 +19646,18 @@ _021E0F5E: ldr r0, [r5, #8] add r1, r1, r4 add r2, r6, #0 - bl FUN_02019150 + bl AddWindow cmp r7, #3 ldr r0, [r5, #4] beq _021E0F78 add r0, r0, r4 - bl FUN_02019270 + bl PutWindowTilemap b _021E0F82 _021E0F78: add r0, r0, r4 mov r1, #0xc mov r2, #2 - bl FUN_0201928C + bl PutWindowTilemapRectAnchoredTopLeft _021E0F82: add r7, r7, #1 add r6, #8 @@ -19666,7 +19666,7 @@ _021E0F82: blt _021E0F5E ldr r0, [r5, #8] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _021E0F94: add r0, r5, #0 bl MOD14_021E0FA8 @@ -19931,7 +19931,7 @@ _021E1190: bl MOD14_021E12B8 ldr r0, [r5, #4] add r0, #0x30 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0 strh r0, [r4, #4] mov r0, #2 @@ -19968,7 +19968,7 @@ _021E11CE: bl ScrollWindow ldr r0, [r5, #4] add r0, #0x30 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldrh r0, [r4, #6] cmp r0, #0x10 blo _021E1220 @@ -20254,16 +20254,16 @@ MOD14_021E13F0: ; 0x021E13F0 bl MOD14_021E153C _021E1430: ldr r0, [r4, #4] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x20 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x30 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode _021E144E: pop {r4, pc} @@ -20309,16 +20309,16 @@ _021E14A0: bl MOD14_021E16A0 _021E14A8: ldr r0, [r4, #4] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x20 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x30 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD14_021E1114 _021E14CC: @@ -20358,16 +20358,16 @@ _021E150E: mov r1, #0 bl MOD14_021E16A0 ldr r0, [r4, #4] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x20 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #4] add r0, #0x30 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD14_021E1140 _021E153A: @@ -20555,7 +20555,7 @@ MOD14_021E16A0: ; 0x021E16A0 add r4, r1, #0 ldr r0, [r0, #8] mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 add r2, r0, #0 mov r0, #1 @@ -20595,7 +20595,7 @@ _021E16DC: ldr r0, [r0, #8] mov r1, #2 mov r3, #0xc - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -20711,7 +20711,7 @@ MOD14_021E17C4: ; 0x021E17C4 _021E17D2: ldr r0, [r5, #0x18] add r0, r0, r4 - bl FUN_02019178 + bl RemoveWindow add r6, r6, #1 add r4, #0x10 cmp r6, #2 @@ -20763,7 +20763,7 @@ _021E1832: ldr r0, [r6] add r1, r1, r5 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r7, r7, #1 add r4, #8 add r5, #0x10 @@ -20815,7 +20815,7 @@ MOD14_021E189C: ; 0x021E189C add r5, r0, #0 ldr r0, [r5, #0x18] add r4, r1, #0 - bl FUN_02019270 + bl PutWindowTilemap ldr r3, [r5, #0x18] ldrb r0, [r3, #7] str r0, [sp] @@ -20847,10 +20847,10 @@ MOD14_021E189C: ; 0x021E189C mov r1, #1 bl AddTextPrinterParameterized ldr r0, [r5, #0x18] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r5] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #1 strh r0, [r5, #0x1c] add sp, #0xc @@ -20866,7 +20866,7 @@ MOD14_021E1908: ; 0x021E1908 add r6, r2, #0 ldr r4, [sp, #0x18] ldr r5, [sp, #0x1c] - bl FUN_0201886C + bl GetBgTilemapBuffer sub r1, r7, #1 sub r2, r6, #2 lsl r1, r1, #5 @@ -21039,10 +21039,10 @@ _021E1A5C: ldrb r1, [r1] bl MOD14_021E1AD8 ldr r0, [sp, #0x14] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r5] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #1 strh r0, [r5, #0x1e] add sp, #0x18 @@ -21100,7 +21100,7 @@ MOD14_021E1AD8: ; 0x021E1AD8 add r5, r1, #0 ldr r0, [r0] mov r1, #1 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r2, #8 sub r2, r2, r5 mov ip, r2 @@ -21175,7 +21175,7 @@ _021E1B5A: _021E1B6E: ldr r0, [r4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, pc} thumb_func_start MOD14_021E1B78 @@ -21194,7 +21194,7 @@ MOD14_021E1B78: ; 0x021E1B78 _021E1B90: ldr r0, [r4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, pc} .align 2, 0 @@ -21230,7 +21230,7 @@ MOD14_021E1B9C: ; 0x021E1B9C add r2, r5, r2 bl FUN_02002218 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #8 pop {r4, r5, r6, pc} @@ -21254,7 +21254,7 @@ _021E1BF0: cmp r5, #6 blt _021E1BF0 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -21267,7 +21267,7 @@ MOD14_021E1C10: ; 0x021E1C10 add r6, r2, #0 ldr r5, [sp, #0x18] ldr r4, [sp, #0x1c] - bl FUN_0201886C + bl GetBgTilemapBuffer sub r1, r7, #1 sub r2, r6, #1 lsl r1, r1, #5 @@ -21339,7 +21339,7 @@ MOD14_021E1CA0: ; 0x021E1CA0 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldrb r1, [r4, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer ldrb r1, [r4, #5] mov r5, #0 sub r2, r1, #1 @@ -21383,7 +21383,7 @@ MOD14_021E1CEC: ; 0x021E1CEC push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldrb r1, [r4, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer ldrb r1, [r4, #5] mov r5, #0 sub r2, r1, #2 @@ -21643,7 +21643,7 @@ _021E1F04: ldr r0, [r7, #4] add r1, r1, r5 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -21703,7 +21703,7 @@ _021E1F6E: _021E1F78: ldr r0, [r5, #0x10] add r0, r0, r4 - bl FUN_02019178 + bl RemoveWindow add r6, r6, #1 add r4, #0x10 cmp r6, #3 @@ -21795,7 +21795,7 @@ MOD14_021E1FF8: ; 0x021E1FF8 mov r1, #9 mov r2, #0xa mov r3, #0xe - bl FUN_02018F4C + bl FillBitmapRect8Bit mov r4, #0 mov r0, #0xc str r4, [sp, #0x20] @@ -21872,7 +21872,7 @@ _021E20AA: lsl r1, r6, #0x10 ldr r0, [sp, #0x2c] lsr r1, r1, #0x10 - bl FUN_02018F4C + bl FillBitmapRect8Bit _021E20C8: ldr r1, [sp, #0x1c] add r0, r5, #0 @@ -22275,7 +22275,7 @@ MOD14_021E2394: ; 0x021E2394 sub r3, r3, r5 bl AddTextPrinterParameterized2 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, r5, r6, pc} nop @@ -22290,7 +22290,7 @@ MOD14_021E23F8: ; 0x021E23F8 add r0, r4, #0 bl FillWindowPixelBuffer add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r4, pc} thumb_func_start MOD14_021E240C @@ -22333,7 +22333,7 @@ _021E2450: cmp r6, #7 blt _021E242C ldr r0, [sp, #0xc] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -22347,7 +22347,7 @@ MOD14_021E2464: ; 0x021E2464 add r0, r4, #0 bl FillWindowPixelBuffer add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r4, pc} .align 2, 0 @@ -22454,7 +22454,7 @@ _021E250C: mov r1, #1 add r2, #0xc mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldrb r6, [r4, #5] mov r0, #0x20 mov r3, #0xa @@ -22473,7 +22473,7 @@ _021E250C: str r3, [sp, #0x18] ldr r0, [r5, #4] mov r1, #1 - bl FUN_02018170 + bl CopyToBgTilemapRect b _021E2582 _021E2562: mov r0, #5 @@ -22487,14 +22487,14 @@ _021E2562: mov r1, #1 add r2, #0xc mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldrb r0, [r4, #4] add r0, r0, #1 strb r0, [r4, #4] _021E2582: ldr r0, [r5, #4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #7 add sp, #0x1c strb r0, [r4, #5] @@ -22538,17 +22538,17 @@ _021E25C2: cmp r0, #0 bne _021E260E ldr r0, [r5, #0x10] - bl FUN_02019270 + bl PutWindowTilemap ldr r0, [r5, #0x10] add r0, #0x10 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 bl MOD14_021E2394 add r0, r5, #0 bl MOD14_021E240C ldr r0, [r5, #4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldrb r0, [r4, #4] add sp, #0x1c add r0, r0, #1 @@ -22601,7 +22601,7 @@ _021E264A: ldr r0, [r4, #4] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r0, [r5, #5] add r0, r0, #1 strb r0, [r5, #5] @@ -22625,7 +22625,7 @@ _021E264A: mov r1, #1 add r2, #0xc mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldrb r1, [r5, #5] mov r2, #5 mov r0, #0x20 @@ -22648,7 +22648,7 @@ _021E264A: str r3, [sp, #0x18] ldr r0, [r4, #4] mov r1, #1 - bl FUN_02018170 + bl CopyToBgTilemapRect b _021E26D0 _021E26CA: ldrb r0, [r5, #4] @@ -22657,7 +22657,7 @@ _021E26CA: _021E26D0: ldr r0, [r4, #4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x1c pop {r4, r5, pc} _021E26DC: @@ -22682,7 +22682,7 @@ MOD14_021E26E4: ; 0x021E26E4 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x18 str r0, [sp] mov r0, #0x20 @@ -22694,7 +22694,7 @@ MOD14_021E26E4: ; 0x021E26E4 mov r1, #1 add r2, #0xc mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [r5, #0x10] mov r1, #4 add r0, #0x20 @@ -22803,7 +22803,7 @@ _021E27DC: ldr r0, [r4, #4] mov r1, #1 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0xe ldr r2, [r4, #8] lsl r1, r1, #0x10 @@ -22817,7 +22817,7 @@ _021E280A: mov r1, #1 mov r2, #3 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0xe ldr r2, [r4, #0xc] lsl r1, r1, #0x10 @@ -22882,7 +22882,7 @@ MOD14_021E2884: ; 0x021E2884 mov r1, #1 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 bl MOD14_021E2A28 mov r0, #1 @@ -22918,7 +22918,7 @@ MOD14_021E28B4: ; 0x021E28B4 ldr r0, [r4, #4] mov r1, #1 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0xe ldr r2, [r4, #8] lsl r1, r1, #0x10 @@ -22933,7 +22933,7 @@ _021E28EC: mov r1, #1 mov r2, #3 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0xe ldr r2, [r4, #0xc] lsl r1, r1, #0x10 @@ -22950,10 +22950,10 @@ _021E28EC: ldr r0, [r4, #4] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _021E293C ; =MOD14_021E28AC ldr r2, [r4] add r0, r4, #0 @@ -23194,7 +23194,7 @@ MOD14_021E2AE8: ; 0x021E2AE8 bl MOD14_021E32F8 ldr r0, [r4, #4] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, pc} thumb_func_start MOD14_021E2B10 @@ -23266,7 +23266,7 @@ _021E2B72: bl MOD14_021E31A4 ldr r0, [r5, #4] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 add r1, r4, #0 bl MOD14_021E3290 @@ -23368,7 +23368,7 @@ _021E2C0A: mov r1, #2 mov r2, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect _021E2C46: add r1, r5, #0 add r1, #0x2b @@ -23377,7 +23377,7 @@ _021E2C46: bl MOD14_021E31A4 ldr r0, [r5, #4] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 add r1, r4, #0 bl MOD14_021E3290 @@ -24121,7 +24121,7 @@ _021E31CC: mov r1, #2 add r2, r4, r2 lsr r3, r3, #0x18 - bl FUN_02018148 + bl LoadRectToBgTilemapRect _021E31F0: add sp, #0xc pop {r3, r4, pc} @@ -24509,7 +24509,7 @@ MOD14_021E34C0: ; 0x021E34C0 add r6, r0, #0 beq _021E3558 add r0, #0x88 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0 add r0, #0x98 ldr r0, [r0] @@ -24644,7 +24644,7 @@ MOD14_021E355C: ; 0x021E355C ldr r0, [r4, #8] mov r1, #4 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -24655,10 +24655,10 @@ MOD14_021E355C: ; 0x021E355C ldr r0, [r4, #8] mov r1, #4 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #8] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r3, [r4, #0x10] ldr r0, [r4, #8] lsl r5, r3, #2 @@ -24666,7 +24666,7 @@ MOD14_021E355C: ; 0x021E355C mov r1, #5 ldr r3, [r3, r5] mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0 add r1, r4, #0 str r3, [sp] @@ -24680,7 +24680,7 @@ MOD14_021E355C: ; 0x021E355C ldr r0, [r4, #8] add r1, #0x88 mov r2, #4 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0x88 mov r1, #0 @@ -24961,7 +24961,7 @@ _021E3852: str r6, [r5, #0x10] ldr r0, [r5, #8] mov r1, #5 - bl FUN_02017B48 + bl Bg_GetXpos lsl r0, r0, #0xc ldr r1, _021E3898 ; =MOD14_021E6674 lsl r2, r6, #2 @@ -25042,7 +25042,7 @@ _021E38DE: ldr r0, [r5, #8] mov r1, #5 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldrh r0, [r4, #0xc] sub r0, r0, #1 strh r0, [r4, #0xc] @@ -25052,7 +25052,7 @@ _021E3900: ldr r3, [r4, #0x18] mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x10 str r0, [sp] ldr r0, _021E3978 ; =0x04001050 @@ -25072,7 +25072,7 @@ _021E3924: mov r1, #6 ldr r3, [r3, r5] mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 strh r0, [r4, #0xe] ldr r0, [r4, #4] @@ -25176,7 +25176,7 @@ _021E39CE: mov r1, #6 ldr r3, [r3, r5] mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] @@ -25193,7 +25193,7 @@ _021E3A0C: ldr r0, [r5, #8] mov r1, #5 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldrh r0, [r4, #0xc] sub r0, r0, #1 strh r0, [r4, #0xc] @@ -25203,7 +25203,7 @@ _021E3A2E: ldr r3, [r4, #0x18] mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x10 str r0, [sp] ldr r0, _021E3AA4 ; =0x04001050 @@ -25223,7 +25223,7 @@ _021E3A52: mov r1, #6 ldr r3, [r3, r5] mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 strh r0, [r4, #0xe] ldr r0, [r4, #4] @@ -25309,7 +25309,7 @@ _021E3ADA: ldr r0, [r0, #8] mov r1, #6 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] @@ -25326,7 +25326,7 @@ _021E3B12: mov r1, #5 mov r2, #0 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldrh r0, [r4, #0xc] sub r0, r0, #1 strh r0, [r4, #0xc] @@ -25336,7 +25336,7 @@ _021E3B34: ldr r3, [r4, #0x18] mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] @@ -27001,12 +27001,12 @@ _021E4762: thumb_func_start MOD14_021E4764 MOD14_021E4764: ; 0x021E4764 - ldr r3, _021E476C ; =FUN_0201797C + ldr r3, _021E476C ; =ToggleBgLayer mov r0, #4 mov r1, #0 bx r3 .align 2, 0 -_021E476C: .word FUN_0201797C +_021E476C: .word ToggleBgLayer thumb_func_start MOD14_021E4770 MOD14_021E4770: ; 0x021E4770 @@ -27020,7 +27020,7 @@ MOD14_021E4770: ; 0x021E4770 bl G2x_SetBlendAlpha_ mov r0, #4 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer pop {r3, pc} .align 2, 0 _021E478C: .word 0x04001050 @@ -27090,7 +27090,7 @@ _021E4800: blo _021E47AE add r0, r6, #0 add r0, #0x88 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r6, #0 bl MOD14_021E4770 add sp, #0x14 @@ -28336,7 +28336,7 @@ MOD14_021E5128: ; 0x021E5128 mov r1, #0x20 mov r2, #0 mov r3, #0xa - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -28347,7 +28347,7 @@ MOD14_021E5128: ; 0x021E5128 ldr r0, [r4, #0xc] mov r1, #4 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #0 bl MOD14_021E539C add r0, r4, #0 @@ -28359,7 +28359,7 @@ MOD14_021E5128: ; 0x021E5128 str r0, [r4, r1] ldr r0, [r4, #0xc] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD14_021E5A08 _021E5210: @@ -28469,7 +28469,7 @@ MOD14_021E52C0: ; 0x021E52C0 bl MOD14_021E5504 ldr r0, [r4, #0xc] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _021E52DE: pop {r4, pc} @@ -28502,7 +28502,7 @@ _021E530A: bl MOD14_021E549C ldr r0, [r4, #0xc] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0xdf lsl r0, r0, #2 ldr r1, [r4, r0] @@ -28550,7 +28550,7 @@ _021E534A: ldr r0, [r5, #0xc] mov r1, #2 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #6 str r0, [sp] mov r0, #0x20 @@ -28565,10 +28565,10 @@ _021E534A: str r0, [sp, #0x18] ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x1c pop {r4, r5, pc} @@ -28587,35 +28587,35 @@ MOD14_021E539C: ; 0x021E539C _021E53B2: mov r0, #5 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer pop {r3, pc} _021E53CC: mov r0, #6 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer pop {r3, pc} _021E53E6: mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer pop {r3, pc} thumb_func_start MOD14_021E5400 @@ -28640,9 +28640,9 @@ _021E541E: ldr r0, [r7, #0xc] add r1, r4, #0 add r2, r6, #0 - bl FUN_02019150 + bl AddWindow add r0, r4, #0 - bl FUN_02019270 + bl PutWindowTilemap add r5, r5, #1 add r6, #8 add r4, #0x10 @@ -28663,7 +28663,7 @@ _021E541E: add r4, #0x78 _021E5458: add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r5, r5, #1 add r4, #0x10 cmp r5, #3 @@ -28688,7 +28688,7 @@ _021E547E: cmp r0, #0 beq _021E548E add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _021E548E: add r6, r6, #1 add r5, #0x10 @@ -28792,9 +28792,9 @@ _021E554C: add r1, r5, r4 ldr r0, [r0, #0xc] add r2, r7, #0 - bl FUN_02019150 + bl AddWindow add r0, r5, r4 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, r4 mov r1, #0 bl FillWindowPixelBuffer @@ -28823,9 +28823,9 @@ _021E5588: cmp r0, #0 beq _021E55A4 add r0, r5, #0 - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x84 str r7, [r0] @@ -28978,9 +28978,9 @@ _021E56B4: add r1, r5, r4 ldr r0, [r0, #0xc] add r2, r7, #0 - bl FUN_02019150 + bl AddWindow add r0, r5, r4 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, r4 mov r1, #0 bl FillWindowPixelBuffer @@ -29009,9 +29009,9 @@ _021E56F0: cmp r0, #0 beq _021E570C add r0, r5, #0 - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x84 str r7, [r0] @@ -29102,7 +29102,7 @@ _021E5786: bl AddTextPrinterParameterized2 _021E57B8: add r0, r7, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -29118,7 +29118,7 @@ MOD14_021E57CC: ; 0x021E57CC mov r1, #0 bl FillWindowPixelBuffer add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r4, pc} .align 2, 0 @@ -29259,7 +29259,7 @@ _021E58C8: blt _021E58C8 _021E58FA: add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -29386,7 +29386,7 @@ _021E59C6: blt _021E59C6 _021E59F8: add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop @@ -29782,7 +29782,7 @@ MOD14_021E5CFC: ; 0x021E5CFC bl AddTextPrinterParameterized2 _021E5D56: add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 @@ -30355,7 +30355,7 @@ _021E61D8: tst r0, r1 beq _021E61EA ldr r0, _021E620C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0 mvn r0, r0 pop {r3, r4, r5, pc} @@ -30364,7 +30364,7 @@ _021E61EA: tst r1, r0 beq _021E6202 ldr r0, _021E620C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] @@ -30719,4 +30719,3 @@ MOD14_021E6B94: ; 0x021E6B94 .global MOD14_021E6B98 MOD14_021E6B98: ; 0x021E6B98 .space 0x4 - diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 97282c02..173d4fd6 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -23,12 +23,12 @@ _021D74F2: mov r0, #3 mov r1, #0x22 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r2, #0xa mov r0, #3 mov r1, #0x23 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 bl MOD15_021D7628 ldr r0, [r0, #0x14] @@ -170,9 +170,9 @@ MOD15_021D7608: ; 0x021D7608 add r1, r4, #0 bl MOD15_021D7774 mov r0, #0x22 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x23 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, pc} .align 2, 0 @@ -419,7 +419,7 @@ _021D77F6: tst r1, r0 beq _021D7818 ldr r0, _021D7880 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x4c @@ -435,7 +435,7 @@ _021D7818: tst r1, r0 beq _021D782E ldr r0, _021D7880 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r1, _021D7884 ; =MOD15_021D851C add r0, r5, #0 bl MOD15_021D83AC @@ -445,7 +445,7 @@ _021D782E: tst r0, r1 beq _021D7876 ldr r0, _021D7880 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x50 @@ -528,7 +528,7 @@ _021D78D6: tst r1, r0 beq _021D78F8 ldr r0, _021D79B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x4c @@ -549,7 +549,7 @@ _021D78F8: cmp r0, #0 beq _021D79A6 ldr r0, _021D79B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x4e @@ -568,7 +568,7 @@ _021D7920: cmp r0, #0 bne _021D79A6 ldr r0, _021D79B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #1 add r0, #0x4e @@ -582,7 +582,7 @@ _021D7948: tst r1, r0 beq _021D795E ldr r0, _021D79B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r1, _021D79B4 ; =MOD15_021D851C add r0, r5, #0 bl MOD15_021D83AC @@ -592,7 +592,7 @@ _021D795E: tst r0, r1 beq _021D79A6 ldr r0, _021D79B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x50 @@ -703,7 +703,7 @@ _021D7A3C: b _021D7BAE _021D7A3E: ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x4e ldrh r0, [r0] @@ -720,7 +720,7 @@ _021D7A5C: tst r0, r1 beq _021D7AAC ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x64 ldrb r2, [r0] @@ -770,7 +770,7 @@ _021D7AAC: bne _021D7AE2 _021D7AC6: ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x4c @@ -787,7 +787,7 @@ _021D7AE2: tst r3, r0 beq _021D7B12 ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x4e @@ -808,7 +808,7 @@ _021D7B12: tst r0, r3 beq _021D7B40 ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x4e @@ -829,7 +829,7 @@ _021D7B40: tst r0, r1 beq _021D7B56 ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r1, _021D7BBC ; =MOD15_021D851C add r0, r4, #0 bl MOD15_021D83AC @@ -838,7 +838,7 @@ _021D7B56: cmp r2, #0 beq _021D7BAE ldr r0, _021D7BB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x50 @@ -944,7 +944,7 @@ _021D7C28: tst r1, r0 beq _021D7C4E ldr r0, _021D7CF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0x4c ldrh r1, [r0] @@ -962,7 +962,7 @@ _021D7C4E: tst r1, r0 beq _021D7C6C ldr r0, _021D7CF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x4c @@ -976,7 +976,7 @@ _021D7C6C: tst r1, r0 beq _021D7C86 ldr r0, _021D7CF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #5 bl MOD15_021D8900 @@ -988,7 +988,7 @@ _021D7C86: tst r1, r0 beq _021D7CA6 ldr r0, _021D7CF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r4, #0x4c ldrh r0, [r4] cmp r0, #0 @@ -1005,7 +1005,7 @@ _021D7CA6: tst r0, r1 beq _021D7CE8 ldr r0, _021D7CF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #2 str r0, [r5] b _021D7CE8 @@ -1089,7 +1089,7 @@ _021D7D44: beq _021D7D78 _021D7D4C: ldr r0, _021D7E34 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0x65 ldrb r1, [r0] @@ -1113,7 +1113,7 @@ _021D7D78: tst r1, r0 beq _021D7D96 ldr r0, _021D7E38 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x14] mov r1, #7 bl MOD15_021D8900 @@ -1132,7 +1132,7 @@ _021D7D96: cmp r0, #0xfe bne _021D7DBE ldr r0, _021D7E38 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x14] mov r1, #7 bl MOD15_021D8900 @@ -1147,7 +1147,7 @@ _021D7DBE: cmp r0, #0 beq _021D7DEA ldr r0, _021D7E38 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0x54 add r1, r5, #0 @@ -1162,7 +1162,7 @@ _021D7DBE: b _021D7E30 _021D7DEA: ldr r0, _021D7E44 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE b _021D7E30 _021D7DF2: add r0, r5, #0 @@ -1170,7 +1170,7 @@ _021D7DF2: cmp r0, #0 beq _021D7E30 ldr r0, _021D7E38 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x14] mov r1, #0xe bl MOD15_021D8900 @@ -1533,7 +1533,7 @@ _021D8084: beq _021D80BC _021D808C: ldr r0, _021D81B8 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 add r0, #0x50 @@ -1583,7 +1583,7 @@ _021D80E2: b _021D812E _021D80F0: ldr r0, _021D81C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0xf bl MOD15_021D8900 @@ -1591,7 +1591,7 @@ _021D80F0: pop {r3, r4, r5, pc} _021D8102: ldr r0, _021D81C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8900 @@ -1601,7 +1601,7 @@ _021D8102: pop {r3, r4, r5, pc} _021D8118: ldr r0, _021D81C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8900 @@ -1615,7 +1615,7 @@ _021D812E: tst r0, r1 beq _021D814E ldr r0, _021D81C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #9 bl MOD15_021D8900 @@ -1629,7 +1629,7 @@ _021D814E: tst r0, r1 beq _021D81B4 ldr r0, _021D81C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD15_021D8310 ldr r0, _021D81C4 ; =MOD15_021D779C @@ -2080,14 +2080,14 @@ _021D8488: ; jump table .short _021D84A2 - _021D8488 - 2 ; case 4 _021D8492: ldr r0, _021D8514 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8900 pop {r3, r4, r5, pc} _021D84A2: ldr r0, _021D8514 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x16 bl MOD15_021D8900 @@ -2096,7 +2096,7 @@ _021D84A2: pop {r3, r4, r5, pc} _021D84B6: ldr r0, _021D8514 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #4] cmp r0, #2 bne _021D84CA @@ -2193,14 +2193,14 @@ _021D8574: ; jump table .short _021D858E - _021D8574 - 2 ; case 4 _021D857E: ldr r0, _021D85C8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8900 pop {r3, r4, r5, pc} _021D858E: ldr r0, _021D85C8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x14] mov r1, #0x16 bl MOD15_021D8900 @@ -2209,7 +2209,7 @@ _021D858E: pop {r3, r4, r5, pc} _021D85A2: ldr r0, _021D85C8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r1, _021D85CC ; =MOD15_021D8378 add r0, r4, #0 bl MOD15_021D7794 @@ -2368,7 +2368,7 @@ MOD15_021D8698: ; 0x021D8698 pop {r3, r4, r5, pc} _021D86AA: ldr r0, _021D86E0 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0x65 ldrb r1, [r0] @@ -2611,7 +2611,7 @@ MOD15_021D87F8: ; 0x021D87F8 bl FUN_02008C9C str r0, [r4, #0x24] mov r0, #0x23 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x20] ldr r0, _021D8880 ; =MOD15_021D88D8 add r1, r4, #0 @@ -3076,19 +3076,19 @@ _021D8BF4: blt _021D8BD8 ldr r0, [r7, #0x20] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7, #0x20] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7, #0x20] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7, #0x20] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7, #0x20] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r6, #0 bl MOD15_021D8998 _021D8C2A: @@ -3112,32 +3112,32 @@ MOD15_021D8C30: ; 0x021D8C30 ldr r0, _021D8C98 ; =0x021DB964 bl GX_SetBanks ldr r0, _021D8C9C ; =0x021DB8C8 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0 ldr r0, [r4, #0x20] ldr r2, _021D8CA0 ; =0x021DB910 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x20] ldr r2, _021D8CA4 ; =0x021DB8D8 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x20] ldr r2, _021D8CA8 ; =0x021DB948 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x20] ldr r2, _021D8CAC ; =0x021DB8F4 mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x20] ldr r2, _021D8CB0 ; =0x021DB92C mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate pop {r4, pc} nop _021D8C94: .word 0x04000304 @@ -4388,13 +4388,13 @@ _021D966A: _021D9674: add r0, r4, #0 add r0, #0xc - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x1c - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x2c - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -4446,7 +4446,7 @@ MOD15_021D9694: ; 0x021D9694 add r0, r6, #0 add r1, #0xc mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x15 str r0, [sp] mov r0, #0x1b @@ -4464,7 +4464,7 @@ MOD15_021D9694: ; 0x021D9694 add r0, r6, #0 add r1, #0x1c mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xf str r0, [sp] mov r0, #8 @@ -4483,7 +4483,7 @@ MOD15_021D9694: ; 0x021D9694 add r1, #0x2c mov r2, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0xc2 str r0, [sp] @@ -4532,10 +4532,10 @@ MOD15_021D9694: ; 0x021D9694 bl FUN_0200D06C add r0, r5, #0 add r0, #0xc - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r0, #0x1c - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 bl MOD15_021D9868 add r0, r5, #0 @@ -4547,7 +4547,7 @@ MOD15_021D9694: ; 0x021D9694 bl MOD15_021D98C0 add r0, r6, #0 mov r1, #0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x14 pop {r3, r4, r5, r6, pc} @@ -4815,7 +4815,7 @@ _021D99FA: _021D9A02: add r4, #0xc add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r4, pc} thumb_func_start MOD15_021D9A0C @@ -5306,7 +5306,7 @@ _021D9D8C: _021D9DB0: add r4, #0x1c add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 @@ -5552,7 +5552,7 @@ MOD15_021D9F88: ; 0x021D9F88 bl FUN_0200CCF8 add r4, #0x2c add r0, r4, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram pop {r4, pc} .align 2, 0 @@ -5630,7 +5630,7 @@ MOD15_021D9FD4: ; 0x021D9FD4 bl MOD15_021DA0B8 add r0, r4, #0 mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -5645,9 +5645,9 @@ MOD15_021DA044: ; 0x021DA044 add r4, r2, #0 add r1, sp, #0x10 add r2, r5, #0 - bl FUN_02019150 + bl AddWindow add r0, sp, #0x10 - bl FUN_02019270 + bl PutWindowTilemap add r0, sp, #0x10 mov r1, #0xe bl FillWindowPixelBuffer @@ -5676,11 +5676,11 @@ MOD15_021DA044: ; 0x021DA044 str r1, [sp, #0xc] bl AddTextPrinterParameterized2 add r0, sp, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl String_dtor add r0, sp, #0x10 - bl FUN_02019178 + bl RemoveWindow add sp, #0x20 pop {r3, r4, r5, pc} nop @@ -5794,7 +5794,7 @@ MOD15_021DA164: ; 0x021DA164 mov r1, #3 add r2, r1, #0 mov r3, #0x40 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, pc} thumb_func_start MOD15_021DA178 @@ -5805,7 +5805,7 @@ MOD15_021DA178: ; 0x021DA178 mov r1, #3 add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, pc} thumb_func_start MOD15_021DA18C @@ -5892,12 +5892,12 @@ MOD15_021DA1D0: ; 0x021DA1D0 add r0, r4, #0 mov r1, #1 sub r3, r2, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #2 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 bl MOD15_021DA54C mov r1, #2 @@ -5936,7 +5936,7 @@ MOD15_021DA1D0: ; 0x021DA1D0 str r0, [r3] add r0, r4, #0 mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -6018,7 +6018,7 @@ _021DA31A: add r1, sp, #0x28 mov r2, #1 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, sp, #0x28 mov r1, #0xf bl FillWindowPixelBuffer @@ -6042,13 +6042,13 @@ _021DA31A: add r2, r5, #0 bl AddTextPrinterParameterized2 add r0, sp, #0x28 - bl FUN_02019270 + bl PutWindowTilemap add r0, sp, #0x28 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r5, #0 bl String_dtor add r0, sp, #0x28 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r6, #0x12 add r7, #0xa @@ -6095,7 +6095,7 @@ _021DA3CC: add r0, r4, #0 mov r2, #1 mov r3, #0x22 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #4 mov r1, #0x23 bl String_ctor @@ -6143,13 +6143,13 @@ _021DA430: blo _021DA40C _021DA452: add r0, sp, #0x20 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, sp, #0x20 - bl FUN_02019270 + bl PutWindowTilemap add r0, r4, #0 bl String_dtor add r0, sp, #0x20 - bl FUN_02019178 + bl RemoveWindow ldr r0, [sp, #0x14] add r0, #0xc8 str r0, [sp, #0x14] @@ -6212,7 +6212,7 @@ _021DA4C2: ldr r0, [sp, #0x14] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r6, #0 mov r1, #0xf bl FillWindowPixelBuffer @@ -6230,11 +6230,11 @@ _021DA4C2: mov r1, #0 bl AddTextPrinterParameterized2 add r0, r6, #0 - bl FUN_02019270 + bl PutWindowTilemap add r0, r6, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow add r7, r7, #1 add r5, #0x10 add r4, r4, #4 @@ -6495,7 +6495,7 @@ MOD15_021DA710: ; 0x021DA710 mov r1, #1 mov r2, #3 mov r3, #2 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, pc} thumb_func_start MOD15_021DA720 @@ -6545,7 +6545,7 @@ MOD15_021DA760: ; 0x021DA760 beq _021DA778 mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 pop {r3, pc} _021DA778: @@ -6566,7 +6566,7 @@ MOD15_021DA77C: ; 0x021DA77C bl G2x_SetBlendAlpha_ mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x7c str r0, [sp] mov r0, #0xc @@ -6607,7 +6607,7 @@ _021DA7DA: ldr r0, [r4, #0xc] mov r1, #1 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, pc} .align 2, 0 @@ -6684,7 +6684,7 @@ MOD15_021DA828: ; 0x021DA828 add r1, #0x10 mov r2, #2 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized mov r3, #0 str r3, [sp] mov r1, #0xc @@ -6698,7 +6698,7 @@ MOD15_021DA828: ; 0x021DA828 ldr r0, [r4, #0xc] add r1, #0x20 mov r2, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [r4, #0x30] str r0, [r4, #0x34] @@ -6734,10 +6734,10 @@ _021DA8C6: _021DA8D0: add r0, r4, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -6754,7 +6754,7 @@ MOD15_021DA8E8: ; 0x021DA8E8 mov r1, #0x20 mov r2, #0 mov r3, #0x23 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -6765,25 +6765,25 @@ MOD15_021DA8E8: ; 0x021DA8E8 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #0 add r0, #0x10 mov r1, #0 bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x10 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r0, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD15_021DA950 mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -6885,7 +6885,7 @@ _021DAA12: _021DAA18: add r6, #0x10 add r0, r6, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6903,7 +6903,7 @@ MOD15_021DAA24: ; 0x021DAA24 bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldr r1, _021DAAC0 ; =0x04000048 ldr r0, _021DAAC4 ; =0xFFFFC0FF ldrh r2, [r1] @@ -7027,7 +7027,7 @@ MOD15_021DAB18: ; 0x021DAB18 beq _021DAB74 mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, _021DAB78 ; =0x0400004A ldrh r2, [r0] mov r0, #0x3f @@ -7210,7 +7210,7 @@ _021DAC84: str r0, [r1] add r0, r7, #0 add r0, #0x10 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [sp, #8] mov r2, #2 str r0, [sp] @@ -7337,7 +7337,7 @@ MOD15_021DAD78: ; 0x021DAD78 ldr r0, [r0, #0xc] mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, pc} .align 2, 0 @@ -7531,7 +7531,7 @@ MOD15_021DAEB4: ; 0x021DAEB4 ldr r0, [r4, #0xc] mov r1, #4 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r2, #0xb mov r0, #0xa5 lsl r0, r0, #2 @@ -7549,7 +7549,7 @@ MOD15_021DAEB4: ; 0x021DAEB4 mov r1, #4 mov r2, #3 mov r3, #0xe - bl FUN_02018170 + bl CopyToBgTilemapRect b _021DAF92 _021DAF4A: mov r2, #0xb @@ -7568,7 +7568,7 @@ _021DAF4A: ldr r0, [r4, #0xc] mov r1, #4 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r2, #0xb ldr r0, _021DAFA8 ; =0x00000462 str r2, [sp] @@ -7585,13 +7585,13 @@ _021DAF4A: mov r1, #4 mov r2, #3 mov r3, #0xe - bl FUN_02018170 + bl CopyToBgTilemapRect _021DAF92: add r0, r4, #0 bl MOD15_021DB154 ldr r0, [r4, #0xc] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x1c pop {r3, r4, pc} .align 2, 0 @@ -7732,7 +7732,7 @@ MOD15_021DAFF8: ; 0x021DAFF8 ldr r0, [r5, #0xc] ldr r3, [r3, #0x10] mov r1, #4 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #8] bl FreeToHeap _021DB0D4: @@ -8105,7 +8105,7 @@ _021DB390: lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r3, [r4] mov r2, #0xb add r0, r3, #0 @@ -8131,11 +8131,11 @@ _021DB390: lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldrh r0, [r4, #0xa] add sp, #0x1c add r0, r0, #1 @@ -8176,11 +8176,11 @@ _021DB416: lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0 strh r0, [r4, #8] ldrh r0, [r4, #0xa] @@ -8223,11 +8223,11 @@ _021DB476: lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [r4, #4] add sp, #0x1c add r0, r0, #1 @@ -8322,14 +8322,14 @@ MOD15_021DB564: ; 0x021DB564 bne _021DB57E add r0, r1, #0 add r1, r2, #0 - bl FUN_02017B48 + bl Bg_GetXpos str r0, [r4, #0xc] mov r0, #0 b _021DB58A _021DB57E: add r0, r1, #0 add r1, r2, #0 - bl FUN_02017B54 + bl Bg_GetYpos str r0, [r4, #0xc] mov r0, #3 _021DB58A: @@ -8416,7 +8416,7 @@ MOD15_021DB604: ; 0x021DB604 lsr r1, r1, #0x18 lsr r2, r2, #0x18 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldrh r0, [r4, #0x18] sub r0, r0, #1 strh r0, [r4, #0x18] @@ -8430,7 +8430,7 @@ _021DB632: ldr r3, [r4, #0x10] lsr r1, r1, #0x18 lsr r2, r2, #0x18 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, pc} thumb_func_start MOD15_021DB648 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index e9eedca1..480aa929 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -16,7 +16,7 @@ MOD16_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x25 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #4 mov r2, #0x25 @@ -168,7 +168,7 @@ _021D7630: add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x25 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 mov r1, #0x7f bl FUN_020051EC @@ -1065,7 +1065,7 @@ MOD16_021D7CC8: ; 0x021D7CC8 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r1, [r5, #0x14] ldr r6, [r5, #0x1c] add r0, r1, #0 @@ -1106,7 +1106,7 @@ MOD16_021D7CC8: ; 0x021D7CC8 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect _021D7D4C: mov r0, #0x20 sub r3, r0, r4 @@ -1130,13 +1130,13 @@ _021D7D4C: ldr r0, [r5] lsr r1, r1, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect _021D7D7C: ldr r1, [r5, #8] ldr r0, [r5] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x1c] add sp, #0x1c add r0, r0, #1 @@ -2153,7 +2153,7 @@ MOD16_021D8534: ; 0x021D8534 lsl r1, r1, #2 str r0, [r5, r1] add r0, r4, #0 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5] mov r1, #1 mov r0, #0 @@ -2162,7 +2162,7 @@ MOD16_021D8534: ; 0x021D8534 str r1, [sp, #0x18] str r1, [sp, #0x1c] add r0, sp, #0x10 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r5] add r1, r4, #0 bl MOD16_021D8DC0 @@ -2330,7 +2330,7 @@ MOD16_021D86DC: ; 0x021D86DC push {r4, lr} add r4, r0, #0 ldr r0, [r4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates mov r0, #0x55 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -3198,7 +3198,7 @@ _021D8CDC: ldr r2, [r2, #0x14] lsr r1, r1, #0x18 add r3, r4, #0 - bl FUN_02017E14 + bl BG_LoadCharTilesData _021D8CF0: add r0, r7, #0 bl FreeToHeap @@ -3335,15 +3335,15 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D8F18 ; =0x021FF4F4 add r3, sp, #0x70 ldmia r6!, {r0, r1} @@ -3358,18 +3358,18 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -3387,15 +3387,15 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D8F20 ; =0x021FF4BC add r3, sp, #0x38 ldmia r6!, {r0, r1} @@ -3410,15 +3410,15 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #5 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D8F24 ; =0x021FF4A0 add r3, sp, #0x1c ldmia r6!, {r0, r1} @@ -3433,15 +3433,15 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #6 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #6 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D8F28 ; =0x021FF52C add r3, sp, #0 ldmia r6!, {r0, r1} @@ -3456,15 +3456,15 @@ MOD16_021D8DC0: ; 0x021D8DC0 str r0, [r3] add r0, r5, #0 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #7 mov r1, #0x40 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0xa8 pop {r4, r5, r6, pc} .align 2, 0 @@ -3481,22 +3481,22 @@ MOD16_021D8F2C: ; 0x021D8F2C push {r4, lr} add r4, r0, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD16_021D8F2C @@ -3515,7 +3515,7 @@ MOD16_021D8F60: ; 0x021D8F60 ldr r0, [r4] add r1, r4, #4 mov r2, #1 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #4 mov r1, #0 bl FillWindowPixelBuffer @@ -3531,7 +3531,7 @@ MOD16_021D8F90: ; 0x021D8F90 add r0, r0, #4 bx r3 nop -_021D8F98: .word FUN_02019178 +_021D8F98: .word RemoveWindow thumb_func_end MOD16_021D8F90 thumb_func_start MOD16_021D8F9C @@ -8445,7 +8445,7 @@ MOD16_021DB388: ; 0x021DB388 add r1, r7, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner add r0, r7, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -8457,7 +8457,7 @@ MOD16_021DB3BC: ; 0x021DB3BC mov r1, #1 bx r3 nop -_021DB3C4: .word FUN_020191A4 +_021DB3C4: .word WindowArray_dtor thumb_func_end MOD16_021DB3BC thumb_func_start MOD16_021DB3C8 @@ -11072,7 +11072,7 @@ MOD16_021DC598: ; 0x021DC598 beq _021DC5B4 bl MOD16_021DD9C8 ldr r0, _021DC618 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, r5, r6, pc} _021DC5B4: @@ -11082,7 +11082,7 @@ _021DC5B4: add r1, r4, #0 bl MOD16_021DDAB4 ldr r0, _021DC618 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, r5, r6, pc} _021DC5CA: @@ -11101,7 +11101,7 @@ _021DC5CA: add r1, r5, #0 bl MOD16_021DD9E0 ldr r0, _021DC618 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, r5, r6, pc} _021DC5F6: @@ -11429,7 +11429,7 @@ MOD16_021DC860: ; 0x021DC860 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -11454,12 +11454,12 @@ MOD16_021DC860: ; 0x021DC860 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD16_021DC860 @@ -11607,7 +11607,7 @@ MOD16_021DC958: ; 0x021DC958 bl DestroyMsgData ldr r0, [r5] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -11669,7 +11669,7 @@ MOD16_021DCA2C: ; 0x021DCA2C bl DestroyMsgData ldr r0, [r5] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -13026,7 +13026,7 @@ MOD16_021DD530: ; 0x021DD530 add r5, r2, #0 str r1, [sp, #0x18] add r4, r3, #0 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x10] cmp r0, #0 bne _021DD576 @@ -13043,7 +13043,7 @@ MOD16_021DD530: ; 0x021DD530 str r4, [sp, #0x1c] mov r7, #0xe mov r5, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021DD594 _021DD568: mov r0, #3 @@ -13130,7 +13130,7 @@ _021DD5FE: mov r1, #1 ldr r0, [r0] mov r2, #3 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText _021DD60A: add r0, r6, #0 pop {r4, r5, r6, pc} @@ -13150,7 +13150,7 @@ MOD16_021DD610: ; 0x021DD610 ldr r0, [r0] mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _021DD62A: mov r2, #1 lsl r2, r2, #0x1a @@ -13354,7 +13354,7 @@ _021DD77E: ldr r0, [r5] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit _021DD7B0: add r0, r5, #0 add r1, r4, #0 @@ -13509,7 +13509,7 @@ _021DD8A8: ldr r0, [r5] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit b _021DD8F6 _021DD8E0: add r0, r7, #0 @@ -13688,7 +13688,7 @@ MOD16_021DD9F8: ; 0x021DD9F8 mov r1, #2 str r1, [r0, #0x20] ldr r0, _021DDA28 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021DDA24: @@ -13731,7 +13731,7 @@ _021DDA54: add r1, r4, #0 bl MOD16_021D9CEC ldr r0, _021DDAB0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -13832,7 +13832,7 @@ MOD16_021DDB0C: ; 0x021DDB0C mov r0, #1 str r0, [r4, #0x20] ldr r0, _021DDB54 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021DDB3C: mov r0, #0 @@ -13873,7 +13873,7 @@ MOD16_021DDB58: ; 0x021DDB58 mov r0, #1 str r0, [r4, #0x20] ldr r0, _021DDC28 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021DDB8C: add r0, r4, #0 @@ -13898,7 +13898,7 @@ _021DDB9A: mov r0, #1 str r0, [r4, #0x20] ldr r0, _021DDC28 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021DDBC2: add r0, r4, #0 @@ -14753,7 +14753,7 @@ MOD16_021DE1E0: ; 0x021DE1E0 bl MOD16_021DE594 mov r0, #7 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD16_021DE1E0 @@ -14774,7 +14774,7 @@ MOD16_021DE228: ; 0x021DE228 bl MOD16_021DE808 mov r0, #7 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority pop {r4, r5, r6, pc} thumb_func_end MOD16_021DE228 @@ -14854,12 +14854,12 @@ _021DE2AC: lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r6, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap add r0, r6, #0 mov r1, #6 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -15438,23 +15438,23 @@ MOD16_021DE788: ; 0x021DE788 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r4, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap add r0, r4, #0 mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r2, #0 add r3, r2, #0 add r0, r4, #0 mov r1, #7 sub r3, #0x78 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #7 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -15469,10 +15469,10 @@ MOD16_021DE808: ; 0x021DE808 mov r0, #7 mov r1, #0x40 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r4, pc} thumb_func_end MOD16_021DE808 @@ -15502,7 +15502,7 @@ _021DE84C: lsl r1, r1, #6 str r1, [r0, #0xc] ldr r0, _021DE89C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE b _021DE860 _021DE85C: mov r0, #0 @@ -15606,19 +15606,19 @@ MOD16_021DE8D0: ; 0x021DE8D0 mov r1, #7 add r2, r6, #0 lsr r3, r3, #0x10 - bl FUN_0201AF08 + bl ScheduleSetBgAffineRotation ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #9 mov r3, #0x80 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #0xc mov r3, #0x68 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos ldrh r0, [r5, #0x28] strh r0, [r5, #0x2a] pop {r4, r5, r6, pc} @@ -15658,19 +15658,19 @@ _021DE95E: mov r1, #7 mov r2, #0 lsr r3, r3, #0x10 - bl FUN_0201AF08 + bl ScheduleSetBgAffineRotation ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #9 mov r3, #0x80 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #0xc mov r3, #0x68 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos ldr r0, [r7, #0x1c] ldr r0, [r0, #0xc] cmp r0, #0 @@ -16364,7 +16364,7 @@ _021DEDF2: mov r0, #0x20 str r0, [r4, #0x34] ldr r0, _021DEEA0 ; =0x000005FF - bl FUN_020054C8 + bl PlaySE b _021DEE9A _021DEE10: ldr r0, [r4, #0x34] @@ -16645,11 +16645,11 @@ MOD16_021DEFF8: ; 0x021DEFF8 ldr r0, [r0] add r4, r2, #0 ldr r6, [sp, #0x18] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r5] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r5] mov r1, #0 add r0, r0, #4 @@ -16657,7 +16657,7 @@ MOD16_021DEFF8: ; 0x021DEFF8 ldr r0, [r5] mov r1, #7 add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum add r0, r5, #0 bl MOD16_021DF17C add r0, r5, #0 @@ -16710,10 +16710,10 @@ MOD16_021DEFF8: ; 0x021DEFF8 bl MOD16_021DF7C8 mov r0, #1 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD16_021DEFF8 @@ -16733,7 +16733,7 @@ MOD16_021DF0BC: ; 0x021DF0BC ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4] mov r1, #0 add r0, r0, #4 @@ -16741,13 +16741,13 @@ MOD16_021DF0BC: ; 0x021DF0BC ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD16_021DF0BC @@ -17304,7 +17304,7 @@ MOD16_021DF514: ; 0x021DF514 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [sp, #0x10] bl FreeToHeap cmp r7, #3 @@ -17361,13 +17361,13 @@ _021DF584: str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap ldr r0, [r4] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD16_021DF514 @@ -17855,7 +17855,7 @@ _021DF92E: bl FillWindowPixelBuffer ldr r0, [r4] add r0, r0, #4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _021DF94C: ldr r2, [r6, #0x34] mov r1, #4 @@ -17903,10 +17903,10 @@ MOD16_021DF970: ; 0x021DF970 bl String_dtor mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -17921,10 +17921,10 @@ MOD16_021DF9C0: ; 0x021DF9C0 add r4, r1, #0 add r1, r0, #0 add r6, r2, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r5] mov r1, #0 add r0, r0, #4 @@ -18761,13 +18761,13 @@ MOD16_021DFFE0: ; 0x021DFFE0 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -24474,7 +24474,7 @@ _021E28EA: mov r1, #0 bl MOD16_021DEC40 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021E2982 _021E28FA: ldr r0, [r4, #8] @@ -24485,7 +24485,7 @@ _021E28FA: mov r1, #0 bl MOD16_021DEBA4 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021E2982 _021E2914: ldr r0, [r4, #8] @@ -24496,7 +24496,7 @@ _021E2914: mov r1, #1 bl MOD16_021DEBA4 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021E2982 _021E292E: ldr r0, [r4, #8] @@ -24507,7 +24507,7 @@ _021E292E: mov r1, #2 bl MOD16_021DEBA4 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 add r0, #0x88 @@ -24522,7 +24522,7 @@ _021E2950: mov r1, #3 bl MOD16_021DEBA4 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021E2982 _021E296A: add r0, r5, #0 @@ -24534,7 +24534,7 @@ _021E296A: mov r1, #1 bl MOD16_021DEC40 ldr r0, _021E298C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E2982: ldr r0, _021E2990 ; =0x0000FFFF add r5, #0x80 @@ -24593,7 +24593,7 @@ _021E29D2: cmp r4, r0 beq _021E29EE ldr r0, _021E29F8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r6, #8] add r1, r4, #0 bl MOD16_021DEBC0 @@ -24671,7 +24671,7 @@ _021E2A56: cmp r4, r0 beq _021E2A72 ldr r0, _021E2A7C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r6, #8] add r1, r4, #0 bl MOD16_021DEBDC @@ -24747,7 +24747,7 @@ _021E2ADE: mov r0, #1 str r0, [r5, #0x20] ldr r0, _021E2B00 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E2AE8: cmp r4, #0x64 beq _021E2AF6 @@ -24823,7 +24823,7 @@ _021E2B5C: mov r0, #0 str r0, [r5, #0x20] ldr r0, _021E2B7C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E2B66: cmp r4, #0x64 beq _021E2B74 @@ -24884,7 +24884,7 @@ MOD16_021E2B84: ; 0x021E2B84 add r0, r2, r1 str r0, [r5] ldr r0, _021E2C24 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E2BE4: mov r1, #0 @@ -24896,7 +24896,7 @@ _021E2BE4: mov r2, #0 bl MOD16_021DEBF8 ldr r0, _021E2C24 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021E2C1A _021E2C00: mov r1, #1 @@ -24908,7 +24908,7 @@ _021E2C00: mov r2, #1 bl MOD16_021DEBF8 ldr r0, _021E2C24 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E2C1A: mov r0, #0 add r5, #0x88 @@ -25003,7 +25003,7 @@ _021E2C9C: cmp r4, r0 beq _021E2CB8 ldr r0, _021E2CC0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r6, #8] add r1, r4, #0 bl MOD16_021DEC24 @@ -25958,7 +25958,7 @@ MOD16_021E3348: ; 0x021E3348 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r7, #0 bl FreeToHeap ldr r1, [r6] @@ -25989,7 +25989,7 @@ MOD16_021E3348: ; 0x021E3348 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r7, #0 bl FreeToHeap _021E33E6: @@ -26021,7 +26021,7 @@ _021E33E6: str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r7, #0 bl FreeToHeap _021E342A: @@ -26053,7 +26053,7 @@ _021E342A: str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r7, #0 bl FreeToHeap _021E346E: @@ -26085,14 +26085,14 @@ _021E346E: str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap _021E34B2: ldr r0, [r5] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -26968,7 +26968,7 @@ MOD16_021E3B70: ; 0x021E3B70 ldr r0, [r4] mov r1, #8 add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum add sp, #4 pop {r3, r4, r5, r6, pc} nop @@ -26989,7 +26989,7 @@ MOD16_021E3BC8: ; 0x021E3BC8 ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _021E3C10 ; =0x000007F4 ldr r0, [r5, r0] bl FreeToHeap @@ -27008,7 +27008,7 @@ MOD16_021E3BC8: ; 0x021E3BC8 str r1, [r5, r0] ldr r0, [r4] add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum pop {r3, r4, r5, pc} .align 2, 0 _021E3C10: .word 0x000007F4 @@ -28428,13 +28428,13 @@ MOD16_021E4634: ; 0x021E4634 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -28792,7 +28792,7 @@ MOD16_021E4938: ; 0x021E4938 cmp r1, #0 bne _021E495C ldr r0, _021E4960 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 str r0, [r4, #0x20] ldr r0, _021E4964 ; =gMain + 0x40 @@ -29605,7 +29605,7 @@ MOD16_021E4EE4: ; 0x021E4EE4 ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD16_021E4EE4 @@ -29649,7 +29649,7 @@ MOD16_021E4F1C: ; 0x021E4F1C str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -29674,7 +29674,7 @@ MOD16_021E4F1C: ; 0x021E4F1C str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -29700,7 +29700,7 @@ MOD16_021E4F1C: ; 0x021E4F1C str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -29726,13 +29726,13 @@ MOD16_021E4F1C: ; 0x021E4F1C str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -31637,7 +31637,7 @@ _021E5E30: mov r0, #1 str r0, [r5, #4] ldr r0, _021E5ED0 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -31837,13 +31837,13 @@ MOD16_021E5FA4: ; 0x021E5FA4 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -34314,7 +34314,7 @@ MOD16_021E71A8: ; 0x021E71A8 ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r3, r4, r5, pc} thumb_func_end MOD16_021E71A8 @@ -34357,7 +34357,7 @@ MOD16_021E71D0: ; 0x021E71D0 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -34382,7 +34382,7 @@ MOD16_021E71D0: ; 0x021E71D0 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -34408,7 +34408,7 @@ MOD16_021E71D0: ; 0x021E71D0 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -34434,13 +34434,13 @@ MOD16_021E71D0: ; 0x021E71D0 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -36326,7 +36326,7 @@ _021E80FA: mov r3, #0 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021E8112: ldr r1, [r4, #0x38] @@ -36355,7 +36355,7 @@ _021E8132: mov r3, #1 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021E814A: ldr r1, [r4, #0x38] @@ -36381,7 +36381,7 @@ _021E8168: mov r3, #2 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021E8180: ldr r1, [r4, #0x38] @@ -36407,7 +36407,7 @@ _021E819E: mov r3, #3 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021E81B6: ldr r1, [r4, #0x38] @@ -36433,7 +36433,7 @@ _021E81D4: mov r3, #4 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021E81EC: ldr r1, [r4, #0x38] @@ -36459,7 +36459,7 @@ _021E820A: mov r3, #5 bl MOD16_021E89D4 ldr r0, _021E8224 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE _021E8220: pop {r3, r4, r5, pc} nop @@ -36577,7 +36577,7 @@ MOD16_021E82B8: ; 0x021E82B8 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -36603,7 +36603,7 @@ MOD16_021E82B8: ; 0x021E82B8 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -36629,13 +36629,13 @@ MOD16_021E82B8: ; 0x021E82B8 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -37558,7 +37558,7 @@ _021E8A9A: add r1, r4, #0 bl MOD16_021E8B7C ldr r0, _021E8AB8 ; =0x0000068B - bl FUN_020054C8 + bl PlaySE _021E8AB6: pop {r3, r4, r5, pc} .align 2, 0 @@ -38663,7 +38663,7 @@ MOD16_021E92D0: ; 0x021E92D0 ldr r0, [r5] mov r1, #2 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD16_021E92D0 @@ -38728,13 +38728,13 @@ _021E932E: str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #2 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD16_021E92F8 @@ -39650,7 +39650,7 @@ _021E9A12: add r0, r4, #0 bl MOD16_021E9014 ldr r0, _021E9AF8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9A20: ldr r2, [r4, #8] @@ -39663,7 +39663,7 @@ _021E9A20: add r1, r6, #0 bl MOD16_021EA08C ldr r0, _021E9AFC ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9A3E: ldr r2, [r4, #8] @@ -39676,7 +39676,7 @@ _021E9A3E: add r1, r6, #0 bl MOD16_021EA08C ldr r0, _021E9AFC ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9A5C: ldr r2, [r4, #8] @@ -39689,7 +39689,7 @@ _021E9A5C: add r1, r6, #0 bl MOD16_021EA08C ldr r0, _021E9AFC ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9A7A: ldr r2, [r4, #8] @@ -39704,7 +39704,7 @@ _021E9A7A: add r1, r6, #0 bl MOD16_021EA08C ldr r0, _021E9AFC ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9A9C: ldr r0, [r5, #0x10] @@ -39714,7 +39714,7 @@ _021E9A9C: cmp r0, #2 beq _021E9AAE ldr r0, _021E9AF8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E9AAE: mov r0, #1 str r0, [r5, #0x10] @@ -39732,7 +39732,7 @@ _021E9AB4: add r1, r6, #0 bl MOD16_021EA08C ldr r0, _021E9AFC ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9AD6: ldr r0, [r5, #0x10] @@ -39746,7 +39746,7 @@ _021E9AD6: cmp r0, #2 beq _021E9AF2 ldr r0, _021E9AF8 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E9AF2: mov r0, #0 str r0, [r5, #0x10] @@ -39800,7 +39800,7 @@ MOD16_021E9B3C: ; 0x021E9B3C ldr r0, [r4] mov r1, #5 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r3, r4, r5, pc} thumb_func_end MOD16_021E9B3C @@ -39868,13 +39868,13 @@ _021E9B9E: str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #5 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD16_021E9B60 @@ -40205,7 +40205,7 @@ MOD16_021E9E34: ; 0x021E9E34 mov r0, #1 str r0, [r5, #0x2c] ldr r0, _021E9E60 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021E9E58: pop {r3, r4, r5, pc} nop @@ -40390,7 +40390,7 @@ _021E9FAC: mov r0, #2 str r0, [r4, #0xc] ldr r0, _021EA06C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9FC6: ldr r2, [r5, #8] @@ -40402,7 +40402,7 @@ _021E9FC6: mov r0, #2 str r0, [r4, #0x10] ldr r0, _021EA06C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9FE0: ldr r2, [r5, #8] @@ -40414,7 +40414,7 @@ _021E9FE0: mov r0, #2 str r0, [r4, #0x14] ldr r0, _021EA06C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021E9FFA: ldr r2, [r5, #8] @@ -40428,14 +40428,14 @@ _021E9FFA: mov r0, #2 str r0, [r4, #0x18] ldr r0, _021EA06C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021EA018: ldr r0, [r5, #8] cmp r0, #2 beq _021EA066 ldr r0, _021EA070 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021EA026: ldr r2, [r5, #8] @@ -40449,14 +40449,14 @@ _021EA026: mov r0, #2 str r0, [r4, #0x1c] ldr r0, _021EA06C ; =0x0000068B - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021EA044: ldr r0, [r5, #8] cmp r0, #2 beq _021EA066 ldr r0, _021EA070 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _021EA052: add r0, r5, #0 @@ -40466,7 +40466,7 @@ _021EA052: mov r0, #2 str r0, [r4, #0x20] ldr r0, _021EA070 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021EA066: pop {r4, r5, r6, pc} .align 2, 0 @@ -41560,13 +41560,13 @@ MOD16_021EA7F0: ; 0x021EA7F0 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -41582,7 +41582,7 @@ MOD16_021EA858: ; 0x021EA858 ldr r0, [r0] mov r1, #1 add r3, r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r1, #0 mov r0, #1 lsl r0, r0, #8 @@ -41597,11 +41597,11 @@ MOD16_021EA858: ; 0x021EA858 ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum add sp, #8 pop {r4, pc} thumb_func_end MOD16_021EA858 @@ -42135,10 +42135,10 @@ _021EAC8A: ldr r3, [r5, r3] mov r1, #1 mov r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4] add r0, r0, #4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0xcb ldr r1, [r6, #4] lsl r0, r0, #2 @@ -42156,7 +42156,7 @@ MOD16_021EACB0: ; 0x021EACB0 ldr r0, [r4] mov r1, #9 add r0, r0, #4 - bl FUN_0201AB24 + bl SetWindowPaletteNum mov r0, #0xca mov r2, #0x97 lsl r0, r0, #2 @@ -43255,7 +43255,7 @@ _021EB4DC: eor r1, r2 bl MOD16_021EC060 ldr r0, _021EB4F4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021EB4F0: pop {r3, r4, r5, r6, r7, pc} nop @@ -43352,7 +43352,7 @@ _021EB57A: ldrh r0, [r1, #0x1c] str r0, [r4, #0x38] ldr r0, _021EB640 ; =0x000005F7 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} _021EB5A2: mov r0, #0xb @@ -43364,7 +43364,7 @@ _021EB5A2: ldrh r0, [r1, #0x1c] str r0, [r4, #0x38] ldr r0, _021EB640 ; =0x000005F7 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} _021EB5BA: ldr r0, [r4, #0x4c] @@ -43594,13 +43594,13 @@ MOD16_021EB724: ; 0x021EB724 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap ldr r0, [r5] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5] mov r1, #0 str r1, [sp] @@ -43634,30 +43634,30 @@ MOD16_021EB724: ; 0x021EB724 str r0, [sp, #8] ldr r0, [r5] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #7 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5] mov r2, #0 add r3, r2, #0 ldr r0, [r0] mov r1, #7 sub r3, #0x30 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5] mov r2, #3 add r3, r2, #0 ldr r0, [r0] mov r1, #7 sub r3, #0x13 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #7 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD16_021EB724 @@ -43669,14 +43669,14 @@ MOD16_021EB80C: ; 0x021EB80C ldr r0, [r4] mov r1, #6 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4] mov r1, #7 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #7 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority pop {r4, pc} .align 2, 0 thumb_func_end MOD16_021EB80C @@ -44241,7 +44241,7 @@ MOD16_021EBC98: ; 0x021EBC98 cmp r1, r0 beq _021EBCBE ldr r0, _021EBCC0 ; =0x000005F7 - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x5c] asr r0, r1, #1 lsr r0, r0, #0x1e @@ -44379,19 +44379,19 @@ _021EBD70: mov r1, #7 mov r2, #0 lsr r3, r3, #0x10 - bl FUN_0201AF08 + bl ScheduleSetBgAffineRotation ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #9 mov r3, #0x83 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos ldr r0, [r4] mov r1, #7 ldr r0, [r0] mov r2, #0xc mov r3, #0x63 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos str r6, [r5, #0x48] pop {r4, r5, r6, pc} thumb_func_end MOD16_021EBD58 @@ -45517,7 +45517,7 @@ MOD16_021EC574: ; 0x021EC574 ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 bl MOD16_021ECA2C pop {r3, r4, r5, pc} @@ -45562,13 +45562,13 @@ MOD16_021EC5A8: ; 0x021EC5A8 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -46884,7 +46884,7 @@ _021ED006: cmp r0, #0 beq _021ED03C ldr r0, _021ED040 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r4, #4] ldr r2, [r4] @@ -46898,7 +46898,7 @@ _021ED022: cmp r0, #1 beq _021ED03C ldr r0, _021ED040 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 str r0, [r4, #4] ldr r2, [r4] @@ -47021,13 +47021,13 @@ MOD16_021ED0D0: ; 0x021ED0D0 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -47524,7 +47524,7 @@ _021ED4EC: str r1, [r0, #0x14] _021ED4FA: ldr r0, _021ED508 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021ED500: pop {r3, pc} nop @@ -48269,7 +48269,7 @@ MOD16_021EDA3C: ; 0x021EDA3C ldr r0, [r4] mov r1, #1 ldr r0, [r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0xc] mov r1, #0 bl FUN_02013EB0 @@ -48319,13 +48319,13 @@ MOD16_021EDA7C: ; 0x021EDA7C str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #3 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -50510,13 +50510,13 @@ MOD16_021EEB50: ; 0x021EEB50 str r0, [sp, #8] ldr r0, [r4] ldr r0, [r0] - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap ldr r0, [r4] mov r1, #6 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -51352,20 +51352,20 @@ MOD16_021EF218: ; 0x021EF218 mov r1, #1 str r0, [r2] add r0, r5, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 mov r1, #1 add r2, sp, #0x38 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r3, _021EF2F4 ; =0x021FF770 add r2, sp, #0x1c ldmia r3!, {r0, r1} @@ -51378,29 +51378,29 @@ MOD16_021EF218: ; 0x021EF218 mov r1, #2 str r0, [r2] add r0, r5, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 mov r1, #2 add r2, sp, #0x1c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers add r0, r5, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r3, _021EF2F8 ; =0x021FF7A8 add r2, sp, #0 ldmia r3!, {r0, r1} @@ -51413,20 +51413,20 @@ MOD16_021EF218: ; 0x021EF218 mov r1, #3 str r0, [r2] add r0, r5, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 mov r1, #3 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x54 pop {r4, r5, pc} .align 2, 0 @@ -51440,13 +51440,13 @@ MOD16_021EF2FC: ; 0x021EF2FC push {r4, lr} add r4, r0, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD16_021EF2FC @@ -51470,7 +51470,7 @@ MOD16_021EF318: ; 0x021EF318 add r1, r4, #0 mov r2, #1 str r3, [sp, #0x10] - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -51486,12 +51486,12 @@ MOD16_021EF318: ; 0x021EF318 MOD16_021EF358: ; 0x021EF358 push {r4, lr} add r4, r0, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor pop {r4, pc} thumb_func_end MOD16_021EF358 @@ -52092,7 +52092,7 @@ MOD16_021EF790: ; 0x021EF790 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r5, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -52116,7 +52116,7 @@ MOD16_021EF790: ; 0x021EF790 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r5, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -52141,7 +52141,7 @@ MOD16_021EF790: ; 0x021EF790 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r5, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r6, #0 bl FreeToHeap str r4, [sp] @@ -52166,12 +52166,12 @@ MOD16_021EF790: ; 0x021EF790 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r5, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap add r0, r5, #0 mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD16_021EF790 @@ -52214,12 +52214,12 @@ MOD16_021EF8A8: ; 0x021EF8A8 lsr r0, r0, #0x18 str r0, [sp, #8] add r0, r4, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 bl FreeToHeap add r0, r4, #0 mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 955741b3..7e32e1c9 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -464,7 +464,7 @@ MOD17_021D77D4: ; 0x021D77D4 add r0, r4, #0 bl MOD17_021D80CC mov r0, #0xe - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x38] add r0, r4, #0 bl MOD17_021D7F34 @@ -860,7 +860,7 @@ MOD17_021D7AE4: ; 0x021D7AE4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x38] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r0, [r4, #0x20] bl FUN_020081C4 bl FUN_02009F80 @@ -973,20 +973,20 @@ MOD17_021D7B94: ; 0x021D7B94 mov r1, #2 str r0, [r2] ldr r0, [r5, #0x38] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0x38] mov r1, #2 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r5, #0x38] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x1c pop {r4, r5, pc} nop @@ -1016,12 +1016,12 @@ MOD17_021D7BE4: ; 0x021D7BE4 thumb_func_start MOD17_021D7C10 MOD17_021D7C10: ; 0x021D7C10 - ldr r3, _021D7C18 ; =FUN_020178A0 + ldr r3, _021D7C18 ; =FreeBgTilemapBuffer ldr r0, [r0, #0x38] mov r1, #2 bx r3 .align 2, 0 -_021D7C18: .word FUN_020178A0 +_021D7C18: .word FreeBgTilemapBuffer thumb_func_end MOD17_021D7C10 thumb_func_start MOD17_021D7C1C @@ -1112,7 +1112,7 @@ MOD17_021D7CC0: ; 0x021D7CC0 add r4, r0, #0 bl MOD17_021D80CC mov r0, #0xe - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x38] add r0, r4, #0 bl MOD17_021D7F34 @@ -1136,7 +1136,7 @@ MOD17_021D7CD8: ; 0x021D7CD8 MOD17_021D7CF0: ; 0x021D7CF0 push {r3, lr} ldr r0, [r0, #0x38] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_02009F80 pop {r3, pc} .align 2, 0 @@ -1244,7 +1244,7 @@ MOD17_021D7DB0: ; 0x021D7DB0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -1466,15 +1466,15 @@ MOD17_021D7F34: ; 0x021D7F34 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0xe - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #0x38] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D8048 ; =0x021DE2BC add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -1489,15 +1489,15 @@ MOD17_021D7F34: ; 0x021D7F34 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0xe - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #0x38] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D804C ; =0x021DE2F4 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -1512,15 +1512,15 @@ MOD17_021D7F34: ; 0x021D7F34 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0xe - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D8050 ; =0x021DE284 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -1535,15 +1535,15 @@ MOD17_021D7F34: ; 0x021D7F34 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0xe - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #0x38] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D8054 ; =0x021DE310 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -1558,15 +1558,15 @@ MOD17_021D7F34: ; 0x021D7F34 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #5 mov r1, #0x20 mov r2, #0 mov r3, #0xe - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #0x38] mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x8c pop {r4, r5, pc} nop @@ -1583,19 +1583,19 @@ MOD17_021D8058: ; 0x021D8058 add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x38] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x38] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x38] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D8058 @@ -2042,12 +2042,12 @@ MOD17_021D83E4: ; 0x021D83E4 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D84D8 ; =0x000006D8 add r0, r4, #0 mov r2, #0xd @@ -2472,7 +2472,7 @@ _021D8780: ldr r0, _021D8810 ; =0x000006A8 mov r1, #1 ldr r0, [r4, r0] - bl FUN_020191A4 + bl WindowArray_dtor add r0, r4, #0 bl MOD17_021D92AC ldr r0, _021D8814 ; =0x0000048C @@ -2511,9 +2511,9 @@ _021D87F0: add r0, r6, #0 bl OverlayManager_FreeData mov r0, #0xd - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xe - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} nop @@ -2532,12 +2532,12 @@ MOD17_021D8818: ; 0x021D8818 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D897C ; =0x000006D8 add r0, r5, #0 mov r2, #0xd @@ -2878,7 +2878,7 @@ _021D8B04: _021D8B0A: bl MOD17_021D9800 ldr r0, _021D8C7C ; =0x00000643 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -2947,7 +2947,7 @@ _021D8B86: str r0, [r4] mov r0, #0x1a lsl r0, r0, #6 - bl FUN_020054C8 + bl PlaySE _021D8B9E: ldr r0, _021D8C90 ; =0x0000048C add r0, r5, r0 @@ -2970,7 +2970,7 @@ _021D8BBC: str r0, [r4] mov r0, #0x1a lsl r0, r0, #6 - bl FUN_020054C8 + bl PlaySE _021D8BD4: add r0, r5, #0 bl MOD17_021D9BE8 @@ -3009,7 +3009,7 @@ _021D8C04: add r3, r6, #0 bl FUN_0200E1D0 ldr r0, _021D8C94 ; =0x00000684 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -3080,7 +3080,7 @@ MOD17_021D8C9C: ; 0x021D8C9C ldr r0, _021D8D58 ; =0x000006A8 mov r1, #1 ldr r0, [r4, r0] - bl FUN_020191A4 + bl WindowArray_dtor add r0, r4, #0 bl MOD17_021D92AC ldr r0, _021D8D5C ; =0x0000048C @@ -3119,9 +3119,9 @@ _021D8D30: add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0xd - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xe - bl FUN_020168D0 + bl DestroyHeap bl FUN_02083404 bl FUN_02033ED0 mov r0, #1 @@ -3428,7 +3428,7 @@ MOD17_021D8F64: ; 0x021D8F64 ldr r0, [r4, #0x38] add r2, r1, #0 sub r3, #0x13 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 @@ -3993,7 +3993,7 @@ _021D93C4: ldr r0, [r0, #0x38] mov r2, #3 mov r3, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4] bl MOD17_021D9848 ldr r0, [r4, #0xc] @@ -4125,7 +4125,7 @@ _021D94B2: ldr r0, [r0, #0x38] mov r1, #1 sub r3, #0x2b - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 @@ -4424,25 +4424,25 @@ _021D9728: ldr r0, [r0, #0x38] add r2, r1, #0 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5] mov r1, #1 ldr r0, [r0, #0x38] mov r2, #2 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5] mov r1, #2 ldr r0, [r0, #0x38] mov r2, #5 add r3, r6, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5] mov r1, #1 ldr r0, [r0, #0x38] mov r2, #5 add r3, r6, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText _021D9766: ldr r0, [r5, #8] add r0, r0, #1 @@ -4462,17 +4462,17 @@ MOD17_021D9778: ; 0x021D9778 add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 ldr r0, [r4, #0x38] mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 ldr r0, [r4, #0x38] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #0 bl MOD17_021D9B74 @@ -4524,7 +4524,7 @@ MOD17_021D9800: ; 0x021D9800 bl MOD17_021D9BCC ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 bl MOD17_021D8F64 mov r0, #0 @@ -4555,17 +4555,17 @@ MOD17_021D9848: ; 0x021D9848 add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #0 ldr r0, [r4, #0x38] mov r1, #3 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 ldr r0, [r4, #0x38] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x38] mov r1, #0x19 str r0, [sp] @@ -4624,7 +4624,7 @@ MOD17_021D98D0: ; 0x021D98D0 bl MOD17_021D9B6C ldr r0, [r4, #0x38] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r4, pc} .align 2, 0 _021D98EC: .word 0x000006A4 @@ -4687,7 +4687,7 @@ MOD17_021D9918: ; 0x021D9918 str r0, [sp, #0x10] ldr r0, [r5, #0x38] ldr r1, [r5, r1] - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _021D99D4 ; =0x000006A8 mov r1, #0xf ldr r0, [r5, r0] @@ -4903,10 +4903,10 @@ MOD17_021D9B30: ; 0x021D9B30 add r4, r0, #0 ldr r0, _021D9B48 ; =0x000006A8 ldr r0, [r4, r0] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _021D9B48 ; =0x000006A8 ldr r0, [r4, r0] - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} nop _021D9B48: .word 0x000006A8 @@ -8146,7 +8146,7 @@ _021DB192: _021DB19A: lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD17_021DB680 _021DB1A8: @@ -8257,7 +8257,7 @@ _021DB220: ldrsh r0, [r4, r0] str r0, [sp, #8] ldr r0, _021DB394 ; =0x00000683 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0xc] ldr r2, _021DB398 ; =0x00000151 mov r1, #0x1a @@ -8283,7 +8283,7 @@ _021DB2AC: mov r0, #0 str r0, [r4, #0x30] ldr r0, _021DB39C ; =0x000005EA - bl FUN_020054C8 + bl PlaySE b _021DB388 _021DB2C2: ldr r0, [r4, #0x10] @@ -8340,7 +8340,7 @@ _021DB32C: str r0, [sp, #8] _021DB338: ldr r0, _021DB394 ; =0x00000683 - bl FUN_020054C8 + bl PlaySE b _021DB350 _021DB340: ldr r0, [r4, #0x10] @@ -8348,7 +8348,7 @@ _021DB340: add r2, sp, #8 bl MOD17_021DBBB8 ldr r0, _021DB3A0 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE _021DB350: add r0, r4, #0 add r0, #0x20 @@ -8431,7 +8431,7 @@ MOD17_021DB3D4: ; 0x021DB3D4 mov r0, #0 str r0, [r4, #0x30] ldr r0, _021DB400 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD17_021DB534 _021DB3FE: @@ -9758,7 +9758,7 @@ MOD17_021DBD4C: ; 0x021DBD4C ldr r0, [r4] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #0 mov r2, #0x2c @@ -9919,11 +9919,11 @@ _021DBE62: str r0, [r4, #0x40] ldr r0, [r6] ldr r1, [r6, #0x1c] - bl FUN_02017B48 + bl Bg_GetXpos str r0, [r4, #0x44] ldr r0, [r6] ldr r1, [r6, #0x1c] - bl FUN_02017B54 + bl Bg_GetYpos str r0, [r4, #0x48] mov r0, #0x80 str r0, [r5, #0x28] @@ -10076,7 +10076,7 @@ MOD17_021DBF94: ; 0x021DBF94 lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #2 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r1, [r4] ldr r3, [r4, #0x40] ldr r0, [r1] @@ -10084,7 +10084,7 @@ MOD17_021DBF94: ; 0x021DBF94 mov r2, #5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r3, r4, r5, pc} _021DBFC8: ldr r0, [r1] @@ -10093,7 +10093,7 @@ _021DBFC8: lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r1, [r4] ldr r3, [r4, #0x48] ldr r0, [r1] @@ -10101,7 +10101,7 @@ _021DBFC8: mov r2, #3 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r4] add r1, r4, #4 bl MOD17_021DBD04 @@ -10150,7 +10150,7 @@ MOD17_021DC004: ; 0x021DC004 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -10171,11 +10171,11 @@ MOD17_021DC004: ; 0x021DC004 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette lsl r1, r5, #0x18 add r0, r7, #0 lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DC004 @@ -10278,7 +10278,7 @@ MOD17_021DC11C: ; 0x021DC11C ldr r0, [r4] ldr r3, [r3, #0x10] lsr r1, r1, #0x18 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r5, #0 bl FUN_0200CAB4 ldr r0, [r4, #8] @@ -10466,7 +10466,7 @@ _021DC28C: add r0, r5, #0 bl MOD17_021DC2F8 ldr r0, _021DC2BC ; =0x0000067D - bl FUN_020054C8 + bl PlaySE b _021DC2B0 _021DC29E: cmp r6, #2 @@ -11241,7 +11241,7 @@ MOD17_021DC870: ; 0x021DC870 bne _021DC87E lsl r0, r1, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _021DC87E: pop {r3, pc} thumb_func_end MOD17_021DC870 @@ -11279,7 +11279,7 @@ _021DC898: add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -11308,7 +11308,7 @@ MOD17_021DC8F8: ; 0x021DC8F8 mov r1, #1 bx r3 nop -_021DC900: .word FUN_020191A4 +_021DC900: .word WindowArray_dtor thumb_func_end MOD17_021DC8F8 thumb_func_start MOD17_021DC904 @@ -11814,7 +11814,7 @@ MOD17_021DCC68: ; 0x021DCC68 str r0, [sp, #0x10] ldr r1, [r5] add r0, r7, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5] mov r1, #0xf bl FillWindowPixelBuffer @@ -11848,7 +11848,7 @@ MOD17_021DCCE0: ; 0x021DCCE0 mov r1, #1 bx r3 nop -_021DCCE8: .word FUN_020191A4 +_021DCCE8: .word WindowArray_dtor thumb_func_end MOD17_021DCCE0 thumb_func_start MOD17_021DCCEC @@ -12495,7 +12495,7 @@ MOD17_021DD1DC: ; 0x021DD1DC add r1, #0x30 bl MOD17_021DD2E0 ldr r0, _021DD200 ; =0x00000683 - bl FUN_020054C8 + bl PlaySE _021DD1FC: pop {r3, pc} nop @@ -13038,13 +13038,13 @@ MOD17_021DD5A0: ; 0x021DD5A0 mov r1, #2 mov r2, #0 sub r3, r3, r4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x10 ldr r0, [r5, #0x38] mov r1, #2 mov r2, #3 sub r3, r3, r6 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _021DD5E8: mov r0, #0x23 lsl r0, r0, #4 @@ -13780,12 +13780,12 @@ MOD17_021DDB58: ; 0x021DDB58 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap mov r1, #0x65 add r0, r5, #0 lsl r1, r1, #2 @@ -13990,9 +13990,9 @@ MOD17_021DDCF4: ; 0x021DDCF4 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0xd - bl FUN_020168D0 + bl DestroyHeap mov r0, #0xe - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -14066,7 +14066,7 @@ _021DDD96: lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #0x4c] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r1, [sp, #0x10] mov r2, #0 ldrh r0, [r1] @@ -14083,12 +14083,12 @@ _021DDD96: lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #0x4c] - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r6, #0 bl FreeToHeap ldr r0, [r5, #0x4c] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD17_021DDD54 @@ -14260,25 +14260,25 @@ MOD17_021DDF1C: ; 0x021DDF1C ldr r1, [r4, r1] mov r2, #3 mov r3, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 mov r1, #0xa0 mov r2, #0xe bl FUN_02002ED0 mov r0, #3 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #0 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r1, #3 ldr r0, [r4, #0x4c] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add sp, #0x14 pop {r3, r4, pc} .align 2, 0 @@ -14291,16 +14291,16 @@ MOD17_021DDF84: ; 0x021DDF84 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] - bl FUN_02019178 + bl RemoveWindow mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DDF84 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 9b2fdf67..074ed1e0 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -1476,7 +1476,7 @@ _0223A194: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0223A2AC ; =0x02250010 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -1491,15 +1491,15 @@ _0223A194: str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223A2B0 ; =0x0225002C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -1514,15 +1514,15 @@ _0223A194: str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223A2B4 ; =0x02250048 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -1537,15 +1537,15 @@ _0223A194: str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223A2B8 ; =0x02250064 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -1560,25 +1560,25 @@ _0223A194: str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x1d - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0xa8 pop {r3, r4, r5, pc} nop @@ -1627,7 +1627,7 @@ _0223A2EE: mov r1, #2 bl FUN_02020130 ldr r0, _0223A3C8 ; =0x000006A4 - bl FUN_020054C8 + bl PlaySE b _0223A33C _0223A30A: cmp r4, #0 @@ -1640,7 +1640,7 @@ _0223A30A: mov r1, #3 bl FUN_02020130 ldr r0, _0223A3CC ; =0x000006A2 - bl FUN_020054C8 + bl PlaySE b _0223A33C _0223A326: ldr r0, _0223A3C4 ; =0x02251380 @@ -1651,7 +1651,7 @@ _0223A326: mov r1, #4 bl FUN_02020130 ldr r0, _0223A3D0 ; =0x000006A3 - bl FUN_020054C8 + bl PlaySE _0223A33C: ldr r0, _0223A3C4 ; =0x02251380 ldr r1, [r0] @@ -1747,9 +1747,9 @@ MOD18_0223A3D4: ; 0x0223A3D4 mov r0, #3 mov r1, #0x1d lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r0, #0x1d - bl FUN_02016B94 + bl BgConfig_Alloc add r4, r0, #0 ldr r0, _0223A4CC ; =0x02251380 add r1, r4, #0 @@ -1764,13 +1764,13 @@ MOD18_0223A3D4: ; 0x0223A3D4 bl MOD18_0223A188 add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] mov r0, #0x1d @@ -1843,7 +1843,7 @@ MOD18_0223A4D8: ; 0x0223A4D8 mov r1, #1 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _0223A55C ; =0x02251380 ldr r0, [r0] ldr r0, [r0, #4] @@ -1868,16 +1868,16 @@ MOD18_0223A4D8: ; 0x0223A4D8 bl MOD18_0223B6A4 mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority bl MOD18_0223C37C bl MOD18_0223C570 ldr r0, _0223A55C ; =0x02251380 @@ -1898,22 +1898,22 @@ MOD18_0223A560: ; 0x0223A560 mov r1, #0 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223A648 ; =0x02251380 mov r1, #1 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223A648 ; =0x02251380 mov r1, #2 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223A648 ; =0x02251380 mov r1, #3 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223A648 ; =0x02251380 ldr r1, [r0] mov r0, #0x57 @@ -1984,7 +1984,7 @@ _0223A5F8: ldr r0, [r0] str r1, [r0, #4] mov r0, #0x1d - bl FUN_020168D0 + bl DestroyHeap bl MOD18_0223D638 ldr r1, _0223A648 ; =0x02251380 ldr r1, [r1] @@ -2150,7 +2150,7 @@ _0223A780: mov r0, #0 str r0, [r4, #8] ldr r0, _0223AB00 ; =0x00000621 - bl FUN_020054C8 + bl PlaySE mov r0, #8 add sp, #0xc str r0, [r4] @@ -2301,7 +2301,7 @@ _0223A8A2: lsl r1, r1, #4 str r0, [r2, r1] ldr r0, _0223AB10 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE mov r0, #0x3c str r0, [r4, #0x4c] mov r0, #0xf @@ -2586,7 +2586,7 @@ _0223AB28: mov r3, #0 bl FUN_0200E1D0 ldr r0, _0223AC18 ; =0x000006A1 - bl FUN_020054C8 + bl PlaySE mov r0, #0x18 add sp, #0xc str r0, [r4] @@ -3460,7 +3460,7 @@ MOD18_0223B1A8: ; 0x0223B1A8 mov r1, #1 str r2, [sp, #0x14] str r3, [sp, #0x18] - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, [r5, r6] str r0, [sp, #0x34] ldr r0, [sp, #0x38] @@ -3612,7 +3612,7 @@ _0223B2E6: cmp r0, #1 bne _0223B3DA ldr r0, _0223B440 ; =0x000006A7 - bl FUN_020054C8 + bl PlaySE mov r0, #0 mov r4, #0 str r4, [sp, #0x18] @@ -4109,7 +4109,7 @@ MOD18_0223B6A4: ; 0x0223B6A4 sub sp, #0xc mov r1, #2 str r0, [sp] - bl FUN_0201886C + bl GetBgTilemapBuffer str r0, [sp, #8] mov r2, #0 mov r0, #4 @@ -4167,7 +4167,7 @@ _0223B6C0: blt _0223B6BA ldr r0, [sp] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0xc pop {r4, r5, r6, r7, pc} nop @@ -4536,7 +4536,7 @@ MOD18_0223B9BC: ; 0x0223B9BC ldr r3, [r3] sub r2, r2, #2 strb r1, [r3, r2] - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _0223B9E8 ; =0x02250874 mov r2, #0x30 mov r3, #0x36 @@ -4593,7 +4593,7 @@ _0223BA26: _0223BA36: add r0, r5, #0 mov r1, #1 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _0223BB40 ; =0x02251380 add r6, r0, #0 ldr r2, [r1] @@ -4617,7 +4617,7 @@ _0223BA52: mov r3, #0x36 bl MOD18_0223B948 ldr r0, _0223BB50 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0223BA82 _0223BA74: cmp r4, #3 @@ -4670,7 +4670,7 @@ _0223BAC4: mov r3, #0x36 bl MOD18_0223B948 ldr r0, _0223BB50 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0223BAF4 _0223BAE6: cmp r4, #3 @@ -4712,7 +4712,7 @@ _0223BAF4: _0223BB34: add r0, r5, #0 mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _0223BB3C: add sp, #0xc pop {r3, r4, r5, r6, pc} @@ -4757,7 +4757,7 @@ MOD18_0223BB7C: ; 0x0223BB7C ldr r1, _0223BC48 ; =0x000009E7 ldrb r4, [r2, r1] mov r1, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r5, r0, #0 asr r0, r4, #1 lsr r0, r0, #0x1e @@ -4842,7 +4842,7 @@ _0223BBD8: _0223BC38: ldr r0, [sp] mov r1, #0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -5554,7 +5554,7 @@ _0223C1B4: add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit lsl r1, r4, #0x18 ldr r6, [r7] ldr r3, _0223C1EC ; =0x000009EA @@ -5562,7 +5562,7 @@ _0223C1B4: ldrsb r3, [r6, r3] lsr r1, r1, #0x18 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, r4, #1 cmp r4, #3 blt _0223C1B4 @@ -5670,7 +5670,7 @@ _0223C29A: str r0, [r5, #0x14] bne _0223C2AC ldr r0, _0223C350 ; =0x000006A5 - bl FUN_020054C8 + bl PlaySE _0223C2AC: ldr r0, _0223C338 ; =0x02251380 ldr r2, _0223C340 ; =gMain + 0x40 @@ -6173,7 +6173,7 @@ MOD18_0223C6CC: ; 0x0223C6CC add r4, r0, #0 bl MOD18_0223C188 add r0, r4, #0 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_02009F80 pop {r4, pc} @@ -6308,7 +6308,7 @@ MOD18_0223C7B0: ; 0x0223C7B0 cmp r1, #0x53 bls _0223C7CE add r0, #0x43 - bl FUN_020054C8 + bl PlaySE ldr r0, _0223C7D0 ; =0x000005DE mov r1, #0 strh r1, [r4, r0] @@ -7254,7 +7254,7 @@ MOD18_0223CE68: ; 0x0223CE68 ldr r0, _0223CF24 ; =0x000004CC strb r2, [r1, r0] ldr r0, _0223CF28 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE ldrb r1, [r4, #4] ldrb r0, [r4, #5] mov r5, #0x63 @@ -7504,7 +7504,7 @@ _0223D07E: ldr r0, [sp] bl MOD18_02249E98 ldr r0, _0223D0E4 ; =0x00000631 - bl FUN_020054C8 + bl PlaySE ldr r0, _0223D0DC ; =0x02251384 ldr r1, [r0] ldr r0, _0223D0E0 ; =0x000004C8 @@ -7812,7 +7812,7 @@ MOD18_0223D2EC: ; 0x0223D2EC cmp r0, #0x64 bls _0223D306 ldr r0, _0223D308 ; =0x00000621 - bl FUN_020054C8 + bl PlaySE mov r0, #0 strh r0, [r4, #2] _0223D306: @@ -12090,7 +12090,7 @@ MOD18_0223F360: ; 0x0223F360 mov r2, #1 bl MOD18_0224DCB8 ldr r0, _0223F400 ; =0x00000623 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} _0223F3A4: cmp r0, #4 @@ -12474,7 +12474,7 @@ _0223F662: strh r1, [r3, r0] _0223F674: ldr r0, _0223F6F4 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE bl MOD18_0223D638 add r5, r0, #0 ldrb r0, [r4, #7] @@ -12821,7 +12821,7 @@ _0223F926: bl FUN_02026CB4 add r6, r0, #0 ldr r0, _0223FA64 ; =0x00000622 - bl FUN_020054C8 + bl PlaySE ldr r1, _0223FA60 ; =0x022513A0 add r0, r4, #0 ldr r2, [r1, #4] @@ -13338,7 +13338,7 @@ _0223FD12: mov r0, #0x10 bl FUN_0204F774 ldr r0, _0223FD50 ; =0x00000609 - bl FUN_020054C8 + bl PlaySE ldr r0, _0223FD44 ; =0x022513A0 mov r2, #0 ldr r1, [r0, #4] @@ -13997,7 +13997,7 @@ _02240190: ldr r2, [r4, #0x18] bl FUN_0204E214 ldr r0, _0224020C ; =0x0000065F - bl FUN_020054C8 + bl PlaySE mov r0, #5 add sp, #8 str r0, [r4] @@ -14341,7 +14341,7 @@ _02240442: cmp r0, #0 bne _02240456 ldr r0, _0224045C ; =0x00000629 - bl FUN_020054C8 + bl PlaySE _02240456: add sp, #0x24 pop {r4, r5, r6, r7, pc} @@ -14378,7 +14378,7 @@ _02240480: ldr r0, [r0, #4] ldr r0, [r0, #0x40] ldr r0, [r0, #8] - bl FUN_0201886C + bl GetBgTilemapBuffer mov r3, #0 mov r1, #2 add r2, r3, #0 @@ -14390,7 +14390,7 @@ _022404A4: blt _022404A4 mov r0, #2 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #4 mov r1, #0 bl GX_EngineAToggleLayers @@ -14430,7 +14430,7 @@ MOD18_022404F4: ; 0x022404F4 mov r1, #2 add r6, r2, #0 mov r4, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r5, r0, #0 bne _02240512 add sp, #8 @@ -14450,7 +14450,7 @@ _02240512: bl MOD18_02240388 ldr r0, [sp, #4] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _02240532: ldrh r0, [r7] mov r2, #0 @@ -14764,16 +14764,16 @@ _0224072E: _02240774: mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r4] add sp, #0x1c add r0, r0, #1 @@ -14804,7 +14804,7 @@ _0224079E: mov r0, #0 str r0, [r4, #0x1c] ldr r0, _02240890 ; =0x00000661 - bl FUN_020054C8 + bl PlaySE add sp, #0x1c pop {r3, r4, pc} _022407DE: @@ -15289,7 +15289,7 @@ MOD18_02240B90: ; 0x02240B90 cmp r0, #0xa0 bls _02240BAE ldr r0, _02240BB4 ; =0x00000621 - bl FUN_020054C8 + bl PlaySE ldr r0, _02240BB0 ; =0x000001E2 mov r1, #0 strh r1, [r4, r0] @@ -15879,7 +15879,7 @@ MOD18_02241008: ; 0x02241008 mov r0, #0xe str r0, [r1] ldr r0, _02241034 ; =0x0000060B - bl FUN_020054C8 + bl PlaySE _0224102C: pop {r4, pc} nop @@ -16069,7 +16069,7 @@ _0224118C: cmp r0, r5 beq _022411A6 ldr r0, _02241284 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE _022411A6: str r5, [r4, #0x18] mov r0, #0 @@ -17996,7 +17996,7 @@ _0224205A: str r1, [r4, r0] mov r0, #0x66 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE add sp, #0x10 pop {r4, pc} _0224209A: @@ -18485,7 +18485,7 @@ _0224240A: cmp r1, r0 ble _022424B6 ldr r0, _0224258C ; =0x00000626 - bl FUN_020054C8 + bl PlaySE ldr r0, _02242590 ; =0x022513A0 lsl r4, r5, #2 ldr r0, [r0, #4] @@ -19226,7 +19226,7 @@ _02242A20: add r1, #0x11 strb r0, [r4, r1] ldr r0, _02242D6C ; =0x0000065E - bl FUN_020054C8 + bl PlaySE b _02242E6C _02242A68: sub r1, r0, #1 @@ -19282,7 +19282,7 @@ _02242A98: add r0, r1, #5 strb r2, [r4, r0] ldr r0, _02242D70 ; =0x0000065D - bl FUN_020054C8 + bl PlaySE ldr r0, _02242D68 ; =0x022513A0 ldr r1, [r0, #4] ldr r0, _02242D74 ; =0x00000B3B @@ -19373,7 +19373,7 @@ _02242B22: lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _02242D7C ; =0x00000627 - bl FUN_020054C8 + bl PlaySE mov r0, #0x46 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -19525,7 +19525,7 @@ _02242CAA: b _02242DD2 _02242CB4: ldr r0, _02242D80 ; =0x0000062A - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x11 add r0, #0xf8 @@ -20480,7 +20480,7 @@ _0224343A: add r0, r0, #1 str r0, [r5, #0x24] ldr r0, _02243538 ; =0x00000628 - bl FUN_020054C8 + bl PlaySE b _0224345C _02243454: add r0, r5, #0 @@ -21627,7 +21627,7 @@ _02243D2C: bl GXx_SetMasterBrightness_ bl FUN_0204F7E4 ldr r0, _02243E0C ; =0x00000621 - bl FUN_020054C8 + bl PlaySE ldr r1, _02243E10 ; =0x022513A0 mov r0, #0x20 ldr r1, [r1, #4] @@ -22188,7 +22188,7 @@ _0224418A: b _022442CA _0224418C: ldr r0, _02244314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, sp, #0xc ldrh r1, [r0, #2] ldrh r0, [r0] @@ -22328,7 +22328,7 @@ _0224428C: tst r0, r1 beq _022442CA ldr r0, _02244314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, sp, #0xc ldrh r3, [r0, #2] ldrh r1, [r0] @@ -22366,7 +22366,7 @@ _022442CA: cmp r6, r0 beq _022442EA ldr r0, _02244314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _022442EA: mov r0, #1 mvn r0, r0 @@ -22378,11 +22378,11 @@ _022442EA: b _02244302 _022442FA: ldr r0, _02244314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02244308 _02244302: ldr r0, _02244314 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02244308: add r0, r4, #0 add sp, #0x10 @@ -22606,7 +22606,7 @@ _022444AC: bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r0, [r4] add sp, #0x60 add r0, r0, #1 @@ -22711,10 +22711,10 @@ _02244588: mov r0, #0x39 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, [sp, #0x2c] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [sp, #0x2c] bl MOD18_02244858 mov r0, #0xeb @@ -23066,10 +23066,10 @@ MOD18_02244858: ; 0x02244858 push {r4, lr} add r4, r0, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD18_02244858 @@ -23098,7 +23098,7 @@ MOD18_0224486C: ; 0x0224486C str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineBToggleLayers @@ -23116,7 +23116,7 @@ MOD18_0224486C: ; 0x0224486C str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0 bl GX_EngineBToggleLayers @@ -23134,13 +23134,13 @@ MOD18_0224486C: ; 0x0224486C str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #8 mov r1, #0 bl GX_EngineBToggleLayers add r0, r5, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x40 mov r1, #0 str r0, [sp] @@ -23180,7 +23180,7 @@ MOD18_0224486C: ; 0x0224486C mov r1, #0x20 mov r2, #0 mov r3, #4 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 add r1, r4, #0 mov r2, #7 @@ -25585,7 +25585,7 @@ MOD18_02245B1C: ; 0x02245B1C strb r0, [r3, #0xb] add r0, r6, #0 add r2, r7, #0 - bl FUN_02019150 + bl AddWindow ldr r0, [sp, #0x14] ldr r2, [sp, #8] ldr r3, [sp, #0xc] @@ -26866,7 +26866,7 @@ _02246580: ldr r0, [r5, #0x68] bl MOD18_0224484C ldr r0, _02246850 ; =0x00000603 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] @@ -27078,7 +27078,7 @@ _0224672E: add r3, r2, #0 bl MOD18_0224DCB8 ldr r0, _02246860 ; =0x00000604 - bl FUN_020054C8 + bl PlaySE mov r0, #0xc str r0, [r4, #0xc] b _02246848 @@ -27260,7 +27260,7 @@ _022468CC: mov r1, #0x21 bl MOD18_0224DDE8 ldr r0, _02246AD0 ; =0x0000061E - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x38] bl FUN_020553A0 add r1, r7, #0 @@ -28575,7 +28575,7 @@ _0224735C: add r3, r2, #0 bl MOD18_0224DCB8 ldr r0, _0224740C ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE mov r0, #1 add sp, #0xc str r0, [r4] @@ -29508,7 +29508,7 @@ MOD18_02247A34: ; 0x02247A34 add r0, #0x28 strb r1, [r0] ldr r0, _02247A9C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 bl MOD18_022479E4 @@ -29549,7 +29549,7 @@ MOD18_02247AA8: ; 0x02247AA8 add r1, #0xc ldr r0, [r0, #8] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02247B54 ; =0x000003D9 add r0, #0xc @@ -29675,7 +29675,7 @@ MOD18_02247BB8: ; 0x02247BB8 add r1, #0xc ldr r0, [r0, #8] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02247C8C ; =0x000003D9 add r0, #0xc @@ -29797,7 +29797,7 @@ _02247CDA: pop {r3, r4, r5, r6, pc} _02247CE0: ldr r0, _02247D18 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, sp, #0 strb r4, [r0] ldrh r1, [r5, #0x30] @@ -29848,7 +29848,7 @@ MOD18_02247D1C: ; 0x02247D1C add r1, #0xc ldr r0, [r0, #8] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02247DCC ; =0x000003D9 add r0, #0xc @@ -29949,7 +29949,7 @@ _02247E18: pop {r3, r4, r5, r6, pc} _02247E1E: ldr r0, _02247E9C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 add r1, r5, #0 bl MOD18_02247FC0 @@ -30036,7 +30036,7 @@ MOD18_02247EA0: ; 0x02247EA0 ldrb r0, [r4] bl MOD18_022493A4 ldr r0, _02247EF4 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _02247EF4: .word 0x000005E3 @@ -30123,7 +30123,7 @@ _02247F7C: pop {r4, r5, r6, pc} _02247F8E: ldr r0, _02247FBC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_0224865C add r0, r6, #0 @@ -30132,7 +30132,7 @@ _02247F8E: b _02247FB6 _02247FA4: ldr r0, _02247FBC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 blx r4 add r0, r6, #0 @@ -30162,10 +30162,10 @@ MOD18_02247FC0: ; 0x02247FC0 bl DestroyListMenu add r0, r4, #0 add r0, #0xc - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0xc - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x1c] bl ListMenuItems_dtor mov r0, #0 @@ -31045,7 +31045,7 @@ MOD18_022486B8: ; 0x022486B8 bl FUN_02026CB4 bl FUN_02026B90 ldr r0, _0224873C ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x16 bl MOD18_022479BC @@ -31138,10 +31138,10 @@ MOD18_02248784: ; 0x02248784 bl DestroyListMenu add r0, r4, #0 add r0, #8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x18] bl ListMenuItems_dtor mov r0, #0 @@ -31219,7 +31219,7 @@ MOD18_02248820: ; 0x02248820 ldr r0, [r5, #4] mov r2, #3 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _022488E4 ; =0x000003D9 add r0, #8 @@ -31309,7 +31309,7 @@ MOD18_022488F0: ; 0x022488F0 cmp r6, r0 beq _02248916 ldr r0, _022489C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02248916: bl FUN_020311F0 cmp r0, #0 @@ -31330,7 +31330,7 @@ _02248934: mov r4, #0x33 _02248936: ldr r0, _022489C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r7, #0 add r1, r5, #0 bl MOD18_02248784 @@ -32218,7 +32218,7 @@ MOD18_02248FEC: ; 0x02248FEC cmp r4, r0 beq _02249008 ldr r0, _0224900C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02249008: pop {r3, r4, r5, pc} nop @@ -32867,7 +32867,7 @@ MOD18_022494C8: ; 0x022494C8 add r5, r0, #0 ldr r0, _02249534 ; =0x000005FD add r6, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #2 bl MOD18_0223E56C mov r1, #0x25 @@ -32961,7 +32961,7 @@ MOD18_02249564: ; 0x02249564 ldr r0, [r0, #8] mov r2, #3 mov r3, #0x14 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02249678 ; =0x000003D9 add r0, #0x10 @@ -33051,7 +33051,7 @@ _022495EE: str r0, [r5, #0x48] add r0, r5, #0 add r0, #0x10 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r1, sp, #0x18 mov r2, #7 @@ -33399,7 +33399,7 @@ _02249916: _02249936: add r0, r4, #0 add r0, #0x10 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02249968 add r0, r4, #0 @@ -33408,10 +33408,10 @@ _02249936: bl FUN_0200CCF8 ldrb r1, [r4, #0x14] ldr r0, [r4, #0x10] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x40] bl ListMenuItems_dtor add r0, r4, #0 @@ -33480,7 +33480,7 @@ _022499A2: add r1, #0x20 mov r2, #3 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02249A5C ; =0x000003D9 add r0, #0x20 @@ -33557,7 +33557,7 @@ MOD18_02249A64: ; 0x02249A64 add r1, #0x24 ldrb r1, [r1] ldr r0, [r4, #0x20] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x44] bl ListMenuItems_dtor mov r0, #0 @@ -33565,7 +33565,7 @@ MOD18_02249A64: ; 0x02249A64 _02249A8C: add r0, r4, #0 add r0, #0x20 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02249AAA add r0, r4, #0 @@ -33574,7 +33574,7 @@ _02249A8C: bl FUN_0200CCF8 add r4, #0x20 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _02249AAA: pop {r4, pc} thumb_func_end MOD18_02249A64 @@ -33746,7 +33746,7 @@ MOD18_02249BA8: ; 0x02249BA8 ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _02249CB8 ; =0x000003D9 add r0, #0x10 @@ -33971,7 +33971,7 @@ MOD18_02249DB8: ; 0x02249DB8 cmp r6, r0 beq _02249DE2 ldr r0, _02249E80 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02249DE2: mov r0, #1 mvn r0, r0 @@ -33984,7 +33984,7 @@ _02249DE2: pop {r4, r5, r6, pc} _02249DF4: ldr r0, _02249E80 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_02249A64 add r0, r5, #0 @@ -34007,7 +34007,7 @@ _02249E0E: lsr r0, r0, #0x18 bl MOD18_0223EF60 ldr r0, _02249E8C ; =0x00000631 - bl FUN_020054C8 + bl PlaySE ldr r0, _02249E84 ; =0x00000246 mov r1, #3 strb r1, [r5, r0] @@ -34016,7 +34016,7 @@ _02249E3A: cmp r4, #2 bne _02249E7C ldr r0, _02249E80 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02249E88 ; =0x022513F8 ldr r0, [r0] ldrb r0, [r0, #5] @@ -34213,7 +34213,7 @@ MOD18_02249F8C: ; 0x02249F8C ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224A0DC ; =0x000003D9 add r0, #0x10 @@ -34448,7 +34448,7 @@ MOD18_0224A1C0: ; 0x0224A1C0 cmp r6, r0 beq _0224A1EA ldr r0, _0224A2A0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224A1EA: mov r0, #1 mvn r0, r0 @@ -34461,7 +34461,7 @@ _0224A1EA: pop {r4, r5, r6, pc} _0224A1FC: ldr r0, _0224A2A0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_02249A64 add r0, r5, #0 @@ -34501,7 +34501,7 @@ _0224A25A: cmp r4, #2 bne _0224A28C ldr r0, _0224A2A0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224A2A8 ; =0x022513F8 ldr r0, [r0] ldrb r0, [r0, #5] @@ -34662,7 +34662,7 @@ MOD18_0224A360: ; 0x0224A360 ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224A46C ; =0x000003D9 add r0, #0x10 @@ -34872,7 +34872,7 @@ MOD18_0224A550: ; 0x0224A550 cmp r6, r0 beq _0224A57A ldr r0, _0224A694 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224A57A: mov r0, #1 mvn r0, r0 @@ -34885,7 +34885,7 @@ _0224A57A: pop {r4, r5, r6, pc} _0224A58C: ldr r0, _0224A694 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_02249A64 add r0, r5, #0 @@ -34909,7 +34909,7 @@ _0224A5A6: bl Sav2_Bag_get add r6, r0, #0 ldr r0, _0224A694 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE lsl r1, r4, #0x10 add r0, r6, #0 lsr r1, r1, #0x10 @@ -34967,7 +34967,7 @@ _0224A64A: cmp r4, #2 bne _0224A67E ldr r0, _0224A694 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224A69C ; =0x022513F8 ldr r1, [r0] ldr r0, [r1] @@ -35600,7 +35600,7 @@ MOD18_0224AB08: ; 0x0224AB08 ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224AC14 ; =0x000003D9 add r0, #0x10 @@ -35745,7 +35745,7 @@ _0224AC78: pop {r3, r4, r5, pc} _0224AC8A: ldr r0, _0224ACF8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_02249AAC b _0224ACF2 @@ -35814,7 +35814,7 @@ MOD18_0224AD04: ; 0x0224AD04 cmp r6, r0 beq _0224AD2E ldr r0, _0224ADA8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224AD2E: mov r0, #1 mvn r0, r0 @@ -35827,7 +35827,7 @@ _0224AD2E: pop {r4, r5, r6, pc} _0224AD40: ldr r0, _0224ADA8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD18_02249A64 add r0, r5, #0 @@ -35842,7 +35842,7 @@ _0224AD5A: cmp r4, #2 bne _0224AD94 ldr r0, _0224ADA8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224ADB0 ; =0x022513F8 ldr r1, [r0] ldr r0, [r1] @@ -36347,7 +36347,7 @@ MOD18_0224B128: ; 0x0224B128 cmp r1, r0 bne _0224B15C ldr r0, _0224B184 ; =0x0000060C - bl FUN_020054C8 + bl PlaySE bl FUN_0204F7E4 add r0, r4, #0 bl MOD18_0224BD54 @@ -36528,7 +36528,7 @@ _0224B29E: pop {r3, r4, r5, pc} _0224B2AA: ldr r0, _0224B344 ; =0x0000060E - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B348 ; =0x00000246 mov r1, #2 strb r1, [r4, r0] @@ -36570,28 +36570,28 @@ _0224B2F2: b _0224B33E _0224B308: ldr r0, _0224B34C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B348 ; =0x00000246 mov r1, #8 strb r1, [r4, r0] b _0224B33E _0224B316: ldr r0, _0224B34C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B348 ; =0x00000246 mov r1, #6 strb r1, [r4, r0] b _0224B33E _0224B324: ldr r0, _0224B34C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B348 ; =0x00000246 mov r1, #0x11 strb r1, [r4, r0] b _0224B33E _0224B332: ldr r0, _0224B34C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B348 ; =0x00000246 mov r1, #0x14 strb r1, [r4, r0] @@ -36646,7 +36646,7 @@ _0224B374: ldr r0, [r5, #0xc] mov r3, #0x11 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224B460 ; =0x000003D9 add r0, #0x10 @@ -36769,7 +36769,7 @@ MOD18_0224B464: ; 0x0224B464 str r0, [sp, #0x10] ldr r0, [r5, #0xc] ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224B55C ; =0x000003D9 add r0, #0x10 @@ -36898,7 +36898,7 @@ _0224B5A6: pop {r3, r4, r5, pc} _0224B5B0: ldr r0, _0224B60C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224B610 ; =0x00000246 mov r1, #0 strb r1, [r5, r0] @@ -37247,7 +37247,7 @@ _0224B874: ; jump table .short _0224B946 - _0224B874 - 2 ; case 5 _0224B880: ldr r0, _0224B978 ; =0x0000060D - bl FUN_020054C8 + bl PlaySE mov r1, #0 mov r0, #6 str r0, [sp] @@ -37297,7 +37297,7 @@ _0224B8D8: b _0224B970 _0224B8EE: ldr r0, _0224B97C ; =0x0000060E - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 @@ -38073,7 +38073,7 @@ MOD18_0224BF84: ; 0x0224BF84 cmp r4, r0 beq _0224BFA2 ldr r0, _0224BFA8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224BFA2: pop {r3, r4, r5, pc} .align 2, 0 @@ -38480,7 +38480,7 @@ _0224C288: ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224C414 ; =0x000003D9 add r0, #0x10 @@ -39102,7 +39102,7 @@ MOD18_0224C7D4: ; 0x0224C7D4 ldr r0, [r5, #0xc] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224C934 ; =0x000003D9 add r0, #0x10 @@ -39250,7 +39250,7 @@ MOD18_0224C94C: ; 0x0224C94C push {r4, lr} add r4, r0, #0 add r0, #0x20 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0224C96C add r0, r4, #0 @@ -39259,7 +39259,7 @@ MOD18_0224C94C: ; 0x0224C94C bl FUN_0200CCF8 add r0, r4, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow _0224C96C: add r0, r4, #0 bl MOD18_022498EC @@ -39462,7 +39462,7 @@ MOD18_0224CADC: ; 0x0224CADC sub sp, #0x14 add r4, r0, #0 add r0, #0x20 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0224CB1A mov r0, #0xc @@ -39479,7 +39479,7 @@ MOD18_0224CADC: ; 0x0224CADC ldr r0, [r0, #8] add r1, #0x20 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 ldr r2, _0224CB30 ; =0x000003D9 add r0, #0x20 @@ -39521,7 +39521,7 @@ MOD18_0224CB34: ; 0x0224CB34 ldr r0, [r0, #8] add r1, #0x30 mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224CBA8 ; =0x000003D9 add r0, #0x30 @@ -39560,7 +39560,7 @@ MOD18_0224CBAC: ; 0x0224CBAC push {r4, lr} add r4, r0, #0 add r0, #0x30 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0224CBCC add r0, r4, #0 @@ -39569,7 +39569,7 @@ MOD18_0224CBAC: ; 0x0224CBAC bl FUN_0200CCF8 add r4, #0x30 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _0224CBCC: pop {r4, pc} .align 2, 0 @@ -39702,7 +39702,7 @@ _0224CC8E: cmp r6, r0 beq _0224CCC8 ldr r0, _0224CF58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224CCC8: mov r0, #1 mvn r0, r0 @@ -39717,7 +39717,7 @@ _0224CCD8: b _0224CCF2 _0224CCDA: ldr r0, _0224CF58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 bl MOD18_0224C94C @@ -39746,14 +39746,14 @@ _0224CD0C: cmp r5, #0 ldr r0, _0224CF58 ; =0x000005DC bne _0224CD24 - bl FUN_020054C8 + bl PlaySE ldr r0, _0224CF50 ; =0x00000246 mov r1, #4 add sp, #8 strb r1, [r4, r0] pop {r4, r5, r6, pc} _0224CD24: - bl FUN_020054C8 + bl PlaySE ldr r0, _0224CF50 ; =0x00000246 mov r1, #0xb add sp, #8 @@ -39798,7 +39798,7 @@ _0224CD48: cmp r6, r0 beq _0224CD8C ldr r0, _0224CF58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224CD8C: mov r0, #1 mvn r0, r0 @@ -39823,7 +39823,7 @@ _0224CDA6: b _0224CDCE _0224CDB6: ldr r0, _0224CF58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #1 bl MOD18_0224C94C @@ -39834,7 +39834,7 @@ _0224CDB6: pop {r4, r5, r6, pc} _0224CDCE: ldr r0, _0224CF58 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224CF50 ; =0x00000246 mov r1, #0x12 strb r1, [r4, r0] @@ -40051,7 +40051,7 @@ _0224CF92: mov r0, #6 bl MOD18_0224CA58 ldr r0, _0224D1D4 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE ldr r0, _0224D1D8 ; =0x00000246 mov r1, #9 add sp, #8 @@ -40273,7 +40273,7 @@ _0224D14E: mov r0, #7 bl MOD18_0224CA58 ldr r0, _0224D1D4 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE ldr r0, _0224D1D8 ; =0x00000246 mov r1, #9 add sp, #8 @@ -40374,7 +40374,7 @@ MOD18_0224D1F8: ; 0x0224D1F8 mov r1, #0 strb r1, [r6, r0] ldr r0, _0224D2E0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0224D2E4 ; =MOD18_0224CC04 ldr r2, _0224D2E8 ; =0x00002710 add r1, r6, #0 @@ -40739,10 +40739,10 @@ MOD18_0224D56C: ; 0x0224D56C bl FUN_0200CCF8 add r0, r4, #0 add r0, #8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow ldr r1, [r4] cmp r1, #0 beq _0224D596 @@ -40811,7 +40811,7 @@ MOD18_0224D5CC: ; 0x0224D5CC add r1, #8 mov r2, #3 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 ldr r2, _0224D684 ; =0x000003D9 add r0, #8 @@ -40847,9 +40847,9 @@ _0224D64A: bl MOD18_0224D364 add r0, r4, #0 add r0, #8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _0224D690 ; =0x000005FD - bl FUN_020054C8 + bl PlaySE ldr r0, _0224D694 ; =MOD18_0224D5B4 add r1, r4, #0 mov r2, #0xa @@ -41315,7 +41315,7 @@ MOD18_0224DA00: ; 0x0224DA00 add r1, #8 mov r2, #3 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224DA9C ; =0x000003D9 add r0, #8 @@ -41343,10 +41343,10 @@ MOD18_0224DA00: ; 0x0224DA00 add r1, r4, #0 bl MOD18_0224D814 ldr r0, _0224DAA4 ; =0x000005FD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 bl DestroyMsgData add r0, r5, #0 @@ -41367,10 +41367,10 @@ MOD18_0224DAA8: ; 0x0224DAA8 bl FUN_0200CCF8 add r0, r4, #0 add r0, #8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow ldr r1, [r4] cmp r1, #0 beq _0224DACE @@ -41568,7 +41568,7 @@ MOD18_0224DC08: ; 0x0224DC08 bl MOD18_0223D688 add r0, r5, #0 add r0, #8 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0224DC4C mov r0, #0x13 @@ -41586,7 +41586,7 @@ MOD18_0224DC08: ; 0x0224DC08 add r1, #8 mov r2, #3 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized _0224DC4C: add r0, r5, #0 add r0, #8 @@ -41732,10 +41732,10 @@ _0224DD4C: bl FUN_0200D0E0 add r0, r5, #0 add r0, #8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow b _0224DD76 _0224DD6C: add r0, r5, #0 @@ -42303,7 +42303,7 @@ MOD18_0224E0CC: ; 0x0224E0CC ldr r0, [r5] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized mov r3, #1 add r1, r5, #0 str r3, [sp] @@ -42319,7 +42319,7 @@ MOD18_0224E0CC: ; 0x0224E0CC ldr r0, [r5] mov r2, #3 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized ldr r2, _0224E1FC ; =0x000003D9 add r0, r5, #4 mov r1, #1 @@ -42449,23 +42449,23 @@ _0224E22A: pop {r3, r4, r5, pc} _0224E23A: ldr r0, _0224E268 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE str r4, [r5, #0x3c] mov r0, #2 add r5, #0x38 strb r0, [r5] ldr r0, _0224E268 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _0224E250: ldr r0, _0224E268 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE str r4, [r5, #0x3c] mov r0, #2 add r5, #0x38 strb r0, [r5] ldr r0, _0224E268 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _0224E268: .word 0x000005DC @@ -42490,12 +42490,12 @@ MOD18_0224E26C: ; 0x0224E26C bl FUN_0200CCF8 ldrb r1, [r4, #8] ldr r0, [r4, #4] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #4 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x14 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x24] bl ListMenuItems_dtor pop {r4, pc} @@ -42673,7 +42673,7 @@ _0224E3CC: add r5, #0x42 strb r0, [r5] ldr r0, _0224E3EC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} _0224E3DC: str r4, [r5, #0x44] @@ -42681,7 +42681,7 @@ _0224E3DC: add r5, #0x42 strb r0, [r5] ldr r0, _0224E3EC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _0224E3EC: .word 0x000005DC @@ -42761,7 +42761,7 @@ _0224E454: ldr r0, [r5] mov r3, #0x13 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized mov r3, #1 add r1, r5, #0 str r3, [sp] @@ -42777,7 +42777,7 @@ _0224E454: ldr r0, [r5] mov r2, #3 ldr r0, [r0, #8] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 ldr r2, _0224E688 ; =0x000003D9 add r0, #8 @@ -43018,13 +43018,13 @@ MOD18_0224E6A8: ; 0x0224E6A8 bl FUN_0200CCF8 ldrb r1, [r4, #0xc] ldr r0, [r4, #8] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r4, #0 add r0, #8 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x28] bl ListMenuItems_dtor ldr r0, [r4, #4] @@ -43085,7 +43085,7 @@ MOD18_0224E73C: ; 0x0224E73C cmp r4, r0 beq _0224E75C ldr r0, _0224E760 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0224E75C: pop {r3, r4, r5, pc} nop @@ -43226,7 +43226,7 @@ _0224E848: ; jump table _0224E858: mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl MOD18_0224E01C ldr r3, _0224E940 ; =0x00000504 add r1, r6, #0 @@ -43775,7 +43775,7 @@ _0224ECB6: add r2, r7, #0 bl FUN_02025EDC ldr r0, _0224EDD0 ; =0x000005FE - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x50] bl MOD18_02247138 mov r0, #0xb @@ -43797,7 +43797,7 @@ _0224ECB6: b _0224EDBA _0224ED26: ldr r0, _0224EDD8 ; =0x00000602 - bl FUN_020054C8 + bl PlaySE mov r0, #0xc bl MOD18_02247118 str r0, [r4, #8] @@ -43973,7 +43973,7 @@ _0224EE52: beq _0224EEB4 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 sub r6, r6, r0 @@ -43990,7 +43990,7 @@ _0224EEB4: beq _0224EED6 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 add r6, r6, r0 @@ -44007,7 +44007,7 @@ _0224EED6: beq _0224EEF8 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 sub r5, r5, r0 @@ -44024,7 +44024,7 @@ _0224EEF8: beq _0224EF1A add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 add r5, r5, r0 @@ -44203,7 +44203,7 @@ _0224F04E: _0224F06E: mov r0, #0x19 lsl r0, r0, #6 - bl FUN_020054C8 + bl PlaySE mov r0, #0xe bl MOD18_02247118 str r0, [r4, #8] @@ -44231,7 +44231,7 @@ _0224F09E: bl FUN_02026CC4 add r5, r0, #0 ldr r0, _0224F15C ; =0x000005EB - bl FUN_020054C8 + bl PlaySE ldr r1, [sp, #4] add r0, r5, #0 bl FUN_02025F30 @@ -44520,7 +44520,7 @@ _0224F2BE: beq _0224F320 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 sub r6, r6, r0 @@ -44537,7 +44537,7 @@ _0224F320: beq _0224F342 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 add r6, r6, r0 @@ -44554,7 +44554,7 @@ _0224F342: beq _0224F364 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 sub r4, r4, r0 @@ -44571,7 +44571,7 @@ _0224F364: beq _0224F386 add r1, #0xe9 add r0, r1, #0 - bl FUN_020054C8 + bl PlaySE mov r0, #1 lsl r0, r0, #0x10 add r4, r4, r0 @@ -44729,7 +44729,7 @@ _0224F4A2: add r1, #0x5c bl MOD18_0224F8CC ldr r0, _0224F524 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE ldr r0, _0224F51C ; =0x000004FC ldr r0, [r5, r0] bl MOD18_0224FBF8 @@ -44977,7 +44977,7 @@ _0224F692: add r2, #0x5c bl MOD18_0224F890 ldr r0, _0224F764 ; =0x000005FE - bl FUN_020054C8 + bl PlaySE ldr r2, _0224F768 ; =0x000004FC ldr r0, [r4, #0x3c] ldr r1, [r4, #0x40] @@ -44996,7 +44996,7 @@ _0224F692: b _0224F750 _0224F6E0: ldr r0, _0224F76C ; =0x00000602 - bl FUN_020054C8 + bl PlaySE mov r0, #0xc bl MOD18_02247118 str r0, [r4, #8] @@ -47317,4 +47317,3 @@ MOD18_022513F8: ; 0x022513F8 .global MOD18_022513FC MOD18_022513FC: ; 0x022513FC .space 0x4 - diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s deleted file mode 100644 index 8f3a28ce..00000000 --- a/arm9/modules/19/asm/module_19.s +++ /dev/null @@ -1,111 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 4, 0 - - thumb_func_start MOD19_02252440 -MOD19_02252440: ; 0x02252440 - push {r4, lr} - sub sp, #0x10 - add r4, r0, #0 - mov r0, #3 - mov r1, #8 - lsl r2, r0, #0xf - bl FUN_0201681C - mov r0, #0 - bl GXS_SetGraphicsMode - mov r0, #0x80 - bl GX_SetBankForSubBG - mov r0, #1 - lsl r0, r0, #8 - bl GX_SetBankForSubOBJ - ldr r2, _022524E0 ; =0x04001000 - ldr r0, _022524E4 ; =0xFFCFFFEF - ldr r1, [r2] - mov r3, #0 - and r1, r0 - mov r0, #0x10 - orr r0, r1 - str r0, [r2] - ldr r2, _022524E8 ; =0x02252508 - add r0, r4, #0 - mov r1, #4 - bl FUN_02016C18 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #8 - str r0, [sp, #0xc] - mov r0, #0xc - mov r1, #0xa - add r2, r4, #0 - mov r3, #4 - bl GfGfxLoader_LoadCharData - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #8 - str r0, [sp, #0xc] - mov r0, #0xc - mov r1, #0xb - add r2, r4, #0 - mov r3, #4 - bl GfGfxLoader_LoadScrnData - mov r0, #0x20 - str r0, [sp] - mov r0, #8 - str r0, [sp, #4] - mov r0, #0xc - add r1, r0, #0 - mov r2, #4 - mov r3, #0 - bl GfGfxLoader_GXLoadPal - ldr r2, _022524E0 ; =0x04001000 - ldr r0, _022524EC ; =0xFFFF1FFF - ldr r1, [r2] - and r0, r1 - str r0, [r2] - ldr r1, [r2] - ldr r0, _022524F0 ; =0xFFFFE0FF - and r1, r0 - lsr r0, r2, #0x12 - orr r0, r1 - str r0, [r2] - add sp, #0x10 - pop {r4, pc} - .align 2, 0 -_022524E0: .word 0x04001000 -_022524E4: .word 0xFFCFFFEF -_022524E8: .word MOD19_02252508 -_022524EC: .word 0xFFFF1FFF -_022524F0: .word 0xFFFFE0FF - thumb_func_end MOD19_02252440 - - thumb_func_start MOD19_022524F4 -MOD19_022524F4: ; 0x022524F4 - push {r3, lr} - mov r1, #4 - bl FUN_020178A0 - mov r0, #8 - bl FUN_020168D0 - pop {r3, pc} - thumb_func_end MOD19_022524F4 - - thumb_func_start MOD19_02252504 -MOD19_02252504: ; 0x02252504 - mov r0, #1 - bx lr - thumb_func_end MOD19_02252504 - - .rodata - .global MOD19_02252508 -MOD19_02252508: ; 0x02252508 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .data - .bss diff --git a/arm9/modules/19/src/module_19.c b/arm9/modules/19/src/module_19.c new file mode 100644 index 00000000..1fc6197e --- /dev/null +++ b/arm9/modules/19/src/module_19.c @@ -0,0 +1,47 @@ +#include "global.h"
+#include "heap.h"
+#include "gx.h"
+#include "gf_gfx_loader.h"
+#include "bg_window.h"
+#include "graphic/poketch.naix"
+
+const struct BgTemplate MOD19_02252508 = {
+ .x = 0,
+ .y = 0,
+ .bufferSize = 0x800,
+ .baseTile = 0x000,
+ .size = GF_BG_SCR_SIZE_256x256,
+ .colorMode = GF_BG_CLR_4BPP,
+ .screenBase = 12,
+ .charBase = 0,
+ .priority = 0,
+ .areaOver = 0,
+ .mosaic = 0
+};
+
+THUMB_FUNC void MOD19_02252440(struct BgConfig * bgConfig)
+{
+ CreateHeap(3, 8, 0x18000);
+ GXS_SetGraphicsMode(GX_BGMODE_0);
+ GX_SetBankForSubBG(0x80);
+ GX_SetBankForSubOBJ(0x100);
+ GXS_SetOBJVRamModeChar(GX_OBJVRAMMODE_CHAR_1D_32K);
+ InitBgFromTemplate(bgConfig, GF_BG_LYR_SUB_0, &MOD19_02252508, GF_BG_TYPE_TEXT);
+ GfGfxLoader_LoadCharData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0010_NCGR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8);
+ GfGfxLoader_LoadScrnData(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0011_NSCR_lz, bgConfig, GF_BG_LYR_SUB_0, 0, 0, TRUE, 8);
+ GfGfxLoader_GXLoadPal(NARC_GRAPHIC_POKETCH, NARC_poketch_narc_0012_NCLR, GF_BG_LYR_SUB_0, 0x00, 0x20, 8);
+ GXS_SetVisibleWnd(GX_WNDMASK_NONE);
+ GXS_SetVisiblePlane(GX_PLANEMASK_BG0);
+}
+
+THUMB_FUNC void MOD19_022524F4(struct BgConfig * bgConfig)
+{
+ FreeBgTilemapBuffer(bgConfig, GF_BG_LYR_SUB_0);
+ DestroyHeap(8);
+}
+
+THUMB_FUNC BOOL MOD19_02252504(struct BgConfig * bgConfig)
+{
+#pragma unused(bgConfig)
+ return TRUE;
+}
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index a77f95fc..c957045f 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -21,11 +21,11 @@ MOD20_02252448: ; 0x02252448 mov r1, #7 lsl r2, r0, #0xe add r7, r3, #0 - bl FUN_0201681C + bl CreateHeap mov r0, #3 mov r1, #8 lsl r2, r0, #0xe - bl FUN_0201681C + bl CreateHeap mov r0, #7 mov r1, #0x60 bl AllocFromHeap @@ -238,9 +238,9 @@ _022525C6: add r0, r5, #0 bl FUN_0200CAB4 mov r0, #7 - bl FUN_020168D0 + bl DestroyHeap mov r0, #8 - bl FUN_020168D0 + bl DestroyHeap pop {r3, r4, r5, pc} .align 2, 0 _022525EC: .word MOD20_022544CC @@ -889,7 +889,7 @@ _02252A50: cmp r7, #1 bne _02252AEA ldr r0, _02252AEC ; =0x0000066E - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, r6, r7, pc} _02252A6A: mov r4, #0 @@ -1017,7 +1017,7 @@ MOD20_02252B28: ; 0x02252B28 bne _02252B46 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _02252B46: pop {r4, pc} thumb_func_end MOD20_02252B28 @@ -1243,7 +1243,7 @@ MOD20_02252C5C: ; 0x02252C5C _02252CA6: mov r0, #7 str r6, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc mov r1, #6 lsl r1, r1, #6 str r0, [r4, r1] @@ -1570,14 +1570,14 @@ MOD20_02252ED0: ; 0x02252ED0 ldr r2, _02252FE0 ; =MOD20_022545B4 mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] ldr r2, _02252FE4 ; =MOD20_022545D0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0x40 str r0, [sp] mov r0, #0 @@ -1634,12 +1634,12 @@ MOD20_02252ED0: ; 0x02252ED0 ldr r0, [r4, r0] mov r1, #5 mov r2, #0xd8 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _02252FD8 ; =0x04001000 ldr r1, _02252FE8 ; =0xFFFFE0FF ldr r2, [r0] @@ -1738,7 +1738,7 @@ _02253048: mov r1, #5 mov r2, #0x40 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect cmp r7, #0 beq _022530DA sub r0, r6, #1 @@ -1759,7 +1759,7 @@ _02253048: mov r1, #5 lsr r2, r2, #0x10 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x14] mov r2, #0xd8 add r0, r6, r0 @@ -1779,13 +1779,13 @@ _02253048: mov r1, #5 lsr r2, r2, #0x10 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect _022530DA: mov r0, #6 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldrh r0, [r4, #2] cmp r0, #0x28 bne _022530FC @@ -1870,7 +1870,7 @@ _02253158: ldr r0, [r5, r0] mov r1, #5 mov r2, #0xd8 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x14] lsl r1, r7, #0x18 lsl r0, r0, #0x18 @@ -1887,7 +1887,7 @@ _02253158: mov r1, #5 mov r2, #0xd8 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect cmp r6, #0 beq _02253202 mov r0, #0 @@ -1907,7 +1907,7 @@ _02253158: mov r1, #5 lsr r2, r2, #0x10 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [sp, #0x14] add r6, #0xd4 sub r0, r0, #1 @@ -1926,13 +1926,13 @@ _02253158: mov r1, #5 lsr r2, r2, #0x10 mov r3, #2 - bl FUN_02018540 + bl FillBgTilemapRect _02253202: mov r0, #6 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldrh r0, [r4, #2] cmp r0, #0x28 bne _02253224 @@ -1978,12 +1978,12 @@ MOD20_02253228: ; 0x02253228 ldr r0, [r4, r0] mov r1, #5 lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r6, #0 add r0, #0xa9 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD20_022538B0 add sp, #0x10 @@ -2026,12 +2026,12 @@ MOD20_0225328C: ; 0x0225328C ldr r0, [r4, r0] mov r1, #5 lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r6, #0 add r0, #0xa5 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD20_022538B0 add sp, #0x10 @@ -2063,14 +2063,14 @@ MOD20_022532F0: ; 0x022532F0 ldr r0, [r4, r0] add r2, #0x84 mov r3, #0x1b - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _02253334 ; =0x00000671 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD20_02252EBC add sp, #0xc @@ -2098,12 +2098,12 @@ MOD20_02253338: ; 0x02253338 ldr r0, [r4, r0] add r2, #0x2c mov r3, #0x1b - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD20_02252EBC add sp, #0xc @@ -2130,14 +2130,14 @@ MOD20_02253378: ; 0x02253378 ldr r0, [r4, r0] add r2, #0xdc mov r3, #0x1b - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _022533BC ; =0x0000066F - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD20_02252EBC add sp, #0xc @@ -2451,7 +2451,7 @@ _02253600: lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _0225361C: mov r3, #2 str r3, [sp] @@ -2468,12 +2468,12 @@ _0225361C: ldr r0, [r4, r0] mov r1, #5 lsr r2, r2, #0x10 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram cmp r5, #3 bne _02253658 add r0, r6, #0 @@ -2510,17 +2510,17 @@ MOD20_02253668: ; 0x02253668 ldr r0, [r4, r0] mov r1, #5 mov r2, #0x40 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r1, #0 ldr r0, _022536C4 ; =0x04001050 add r2, r1, #0 @@ -2546,12 +2546,12 @@ MOD20_022536C8: ; 0x022536C8 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD20_02252EBC pop {r3, r4, r5, pc} @@ -3118,7 +3118,7 @@ MOD20_02253AA4: ; 0x02253AA4 add r2, sp, #0xc mov r3, #9 add r6, r0, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r1, #4 add r0, sp, #0xc strh r1, [r0] @@ -3137,7 +3137,7 @@ MOD20_02253AA4: ; 0x02253AA4 add r0, r6, #0 lsr r1, r1, #0x18 add r2, sp, #0xc - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r1, #6 add r0, sp, #0xc strh r1, [r0] @@ -3157,7 +3157,7 @@ MOD20_02253AA4: ; 0x02253AA4 lsr r1, r1, #0x18 add r2, sp, #0xc mov r3, #0xd - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 mov r1, #0xa bl _u32_div_f @@ -3189,7 +3189,7 @@ MOD20_02253AA4: ; 0x02253AA4 lsr r1, r1, #0x18 add r2, sp, #0xc mov r3, #0xf - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #4 lsr r1, r0, #2 lsl r0, r0, #0x1e @@ -3215,7 +3215,7 @@ MOD20_02253AA4: ; 0x02253AA4 lsr r1, r1, #0x18 add r2, sp, #0xc mov r3, #0x11 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/21/src/mod21_02254A6C.c b/arm9/modules/21/src/mod21_02254A6C.c index 040ebdaa..45b11873 100644 --- a/arm9/modules/21/src/mod21_02254A6C.c +++ b/arm9/modules/21/src/mod21_02254A6C.c @@ -25,14 +25,14 @@ extern BOOL MOD20_02253888(void *param0, void *param1); u8 const MOD21_02254D90[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -extern void FUN_02016C18(u32 param0, u32 param1, void *param2, u32 param3); +extern void InitBgFromTemplate(u32 param0, u32 param1, void *param2, u32 param3); extern void GfGfxLoader_LoadCharData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern void GfGfxLoader_LoadScrnData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern void MOD20_02252D7C(u32 param0, u32 param1); -extern void FUN_02017CD0(u32 param0, u32 param1); -extern void FUN_020178A0(u32 param0, u32 param1); +extern void BgCommitTilemapBufferToVram(u32 param0, u32 param1); +extern void FreeBgTilemapBuffer(u32 param0, u32 param1); -extern void FUN_02018170(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 *param6, u8 param7, u32 param8, u32 param9, u32 param10); +extern void CopyToBgTilemapRect(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 *param6, u8 param7, u32 param8, u32 param9, u32 param10); extern void MOD11_02252DB4(u32 param0, u32 param1); @@ -104,12 +104,12 @@ THUMB_FUNC BOOL MOD21_02254B60(u32 param0, void *param1) { #pragma unused (param0) UnkStruct02254A6C *strct = MOD20_022538A0(param1); - FUN_02016C18(strct->Unk04, 6, MOD21_02254D90, 0); + InitBgFromTemplate(strct->Unk04, 6, MOD21_02254D90, 0); GfGfxLoader_LoadCharData(12, 23, strct->Unk04, 6, 0, 0, 1, 8); GfGfxLoader_LoadScrnData(12, 24, strct->Unk04, 6, 0, 0, 1, 8); MOD20_02252D7C(0, 0); MOD21_02254C5C(strct); - FUN_02017CD0(strct->Unk04, 6); + BgCommitTilemapBufferToVram(strct->Unk04, 6); u32 r3 = reg_GXS_DB_DISPCNT; u32 r2 = reg_GXS_DB_DISPCNT; vu32 tmp = r3; //unused? wtf @@ -128,7 +128,7 @@ THUMB_FUNC BOOL MOD21_02254BF4(u32 param0, void *param1) #pragma unused (param0) UnkStruct02254A6C *strct = MOD20_022538A0(param1); MOD21_02254C5C(strct); - FUN_02017CD0(strct->Unk04, 6); + BgCommitTilemapBufferToVram(strct->Unk04, 6); return MOD21_02254B4C(param1); } @@ -151,7 +151,7 @@ THUMB_FUNC BOOL MOD21_02254C40(u32 param0, void *param1) { #pragma unused (param0) UnkStruct02254A6C *strct = MOD20_022538A0(param1); - FUN_020178A0(strct->Unk04, 6); + FreeBgTilemapBuffer(strct->Unk04, 6); return MOD21_02254B4C(param1); } @@ -168,8 +168,8 @@ THUMB_FUNC void MOD21_02254C5C(UnkStruct02254A6C *param0) while (reg_CP_DIVCNT & (regaddr >> 0xb)) { } u32 divRemRes = reg_CP_DIVREM_RESULT_L; - FUN_02018170(param0->Unk04, 6, 3, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9); - FUN_02018170(param0->Unk04, 6, 8, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9); + CopyToBgTilemapRect(param0->Unk04, 6, 3, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9); + CopyToBgTilemapRect(param0->Unk04, 6, 8, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9); tmp = param0->Unk00->Unk04; reg_CP_DIVCNT = 0; @@ -182,6 +182,6 @@ THUMB_FUNC void MOD21_02254C5C(UnkStruct02254A6C *param0) while (reg_CP_DIVCNT & (regaddr >> 0xb)) { } divRemRes = reg_CP_DIVREM_RESULT_L; - FUN_02018170(param0->Unk04, 6, 15, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9); - FUN_02018170(param0->Unk04, 6, 20, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9); + CopyToBgTilemapRect(param0->Unk04, 6, 15, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9); + CopyToBgTilemapRect(param0->Unk04, 6, 20, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9); } diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s index bf11e9db..507feb01 100644 --- a/arm9/modules/22/asm/module_22.s +++ b/arm9/modules/22/asm/module_22.s @@ -875,7 +875,7 @@ MOD22_02254E8C: ; 0x02254E8C bl MOD20_02252D24 str r0, [r4, #0x5c] mov r0, #8 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] cmp r0, #0 bne _02254EBA @@ -1152,7 +1152,7 @@ MOD22_02255098: ; 0x02255098 ldr r2, _0225515C ; =MOD22_02255654 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1182,7 +1182,7 @@ MOD22_02255098: ; 0x02255098 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r7, #0 bl MOD20_022538A0 add r4, r0, #0 @@ -1356,7 +1356,7 @@ MOD22_02255230: ; 0x02255230 bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD22_02255084 pop {r3, r4, r5, pc} @@ -1384,7 +1384,7 @@ MOD22_02255268: ; 0x02255268 bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _022552A8 ; =0x00000669 bl MOD20_02252B28 add r0, r5, #0 @@ -1428,7 +1428,7 @@ _022552DC: bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD20_022538B0 pop {r4, r5, r6, pc} @@ -1488,7 +1488,7 @@ _02255358: bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _0225537A: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1549,7 +1549,7 @@ _022553D8: bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _022553FA: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1597,7 +1597,7 @@ _0225543A: bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _02255498 ; =0x00000666 bl MOD20_02252B28 add r0, r6, #0 @@ -1623,7 +1623,7 @@ _02255468: bl MOD22_02255544 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _02255496: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1668,7 +1668,7 @@ _022554D6: bl MOD22_02255544 ldr r0, [r6, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD20_022538B0 mov r0, #0 @@ -1722,7 +1722,7 @@ MOD22_02255544: ; 0x02255544 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 mov r1, #6 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _022555A0 ; =0x00000252 mov r7, #1 add r1, r0, r1 @@ -1797,7 +1797,7 @@ _022555CC: bl MOD20_02254014 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 add r0, #0x84 ldr r0, [r0] diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index 9f052087..15af3d3a 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -1153,7 +1153,7 @@ MOD23_02255088: ; 0x02255088 ldr r2, _02255118 ; =MOD23_02255D1C mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1185,7 +1185,7 @@ MOD23_02255088: ; 0x02255088 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _0225511C ; =0x04001000 ldr r0, _02255120 ; =0xFFFFE0FF ldr r3, [r1] @@ -1216,7 +1216,7 @@ MOD23_02255124: ; 0x02255124 add r6, r0, #0 ldr r0, [r6, #4] mov r1, #6 - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r0, #0 ldr r3, _022551A0 ; =MOD23_02255FB8 @@ -1310,10 +1310,10 @@ MOD23_022551A4: ; 0x022551A4 ldrb r3, [r5, r3] str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 add sp, #0xc @@ -1356,10 +1356,10 @@ MOD23_02255210: ; 0x02255210 ldrb r3, [r5, r3] str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 add sp, #0xc @@ -1391,7 +1391,7 @@ MOD23_02255270: ; 0x02255270 bl MOD23_0225548C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 pop {r4, r5, r6, pc} @@ -1419,7 +1419,7 @@ MOD23_022552A8: ; 0x022552A8 bl MOD23_0225544C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 pop {r4, r5, r6, pc} @@ -1446,7 +1446,7 @@ MOD23_022552E8: ; 0x022552E8 bl MOD23_0225548C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 pop {r4, r5, r6, pc} @@ -1474,7 +1474,7 @@ MOD23_02255320: ; 0x02255320 bl MOD23_0225544C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 pop {r4, r5, r6, pc} @@ -1504,7 +1504,7 @@ MOD23_02255360: ; 0x02255360 bl MOD23_02255410 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r6, #0 bl MOD23_02255074 pop {r4, r5, r6, pc} @@ -1538,7 +1538,7 @@ _022553B2: bl MOD23_0225544C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD23_02255074 pop {r3, r4, r5, pc} @@ -1558,7 +1558,7 @@ MOD23_022553E4: ; 0x022553E4 bl MOD23_02255410 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD23_02255074 pop {r3, r4, r5, pc} @@ -1572,7 +1572,7 @@ MOD23_02255410: ; 0x02255410 add r5, r1, #0 mov r1, #6 add r4, r0, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer ldrh r1, [r5, #2] cmp r1, #0x11 bne _0225542E @@ -1602,7 +1602,7 @@ MOD23_0225544C: ; 0x0225544C push {lr} sub sp, #0xc mov r1, #6 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r1, #0x29 str r1, [sp] mov r1, #0x28 @@ -1625,7 +1625,7 @@ MOD23_02255470: ; 0x02255470 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD23_02255074 pop {r4, pc} @@ -1638,7 +1638,7 @@ MOD23_0225548C: ; 0x0225548C sub sp, #0x14 add r6, r1, #0 mov r1, #6 - bl FUN_0201886C + bl GetBgTilemapBuffer add r7, r0, #0 ldrh r0, [r6] mov r1, #0 diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index cdf4b770..65182148 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -621,7 +621,7 @@ MOD24_02254CA0: ; 0x02254CA0 add r4, r0, #0 beq _02254CFA mov r0, #7 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254CC0 bl GF_AssertFail @@ -631,7 +631,7 @@ _02254CC0: mov r1, #0x10 bl MOD20_022536F4 mov r0, #7 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254CD8 bl GF_AssertFail @@ -642,7 +642,7 @@ _02254CD8: bl MOD20_02252D24 str r0, [r4, #0x50] mov r0, #7 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254CF4 bl GF_AssertFail @@ -668,7 +668,7 @@ MOD24_02254D00: ; 0x02254D00 beq _02254D3C ldr r0, [r4, #4] ldr r2, _02254D40 ; =MOD24_0225510C - bl FUN_02019150 + bl AddWindow mov r2, #0xbe ldr r1, [r4] ldr r0, _02254D44 ; =0x000016E8 @@ -699,7 +699,7 @@ MOD24_02254D48: ; 0x02254D48 add r4, r0, #0 beq _02254D84 mov r0, #7 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254D5C bl GF_AssertFail @@ -715,7 +715,7 @@ _02254D5C: lsl r2, r2, #6 bl FUN_02089444 ldr r0, [r4, #0x70] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x70] bl FreeToHeap _02254D7E: @@ -783,7 +783,7 @@ MOD24_02254DDC: ; 0x02254DDC sub sp, #0x14 mov r0, #8 add r4, r1, #0 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254DF0 bl GF_AssertFail @@ -795,14 +795,14 @@ _02254DF0: ldr r2, _02254ED0 ; =MOD24_02255114 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _02254ED4 ; =MOD24_02255130 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254E1E bl GF_AssertFail @@ -835,7 +835,7 @@ _02254E1E: add r1, r0, #0 bl MOD20_02252D7C mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254E68 bl GF_AssertFail @@ -845,7 +845,7 @@ _02254E68: ldr r0, [r5, #0x70] bl CopyWindowToVram mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254E82 bl GF_AssertFail @@ -853,14 +853,14 @@ _02254E82: add r0, r5, #0 bl MOD24_02255078 mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254E96 bl GF_AssertFail _02254E96: ldr r0, [r5, #4] mov r1, #7 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254ED8 ; =0x04001000 ldr r0, _02254EDC ; =0xFFFFE0FF ldr r3, [r1] @@ -877,7 +877,7 @@ _02254E96: add r0, r4, #0 bl MOD24_02254DC8 mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254ECC bl GF_AssertFail @@ -932,7 +932,7 @@ MOD24_02254F28: ; 0x02254F28 add r0, r4, #0 bl MOD20_022538A0 ldr r0, [r0, #0x70] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD24_02254DC8 pop {r4, pc} @@ -1072,7 +1072,7 @@ MOD24_02255038: ; 0x02255038 add r0, r4, #0 bl MOD20_022538A0 ldr r0, [r0, #0x70] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD24_02254DC8 pop {r4, pc} @@ -1088,10 +1088,10 @@ MOD24_02255050: ; 0x02255050 bl MOD24_022550D4 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD24_02254DC8 pop {r3, r4, r5, pc} diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s index 5e70bbbe..69efec33 100644 --- a/arm9/modules/25/asm/module_25.s +++ b/arm9/modules/25/asm/module_25.s @@ -428,7 +428,7 @@ MOD25_02254B34: ; 0x02254B34 ldr r2, _02254BBC ; =MOD25_02254D08 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -460,7 +460,7 @@ MOD25_02254B34: ; 0x02254B34 bl MOD25_02254C30 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254BC0 ; =0x04001000 ldr r0, _02254BC4 ; =0xFFFFE0FF ldr r3, [r1] @@ -494,7 +494,7 @@ MOD25_02254BC8: ; 0x02254BC8 bl MOD25_02254C30 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD25_02254B20 pop {r3, r4, r5, pc} @@ -532,7 +532,7 @@ MOD25_02254C14: ; 0x02254C14 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD25_02254B20 pop {r4, pc} diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s index 6d8828a0..251ea218 100644 --- a/arm9/modules/26/asm/module_26.s +++ b/arm9/modules/26/asm/module_26.s @@ -590,7 +590,7 @@ MOD26_02254C60: ; 0x02254C60 ldr r2, _02254CB8 ; =MOD26_02254FD4 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] bl MOD26_02254CC4 ldr r0, [r5, #4] @@ -601,7 +601,7 @@ MOD26_02254C60: ; 0x02254C60 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254CBC ; =0x04001000 ldr r0, _02254CC0 ; =0xFFFFE0FF ldr r3, [r1] @@ -702,7 +702,7 @@ _02254CEC: ldr r2, [sp, #0x1c] mov r1, #6 lsl r3, r3, #8 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [sp, #0x1c] bl FreeToHeap _02254D68: @@ -722,7 +722,7 @@ MOD26_02254D6C: ; 0x02254D6C bl MOD26_02254DAC ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD26_02254C4C pop {r3, r4, r5, pc} @@ -736,7 +736,7 @@ MOD26_02254D90: ; 0x02254D90 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD26_02254C4C pop {r4, pc} @@ -748,7 +748,7 @@ MOD26_02254DAC: ; 0x02254DAC push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 mov r1, #6 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r5, #0 ldr r1, _02254DE0 ; =MOD26_02254FD0 add r0, #0x84 diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 25e4a4b6..c2c6c837 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -516,7 +516,7 @@ MOD27_02254C08: ; 0x02254C08 ldr r2, _02254CBC ; =MOD27_02255378 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -540,7 +540,7 @@ MOD27_02254C08: ; 0x02254C08 ldr r0, [r4, #4] mov r1, #6 mov r2, #5 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -551,7 +551,7 @@ MOD27_02254C08: ; 0x02254C08 bl MOD27_02254CC8 ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0xf mov r1, #1 bl MOD20_0225396C @@ -631,9 +631,9 @@ _02254CE8: lsl r3, r3, #0x18 ldr r0, [r0, #4] lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 - bl FUN_02019270 + bl PutWindowTilemap ldr r1, [sp, #0x14] add r0, r4, #0 bl MOD27_02254D60 @@ -686,7 +686,7 @@ MOD27_02254D60: ; 0x02254D60 sub r3, r3, #1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r0, [r5, #6] mov r1, #6 mov r2, #2 @@ -702,7 +702,7 @@ MOD27_02254D60: ; 0x02254D60 str r0, [sp, #0xc] ldrb r3, [r5, #5] ldr r0, [r4, #4] - bl FUN_02018540 + bl FillBgTilemapRect ldrb r0, [r5, #6] ldr r2, _02254E98 ; =0x00000401 mov r1, #6 @@ -721,7 +721,7 @@ MOD27_02254D60: ; 0x02254D60 add r3, r6, r3 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r0, [r5, #6] mov r1, #6 add r2, r1, #0 @@ -737,7 +737,7 @@ MOD27_02254D60: ; 0x02254D60 sub r3, r3, #1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r0, [r5, #6] ldr r2, _02254E9C ; =0x00000406 mov r1, #6 @@ -754,7 +754,7 @@ MOD27_02254D60: ; 0x02254D60 add r3, r6, r3 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r1, [r5, #6] ldrb r0, [r5, #8] ldr r2, _02254EA0 ; =0x00000801 @@ -773,7 +773,7 @@ MOD27_02254D60: ; 0x02254D60 sub r3, r3, #1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect ldrb r1, [r5, #6] ldrb r0, [r5, #8] ldr r2, _02254EA4 ; =0x00000802 @@ -790,7 +790,7 @@ MOD27_02254D60: ; 0x02254D60 str r0, [sp, #0xc] ldrb r3, [r5, #5] ldr r0, [r4, #4] - bl FUN_02018540 + bl FillBgTilemapRect ldrb r1, [r5, #6] ldrb r0, [r5, #8] ldr r2, _02254EA8 ; =0x00000C01 @@ -810,7 +810,7 @@ MOD27_02254D60: ; 0x02254D60 add r3, r4, r3 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r4, r5, r6, pc} nop @@ -849,7 +849,7 @@ MOD27_02254EAC: ; 0x02254EAC bl FillWindowPixelRect _02254EE0: add r0, r5, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 @@ -1361,7 +1361,7 @@ _02255288: add r4, #0x3c _0225529C: add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r5, #0x38] add r6, r6, #1 add r4, #0x10 @@ -1382,7 +1382,7 @@ MOD27_022552B4: ; 0x022552B4 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD27_02254BF4 pop {r4, pc} @@ -1412,7 +1412,7 @@ MOD27_022552D0: ; 0x022552D0 ldr r0, [r5, #4] mov r1, #6 mov r2, #5 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #0 add r1, r4, #0 bl MOD27_02254F18 @@ -1425,7 +1425,7 @@ MOD27_022552D0: ; 0x022552D0 bl MOD27_02254CC8 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _02255338 ; =0x00000669 bl MOD20_02252B28 add r0, r6, #0 diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 04176ba5..ee242492 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -547,7 +547,7 @@ MOD28_02254C18: ; 0x02254C18 ldr r2, _02254CA8 ; =MOD28_02255ED8 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -570,13 +570,13 @@ MOD28_02254C18: ; 0x02254C18 ldr r0, [r5, #4] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, [r5] add r0, r5, #0 bl MOD28_02254CB4 @@ -915,7 +915,7 @@ MOD28_02254F18: ; 0x02254F18 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD28_02254C04 pop {r4, pc} diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s index 9fb45a65..061b078c 100644 --- a/arm9/modules/29/asm/module_29.s +++ b/arm9/modules/29/asm/module_29.s @@ -672,7 +672,7 @@ MOD29_02254D10: ; 0x02254D10 ldr r2, _02254DE8 ; =MOD29_022550E0 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -737,7 +737,7 @@ MOD29_02254D10: ; 0x02254D10 bl GXS_LoadOBJPltt ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254DEC ; =0x04001000 ldr r0, _02254DF0 ; =0xFFFFE0FF ldr r3, [r1] @@ -771,7 +771,7 @@ MOD29_02254DF4: ; 0x02254DF4 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD29_02254CFC pop {r4, pc} diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s index 5daf123f..69e08586 100644 --- a/arm9/modules/30/asm/module_30.s +++ b/arm9/modules/30/asm/module_30.s @@ -536,7 +536,7 @@ MOD30_02254C18: ; 0x02254C18 ldr r2, _02254C9C ; =MOD30_02254DD0 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -566,7 +566,7 @@ MOD30_02254C18: ; 0x02254C18 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254CA0 ; =0x04001000 ldr r0, _02254CA4 ; =0xFFFFE0FF ldr r3, [r1] @@ -598,7 +598,7 @@ MOD30_02254CA8: ; 0x02254CA8 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD30_02254C04 pop {r4, pc} diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s index 5e45ce23..e565a1cf 100644 --- a/arm9/modules/31/asm/module_31.s +++ b/arm9/modules/31/asm/module_31.s @@ -526,7 +526,7 @@ MOD31_02254C0C: ; 0x02254C0C ldr r2, _02254C90 ; =MOD31_02254DC8 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -556,7 +556,7 @@ MOD31_02254C0C: ; 0x02254C0C bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254C94 ; =0x04001000 ldr r0, _02254C98 ; =0xFFFFE0FF ldr r3, [r1] @@ -588,7 +588,7 @@ MOD31_02254C9C: ; 0x02254C9C bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD31_02254BF8 pop {r4, pc} diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s index c928dd1a..b78a206b 100644 --- a/arm9/modules/32/asm/module_32.s +++ b/arm9/modules/32/asm/module_32.s @@ -453,7 +453,7 @@ MOD32_02254B58: ; 0x02254B58 ldr r2, _02254BDC ; =MOD32_02254C78 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -483,7 +483,7 @@ MOD32_02254B58: ; 0x02254B58 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254BE0 ; =0x04001000 ldr r0, _02254BE4 ; =0xFFFFE0FF ldr r3, [r1] @@ -517,7 +517,7 @@ MOD32_02254BE8: ; 0x02254BE8 bl MOD32_02254AF0 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD32_02254B44 pop {r3, r4, r5, pc} diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s index 55ccf203..a0c3782f 100644 --- a/arm9/modules/33/asm/module_33.s +++ b/arm9/modules/33/asm/module_33.s @@ -303,7 +303,7 @@ MOD33_02254A38: ; 0x02254A38 ldr r2, _02254ACC ; =MOD33_02254B00 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -324,7 +324,7 @@ MOD33_02254A38: ; 0x02254A38 ldr r0, [r5, #4] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x20 str r0, [sp] mov r0, #8 @@ -340,7 +340,7 @@ MOD33_02254A38: ; 0x02254A38 bl MOD20_02253AA4 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254AD0 ; =0x04001000 ldr r0, _02254AD4 ; =0xFFFFE0FF ldr r3, [r1] @@ -372,7 +372,7 @@ MOD33_02254AD8: ; 0x02254AD8 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD33_02254A24 pop {r4, pc} diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s index ddc4f587..02906b7f 100644 --- a/arm9/modules/34/asm/module_34.s +++ b/arm9/modules/34/asm/module_34.s @@ -395,7 +395,7 @@ MOD34_02254AE8: ; 0x02254AE8 ldr r2, _02254B8C ; =MOD34_02254CA0 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -437,7 +437,7 @@ _02254B4A: blt _02254B4A ldr r0, [r6, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _02254B90 ; =0x04001000 ldr r1, _02254B94 ; =0xFFFFE0FF ldr r2, [r0] @@ -470,7 +470,7 @@ MOD34_02254B98: ; 0x02254B98 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD34_02254AD4 pop {r4, pc} @@ -496,7 +496,7 @@ MOD34_02254BB4: ; 0x02254BB4 bl MOD34_02254C1C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD34_02254AD4 pop {r3, r4, r5, pc} @@ -521,7 +521,7 @@ MOD34_02254BE8: ; 0x02254BE8 bl MOD34_02254C1C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl MOD34_02254AD4 pop {r3, r4, r5, pc} @@ -535,7 +535,7 @@ MOD34_02254C1C: ; 0x02254C1C mov r1, #6 add r4, r2, #0 add r6, r3, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _02254C6C ; =MOD34_02254C94 lsl r2, r5, #1 ldrh r1, [r1, r2] diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s index f73ad3ff..84225174 100644 --- a/arm9/modules/35/asm/module_35.s +++ b/arm9/modules/35/asm/module_35.s @@ -597,7 +597,7 @@ MOD35_02254C98: ; 0x02254C98 ldr r2, _02254D24 ; =MOD35_022550C4 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -627,7 +627,7 @@ MOD35_02254C98: ; 0x02254C98 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254D28 ; =0x0400104C mov r0, #0 strb r0, [r1] @@ -688,7 +688,7 @@ _02254D5A: strb r1, [r0, #1] ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD35_02254C84 _02254D7C: diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index 0149e180..617d957c 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -981,7 +981,7 @@ MOD36_02254F5C: ; 0x02254F5C sub sp, #0x14 mov r0, #8 add r5, r1, #0 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254F70 bl GF_AssertFail @@ -993,14 +993,14 @@ _02254F70: ldr r2, _0225502C ; =MOD36_02255408 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _02255030 ; =MOD36_02255424 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254F9E bl GF_AssertFail @@ -1034,7 +1034,7 @@ _02254F9E: add r1, r0, #0 bl MOD20_02252D7C mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02254FEA bl GF_AssertFail @@ -1044,7 +1044,7 @@ _02254FEA: bl MOD36_0225503C ldr r0, [r4, #4] mov r1, #7 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02255034 ; =0x04001000 ldr r0, _02255038 ; =0xFFFFE0FF ldr r3, [r1] @@ -1061,7 +1061,7 @@ _02254FEA: add r0, r5, #0 bl MOD36_02254F48 mov r0, #8 - bl FUN_02016B90 + bl GF_heap_c_dummy_return_true cmp r0, #0 bne _02255028 bl GF_AssertFail @@ -1096,7 +1096,7 @@ MOD36_0225503C: ; 0x0225503C add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x48 - bl FUN_02019150 + bl AddWindow ldr r0, [r4] mov r2, #0xbe ldr r0, [r0, #8] @@ -1112,10 +1112,10 @@ MOD36_0225503C: ; 0x0225503C _02255082: add r0, r4, #0 add r0, #0x48 - bl FUN_02019270 + bl PutWindowTilemap add r4, #0x48 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #8 pop {r3, r4, r5, pc} nop @@ -1151,13 +1151,13 @@ _022550C4: bl FUN_02089444 add r0, r4, #0 add r0, #0x48 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD36_02254F48 pop {r3, r4, r5, pc} @@ -1171,7 +1171,7 @@ MOD36_022550F4: ; 0x022550F4 add r0, r4, #0 bl MOD20_022538A0 add r0, #0x48 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD36_02254F48 pop {r4, pc} @@ -1228,7 +1228,7 @@ MOD36_02255164: ; 0x02255164 add r0, r4, #0 bl MOD20_022538A0 add r0, #0x48 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl MOD36_02254F48 pop {r4, pc} @@ -1301,7 +1301,7 @@ MOD36_022551E0: ; 0x022551E0 bl FillWindowPixelBuffer add r4, #0x48 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r5, #0 bl MOD36_02254F48 pop {r3, r4, r5, pc} diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s index c2f1439a..313343b5 100644 --- a/arm9/modules/37/asm/module_37.s +++ b/arm9/modules/37/asm/module_37.s @@ -459,7 +459,7 @@ MOD37_02254B70: ; 0x02254B70 ldr r2, _02254BF4 ; =MOD37_02254D44 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -489,7 +489,7 @@ MOD37_02254B70: ; 0x02254B70 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254BF8 ; =0x04001000 ldr r0, _02254BFC ; =0xFFFFE0FF ldr r3, [r1] @@ -540,7 +540,7 @@ _02254C26: beq _02254C40 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD37_02254B5C _02254C40: diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s index ee5980ec..bf495f60 100644 --- a/arm9/modules/38/asm/module_38.s +++ b/arm9/modules/38/asm/module_38.s @@ -741,7 +741,7 @@ MOD38_02254D84: ; 0x02254D84 ldr r2, _02254E1C ; =MOD38_0225529C mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -776,7 +776,7 @@ MOD38_02254D84: ; 0x02254D84 bl MOD38_02254E28 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254E20 ; =0x04001000 ldr r0, _02254E24 ; =0xFFFFE0FF ldr r3, [r1] @@ -822,7 +822,7 @@ MOD38_02254E28: ; 0x02254E28 ldr r0, [r5, #4] add r1, #0x74 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #4 str r0, [sp] mov r2, #6 @@ -840,7 +840,7 @@ MOD38_02254E28: ; 0x02254E28 ldr r0, [r5, #4] add r1, #0x84 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #8 str r0, [sp] mov r2, #6 @@ -858,7 +858,7 @@ MOD38_02254E28: ; 0x02254E28 ldr r0, [r5, #4] add r1, #0x94 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x16 @@ -876,19 +876,19 @@ MOD38_02254E28: ; 0x02254E28 add r1, #0xa4 mov r2, #6 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x74 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r0, #0x84 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r0, #0x94 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r0, #0xa4 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 add r1, r6, #0 bl MOD38_02254FCC @@ -902,16 +902,16 @@ MOD38_02254EF4: ; 0x02254EF4 push {r4, lr} add r4, r0, #0 add r0, #0x74 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x84 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x94 - bl FUN_02019178 + bl RemoveWindow add r4, #0xa4 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} thumb_func_end MOD38_02254EF4 @@ -925,7 +925,7 @@ MOD38_02254F18: ; 0x02254F18 bl MOD38_02254EF4 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD38_02254D70 pop {r3, r4, r5, pc} @@ -1090,7 +1090,7 @@ _02255048: lsr r3, r3, #1 bl AddTextPrinterParameterized2 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 @@ -1128,7 +1128,7 @@ MOD38_02255084: ; 0x02255084 add r3, r1, #0 bl AddTextPrinterParameterized2 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s index da3f83f4..2fdb4637 100644 --- a/arm9/modules/39/asm/module_39.s +++ b/arm9/modules/39/asm/module_39.s @@ -788,7 +788,7 @@ MOD39_02254DF4: ; 0x02254DF4 ldr r2, _02254E7C ; =MOD39_02255330 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -818,7 +818,7 @@ MOD39_02254DF4: ; 0x02254DF4 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254E80 ; =0x04001000 ldr r0, _02254E84 ; =0xFFFFE0FF ldr r3, [r1] @@ -870,7 +870,7 @@ _02254EB0: beq _02254ECA ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD39_02254DE0 _02254ECA: diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s index 13c9a94f..62231a53 100644 --- a/arm9/modules/40/asm/module_40.s +++ b/arm9/modules/40/asm/module_40.s @@ -1038,7 +1038,7 @@ MOD40_02254FE8: ; 0x02254FE8 ldr r2, _0225506C ; =MOD40_02255340 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1068,7 +1068,7 @@ MOD40_02254FE8: ; 0x02254FE8 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02255070 ; =0x04001000 ldr r0, _02255074 ; =0xFFFFE0FF ldr r3, [r1] @@ -1120,7 +1120,7 @@ _022550A2: beq _022550BC ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD40_02254FD4 _022550BC: diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s index 4d1afb06..939ea649 100644 --- a/arm9/modules/41/asm/module_41.s +++ b/arm9/modules/41/asm/module_41.s @@ -1561,7 +1561,7 @@ MOD41_022553F4: ; 0x022553F4 ldr r2, _022554CC ; =MOD41_022557DC mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1591,7 +1591,7 @@ MOD41_022553F4: ; 0x022553F4 bl MOD20_02252D7C ldr r0, [r4, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _022554D0 ; =0x04001000 ldr r0, _022554D4 ; =0xFFFFE0FF ldr r3, [r1] @@ -1686,7 +1686,7 @@ _02255508: beq _02255522 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD41_022553E0 _02255522: diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index 03136570..9e502906 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -953,7 +953,7 @@ MOD42_02254F3C: ; 0x02254F3C ldr r2, _02254FC0 ; =MOD42_022550DC mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -983,7 +983,7 @@ MOD42_02254F3C: ; 0x02254F3C bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254FC4 ; =0x04001000 ldr r0, _02254FC8 ; =0xFFFFE0FF ldr r3, [r1] @@ -1015,7 +1015,7 @@ MOD42_02254FCC: ; 0x02254FCC bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD42_02254F28 pop {r4, pc} diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index ce3da4bb..59f7e81d 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -561,7 +561,7 @@ MOD43_02254C28: ; 0x02254C28 ldr r0, [r5, #4] ldr r2, _02254CC4 ; =MOD43_022551A0 mov r1, #6 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -595,7 +595,7 @@ MOD43_02254C28: ; 0x02254C28 bl MOD43_02254CD0 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254CC8 ; =0x04001000 ldr r0, _02254CCC ; =0xFFFFE0FF ldr r3, [r1] @@ -651,7 +651,7 @@ MOD43_02254CD0: ; 0x02254CD0 add r1, sp, #0x14 mov r2, #6 mov r3, #0x12 - bl FUN_02019064 + bl AddWindowParameterized add r0, sp, #0x14 mov r1, #4 bl FillWindowPixelBuffer @@ -667,11 +667,11 @@ MOD43_02254CD0: ; 0x02254CD0 str r1, [sp, #0xc] bl AddTextPrinterParameterized2 add r0, sp, #0x14 - bl FUN_02019270 + bl PutWindowTilemap add r0, sp, #0x14 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, sp, #0x14 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0 bl String_dtor _02254D44: @@ -717,7 +717,7 @@ _02254D78: strb r1, [r0, #1] ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD43_02254C14 _02254DA0: diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s index 19726565..b8f5aa0b 100644 --- a/arm9/modules/44/asm/module_44.s +++ b/arm9/modules/44/asm/module_44.s @@ -456,7 +456,7 @@ MOD44_02254B64: ; 0x02254B64 ldr r2, _02254BEC ; =MOD44_02254C70 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -486,7 +486,7 @@ MOD44_02254B64: ; 0x02254B64 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254BF0 ; =0x04001000 ldr r0, _02254BF4 ; =0xFFFFE0FF ldr r3, [r1] @@ -518,7 +518,7 @@ MOD44_02254BF8: ; 0x02254BF8 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD44_02254B50 pop {r4, pc} diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s index 95cf3fbc..4f710dc6 100644 --- a/arm9/modules/45/asm/module_45.s +++ b/arm9/modules/45/asm/module_45.s @@ -637,12 +637,12 @@ MOD45_02254CCC: ; 0x02254CCC ldr r2, _02254D60 ; =MOD45_022550FC mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _02254D64 ; =MOD45_022550E0 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 add r1, r4, #0 bl MOD45_02254DDC @@ -666,10 +666,10 @@ MOD45_02254CCC: ; 0x02254CCC bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [r5, #4] mov r1, #7 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254D68 ; =0x04001000 ldr r0, _02254D6C ; =0xFFFFE0FF ldr r3, [r1] @@ -703,10 +703,10 @@ MOD45_02254D70: ; 0x02254D70 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD45_02254CB8 pop {r3, r4, r5, pc} @@ -742,7 +742,7 @@ _02254DBC: bl MOD45_02254E28 ldr r0, [r5, #4] mov r1, #7 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD45_02254CB8 pop {r3, r4, r5, pc} @@ -825,7 +825,7 @@ MOD45_02254E28: ; 0x02254E28 mov r1, #7 add r2, r6, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -846,7 +846,7 @@ MOD45_02254E74: ; 0x02254E74 ldr r0, [r7, #4] mov r1, #6 mov r2, #0x82 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r7, #4] ldr r1, [r6] bl MOD45_02254EBC @@ -902,7 +902,7 @@ _02254ED6: mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r5, r5, #1 cmp r5, #4 blt _02254ED6 @@ -975,7 +975,7 @@ _02254F46: mov r1, #6 add r2, r7, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 @@ -992,7 +992,7 @@ _02254F46: mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect _02254FAE: mov r0, #0x14 add r3, r6, #0 @@ -1016,7 +1016,7 @@ _02254FAE: mov r1, #6 add r2, r6, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 @@ -1034,7 +1034,7 @@ _02254FAE: mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/module_46.s index 66418468..aecfd51d 100644 --- a/arm9/modules/46/asm/module_46.s +++ b/arm9/modules/46/asm/module_46.s @@ -303,7 +303,7 @@ MOD46_02254A38: ; 0x02254A38 ldr r2, _02254ACC ; =MOD46_02254B00 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -324,7 +324,7 @@ MOD46_02254A38: ; 0x02254A38 ldr r0, [r5, #4] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x20 str r0, [sp] mov r0, #8 @@ -340,7 +340,7 @@ MOD46_02254A38: ; 0x02254A38 bl MOD20_02253AA4 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254AD0 ; =0x04001000 ldr r0, _02254AD4 ; =0xFFFFE0FF ldr r3, [r1] @@ -372,7 +372,7 @@ MOD46_02254AD8: ; 0x02254AD8 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD46_02254A24 pop {r4, pc} diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s index 3cd1bb32..48bd9b4a 100644 --- a/arm9/modules/47/asm/module_47.s +++ b/arm9/modules/47/asm/module_47.s @@ -877,7 +877,7 @@ MOD47_02254E74: ; 0x02254E74 ldr r2, _02254F28 ; =MOD47_022553F4 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -921,15 +921,15 @@ MOD47_02254E74: ; 0x02254E74 ldr r0, [r5, #4] add r1, #0x20 mov r2, #6 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x20 - bl FUN_02019270 + bl PutWindowTilemap add r0, r5, #0 bl MOD47_022550FC ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254F2C ; =0x04001000 ldr r0, _02254F30 ; =0xFFFFE0FF ldr r3, [r1] @@ -961,10 +961,10 @@ MOD47_02254F34: ; 0x02254F34 bl MOD20_022538A0 add r4, r0, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD47_02254E60 pop {r3, r4, r5, pc} @@ -1211,7 +1211,7 @@ MOD47_022550FC: ; 0x022550FC bl AddTextPrinterParameterized2 add r4, #0x20 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, pc} nop @@ -1251,7 +1251,7 @@ MOD47_02255184: ; 0x02255184 bl AddTextPrinterParameterized2 add r4, #0x20 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, pc} nop @@ -1308,7 +1308,7 @@ MOD47_022551D8: ; 0x022551D8 bl AddTextPrinterParameterized2 add r4, #0x20 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -1371,7 +1371,7 @@ MOD47_02255250: ; 0x02255250 bl AddTextPrinterParameterized2 add r4, #0x20 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, pc} nop @@ -1464,7 +1464,7 @@ _0225532C: blt _0225532C add r5, #0x20 add r0, r5, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/48/asm/module_48.s b/arm9/modules/48/asm/module_48.s index 8dfd4e0a..1aff0df2 100644 --- a/arm9/modules/48/asm/module_48.s +++ b/arm9/modules/48/asm/module_48.s @@ -426,7 +426,7 @@ MOD48_02254B30: ; 0x02254B30 ldr r2, _02254BBC ; =MOD48_02254F78 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -490,7 +490,7 @@ MOD48_02254BC8: ; 0x02254BC8 bl MOD48_02254EC0 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD48_02254B1C pop {r3, r4, r5, pc} diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s index 1de7ea96..68c7625e 100644 --- a/arm9/modules/49/asm/module_49.s +++ b/arm9/modules/49/asm/module_49.s @@ -384,14 +384,14 @@ MOD49_02254AD4: ; 0x02254AD4 ldr r2, _02254BD0 ; =MOD49_02254D20 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] ldr r0, [r5, #4] mov r1, #6 mov r2, #4 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -402,7 +402,7 @@ MOD49_02254AD4: ; 0x02254AD4 ldr r0, [r5, #4] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -418,12 +418,12 @@ MOD49_02254AD4: ; 0x02254AD4 ldr r0, [r5, #4] add r1, sp, #0x1c mov r2, #6 - bl FUN_02019064 + bl AddWindowParameterized add r0, sp, #0x1c mov r1, #4 bl FillWindowPixelBuffer add r0, sp, #0x1c - bl FUN_02019270 + bl PutWindowTilemap ldr r1, _02254BD4 ; =0x00000197 mov r0, #0x1a mov r2, #0 @@ -450,15 +450,15 @@ MOD49_02254AD4: ; 0x02254AD4 str r1, [sp, #0xc] bl AddTextPrinterParameterized2 add r0, sp, #0x1c - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 bl String_dtor _02254B94: add r0, sp, #0x1c - bl FUN_02019178 + bl RemoveWindow ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, [sp, #0x14] add r0, r5, #0 bl MOD49_02254C04 @@ -497,7 +497,7 @@ MOD49_02254BE4: ; 0x02254BE4 bl MOD49_02254CB8 ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD49_02254AC0 pop {r3, r4, r5, pc} diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/module_50.s index 5d80d9b6..fc52f7fa 100644 --- a/arm9/modules/50/asm/module_50.s +++ b/arm9/modules/50/asm/module_50.s @@ -221,7 +221,7 @@ MOD50_022549AC: ; 0x022549AC bl MOD20_022536F4 mov r0, #8 str r6, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] cmp r0, #0 beq _022549DA @@ -312,7 +312,7 @@ MOD50_02254A48: ; 0x02254A48 ldr r2, _02254ADC ; =MOD50_02254B10 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -333,7 +333,7 @@ MOD50_02254A48: ; 0x02254A48 ldr r0, [r5, #4] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x20 str r0, [sp] mov r0, #8 @@ -350,7 +350,7 @@ MOD50_02254A48: ; 0x02254A48 bl MOD20_02253AA4 ldr r0, [r5, #4] mov r1, #6 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _02254AE0 ; =0x04001000 ldr r0, _02254AE4 ; =0xFFFFE0FF ldr r3, [r1] @@ -382,7 +382,7 @@ MOD50_02254AE8: ; 0x02254AE8 bl MOD20_022538A0 ldr r0, [r0, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD50_02254A34 pop {r4, pc} diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s index 4642f8c1..3406537b 100644 --- a/arm9/modules/51/asm/module_51.s +++ b/arm9/modules/51/asm/module_51.s @@ -162,7 +162,7 @@ _02254960: add r1, r5, #0 lsr r2, r2, #0x18 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -189,7 +189,7 @@ _02254960: add r1, #0x10 lsr r2, r2, #0x18 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x10 mov r1, #0 @@ -217,7 +217,7 @@ _02254960: add r1, #0x20 lsr r2, r2, #0x18 mov r3, #0xc - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x20 mov r1, #0 @@ -256,12 +256,12 @@ MOD51_02254A40: ; 0x02254A40 _02254A46: add r0, r5, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0x20 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x38 cmp r4, #3 @@ -370,16 +370,16 @@ MOD51_02254B30: ; 0x02254B30 push {r4, lr} add r4, r0, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD51_02254B30 @@ -403,10 +403,10 @@ MOD51_02254B54: ; 0x02254B54 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #1 mov r1, #0 bl GX_EngineBToggleLayers @@ -424,10 +424,10 @@ MOD51_02254B54: ; 0x02254B54 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #2 mov r1, #0 bl GX_EngineBToggleLayers @@ -445,10 +445,10 @@ MOD51_02254B54: ; 0x02254B54 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #6 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #4 mov r1, #0 bl GX_EngineBToggleLayers @@ -466,7 +466,7 @@ MOD51_02254B54: ; 0x02254B54 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #8 mov r1, #0 bl GX_EngineBToggleLayers @@ -786,7 +786,7 @@ MOD51_02254E48: ; 0x02254E48 mov r1, #7 add r2, r7, #0 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #0x72 lsl r0, r0, #2 add r7, r5, r0 @@ -832,10 +832,10 @@ MOD51_02254E48: ; 0x02254E48 mov r1, #1 bl AddTextPrinterParameterized2 add r0, r7, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x1c] add r0, r0, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r2, [r6, #8] cmp r2, #0 beq _02254F22 @@ -852,7 +852,7 @@ MOD51_02254E48: ; 0x02254E48 bl AddTextPrinterParameterized2 _02254F22: add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -927,13 +927,13 @@ _02254F88: _02254FB0: ldr r0, [r5, #0x14] mov r1, #7 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r1, #6 lsl r1, r1, #8 bl DC_FlushRange ldr r0, [r5, #0x14] mov r1, #7 - bl FUN_0201886C + bl GetBgTilemapBuffer add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -941,7 +941,7 @@ _02254FB0: ldr r0, [r5, #0x14] mov r1, #7 lsl r3, r3, #8 - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram mov r0, #0xa1 mov r1, #0 lsl r0, r0, #2 @@ -1088,7 +1088,7 @@ _022550D4: cmp r0, #0 beq _022551CA ldr r0, _022551DC ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE mov r0, #0x9e lsl r0, r0, #2 ldrh r1, [r5, r0] @@ -1112,7 +1112,7 @@ _02255100: cmp r1, r0 bge _022551CA ldr r0, _022551DC ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE mov r0, #0x9e lsl r0, r0, #2 ldrh r1, [r5, r0] @@ -1163,7 +1163,7 @@ _02255160: cmp r0, r1 bne _0225519C ldr r0, _022551DC ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE mov r1, #0x18 ldr r2, [r5, #4] mul r1, r4 @@ -1188,7 +1188,7 @@ _022551A4: cmp r1, r0 bne _022551CA ldr r0, _022551DC ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE ldr r1, [r5, #4] ldr r0, _022551E0 ; =0x000004BF mov r2, #1 @@ -1322,7 +1322,7 @@ MOD51_02255294: ; 0x02255294 sub r1, r1, #1 strh r1, [r4, r0] ldr r0, _022552F8 ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} _022552C6: lsr r0, r1, #1 @@ -1343,7 +1343,7 @@ _022552C6: add r1, r2, #1 strh r1, [r4, r0] ldr r0, _022552F8 ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE _022552F0: pop {r4, pc} nop @@ -1487,7 +1487,7 @@ _022553BE: ldr r0, [sp, #0x1c] mov r1, #7 mov r2, #0 - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r3, [sp, #0x24] add r1, r4, #4 lsl r6, r3, #2 @@ -1497,7 +1497,7 @@ _022553BE: ldr r3, [r3, r6] lsr r1, r1, #0x18 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [sp, #0x40] add r4, r4, #1 add r5, #0x38 @@ -1507,13 +1507,13 @@ _022553BE: _02255422: ldr r0, [sp, #0x1c] mov r1, #7 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r1, #6 lsl r1, r1, #8 bl DC_FlushRange ldr r0, [sp, #0x1c] mov r1, #7 - bl FUN_0201886C + bl GetBgTilemapBuffer add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -1521,7 +1521,7 @@ _02255422: ldr r0, [sp, #0x1c] mov r1, #7 lsl r3, r3, #8 - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1946,4 +1946,3 @@ MOD51_022557C4: ; 0x022557C4 .global MOD51_02255800 MOD51_02255800: ; 0x02255800 .space 0x4 - diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c index 41f2706a..08da79f4 100644 --- a/arm9/modules/52/src/module_52.c +++ b/arm9/modules/52/src/module_52.c @@ -159,7 +159,7 @@ THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); + CreateHeap(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; @@ -179,7 +179,7 @@ THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_020168D0(0x4d); + DestroyHeap(0x4d); RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144); return 1; @@ -189,7 +189,7 @@ THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); + CreateHeap(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; @@ -211,7 +211,7 @@ THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_020168D0(0x4d); + DestroyHeap(0x4d); RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C); return 1; @@ -221,7 +221,7 @@ THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); + CreateHeap(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; @@ -252,7 +252,7 @@ THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2) { #pragma unused(arg1) #pragma unused(arg2) - FUN_020168D0(0x4d); + DestroyHeap(0x4d); RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C); return 1; diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index d070f979..0bff7b6e 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -37,7 +37,7 @@ _021D74F6: mov r0, #3 mov r1, #0x27 lsl r2, r2, #6 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D7640 ; =0x0000940C add r0, r6, #0 mov r2, #0x27 @@ -47,7 +47,7 @@ _021D74F6: add r4, r0, #0 bl memset mov r0, #0x27 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] mov r0, #0x27 bl ScrStrBufs_new @@ -60,7 +60,7 @@ _021D74F6: str r0, [r4, #0x10] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl MOD53_021D78D0 ldr r0, [r4] bl MOD53_021D78F0 @@ -417,7 +417,7 @@ _021D786E: add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x27 - bl FUN_020168D0 + bl DestroyHeap mov r0, #2 bl FUN_02032B6C mov r0, #1 @@ -436,7 +436,7 @@ MOD53_021D78A8: ; 0x021D78A8 bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D78C8 ; =0x027E0000 ldr r1, _021D78CC ; =0x00003FF8 mov r0, #1 @@ -482,7 +482,7 @@ MOD53_021D78F0: ; 0x021D78F0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D79E4 ; =0x021D9518 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -497,10 +497,10 @@ MOD53_021D78F0: ; 0x021D78F0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D79E8 ; =0x021D9550 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -515,10 +515,10 @@ MOD53_021D78F0: ; 0x021D78F0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D79EC ; =0x021D956C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -533,7 +533,7 @@ MOD53_021D78F0: ; 0x021D78F0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D79F0 ; =0x021D9588 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -548,10 +548,10 @@ MOD53_021D78F0: ; 0x021D78F0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D79F4 ; =0x021D9534 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -566,17 +566,17 @@ MOD53_021D78F0: ; 0x021D78F0 add r0, r4, #0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x27 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x27 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x9c pop {r4, r5, pc} nop @@ -732,22 +732,22 @@ MOD53_021D7B24: ; 0x021D7B24 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -1320,7 +1320,7 @@ MOD53_021D7FDC: ; 0x021D7FDC add r1, r7, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb6 lsl r0, r0, #2 add r0, r7, r0 @@ -1341,7 +1341,7 @@ MOD53_021D7FDC: ; 0x021D7FDC ldr r0, [r7] add r1, r7, r1 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb2 lsl r0, r0, #2 add r0, r7, r0 @@ -1363,7 +1363,7 @@ MOD53_021D7FDC: ; 0x021D7FDC add r1, r7, r1 mov r2, #1 mov r3, #0x19 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xba lsl r0, r0, #2 add r0, r7, r0 @@ -1412,7 +1412,7 @@ _021D80A8: add r1, r5, #0 mov r2, #4 mov r3, #5 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -1449,7 +1449,7 @@ MOD53_021D8104: ; 0x021D8104 add r5, r6, r0 _021D8110: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #5 @@ -1457,15 +1457,15 @@ _021D8110: mov r0, #0xba lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xb2 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xb6 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD53_021D8104 @@ -1577,7 +1577,7 @@ _021D8200: ldr r1, [sp, #8] bl MOD53_021D83DC ldr r0, _021D83B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _021D8316 _021D821A: mov r1, #0xc1 @@ -1597,7 +1597,7 @@ _021D821A: cmp r1, r0 beq _021D8246 ldr r0, _021D83B8 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE b _021D8316 _021D8246: bl FUN_02030F20 @@ -1621,7 +1621,7 @@ _021D8246: mov r0, #1 str r0, [sp, #4] ldr r0, _021D83B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _021D8316 _021D8280: ldr r1, _021D83C0 ; =0x0000438B @@ -1630,7 +1630,7 @@ _021D8280: cmp r0, #2 bne _021D8292 ldr r0, _021D83B8 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE b _021D8316 _021D8292: mov r1, #1 @@ -1649,7 +1649,7 @@ _021D8292: mov r0, #1 str r0, [sp, #4] ldr r0, _021D83B4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _021D8316 _021D82BE: ldr r0, [sp, #8] @@ -1695,7 +1695,7 @@ _021D82EE: ldr r0, [sp] strb r1, [r0, r2] ldr r0, _021D83C8 ; =0x000005E5 - bl FUN_020054C8 + bl PlaySE _021D8316: ldr r0, _021D83CC ; =0x021D94F0 bl FUN_02020968 @@ -1904,7 +1904,7 @@ _021D84BE: mov r1, #2 bl MOD53_021D93E0 ldr r0, _021D84E4 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE mov r1, #0x1e add r2, r1, #0 ldr r0, _021D84E8 ; =0x04000050 @@ -2019,7 +2019,7 @@ MOD53_021D857C: ; 0x021D857C cmp r0, #0 beq _021D85B4 ldr r0, _021D86CC ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _021D85B4: add sp, #4 add r0, r4, #0 @@ -2616,7 +2616,7 @@ _021D8A6E: mov r1, #0x16 bl MOD53_021D93E0 ldr r0, _021D8AA8 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE bl FUN_02031190 cmp r0, #0 bne _021D8A96 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 25c18523..8795cd7f 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -38,7 +38,7 @@ _021D74F6: mov r0, #3 mov r1, #0x33 lsl r2, r2, #0xc - bl FUN_0201681C + bl CreateHeap ldr r1, _021D7638 ; =0x00004A60 add r0, r6, #0 mov r2, #0x33 @@ -48,7 +48,7 @@ _021D74F6: add r4, r0, #0 bl memset mov r0, #0x33 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] add r0, r6, #0 bl OverlayManager_GetField18 @@ -67,7 +67,7 @@ _021D74F6: str r0, [r4, #0x28] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl MOD54_021D7874 ldr r0, [r4] bl MOD54_021D7894 @@ -333,7 +333,7 @@ _021D776C: add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x33 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -402,7 +402,7 @@ MOD54_021D784C: ; 0x021D784C bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D786C ; =0x027E0000 ldr r1, _021D7870 ; =0x00003FF8 mov r0, #1 @@ -448,7 +448,7 @@ MOD54_021D7894: ; 0x021D7894 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7988 ; =0x021D9720 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -463,10 +463,10 @@ MOD54_021D7894: ; 0x021D7894 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D798C ; =0x021D973C add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -481,10 +481,10 @@ MOD54_021D7894: ; 0x021D7894 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7990 ; =0x021D96CC add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -499,7 +499,7 @@ MOD54_021D7894: ; 0x021D7894 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7994 ; =0x021D96E8 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -514,10 +514,10 @@ MOD54_021D7894: ; 0x021D7894 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7998 ; =0x021D9704 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -532,17 +532,17 @@ MOD54_021D7894: ; 0x021D7894 add r0, r4, #0 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x33 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x33 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x9c pop {r4, r5, pc} nop @@ -660,19 +660,19 @@ MOD54_021D7A6C: ; 0x021D7A6C push {r4, lr} add r4, r0, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -1076,7 +1076,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 add r1, r4, r1 mov r2, #5 mov r3, #0x1a - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 @@ -1098,7 +1098,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 @@ -1120,7 +1120,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 add r1, r4, r1 mov r2, #0 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xc2 lsl r0, r0, #2 ldr r1, [r4, #0x48] @@ -1143,7 +1143,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xa6 lsl r0, r0, #2 add r0, r4, r0 @@ -1205,19 +1205,19 @@ MOD54_021D7EDC: ; 0x021D7EDC mov r0, #0xa6 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xc2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D7EDC @@ -1318,7 +1318,7 @@ MOD54_021D7F70: ; 0x021D7F70 pop {r3, r4, pc} _021D7FCC: ldr r0, _021D8094 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #4 pop {r3, r4, pc} _021D7FD6: @@ -1343,7 +1343,7 @@ _021D7FD6: pop {r3, r4, pc} _021D8002: ldr r0, _021D8094 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #4 pop {r3, r4, pc} _021D800C: @@ -1378,7 +1378,7 @@ _021D800C: pop {r3, r4, pc} _021D8050: ldr r0, _021D8094 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add sp, #4 pop {r3, r4, pc} _021D805A: @@ -1536,7 +1536,7 @@ MOD54_021D8150: ; 0x021D8150 tst r0, r1 beq _021D8178 ldr r0, _021D8274 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _021D8178: add r0, r5, #0 bl MOD54_021D80A0 @@ -1554,7 +1554,7 @@ _021D8184: tst r0, r1 beq _021D819C ldr r0, _021D8274 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _021D819C: add r0, r5, #0 bl MOD54_021D80A0 @@ -1803,7 +1803,7 @@ _021D838A: tst r0, r1 beq _021D839A ldr r0, _021D8418 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _021D839A: add r0, r5, #0 bl MOD54_021D80A0 @@ -2164,7 +2164,7 @@ _021D864A: tst r0, r1 beq _021D865A ldr r0, _021D86D8 ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE _021D865A: add r0, r5, #0 bl MOD54_021D80A0 @@ -3221,7 +3221,7 @@ _021D8E3E: cmp r0, #0 beq _021D8E5C ldr r0, _021D8E60 ; =0x0000064F - bl FUN_020054C8 + bl PlaySE _021D8E5C: add sp, #0x1c pop {r4, r5, r6, r7, pc} diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index b9f3c277..ce354a55 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -43,9 +43,9 @@ MOD55_021D7504: ; 0x021D7504 str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r0, #0x34 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] bl MOD55_021D780C ldr r0, [r4, #4] @@ -89,7 +89,7 @@ _021D7580: mov r0, #3 mov r1, #0x34 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D7610 ; =0x0000041C add r0, r6, #0 mov r2, #0x34 @@ -164,7 +164,7 @@ _021D7628: mov r0, #3 mov r1, #0x34 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D76B8 ; =0x0000041C add r0, r6, #0 mov r2, #0x34 @@ -349,7 +349,7 @@ MOD55_021D77AC: ; 0x021D77AC add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x34 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD55_021D77AC @@ -368,7 +368,7 @@ MOD55_021D77D0: ; 0x021D77D0 bl FUN_020081C4 _021D77E6: ldr r0, [r4, #4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_02009F80 ldr r3, _021D7804 ; =0x027E0000 @@ -406,7 +406,7 @@ MOD55_021D781C: ; 0x021D781C ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7978 ; =0x021DA34C add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -421,15 +421,15 @@ MOD55_021D781C: ; 0x021D781C str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D797C ; =0x021DA368 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -444,15 +444,15 @@ MOD55_021D781C: ; 0x021D781C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7980 ; =0x021DA384 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -467,15 +467,15 @@ MOD55_021D781C: ; 0x021D781C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7984 ; =0x021DA3A0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -490,15 +490,15 @@ MOD55_021D781C: ; 0x021D781C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7988 ; =0x021DA3BC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -513,32 +513,32 @@ MOD55_021D781C: ; 0x021D781C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D798C ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -691,22 +691,22 @@ MOD55_021D7AA4: ; 0x021D7AA4 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -1211,13 +1211,13 @@ MOD55_021D7EE4: ; 0x021D7EE4 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D7F02 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D7F02: mov r0, #0 str r0, [sp] @@ -1233,7 +1233,7 @@ _021D7F02: ldr r0, [r5, #4] add r1, r5, r1 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 @@ -1264,7 +1264,7 @@ _021D7F02: mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r6, #0 mov r0, #0xd2 lsl r0, r0, #2 @@ -1274,11 +1274,11 @@ _021D7F02: add r7, r5, #0 _021D7F76: add r0, r4, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D7F86 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _021D7F86: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] @@ -1302,7 +1302,7 @@ _021D7F86: add r1, r4, #0 mov r2, #3 mov r3, #7 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -1347,7 +1347,7 @@ _021D8002: mov r3, #0x90 bl MOD55_021D80F0 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x18] add r6, r6, #1 add r0, #0x3c @@ -1385,7 +1385,7 @@ MOD55_021D8044: ; 0x021D8044 ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 mov r1, #0xf2 ldr r0, [sp] @@ -1452,7 +1452,7 @@ _021D80C6: ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop @@ -1512,11 +1512,11 @@ MOD55_021D8140: ; 0x021D8140 add r5, r6, r0 _021D814C: add r0, r5, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D815C add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow _021D815C: add r4, r4, #1 add r5, #0x10 @@ -1528,11 +1528,11 @@ _021D815C: add r4, r6, r0 _021D816C: add r0, r4, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D817C add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _021D817C: add r5, r5, #1 add r4, #0x10 @@ -1541,35 +1541,35 @@ _021D817C: mov r0, #0xce lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D819C mov r0, #0xce lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow _021D819C: mov r0, #0xe6 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D81B4 mov r0, #0xe6 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow _021D81B4: mov r0, #0xe2 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D81CC mov r0, #0xe2 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow _021D81CC: pop {r4, r5, r6, pc} .align 2, 0 @@ -1602,7 +1602,7 @@ _021D81EE: tst r1, r0 beq _021D824C ldr r0, _021D82BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] @@ -1652,7 +1652,7 @@ _021D824C: tst r0, r1 beq _021D8262 ldr r0, _021D82BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #0x11 lsl r0, r0, #4 @@ -1669,7 +1669,7 @@ _021D8262: cmp r0, #0 beq _021D82B2 ldr r0, _021D82BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] @@ -1688,7 +1688,7 @@ _021D828C: cmp r0, #3 bhs _021D82B2 ldr r0, _021D82BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] @@ -2207,7 +2207,7 @@ MOD55_021D868C: ; 0x021D868C mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x3b mov r1, #6 lsl r0, r0, #4 @@ -2245,7 +2245,7 @@ MOD55_021D86D4: ; 0x021D86D4 ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] - bl FUN_0201886C + bl GetBgTilemapBuffer str r0, [sp, #0x24] mov r1, #0xf2 ldr r0, [sp] @@ -2482,7 +2482,7 @@ _021D88AA: ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop @@ -2642,11 +2642,11 @@ _021D8A00: cmp r7, #0 bne _021D8A0C add r0, r5, #0 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer b _021D8A12 _021D8A0C: add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _021D8A12: ldr r0, [sp, #0x14] add r4, r4, #1 @@ -2713,7 +2713,7 @@ MOD55_021D8A7C: ; 0x021D8A7C bl FUN_020286EC ldr r0, [r5, #4] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -2748,13 +2748,13 @@ MOD55_021D8A7C: ; 0x021D8A7C mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D8AEE mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D8AEE: mov r0, #0 str r0, [sp] @@ -2770,7 +2770,7 @@ _021D8AEE: ldr r0, [r5, #4] add r1, r5, r1 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 @@ -2801,17 +2801,17 @@ _021D8AEE: mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D8B6C mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D8B6C: mov r0, #0x15 str r0, [sp] @@ -2829,7 +2829,7 @@ _021D8B6C: add r1, r5, r1 mov r2, #3 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 @@ -2859,7 +2859,7 @@ _021D8B6C: mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 bl MOD55_021D8A28 mov r0, #0xae @@ -2878,11 +2878,11 @@ _021D8BEE: str r0, [sp, #0x18] _021D8BF2: add r0, r4, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D8C02 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _021D8C02: lsr r2, r6, #0x1f lsl r1, r6, #0x1e @@ -2914,12 +2914,12 @@ _021D8C02: add r1, r4, #0 mov r2, #3 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 mov r1, #0 bl FillWindowPixelBuffer add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r6, r6, #1 add r4, #0x10 add r7, #0x18 @@ -3052,7 +3052,7 @@ _021D8D52: tst r1, r0 beq _021D8D88 ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r1, _021D8E64 ; =0x000003CB ldrb r0, [r5, r1] cmp r0, #0 @@ -3077,7 +3077,7 @@ _021D8D88: tst r1, r3 beq _021D8D9E ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #6 lsl r0, r0, #4 @@ -3095,7 +3095,7 @@ _021D8D9E: sub r1, r1, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r1, #0 add r0, r5, #0 mvn r1, r1 @@ -3112,7 +3112,7 @@ _021D8DC4: add r1, r1, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #1 bl MOD55_021D8CBC @@ -3131,7 +3131,7 @@ _021D8DE6: sub r0, r2, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r1, #3 add r0, r5, #0 mvn r1, r1 @@ -3151,7 +3151,7 @@ _021D8E10: sub r0, r2, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #4 bl MOD55_021D8CBC @@ -3259,13 +3259,13 @@ _021D8F02: mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D8F1A mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D8F1A: mov r1, #9 str r1, [sp] @@ -3288,7 +3288,7 @@ _021D8F1A: add r1, r5, r1 mov r2, #2 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe2 lsl r0, r0, #2 ldr r2, _021D8FDC ; =0x000001D9 @@ -3312,7 +3312,7 @@ _021D8F1A: str r0, [r5, r1] sub r1, #0x20 add r0, r5, r1 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x34 bl PlayerProfile_new mov r1, #0xf2 @@ -3388,7 +3388,7 @@ _021D9002: cmp r7, r0 beq _021D902C ldr r0, _021D90D4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D902C: mov r0, #1 mvn r0, r0 @@ -3402,7 +3402,7 @@ _021D902C: pop {r4, r5, r6, r7, pc} _021D9040: ldr r0, _021D90D4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] @@ -3420,12 +3420,12 @@ _021D9040: b _021D9098 _021D9068: ldr r0, _021D90D4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r4, #0x14 bne _021D9092 ldr r0, [r5, #4] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #6 str r0, [sp] mov r0, #1 @@ -3452,7 +3452,7 @@ _021D9098: mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xea lsl r0, r0, #2 mov r1, #0 @@ -3518,7 +3518,7 @@ MOD55_021D90D8: ; 0x021D90D8 add r0, r6, #0 bl CopyPlayerName ldr r0, _021D9180 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r2, [sp, #4] add r0, r5, #0 add r1, r4, #0 @@ -3562,7 +3562,7 @@ MOD55_021D9184: ; 0x021D9184 add r4, r1, #0 ldr r0, [r5, #4] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3577,13 +3577,13 @@ MOD55_021D9184: ; 0x021D9184 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D91D6 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D91D6: mov r0, #0 str r0, [sp] @@ -3600,7 +3600,7 @@ _021D91D6: str r0, [sp, #0x10] ldr r0, [r5, #4] mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 @@ -3645,17 +3645,17 @@ _021D91D6: mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D9278 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D9278: mov r1, #0xd str r1, [sp] @@ -3672,7 +3672,7 @@ _021D9278: add r1, r5, r1 mov r2, #3 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 @@ -3724,7 +3724,7 @@ _021D92CE: mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r1, #0 mov r0, #0 eor r1, r4 @@ -3738,13 +3738,13 @@ _021D92CE: mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D9338 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021D9338: mov r0, #8 str r0, [sp] @@ -3762,7 +3762,7 @@ _021D9338: add r1, r5, r1 mov r2, #3 mov r3, #9 - bl FUN_02019064 + bl AddWindowParameterized add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] @@ -3807,7 +3807,7 @@ _021D9338: mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _021D93C2: mov r0, #0x3b mov r1, #0x13 @@ -3914,7 +3914,7 @@ MOD55_021D9474: ; 0x021D9474 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D9568 ; =0x021DA2F8 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -3929,15 +3929,15 @@ MOD55_021D9474: ; 0x021D9474 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D956C ; =0x021DA330 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -3952,15 +3952,15 @@ MOD55_021D9474: ; 0x021D9474 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D9570 ; =0x021DA314 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -3975,32 +3975,32 @@ MOD55_021D9474: ; 0x021D9474 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #1 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #0 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority add sp, #0x64 pop {r4, r5, pc} .align 2, 0 @@ -4096,7 +4096,7 @@ _021D9618: ldr r0, [r4, #4] bl MOD55_021D7AA4 mov r0, #0x34 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] bl MOD55_021D9474 bl MOD55_021D9574 @@ -4136,13 +4136,13 @@ _021D9618: mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D969A mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _021D969A: mov r0, #0 str r0, [sp] @@ -4159,7 +4159,7 @@ _021D969A: str r0, [sp, #0x10] ldr r0, [r4, #4] mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 @@ -4211,17 +4211,17 @@ _021D969A: mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D974E mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _021D974E: mov r0, #0x12 str r0, [sp] @@ -4238,7 +4238,7 @@ _021D974E: str r0, [sp, #0x10] ldr r0, [r4, #4] mov r2, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 @@ -4276,7 +4276,7 @@ _021D974E: mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x34 bl FUN_02006D98 add r1, r4, #0 @@ -4322,7 +4322,7 @@ _021D974E: bne _021D9864 ldr r0, [r4, #4] mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r2, _021D9A5C ; =0x00000FFF mov r7, #0x10 mov ip, r0 @@ -4348,18 +4348,18 @@ _021D9844: blt _021D983C ldr r0, [r4, #4] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram _021D9864: mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021D987C mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _021D987C: mov r0, #4 str r0, [sp] @@ -4377,7 +4377,7 @@ _021D987C: add r1, r4, r1 mov r2, #3 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 @@ -4775,7 +4775,7 @@ _021D9C18: mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [sp, #0x20] bl FreeToHeap mov r0, #0x3b @@ -4828,7 +4828,7 @@ _021D9C82: tst r0, r1 beq _021D9CB2 ldr r0, _021D9CC0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 @@ -4895,7 +4895,7 @@ _021D9D16: ldr r0, [r5, #4] bl MOD55_021D7AA4 mov r0, #0x34 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5, #4] bl MOD55_021D781C add r0, r5, #0 @@ -4951,7 +4951,7 @@ MOD55_021D9D88: ; 0x021D9D88 ldr r0, [r6, #4] str r1, [sp, #0x10] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -5354,13 +5354,13 @@ MOD55_021DA0A4: ; 0x021DA0A4 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021DA0D0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021DA0D0: mov r0, #0x13 str r0, [sp] @@ -5378,7 +5378,7 @@ _021DA0D0: ldr r0, [r5, #4] add r1, r5, r1 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] @@ -5435,13 +5435,13 @@ MOD55_021DA15C: ; 0x021DA15C lsl r0, r0, #2 add r0, r5, r0 add r4, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _021DA17C mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _021DA17C: mov r0, #0x13 str r0, [sp] @@ -5459,7 +5459,7 @@ _021DA17C: ldr r0, [r5, #4] add r1, r5, r1 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] @@ -5505,7 +5505,7 @@ _021DA17C: mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 531194c6..7e036d8c 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -267,9 +267,9 @@ MOD56_02211FD4: ; 0x02211FD4 str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r0, #0x36 - bl FUN_02016B94 + bl BgConfig_Alloc add r1, r4, #0 add r1, #0xc0 str r0, [r1] @@ -340,14 +340,14 @@ _02212098: mov r0, #3 mov r1, #0x36 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap b _022120BE _022120B2: mov r2, #0xb mov r0, #3 mov r1, #0x36 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap _022120BE: mov r1, #0x3f add r0, r4, #0 @@ -564,7 +564,7 @@ _02212274: add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x36 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 @@ -575,7 +575,7 @@ MOD56_0221228C: ; 0x0221228C push {r3, lr} add r0, #0xc0 ldr r0, [r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_02009F80 ldr r3, _022122AC ; =0x027E0000 @@ -623,7 +623,7 @@ MOD56_022122D4: ; 0x022122D4 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02212430 ; =0x02216368 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -638,15 +638,15 @@ MOD56_022122D4: ; 0x022122D4 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02212434 ; =0x02216384 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -661,15 +661,15 @@ MOD56_022122D4: ; 0x022122D4 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02212438 ; =0x022163A0 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -684,15 +684,15 @@ MOD56_022122D4: ; 0x022122D4 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0221243C ; =0x022163BC add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -707,15 +707,15 @@ MOD56_022122D4: ; 0x022122D4 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02212440 ; =0x022163D8 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -730,32 +730,32 @@ MOD56_022122D4: ; 0x022122D4 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x36 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, _02212444 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -899,22 +899,22 @@ MOD56_02212540: ; 0x02212540 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -1306,7 +1306,7 @@ MOD56_022128A4: ; 0x022128A4 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022128CE mov r0, #0xd7 @@ -1317,7 +1317,7 @@ MOD56_022128A4: ; 0x022128A4 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _022128CE: mov r0, #1 str r0, [sp] @@ -1337,7 +1337,7 @@ _022128CE: add r1, r4, r1 mov r2, #3 mov r3, #5 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 @@ -1376,7 +1376,7 @@ _022128CE: mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r3, r4, pc} nop @@ -1391,57 +1391,57 @@ MOD56_0221295C: ; 0x0221295C mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02212978 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _02212978: mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02212990 mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _02212990: mov r0, #0xe7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022129A8 mov r0, #0xe7 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _022129A8: mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022129C0 mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _022129C0: mov r0, #0xdf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022129D8 mov r0, #0xdf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _022129D8: add r0, r4, #0 add r0, #0xb4 @@ -1466,13 +1466,13 @@ _02212A00: mov r0, #0xdb lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02212A18 mov r0, #0xdb lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _02212A18: pop {r4, pc} .align 2, 0 @@ -1544,16 +1544,16 @@ _02212A9A: bne _02212AFA mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority add r0, r5, #0 mov r1, #0x11 bl MOD56_02215FF4 @@ -1709,16 +1709,16 @@ MOD56_02212BE8: ; 0x02212BE8 bl MOD56_02215FF4 mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #0x36 str r0, [sp] add r0, r5, #0 @@ -1772,7 +1772,7 @@ _02212C74: mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow cmp r6, #0 bne _02212CB4 add r0, r5, #0 @@ -1832,7 +1832,7 @@ _02212CEC: mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow cmp r6, #0 bne _02212D44 ldr r0, [r5] @@ -1900,7 +1900,7 @@ _02212D74: mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow cmp r6, #0 bne _02212DC6 mov r1, #0x3b @@ -1947,16 +1947,16 @@ MOD56_02212DD8: ; 0x02212DD8 add r4, r1, #0 mov r0, #0 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #1 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority mov r0, #3 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #2 mov r1, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #0x3b mov r1, #0xf lsl r0, r0, #4 @@ -2272,7 +2272,7 @@ MOD56_02213048: ; 0x02213048 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0221307C mov r0, #0xdb @@ -2283,7 +2283,7 @@ MOD56_02213048: ; 0x02213048 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _0221307C: mov r0, #0x3b mov r1, #8 @@ -2329,7 +2329,7 @@ MOD56_022130A4: ; 0x022130A4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022130D8 mov r0, #0xdb @@ -2340,7 +2340,7 @@ MOD56_022130A4: ; 0x022130A4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _022130D8: add r0, r5, #0 mov r1, #0x33 @@ -2452,7 +2452,7 @@ MOD56_02213194: ; 0x02213194 add r0, #0xc0 ldr r0, [r0] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -2473,7 +2473,7 @@ MOD56_02213194: ; 0x02213194 mov r0, #0xdf lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #0 add r0, #0xb4 mov r1, #0 @@ -2740,7 +2740,7 @@ _022133DA: str r1, [r5, r0] sub r0, #0x44 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02213412 mov r0, #0xdb @@ -2751,7 +2751,7 @@ _022133DA: mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02213412: add r0, r4, #0 pop {r3, r4, r5, pc} @@ -2774,7 +2774,7 @@ MOD56_0221341C: ; 0x0221341C mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0221344C add r0, r6, #0 @@ -3004,7 +3004,7 @@ _022135DC: mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _02213614: add sp, #0x10 pop {r4, r5, r6, pc} @@ -3139,7 +3139,7 @@ _022136B8: mov r0, #0xdf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _02213706: ldr r0, [r4] add r1, r5, #0 @@ -3174,7 +3174,7 @@ _02213722: mov r0, #0xdf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _0221374C: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} @@ -3253,7 +3253,7 @@ MOD56_0221375C: ; 0x0221375C strh r1, [r2, #6] ldr r0, [r0] mov r1, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r1, r0, #0 mov r2, #0 cmp r4, #0x11 @@ -3371,7 +3371,7 @@ MOD56_022138A4: ; 0x022138A4 add r7, r1, #0 ldr r0, [r0] mov r1, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r6, #0 mov r4, #5 _022138BA: @@ -3426,7 +3426,7 @@ _02213906: add r5, #0xc0 ldr r0, [r5] mov r1, #0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD56_022138A4 @@ -3437,7 +3437,7 @@ MOD56_02213924: ; 0x02213924 cmp r2, #0 bne _02213930 ldr r0, _02213934 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02213930: pop {r3, pc} nop @@ -3508,7 +3508,7 @@ MOD56_02213990: ; 0x02213990 mov r0, #0xdf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022139D0 mov r0, #0xdf @@ -3519,7 +3519,7 @@ MOD56_02213990: ; 0x02213990 mov r0, #0xdf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _022139D0: mov r0, #5 str r0, [sp] @@ -3539,7 +3539,7 @@ _022139D0: add r1, r5, r1 mov r2, #3 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized ldr r6, _02213A3C ; =0x022163F4 add r3, sp, #0x14 add r2, r3, #0 @@ -3584,7 +3584,7 @@ MOD56_02213A40: ; 0x02213A40 mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02213A6A mov r0, #0xd3 @@ -3595,7 +3595,7 @@ MOD56_02213A40: ; 0x02213A40 mov r0, #0xd3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _02213A6A: mov r0, #0x15 str r0, [sp] @@ -3614,7 +3614,7 @@ _02213A6A: add r1, r4, r1 mov r2, #3 mov r3, #7 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {r3, r4, pc} thumb_func_end MOD56_02213A40 @@ -3632,7 +3632,7 @@ MOD56_02213A94: ; 0x02213A94 add r0, #0xc0 ldr r0, [r0] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -3648,7 +3648,7 @@ MOD56_02213A94: ; 0x02213A94 mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02213AF0 mov r0, #0xd7 @@ -3659,7 +3659,7 @@ MOD56_02213A94: ; 0x02213A94 mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02213AF0: add r0, r5, #0 add r0, #0xb0 @@ -3669,7 +3669,7 @@ _02213AF0: mov r0, #0xdf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0xb4 mov r1, #0 @@ -3707,7 +3707,7 @@ _02213B2C: add r1, r5, r1 mov r2, #3 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 @@ -3738,7 +3738,7 @@ _02213B2C: mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 bl MOD56_02216120 add r0, r5, #0 @@ -4020,7 +4020,7 @@ _02213DD2: bl MOD56_02215EA4 _02213DDC: ldr r0, _02213F88 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #0x14 lsl r0, r0, #4 @@ -4041,7 +4041,7 @@ _02213E00: cmp r0, #0 beq _02213E1C ldr r0, _02213F8C ; =0x00000624 - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #0x2f lsl r0, r0, #4 @@ -4093,7 +4093,7 @@ _02213E5C: mov r0, #0xdf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0xb4 mov r1, #0 @@ -4153,7 +4153,7 @@ _02213EE8: pop {r4, r5, r6, pc} _02213EFA: ldr r0, _02213F88 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #4] ldrb r0, [r0, #0x1b] bl MOD56_02211E88 @@ -4181,7 +4181,7 @@ _02213F2E: pop {r4, r5, r6, pc} _02213F32: ldr r0, _02213F88 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #4] ldrb r0, [r0, #0x1b] bl MOD56_02211E88 @@ -5082,7 +5082,7 @@ _02214602: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02214642 mov r0, #0xe3 @@ -5093,7 +5093,7 @@ _02214602: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02214642: mov r0, #9 str r0, [sp] @@ -5113,7 +5113,7 @@ _02214642: add r1, r5, r1 mov r2, #2 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe3 lsl r0, r0, #2 ldr r2, _022146C8 ; =0x000001D9 @@ -5141,7 +5141,7 @@ _02214642: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 mov r1, #5 mov r2, #0 @@ -5206,11 +5206,11 @@ _0221471A: add r0, r5, #0 bl MOD56_02216120 ldr r0, _02214804 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _022147CE _02214730: ldr r0, _02214804 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE cmp r4, #0xf bne _02214752 cmp r7, #2 @@ -5249,7 +5249,7 @@ _0221476E: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0xbc mov r2, #0xf7 @@ -5290,7 +5290,7 @@ _022147CE: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0xbc mov r2, #0xf7 @@ -5363,7 +5363,7 @@ _02214868: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0221488C mov r0, #0xe3 @@ -5374,7 +5374,7 @@ _02214868: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _0221488C: mov r1, #9 str r1, [sp] @@ -5399,7 +5399,7 @@ _0221488C: add r1, r5, r1 mov r2, #2 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe3 lsl r0, r0, #2 ldr r2, _0221491C ; =0x000001D9 @@ -5432,7 +5432,7 @@ _0221488C: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #1 add sp, #0x34 pop {r4, r5, r6, r7, pc} @@ -5483,7 +5483,7 @@ _02214956: pop {r4, r5, r6, pc} _02214968: ldr r0, _022149D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #0x24 lsl r0, r0, #4 @@ -5491,7 +5491,7 @@ _02214968: b _02214994 _02214978: ldr r0, _022149D0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r1, r4, #0 bl MOD56_0221617C @@ -5510,7 +5510,7 @@ _02214994: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r3, _022149D4 ; =0x000003DE add r0, r5, #0 add r2, r5, r3 @@ -5697,7 +5697,7 @@ _02214ADC: add r1, r5, r1 mov r2, #2 mov r3, #0x10 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe3 lsl r0, r0, #2 ldr r2, _02214BB8 ; =0x000001D9 @@ -5724,7 +5724,7 @@ _02214ADC: mov r0, #0xe3 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [sp, #0x18] add r0, r5, #0 bl MOD56_022160E4 @@ -5857,7 +5857,7 @@ _02214C36: pop {r3, r4, r5, r6, r7, pc} _02214C4A: ldr r0, _02214E20 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0x3b mov r1, #0x13 lsl r0, r0, #4 @@ -5865,7 +5865,7 @@ _02214C4A: b _02214DE2 _02214C5A: ldr r0, _02214E20 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE cmp r5, #1 beq _02214C66 b _02214DD6 @@ -6068,7 +6068,7 @@ _02214DEC: mov r0, #0xe3 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0xbc mov r1, #0 @@ -6917,7 +6917,7 @@ MOD56_0221547C: ; 0x0221547C add r4, r1, #0 ldr r0, [r0] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -6951,7 +6951,7 @@ MOD56_022154BC: ; 0x022154BC add r7, r1, #0 ldr r0, [r0] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6983,7 +6983,7 @@ MOD56_022154BC: ; 0x022154BC mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02215532 mov r0, #0xe7 @@ -6994,7 +6994,7 @@ MOD56_022154BC: ; 0x022154BC mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02215532: mov r0, #2 str r0, [sp] @@ -7014,7 +7014,7 @@ _02215532: ldr r0, [r0] add r1, r5, r1 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 @@ -7069,7 +7069,7 @@ _02215532: mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 mov r1, #0x29 mov r2, #0 @@ -7473,7 +7473,7 @@ _0221594C: mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x3b mov r1, #0x36 lsl r0, r0, #4 @@ -7540,17 +7540,17 @@ MOD56_022159B0: ; 0x022159B0 mov r0, #0xe7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0xc0 ldr r0, [r0] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 add r0, #0xc0 ldr r0, [r0] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 bl MOD56_02216120 mov r3, #0 @@ -7595,7 +7595,7 @@ MOD56_022159B0: ; 0x022159B0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 bl MOD56_02212EFC add r0, r5, #0 @@ -8169,7 +8169,7 @@ MOD56_02215EA4: ; 0x02215EA4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02215EE0 mov r0, #0xdb @@ -8180,12 +8180,12 @@ MOD56_02215EA4: ; 0x02215EA4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02215EE0: mov r0, #0xcf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02215F04 mov r0, #0xcf @@ -8196,7 +8196,7 @@ _02215EE0: mov r0, #0xcf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02215F04: mov r0, #0x5e lsl r0, r0, #2 @@ -8237,7 +8237,7 @@ _02215F30: ldr r0, [r0] add r1, r5, r1 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized cmp r6, #0 beq _02215F70 add r0, r5, #0 @@ -8281,7 +8281,7 @@ _02215F82: mov r3, #0xa bl FUN_0200D0BC mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl FUN_02002B7C mov r3, #0 @@ -8302,7 +8302,7 @@ _02215F82: mov r0, #0xcf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -8320,7 +8320,7 @@ MOD56_02215FF4: ; 0x02215FF4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02216024 mov r0, #0xdb @@ -8331,12 +8331,12 @@ MOD56_02215FF4: ; 0x02215FF4 mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02216024: mov r0, #0xcf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02216048 mov r0, #0xcf @@ -8347,7 +8347,7 @@ _02216024: mov r0, #0xcf lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _02216048: mov r3, #4 str r3, [sp] @@ -8366,7 +8366,7 @@ _02216048: ldr r0, [r0] add r1, r5, r1 mov r2, #2 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r2, #0x56 add r0, #0xd0 @@ -8414,7 +8414,7 @@ _02216048: mov r0, #0xdb lsl r0, r0, #2 add r0, r5, r0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, pc} nop @@ -8480,7 +8480,7 @@ _02216154: mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _02216178 mov r0, #0xcf @@ -8491,7 +8491,7 @@ _02216154: mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _02216178: pop {r4, pc} .align 2, 0 @@ -8663,7 +8663,7 @@ _022162B8: mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _022162DC mov r0, #0xcf @@ -8674,7 +8674,7 @@ _022162B8: mov r0, #0xcf lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow _022162DC: pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 481488f8..52ef15ff 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -28,12 +28,12 @@ MOD57_021D74E0: ; 0x021D74E0 str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #0xa mov r0, #3 mov r1, #0x19 lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap ldr r1, _021D76F0 ; =0x00003320 add r0, r5, #0 mov r2, #0x19 @@ -48,7 +48,7 @@ MOD57_021D74E0: ; 0x021D74E0 add r1, #0xb4 str r0, [r1] mov r0, #0x19 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] add r0, r4, #0 bl MOD57_021D79AC @@ -68,7 +68,7 @@ MOD57_021D74E0: ; 0x021D74E0 add r0, r4, r0 bl MOD57_021D95A8 ldr r0, _021D76F8 ; =0x00000695 - bl FUN_020054C8 + bl PlaySE ldr r0, _021D76FC ; =0x000030E4 add r0, r4, r0 bl MOD57_021D9184 @@ -124,7 +124,7 @@ _021D75E4: blo _021D75CE ldr r0, [r4] mov r1, #3 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r1, r4, #0 add r1, #0xb4 ldr r1, [r1] @@ -404,7 +404,7 @@ _021D7832: cmp r6, #4 bne _021D7856 ldr r0, _021D7938 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 @@ -561,7 +561,7 @@ MOD57_021D7944: ; 0x021D7944 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x19 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 mov r1, #0x7f bl FUN_020051EC @@ -839,7 +839,7 @@ MOD57_021D7B94: ; 0x021D7B94 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7C90 ; =0x021D9774 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -854,10 +854,10 @@ MOD57_021D7B94: ; 0x021D7B94 str r0, [r3] add r0, r4, #0 mov r3, #2 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7C94 ; =0x021D9790 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -872,10 +872,10 @@ MOD57_021D7B94: ; 0x021D7B94 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7C98 ; =0x021D97C8 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -890,10 +890,10 @@ MOD57_021D7B94: ; 0x021D7B94 str r0, [r3] add r0, r4, #0 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #6 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7C9C ; =0x021D97E4 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -908,10 +908,10 @@ MOD57_021D7B94: ; 0x021D7B94 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7CA0 ; =0x021D97AC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -926,10 +926,10 @@ MOD57_021D7B94: ; 0x021D7B94 str r0, [r3] add r0, r4, #0 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x9c pop {r4, r5, pc} .align 2, 0 @@ -1214,19 +1214,19 @@ MOD57_021D7EDC: ; 0x021D7EDC bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -1272,7 +1272,7 @@ _021D7F46: add r2, #0x80 str r2, [r4, r0] ldr r0, _021D80E4 ; =0x00000696 - bl FUN_020054C8 + bl PlaySE ldr r0, _021D80DC ; =0x0000331A ldrb r1, [r4, r0] add r1, r1, #1 @@ -1336,7 +1336,7 @@ _021D7FB0: bl MOD57_021D86E8 ldr r0, [r4] mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r1, r4, #0 add r1, #0xb4 ldr r1, [r1] @@ -1366,7 +1366,7 @@ _021D8006: bl MOD57_021D8FB8 ldr r0, [r4] mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 bl MOD57_021D8690 add r1, r4, #0 @@ -1845,7 +1845,7 @@ MOD57_021D83D8: ; 0x021D83D8 add r4, r1, #0 ldr r0, [r0] mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer add r7, r0, #0 lsl r0, r4, #2 add r0, #0x80 @@ -1878,7 +1878,7 @@ _021D8400: ldr r0, [sp] mov r1, #2 ldr r0, [r0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD57_021D83D8 @@ -1909,7 +1909,7 @@ MOD57_021D8428: ; 0x021D8428 ldr r0, [r0] add r1, r6, #0 lsr r4, r4, #0x18 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r2, #0 add r3, r0, r4 add r0, r2, #0 @@ -2212,10 +2212,10 @@ MOD57_021D8690: ; 0x021D8690 ldr r2, [r3, #0x14] ldr r0, [r5] ldr r3, [r3, #0x10] - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r0, [r5] mov r1, #7 - bl FUN_0201886C + bl GetBgTilemapBuffer cmp r0, #0 beq _021D86CA ldr r2, _021D86E0 ; =0x000032FC @@ -2224,7 +2224,7 @@ MOD57_021D8690: ; 0x021D8690 mov r1, #7 add r2, #0xc add r3, r4, #0 - bl FUN_02017DFC + bl BG_LoadScreenTilemapData _021D86CA: mov r0, #0 str r0, [sp] @@ -2234,7 +2234,7 @@ _021D86CA: mov r1, #7 add r2, #0xc add r3, r4, #0 - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram pop {r3, r4, r5, pc} .align 2, 0 _021D86E0: .word 0x000032FC @@ -2256,7 +2256,7 @@ MOD57_021D86E8: ; 0x021D86E8 mov r1, #7 mov r2, #0 mov r3, #0x14 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3, pc} .align 2, 0 @@ -2337,7 +2337,7 @@ MOD57_021D875C: ; 0x021D875C cmp r0, #0 bne _021D8782 ldr r0, _021D87D8 ; =0x00000692 - bl FUN_020054C8 + bl PlaySE _021D8782: mov r0, #0 ldrsb r1, [r4, r0] @@ -2367,7 +2367,7 @@ _021D879A: ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _021D87BC: mov r0, #2 ldrsb r0, [r4, r0] @@ -2444,11 +2444,11 @@ MOD57_021D8830: ; 0x021D8830 str r0, [sp, #4] lsr r1, r1, #0x18 lsl r3, r3, #0xc - bl FUN_02017E14 + bl BG_LoadCharTilesData lsl r1, r7, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 - bl FUN_0201886C + bl GetBgTilemapBuffer mov r4, #0 add r1, r0, #0 add r3, r4, #0 @@ -2479,7 +2479,7 @@ _021D8864: lsl r1, r7, #0x18 ldr r0, [sp, #4] lsr r1, r1, #0x18 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -2487,11 +2487,11 @@ _021D8864: thumb_func_start MOD57_021D8894 MOD57_021D8894: ; 0x021D8894 - ldr r3, _021D889C ; =FUN_020054C8 + ldr r3, _021D889C ; =PlaySE ldr r0, _021D88A0 ; =0x00000699 bx r3 nop -_021D889C: .word FUN_020054C8 +_021D889C: .word PlaySE _021D88A0: .word 0x00000699 thumb_func_end MOD57_021D8894 @@ -2572,7 +2572,7 @@ MOD57_021D890C: ; 0x021D890C ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #2 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 bne _021D894A mov r0, #0 @@ -2612,7 +2612,7 @@ MOD57_021D8954: ; 0x021D8954 ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #2 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 bne _021D8992 mov r0, #0 @@ -2641,7 +2641,7 @@ _021D89A6: add r0, r5, #0 add r1, r6, r1 add r2, r7, r2 - bl FUN_02019150 + bl AddWindow add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -2652,7 +2652,7 @@ _021D89A6: mov r1, #7 mov r3, #1 str r2, [sp] - bl FUN_02017F48 + bl BG_FillCharDataRange pop {r3, r4, r5, r6, r7, pc} nop _021D89D0: .word MOD57_021D98F4 @@ -2666,7 +2666,7 @@ MOD57_021D89D4: ; 0x021D89D4 _021D89DA: lsl r0, r4, #4 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -3355,7 +3355,7 @@ MOD57_021D8FB8: ; 0x021D8FB8 _021D8FC4: lsl r0, r4, #4 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index eb13ddb7..1cdd6b43 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -43,7 +43,7 @@ _021D9A36: mov r0, #3 mov r1, #0x27 lsl r2, r2, #6 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D9B74 ; =0x00005CB0 add r0, r6, #0 mov r2, #0x27 @@ -53,7 +53,7 @@ _021D9A36: add r4, r0, #0 bl memset mov r0, #0x27 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] mov r0, #0x27 bl ScrStrBufs_new @@ -66,7 +66,7 @@ _021D9A36: str r0, [r4, #0x14] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl MOD58_021D9CDC ldr r0, [r4] bl MOD58_021D9CFC @@ -274,7 +274,7 @@ _021D9C40: add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x27 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop @@ -289,7 +289,7 @@ MOD58_021D9CB4: ; 0x021D9CB4 bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D9CD4 ; =0x027E0000 ldr r1, _021D9CD8 ; =0x00003FF8 mov r0, #1 @@ -335,7 +335,7 @@ MOD58_021D9CFC: ; 0x021D9CFC ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D9DF0 ; =0x021DAE18 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -350,10 +350,10 @@ MOD58_021D9CFC: ; 0x021D9CFC str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D9DF4 ; =0x021DAE34 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -368,10 +368,10 @@ MOD58_021D9CFC: ; 0x021D9CFC str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D9DF8 ; =0x021DAE50 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -386,7 +386,7 @@ MOD58_021D9CFC: ; 0x021D9CFC str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D9DFC ; =0x021DADE0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -401,10 +401,10 @@ MOD58_021D9CFC: ; 0x021D9CFC str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D9E00 ; =0x021DADFC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -419,17 +419,17 @@ MOD58_021D9CFC: ; 0x021D9CFC add r0, r4, #0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x27 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x27 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x9c pop {r4, r5, pc} nop @@ -544,22 +544,22 @@ MOD58_021D9ED8: ; 0x021D9ED8 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -604,7 +604,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #0x20 mov r2, #0 mov r3, #0x27 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 str r0, [sp] mov r0, #2 @@ -1072,7 +1072,7 @@ MOD58_021DA30C: ; 0x021DA30C add r1, r5, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb5 lsl r0, r0, #2 add r0, r5, r0 @@ -1092,7 +1092,7 @@ MOD58_021DA30C: ; 0x021DA30C ldr r0, [r5] add r1, r5, r1 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb1 lsl r0, r0, #2 add r0, r5, r0 @@ -1113,7 +1113,7 @@ MOD58_021DA30C: ; 0x021DA30C add r1, r5, r1 mov r2, #1 mov r3, #0x1a - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb9 lsl r0, r0, #2 add r0, r5, r0 @@ -1179,7 +1179,7 @@ _021DA3C2: ldr r0, [r5] add r1, r5, r1 mov r2, #1 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, [r5, #0x30] mov r0, #1 mov r2, #0 @@ -1231,7 +1231,7 @@ _021DA46A: add r1, r4, #0 mov r2, #4 mov r3, #5 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -1269,7 +1269,7 @@ MOD58_021DA4CC: ; 0x021DA4CC add r5, r6, r0 _021DA4D8: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #5 @@ -1277,19 +1277,19 @@ _021DA4D8: mov r0, #0xbd lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xb9 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xb1 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xb5 lsl r0, r0, #2 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, r5, r6, pc} thumb_func_end MOD58_021DA4CC @@ -1330,7 +1330,7 @@ MOD58_021DA514: ; 0x021DA514 mov r1, #1 bl MOD58_021DA614 ldr r0, _021DA5E0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021DA568 _021DA55A: ldr r0, _021DA5E4 ; =0x0000431A @@ -2435,7 +2435,7 @@ MOD58_021DAD3C: ; 0x021DAD3C cmp r0, #0 bne _021DAD60 ldr r0, _021DAD9C ; =0x0000069A - bl FUN_020054C8 + bl PlaySE _021DAD60: mov r0, #0 ldrsb r1, [r4, r0] @@ -2455,7 +2455,7 @@ _021DAD78: cmp r0, #0 bne _021DAD88 ldr r0, _021DAD9C ; =0x0000069A - bl FUN_020054C8 + bl PlaySE _021DAD88: mov r0, #2 ldrsb r0, [r4, r0] diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index 5604bf3c..27c05dd6 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -3,266 +3,7 @@ .section .text .balign 4, 0 - thumb_func_start MOD59_021D7564 -MOD59_021D7564: ; 0x021D7564 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r5, r1, #0 - bl OverlayManager_GetData - ldr r1, [r5] - add r4, r0, #0 - mov r6, #0 - cmp r1, #5 - bls _021D757A - b _021D76AC -_021D757A: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021D7586: ; jump table - .short _021D7592 - _021D7586 - 2 ; case 0 - .short _021D75FA - _021D7586 - 2 ; case 1 - .short _021D7642 - _021D7586 - 2 ; case 2 - .short _021D7668 - _021D7586 - 2 ; case 3 - .short _021D7690 - _021D7586 - 2 ; case 4 - .short _021D76AA - _021D7586 - 2 ; case 5 -_021D7592: - add r0, r6, #0 - add r1, r6, #0 - bl FUN_0200E3A0 - mov r0, #1 - add r1, r6, #0 - bl FUN_0200E3A0 - add r0, r6, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - add r0, r6, #0 - add r1, r0, #0 - bl FUN_02015F34 - bl GX_DisableEngineALayers - bl GX_DisableEngineBLayers - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2] - ldr r0, _021D76B4 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2] - ldr r2, _021D76B8 ; =0x04001000 - ldr r1, [r2] - and r0, r1 - str r0, [r2] - mov r0, #4 - mov r1, #8 - bl FUN_0201669C - add r0, r4, #0 - bl MOD59_021D778C - add r0, r4, #0 - bl MOD59_021D79F8 - add r0, r4, #0 - bl MOD59_021D7A4C - ldr r0, _021D76BC ; =MOD59_021D7724 - add r1, r4, #0 - bl Main_SetVBlankIntrCB - bl GX_BothDispOn - mov r0, #1 - str r0, [r5] - b _021D76AC -_021D75FA: - bl MOD59_021D8920 - cmp r0, #1 - bne _021D761E - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [r4] - str r0, [sp, #8] - add r0, r6, #0 - add r1, r0, #0 - add r2, r0, #0 - add r3, r0, #0 - bl FUN_0200E1D0 - mov r0, #2 - str r0, [r5] -_021D761E: - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _021D76AC - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [r4] - str r0, [sp, #8] - mov r0, #0 - add r1, r0, #0 - add r2, r0, #0 - add r3, r0, #0 - bl FUN_0200E1D0 - mov r0, #3 - str r0, [r5] - b _021D76AC -_021D7642: - bl FUN_0200E308 - cmp r0, #1 - bne _021D76AC - add r0, r4, #0 - bl MOD59_021D7A34 - add r0, r4, #0 - bl MOD59_021D796C - add r0, r4, #0 - bl MOD59_021D7A5C - add r0, r6, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - mov r6, #1 - b _021D76AC -_021D7668: - bl FUN_0200E308 - cmp r0, #1 - bne _021D76AC - add r0, r4, #0 - bl MOD59_021D7A34 - add r0, r4, #0 - bl MOD59_021D796C - add r0, r4, #0 - bl MOD59_021D7A5C - add r0, r6, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - mov r0, #4 - str r0, [r5] - b _021D76AC -_021D7690: - ldr r0, [r4, #0x14] - bl OverlayManager_Run - cmp r0, #1 - bne _021D76AC - ldr r0, [r4, #0x14] - bl OverlayManager_delete - add r0, r6, #0 - str r0, [r4, #0x14] - mov r0, #5 - str r0, [r5] - b _021D76AC -_021D76AA: - str r6, [r5] -_021D76AC: - add r0, r6, #0 - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021D76B4: .word 0xFFFFE0FF -_021D76B8: .word 0x04001000 -_021D76BC: .word MOD59_021D7724 - thumb_func_end MOD59_021D7564 - - thumb_func_start MOD59_021D76C0 -MOD59_021D76C0: ; 0x021D76C0 - push {r4, r5, r6, lr} - add r6, r0, #0 - bl OverlayManager_GetData - add r4, r0, #0 - ldr r0, [r4, #4] - ldr r5, [r4] - bl Sav2_PlayerData_GetProfileAddr - ldr r1, [r4, #0x70] - ldr r1, [r1, #0x18] - bl PlayerName_StringToFlat - ldr r0, [r4, #4] - bl Sav2_PlayerData_GetProfileAddr - ldr r1, [r4, #0x70] - ldr r1, [r1, #4] - bl PlayerProfile_SetTrainerGender - ldr r0, [r4, #4] - bl FUN_02024EB4 - ldr r1, [r4, #0x74] - ldr r1, [r1, #0x18] - bl RivalsNameToU16Array - ldr r0, [r4, #0x70] - bl FUN_02077AC4 - ldr r0, [r4, #0x74] - bl FUN_02077AC4 - add r0, r6, #0 - bl OverlayManager_FreeData - add r0, r5, #0 - bl FUN_020168D0 - ldr r0, _021D771C ; =SDK_OVERLAY_MODULE_52_ID - ldr r1, _021D7720 ; =MOD52_021D76D8 - bl RegisterMainOverlay - mov r0, #1 - pop {r4, r5, r6, pc} - nop -_021D771C: .word SDK_OVERLAY_MODULE_52_ID -_021D7720: .word MOD52_021D76D8 - thumb_func_end MOD59_021D76C0 - - thumb_func_start MOD59_021D7724 -MOD59_021D7724: ; 0x021D7724 - ldr r3, _021D772C ; =FUN_0201AB60 - ldr r0, [r0, #0x18] - bx r3 - nop -_021D772C: .word FUN_0201AB60 - thumb_func_end MOD59_021D7724 - - thumb_func_start MOD59_021D7730 -MOD59_021D7730: ; 0x021D7730 - push {r3, r4} - ldr r2, _021D7788 ; =gMain + 0x40 - mov r0, #0 - ldrh r1, [r2, #0x20] - cmp r1, #0 - beq _021D7784 - ldrh r3, [r2, #0x1c] - mov r1, #1 - lsl r1, r1, #8 - cmp r3, r1 - bhs _021D7784 - ldrh r2, [r2, #0x1e] - cmp r2, #0xc0 - bhs _021D7784 - cmp r3, #0x80 - bhs _021D7758 - mov r1, #0x80 - sub r1, r1, r3 - lsl r1, r1, #0x10 - b _021D775C -_021D7758: - sub r3, #0x80 - lsl r1, r3, #0x10 -_021D775C: - lsr r3, r1, #0x10 - cmp r2, #0x64 - bhs _021D776A - mov r1, #0x64 - sub r1, r1, r2 - lsl r1, r1, #0x10 - b _021D776E -_021D776A: - sub r2, #0x64 - lsl r1, r2, #0x10 -_021D776E: - lsr r4, r1, #0x10 - add r2, r3, #0 - add r1, r4, #0 - mul r2, r3 - mul r1, r4 - add r2, r2, r1 - mov r1, #1 - lsl r1, r1, #8 - cmp r2, r1 - bgt _021D7784 - mov r0, #1 -_021D7784: - pop {r3, r4} - bx lr - .align 2, 0 -_021D7788: .word gMain + 0x40 - thumb_func_end MOD59_021D7730 + .extern MOD59_021D7730 thumb_func_start MOD59_021D778C MOD59_021D778C: ; 0x021D778C @@ -280,7 +21,7 @@ _021D7798: add r0, sp, #0x50 bl GX_SetBanks ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x40 ldr r5, _021D7958 ; =0x021D9DCC str r0, [r4, #0x18] @@ -290,7 +31,7 @@ _021D7798: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D795C ; =0x021D9EA0 add r3, sp, #0x24 ldmia r5!, {r0, r1} @@ -309,10 +50,10 @@ _021D7798: strb r0, [r2, #0x13] ldr r0, [r4, #0x18] add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0xe add r2, sp, #0x24 strb r0, [r2, #0x12] @@ -321,10 +62,10 @@ _021D7798: ldr r0, [r4, #0x18] mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0xd add r2, sp, #0x24 strb r0, [r2, #0x12] @@ -333,10 +74,10 @@ _021D7798: ldr r0, [r4, #0x18] mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0xc add r2, sp, #0x24 strb r0, [r2, #0x12] @@ -344,10 +85,10 @@ _021D7798: strb r1, [r2, #0x13] ldr r0, [r4, #0x18] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0 str r1, [sp] ldr r0, [r4] @@ -391,10 +132,10 @@ _021D7798: ldr r0, [r4, #0x18] mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0xe add r0, sp, #8 strb r1, [r0, #0x12] @@ -403,10 +144,10 @@ _021D7798: ldr r0, [r4, #0x18] add r2, sp, #8 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0xd add r0, sp, #8 strb r1, [r0, #0x12] @@ -416,10 +157,10 @@ _021D7798: mov r1, #6 add r2, sp, #8 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #6 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #0xc add r0, sp, #8 strb r1, [r0, #0x12] @@ -429,34 +170,34 @@ _021D7798: mov r1, #7 add r2, sp, #8 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 bl MOD59_021D8058 mov r0, #0 @@ -478,52 +219,52 @@ MOD59_021D796C: ; 0x021D796C add r4, r0, #0 mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x18] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] bl FreeToHeap pop {r4, pc} @@ -690,7 +431,7 @@ _021D7B0E: lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer b _021D7BDE _021D7B1A: mov r0, #0x10 @@ -783,7 +524,7 @@ _021D7BC0: lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer b _021D7BDE _021D7BD0: ldr r0, _021D7BE4 ; =0x04000050 @@ -843,11 +584,11 @@ MOD59_021D7C10: ; 0x021D7C10 ldr r0, [r5, #0x18] lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette lsl r1, r4, #0x18 ldr r0, [r5, #0x18] lsr r1, r1, #0x18 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0xc pop {r4, r5, pc} .align 2, 0 @@ -873,7 +614,7 @@ _021D7C5E: ldr r0, [r5, #0x18] ldr r2, _021D7D5C ; =0x021D9DB8 add r1, #0x1c - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x20 @@ -891,7 +632,7 @@ _021D7C5E: mov r3, #4 bl FUN_0200D0BC mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint add r0, r4, #0 bl FUN_02002B7C mov r0, #1 @@ -974,7 +715,7 @@ _021D7D36: _021D7D46: add r0, r5, #0 add r0, #0x1c - bl FUN_02019178 + bl RemoveWindow mov r0, #0 str r0, [r5, #0x50] mov r4, #1 @@ -994,7 +735,7 @@ MOD59_021D7D68: ; 0x021D7D68 cmp r2, #0 bne _021D7D74 ldr r0, _021D7D78 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D7D74: pop {r3, pc} nop @@ -1048,7 +789,7 @@ _021D7DC4: add r1, r5, #0 ldr r0, [r5, #0x18] add r1, #0x30 - bl FUN_02019150 + bl AddWindow ldr r1, [r5] add r0, r6, #0 bl ListMenuItems_ctor @@ -1129,7 +870,7 @@ _021D7E66: bl FUN_0200CCF8 add r0, r5, #0 add r0, #0x30 - bl FUN_02019178 + bl RemoveWindow mov r1, #0 ldr r0, [r5, #0x40] add r2, r1, #0 @@ -1137,7 +878,7 @@ _021D7E66: ldr r0, [r5, #0x44] bl ListMenuItems_dtor ldr r0, _021D7EC8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r5, #0x2c] mov r0, #1 @@ -1191,7 +932,7 @@ _021D7EEE: ; jump table _021D7EFA: add r0, r5, #0 add r1, r5, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 ldr r1, [r4] lsl r0, r0, #0xa @@ -1225,7 +966,7 @@ _021D7EFA: ldr r0, [r4, #0x18] add r1, #0x1c add r2, sp, #0x14 - bl FUN_02019150 + bl AddWindow add r1, r5, #0 mov r0, #0xc0 str r0, [sp] @@ -1264,7 +1005,7 @@ _021D7F7C: add r1, r4, #0 ldr r0, [r4, #0x18] add r1, #0x1c - bl FUN_02019150 + bl AddWindow add r1, r5, #0 mov r0, #0xc0 str r0, [sp] @@ -1319,7 +1060,7 @@ _021D7FF6: bne _021D803C _021D800A: ldr r0, _021D8054 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #4 str r0, [r4, #0x54] b _021D803C @@ -1334,10 +1075,10 @@ _021D8016: b _021D803C _021D8028: add r0, #0x1c - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 str r0, [r4, #0x54] mov r5, #1 @@ -1372,7 +1113,7 @@ MOD59_021D8058: ; 0x021D8058 ldr r3, [r5] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1420,10 +1161,10 @@ _021D80AA: bl MOD59_021D8234 mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -1696,7 +1437,7 @@ _021D82C8: ldr r0, [r5, #0x18] mov r1, #2 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0xb str r3, [sp] mov r0, #0xa @@ -1705,7 +1446,7 @@ _021D82C8: ldr r0, [r5, #0x18] mov r1, #2 add r2, r7, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 mov r1, #2 mov r2, #9 @@ -1714,7 +1455,7 @@ _021D82C8: mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #1 str r0, [sp] mov r3, #0x32 @@ -1722,19 +1463,19 @@ _021D82C8: mov r1, #2 add r2, r4, #0 lsl r3, r3, #6 - bl FUN_02017E14 + bl BG_LoadCharTilesData mov r3, #0x20 add r2, r3, #0 mov r0, #2 add r1, r6, #0 add r3, #0xe0 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r3, #0x12 ldr r1, _021D83F4 ; =0x021D9ED8 mov r0, #2 mov r2, #0x20 lsl r3, r3, #4 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -1746,7 +1487,7 @@ _021D82C8: ldr r0, [r5, #0x18] mov r1, #5 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #7 str r0, [sp] mov r0, #0xa @@ -1756,7 +1497,7 @@ _021D82C8: mov r1, #5 add r2, r7, #0 mov r3, #0xb - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r5, #0 mov r1, #5 mov r2, #0xa @@ -1765,7 +1506,7 @@ _021D82C8: mov r0, #5 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #1 str r0, [sp] mov r3, #0x32 @@ -1773,17 +1514,17 @@ _021D82C8: mov r1, #5 add r2, r4, #0 lsl r3, r3, #6 - bl FUN_02017E14 + bl BG_LoadCharTilesData mov r0, #5 add r1, r6, #0 mov r2, #0x20 lsl r3, r0, #6 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #5 ldr r1, _021D83F4 ; =0x021D9ED8 mov r2, #0x20 lsl r3, r0, #6 - bl FUN_02017FB4 + bl BG_LoadPlttData add r0, r6, #0 bl FreeToHeap add r0, r4, #0 @@ -1831,7 +1572,7 @@ MOD59_021D83F8: ; 0x021D83F8 mov r0, #6 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x20 str r0, [sp] mov r0, #0 @@ -1858,7 +1599,7 @@ MOD59_021D8460: ; 0x021D8460 cmp r2, #0 bne _021D849C ldr r0, [r5, #0x18] - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0 beq _021D8498 cmp r0, #0 @@ -1868,14 +1609,14 @@ MOD59_021D8460: ; 0x021D8460 lsr r1, r1, #0x18 mov r2, #2 mov r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D84E2 _021D848A: lsl r1, r4, #0x18 lsr r1, r1, #0x18 mov r2, #1 mov r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D84E2 _021D8498: mov r6, #1 @@ -1884,7 +1625,7 @@ _021D849C: cmp r2, #1 bne _021D84C2 ldr r0, [r5, #0x18] - bl FUN_02017B48 + bl Bg_GetXpos add r1, r6, #0 sub r1, #0x30 cmp r0, r1 @@ -1894,7 +1635,7 @@ _021D849C: lsr r1, r1, #0x18 mov r2, #2 mov r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D84E2 _021D84BE: mov r6, #1 @@ -1903,7 +1644,7 @@ _021D84C2: cmp r2, #2 bne _021D84E2 ldr r0, [r5, #0x18] - bl FUN_02017B48 + bl Bg_GetXpos cmp r0, #0 beq _021D84E0 lsl r1, r4, #0x18 @@ -1911,7 +1652,7 @@ _021D84C2: lsr r1, r1, #0x18 mov r2, #1 mov r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D84E2 _021D84E0: mov r6, #1 @@ -2206,19 +1947,19 @@ _021D86E4: mov r1, #2 add r2, r7, #0 add r3, r7, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #3 add r3, r2, #0 ldr r0, [r4, #0x18] mov r1, #2 sub r3, #0x6b - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #2 add r1, r7, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #5 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 add r2, r7, #0 add r0, #0xa8 @@ -2235,10 +1976,10 @@ _021D86E4: _021D8728: ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02017B48 + bl Bg_GetXpos ldr r0, [r4, #0x18] mov r1, #5 - bl FUN_02017B54 + bl Bg_GetYpos add r1, r4, #0 add r1, #0xb0 ldr r3, [r1] @@ -2269,22 +2010,22 @@ _021D8728: mov r1, #2 ldr r0, [r4, #0x18] add r3, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x18] mov r1, #5 mov r2, #1 mov r3, #2 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x18] mov r1, #5 mov r2, #3 add r3, r5, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D890A _021D8792: mov r0, #5 add r1, r7, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x1e add r4, #0xb0 str r0, [r4] @@ -2307,7 +2048,7 @@ _021D87A6: _021D87BE: mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 add r2, r7, #0 add r0, #0xa8 @@ -2324,10 +2065,10 @@ _021D87BE: _021D87E0: ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02017B48 + bl Bg_GetXpos ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02017B54 + bl Bg_GetYpos add r0, r4, #0 add r0, #0xb0 ldr r1, [r0] @@ -2356,7 +2097,7 @@ _021D87E0: mov r1, #2 mov r2, #3 add r3, r7, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 add r2, r7, #0 add r0, #0xa8 @@ -2385,7 +2126,7 @@ _021D8846: ldr r0, [r4, #0x18] mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit asr r5, r5, #1 cmp r5, #0x90 ble _021D886E @@ -2395,15 +2136,15 @@ _021D886E: mov r1, #2 mov r2, #3 add r3, r5, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D890A _021D887C: ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02017B48 + bl Bg_GetXpos ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02017B54 + bl Bg_GetYpos add r0, r4, #0 add r0, #0xb0 ldr r1, [r0] @@ -2431,7 +2172,7 @@ _021D887C: mov r1, #2 mov r2, #3 add r3, r7, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #5 str r0, [r6] b _021D890A @@ -2447,12 +2188,12 @@ _021D88CC: mov r1, #2 ldr r0, [r4, #0x18] add r3, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x18] mov r1, #2 mov r2, #3 add r3, r5, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, #0xa8 str r5, [r4] b _021D890A @@ -2478,7 +2219,7 @@ MOD59_021D8914: ; 0x021D8914 mov r1, #1 bx r3 .align 2, 0 -_021D891C: .word FUN_020178BC +_021D891C: .word SetBgPriority thumb_func_end MOD59_021D8914 thumb_func_start MOD59_021D8920 @@ -2619,10 +2360,10 @@ _021D8A1A: bl FUN_02005350 add r0, r5, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #1 str r0, [sp] @@ -2658,7 +2399,7 @@ _021D8A76: str r0, [r4, #0xc] ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit bl _021D985C _021D8A92: ldr r0, _021D8D70 ; =0x00000405 @@ -2675,10 +2416,10 @@ _021D8A92: bl MOD59_021D8140 mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 str r0, [sp] mov r0, #4 @@ -2748,7 +2489,7 @@ _021D8B44: str r0, [r4, #0xc] ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit bl _021D985C _021D8B58: mov r0, #0x29 @@ -2775,10 +2516,10 @@ _021D8B80: bne _021D8C84 ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #1 add r1, r5, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x10] str r0, [r4, #0xc] bl _021D985C @@ -2893,12 +2634,12 @@ _021D8C88: str r0, [r4, #0xc] ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit bl _021D985C _021D8C98: add r0, r5, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x14 str r0, [r4, #0xc] bl _021D985C @@ -2928,7 +2669,7 @@ _021D8CBC: bl FUN_020145C8 mov r0, #6 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 mov r1, #3 add r0, #0x8b @@ -3003,7 +2744,7 @@ _021D8D7C: bne _021D8DA0 ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x1c str r0, [r4, #0xc] bl _021D985C @@ -3018,7 +2759,7 @@ _021D8DA0: _021D8DA4: ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x68] bl FUN_020146C4 add r0, r4, #0 @@ -3058,12 +2799,12 @@ _021D8DEA: bl MOD59_021D8234 mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer add r2, r5, #0 ldr r0, [r4, #0x18] mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #6 mov r1, #1 str r0, [sp] @@ -3220,10 +2961,10 @@ _021D8F5E: bne _021D8FCE ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x1c str r0, [r4, #0xc] bl _021D985C @@ -3277,7 +3018,7 @@ _021D8FD2: bl MOD59_021D8234 mov r0, #6 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #1 str r0, [sp] @@ -3319,7 +3060,7 @@ _021D9030: add r0, #0x98 str r1, [r0] ldr r0, [r4, #0x18] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x30 str r0, [r4, #0xc] bl _021D985C @@ -3360,7 +3101,7 @@ _021D9078: cmp r1, r0 bne _021D90A2 ldr r0, _021D937C ; =0x00000706 - bl FUN_020054C8 + bl PlaySE mov r0, #0x32 str r0, [r4, #0xc] b _021D985C @@ -3482,7 +3223,7 @@ _021D9192: bl MOD59_021D82A0 mov r0, #6 add r1, r5, #0 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 add r1, r5, #0 add r0, #0x94 @@ -3557,7 +3298,7 @@ _021D922A: bne _021D92FA ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x3b str r0, [r4, #0xc] b _021D985C @@ -3615,12 +3356,12 @@ _021D9290: ldr r0, [r4, #0x18] mov r1, #1 sub r3, #0x30 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x18] mov r1, #2 add r2, r5, #0 mov r3, #0x30 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x40 str r0, [r4, #0xc] b _021D985C @@ -3709,7 +3450,7 @@ _021D935C: add r0, #0x84 str r1, [r0] ldr r0, _021D9380 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D9368: add r0, r4, #0 bl MOD59_021D8504 @@ -3801,7 +3542,7 @@ _021D9416: _021D941C: ldr r0, [r4, #0x18] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x4a str r0, [r4, #0xc] b _021D985C @@ -3848,13 +3589,13 @@ _021D945C: _021D9476: add r0, r5, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r0, r4, #0 add r0, #0x84 ldr r0, [r0] @@ -3862,22 +3603,22 @@ _021D9476: bne _021D94AE mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer add r2, r5, #0 ldr r0, [r4, #0x18] mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit b _021D94C2 _021D94AE: mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer add r2, r5, #0 ldr r0, [r4, #0x18] mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _021D94C2: mov r0, #6 mov r1, #1 @@ -3925,7 +3666,7 @@ _021D950C: bne _021D9530 ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, [r4, #0x48] sub r0, r5, #2 cmp r1, r0 @@ -4124,21 +3865,21 @@ _021D9684: _021D9696: add r0, r5, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer add r2, r5, #0 ldr r0, [r4, #0x18] mov r1, #1 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #6 mov r1, #1 str r0, [sp] @@ -4187,7 +3928,7 @@ _021D971A: _021D971C: ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x61 str r0, [r4, #0xc] b _021D985C @@ -4263,7 +4004,7 @@ _021D97B2: bne _021D985C ldr r0, [r4, #0x18] add r1, r5, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x67 str r0, [r4, #0xc] b _021D985C diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s index 2925c404..147b3a99 100644 --- a/arm9/modules/59/asm/mod59_021D9868.s +++ b/arm9/modules/59/asm/mod59_021D9868.s @@ -11,7 +11,7 @@ MOD59_021D9868: ; 0x021D9868 mov r0, #3 mov r1, #0x53 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap add r0, r4, #0 mov r1, #0x28 mov r2, #0x53 @@ -81,7 +81,7 @@ _021D98C6: str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0 bl MOD59_021D9A20 add r0, r4, #0 @@ -200,7 +200,7 @@ MOD59_021D99F8: ; 0x021D99F8 add r0, r5, #0 bl OverlayManager_FreeData add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -212,7 +212,7 @@ MOD59_021D9A14: ; 0x021D9A14 ldr r0, [r0, #4] bx r3 nop -_021D9A1C: .word FUN_0201AB60 +_021D9A1C: .word DoScheduledBgGpuUpdates thumb_func_end MOD59_021D9A14 thumb_func_start MOD59_021D9A20 @@ -231,7 +231,7 @@ _021D9A2C: add r0, sp, #0x90 bl GX_SetBanks ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x80 ldr r5, _021D9BB8 ; =0x021DA054 str r0, [r4, #4] @@ -241,7 +241,7 @@ _021D9A2C: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D9BBC ; =0x021DA080 add r3, sp, #0x64 ldmia r5!, {r0, r1} @@ -256,15 +256,15 @@ _021D9A2C: str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r3, [r4] mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [r4, #4] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D9BC0 ; =0x021DA09C add r3, sp, #0x48 ldmia r5!, {r0, r1} @@ -279,7 +279,7 @@ _021D9A2C: str r0, [r3] ldr r0, [r4, #4] add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -314,7 +314,7 @@ _021D9A2C: str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -351,7 +351,7 @@ _021D9A2C: str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -387,10 +387,10 @@ _021D9A2C: bl FUN_02002ED0 mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r2, #0xc ldr r0, _021D9BCC ; =0x04000050 mov r1, #2 @@ -415,43 +415,43 @@ MOD59_021D9BD0: ; 0x021D9BD0 add r4, r0, #0 mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, _021D9C44 ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r0, [r4, #4] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} @@ -511,7 +511,7 @@ _021D9C92: ; jump table _021D9C9A: mov r0, #2 add r1, r5, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 ldr r1, [r4] lsl r0, r0, #0xa @@ -525,7 +525,7 @@ _021D9C9A: ldr r0, [r4, #4] ldr r2, _021D9D6C ; =0x021DA04C add r1, #0x10 - bl FUN_02019150 + bl AddWindow add r1, r5, #0 mov r0, #1 lsl r0, r0, #8 @@ -562,7 +562,7 @@ _021D9C9A: bl CopyWindowToVram mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0xf0 str r0, [r4, #0x24] mov r0, #1 @@ -597,10 +597,10 @@ _021D9D4A: _021D9D50: add r0, r4, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #4] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r5, #0 str r0, [r4, #0xc] mov r5, #1 @@ -624,7 +624,7 @@ MOD59_021D9D78: ; 0x021D9D78 ldr r0, [r0, #4] mov r1, #1 asr r3, r3, #4 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r3, pc} .align 2, 0 thumb_func_end MOD59_021D9D78 diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h index 9342913d..d6f52bba 100644 --- a/arm9/modules/59/include/mod59_021D74E0.h +++ b/arm9/modules/59/include/mod59_021D74E0.h @@ -5,6 +5,15 @@ #include "options.h" #include "save_block_2.h" #include "main.h" +#include "player_data.h" + +struct MOD59_UnkPlayerStruct +{ + u8 padding[0x4]; + GenderEnum gender; + u8 padding2[0x10]; + struct String *name; +}; typedef struct MOD59_OverlayData { @@ -13,10 +22,11 @@ typedef struct MOD59_OverlayData struct Options *options; u32 Unk0C; u32 Unk10; - u32 Unk14; - u8 padding[0x58]; - u32 Unk70; - u32 Unk74; + struct UnkStruct_02006234 *Unk14; + struct BgConfig *Unk18; + u8 padding[0x54]; + struct MOD59_UnkPlayerStruct *playerStruct; + struct MOD59_UnkPlayerStruct *rivalStruct; u8 padding2[0x10]; u8 Unk88; u8 Unk89; @@ -24,9 +34,13 @@ typedef struct MOD59_OverlayData u8 Unk8B; u8 padding3[4]; u32 Unk90; - //TODO pad to 0xb4 + u8 padding4[32]; } MOD59_OverlayData; BOOL MOD59_Init(struct UnkStruct_02006234 *param0); +BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1); +BOOL MOD59_021D76C0(struct UnkStruct_02006234 *param0); +void MOD59_021D7724(MOD59_OverlayData *data); +BOOL MOD59_021D7730(void); #endif //POKEDIAMOND_MOD59_021D74E0_H diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c index 4d7a4a98..e104cf4f 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -3,24 +3,45 @@ #include "overlay_manager.h" #include "mod59_021D74E0.h" #include "heap.h" +#include "game_init.h" +#include "GX_layers.h" +#include "unk_02024E64.h" +#include "bg_window.h" +#include "module_52.h" +extern void *FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options); -extern u32 FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options); +extern void FUN_0200E3A0(PMLCDTarget, int); + +extern void MOD59_021D778C(MOD59_OverlayData *data); +extern void MOD59_021D79F8(MOD59_OverlayData *data); +extern void MOD59_021D7A34(MOD59_OverlayData *data); +extern void MOD59_021D796C(MOD59_OverlayData *data); +extern void MOD59_021D7A4C(MOD59_OverlayData *data); +extern void MOD59_021D7A5C(MOD59_OverlayData *data); +extern u32 MOD59_021D8920(MOD59_OverlayData *data); + +extern void FUN_0200E1D0(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 heap_id); +extern u32 FUN_0200E308(void); + +extern void FUN_02077AC4(void *param0); + +FS_EXTERN_OVERLAY(MODULE_52); THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0) { - //note: 0xb4 is likely the overlay data struct size, once struct is padded replace with sizeof - FUN_0201681C(3, 0x52, 1 << 18); - MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_CreateAndGetData(param0, 0xb4, 0x52); + CreateHeap(3, 0x52, 1 << 18); + MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_CreateAndGetData(param0, sizeof(MOD59_OverlayData), 0x52); (void)memset((void *)data, 0, 0xb4); data->heap_id = 0x52; - int *field18 = OverlayManager_GetField18(param0); + s32 *field18 = OverlayManager_GetField18(param0); data->sav2 = (struct SaveBlock2 *)field18[2]; //? data->options = Sav2_PlayerData_GetOptionsAddr(data->sav2); - data->Unk14 = data->Unk10 = data->Unk0C = 0; - data->Unk70 = FUN_02077A84(0x52, 0, 0, 7, data->options); - data->Unk74 = FUN_02077A84(0x52, 3, 0, 7, data->options); + data->Unk10 = data->Unk0C = 0; + data->Unk14 = NULL; + data->playerStruct = (struct MOD59_UnkPlayerStruct *)FUN_02077A84(0x52, 0, 0, 7, data->options); + data->rivalStruct = (struct MOD59_UnkPlayerStruct *)FUN_02077A84(0x52, 3, 0, 7, data->options); data->Unk88 = 0; data->Unk89 = 0; data->Unk8A = 0; @@ -28,3 +49,154 @@ THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0) data->Unk90 = 0; return TRUE; } + +THUMB_FUNC BOOL MOD59_021D7564(struct UnkStruct_02006234 *param0, u32 *param1) +{ + MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_GetData(param0); + BOOL ret = FALSE; + + switch (*param1) + { + case 0: + FUN_0200E3A0(PM_LCD_TOP, 0); + FUN_0200E3A0(PM_LCD_BOTTOM, 0); + + Main_SetVBlankIntrCB(NULL, NULL); + + FUN_02015F34(NULL, NULL); + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); + + reg_GX_DISPCNT = reg_GX_DISPCNT & 0xFFFFE0FF; + reg_GXS_DB_DISPCNT = reg_GXS_DB_DISPCNT & 0xFFFFE0FF; + + SetKeyRepeatTimers(4, 8); + + MOD59_021D778C(data); + MOD59_021D79F8(data); + MOD59_021D7A4C(data); + + Main_SetVBlankIntrCB((void (*)(void *))MOD59_021D7724, data); + + GX_BothDispOn(); + + *param1 = 1; + + break; + + case 1: + if (MOD59_021D8920(data) == 1) + { + FUN_0200E1D0(0, 0, 0, 0, 6, 1, data->heap_id); + *param1 = 2; + } + + if (data->Unk14 == NULL) + { + break; + } + + FUN_0200E1D0(0, 0, 0, 0, 6, 1, data->heap_id); + *param1 = 3; + + break; + + case 2: + if (FUN_0200E308() != 1) + { + break; + } + + MOD59_021D7A34(data); + MOD59_021D796C(data); + MOD59_021D7A5C(data); + + Main_SetVBlankIntrCB(NULL, NULL); + + ret = TRUE; + break; + + case 3: + if (FUN_0200E308() != 1) + { + break; + } + + MOD59_021D7A34(data); + MOD59_021D796C(data); + MOD59_021D7A5C(data); + + Main_SetVBlankIntrCB(NULL, NULL); + + *param1 = 4; + + break; + + case 4: + if (OverlayManager_Run(data->Unk14) != TRUE) + { + break; + } + + OverlayManager_delete(data->Unk14); + data->Unk14 = NULL; + + *param1 = 5; + + break; + + case 5: + *param1 = 0; + + break; + } + + return ret; +} + +THUMB_FUNC BOOL MOD59_021D76C0(struct UnkStruct_02006234 *param0) +{ + MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_GetData(param0); + + u32 heap_id = data->heap_id; + PlayerName_StringToFlat(Sav2_PlayerData_GetProfileAddr(data->sav2), data->playerStruct->name); + PlayerProfile_SetTrainerGender(Sav2_PlayerData_GetProfileAddr(data->sav2), data->playerStruct->gender); + + RivalsNameToU16Array(FUN_02024EB4(data->sav2), data->rivalStruct->name); + + FUN_02077AC4(data->playerStruct); + FUN_02077AC4(data->rivalStruct); + + OverlayManager_FreeData(param0); + DestroyHeap(heap_id); + + RegisterMainOverlay(FS_OVERLAY_ID(MODULE_52), &MOD52_021D76D8); + + return TRUE; +} + +THUMB_FUNC void MOD59_021D7724(MOD59_OverlayData *data) +{ + DoScheduledBgGpuUpdates(data->Unk18); +} + +THUMB_FUNC BOOL MOD59_021D7730(void) +{ + BOOL ret = FALSE; + + if (gMain.touchNew != 0 && gMain.touchX < 256 && gMain.touchY < 192) + { + s32 distanceFromXCentre = gMain.touchX < 128 ? (u16)(128 - gMain.touchX) : (u16)(gMain.touchX - 128); + s32 distanceFromYCentre = gMain.touchY < 100 ? (u16)(100 - gMain.touchY) : (u16)(gMain.touchY - 100); + + s32 distanceXSquare = distanceFromXCentre * distanceFromXCentre; + s32 distanceYSquare = distanceFromYCentre * distanceFromYCentre; + + if (distanceXSquare + distanceYSquare <= 256) + { + ret = TRUE; + } + } + + return ret; +} diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index 8c6d04fc..bce93cc6 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -13,7 +13,7 @@ MOD60_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x26 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #0xad add r0, r4, #0 lsl r1, r1, #2 @@ -215,7 +215,7 @@ _021D769A: add r0, r5, #0 bl OverlayManager_FreeData ldr r0, [r4] - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} nop @@ -284,7 +284,7 @@ _021D7714: cmp r1, #6 bne _021D773C ldr r0, _021D77B0 ; =0x0000061B - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x10] mov r0, #3 bic r1, r0 @@ -405,7 +405,7 @@ _021D7804: bl FUN_0200BC30 bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x14] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D782C ; =0x027E0000 ldr r1, _021D7830 ; =0x00003FF8 mov r0, #1 @@ -587,7 +587,7 @@ MOD60_021D7990: ; 0x021D7990 sub sp, #0x80 add r6, r0, #0 ldr r0, [r6] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0 ldr r4, _021D7A08 ; =0x021D8114 str r0, [r6, #0x14] @@ -597,7 +597,7 @@ MOD60_021D7990: ; 0x021D7990 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _021D7A0C ; =0x021D8168 add r3, sp, #0x10 mov r2, #0xe @@ -616,12 +616,12 @@ _021D79C6: lsr r1, r1, #0x18 add r2, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r1, [r5] ldr r0, [r6, #0x14] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r7, r7, #1 add r4, #0x1c add r5, r5, #4 @@ -631,12 +631,12 @@ _021D79C6: ldr r3, [r6] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r6] mov r0, #4 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x80 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -651,16 +651,16 @@ MOD60_021D7A14: ; 0x021D7A14 add r4, r0, #0 ldr r0, [r4, #0x14] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x14] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x14] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x14] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x14] bl FreeToHeap pop {r4, pc} @@ -695,7 +695,7 @@ MOD60_021D7A40: ; 0x021D7A40 ldr r2, [r3, #0x14] ldr r0, [r5, #0x14] ldr r3, [r3, #0x10] - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r3, [sp, #0x20] mov r0, #0 str r0, [sp] @@ -703,7 +703,7 @@ MOD60_021D7A40: ; 0x021D7A40 ldr r0, [r5, #0x14] ldr r3, [r3, #0x10] mov r1, #4 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r6, #0 bl FreeToHeap mov r0, #0x49 @@ -725,13 +725,13 @@ MOD60_021D7A40: ; 0x021D7A40 ldr r1, [r1, #0xc] mov r2, #0x20 add r3, r0, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r1, [sp, #0x1c] mov r0, #4 ldr r1, [r1, #0xc] mov r2, #0x20 mov r3, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData add r0, r6, #0 bl FreeToHeap mov r0, #0x49 @@ -761,7 +761,7 @@ MOD60_021D7A40: ; 0x021D7A40 ldr r0, [r5, #0x14] mov r1, #2 mov r2, #1 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0 str r3, [sp] mov r0, #0x20 @@ -772,7 +772,7 @@ MOD60_021D7A40: ; 0x021D7A40 ldr r0, [r5, #0x14] mov r1, #4 mov r2, #1 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r5, #0x28] mov r1, #0x20 str r1, [sp] @@ -795,22 +795,22 @@ MOD60_021D7A40: ; 0x021D7A40 lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r5, #0x14] - bl FUN_020181EC + bl CopyRectToBgTilemapRect mov r2, #3 add r3, r2, #0 ldr r0, [r5, #0x14] mov r1, #0 sub r3, #0x1b - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5, #0x14] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x14] mov r1, #0 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x14] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x24 pop {r3, r4, r5, r6, pc} thumb_func_end MOD60_021D7A40 @@ -844,7 +844,7 @@ MOD60_021D7BA4: ; 0x021D7BA4 ldr r0, [r4, #0x14] add r1, #0x2c add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #3 str r0, [sp] mov r0, #0x1e @@ -860,7 +860,7 @@ MOD60_021D7BA4: ; 0x021D7BA4 ldr r0, [r4, #0x14] add r1, #0x3c add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -876,7 +876,7 @@ MOD60_021D7BA4: ; 0x021D7BA4 add r1, #0x4c mov r2, #1 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] ldr r0, [r4] @@ -933,13 +933,13 @@ MOD60_021D7BA4: ; 0x021D7BA4 bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x4c - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r4, #0 add r0, #0x3c - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r4, #0 add r0, #0x2c - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r4, #0 ldr r2, _021D7CCC ; =0x00000232 add r0, #0x3c @@ -977,14 +977,14 @@ MOD60_021D7CD4: ; 0x021D7CD4 _021D7CF0: lsl r4, r6, #4 add r0, r5, r4 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, r4 add r1, r7, #0 bl FillWindowPixelBuffer add r0, r5, r4 - bl FUN_020192B8 + bl ClearWindowTilemap add r0, r5, r4 - bl FUN_02019178 + bl RemoveWindow add r0, r6, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 @@ -1451,7 +1451,7 @@ _021D8080: mov r1, #0 mov r2, #3 neg r3, r3 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r3, r4, r5, pc} _021D80BE: mov r0, #0x80 @@ -1479,7 +1479,7 @@ _021D80BE: mov r1, #0 mov r2, #3 neg r3, r3 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText _021D80F6: pop {r3, r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index ed9e0e05..cbb58d60 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -12,7 +12,7 @@ MOD61_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x29 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #0xbc mov r2, #0x29 @@ -80,7 +80,7 @@ MOD61_021D7568: ; 0x021D7568 add r0, r5, #0 bl OverlayManager_FreeData add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -120,7 +120,7 @@ MOD61_021D75AC: ; 0x021D75AC tst r0, r1 beq _021D75C2 ldr r0, _021D75CC ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021D75C2: @@ -152,7 +152,7 @@ MOD61_021D75D0: ; 0x021D75D0 cmp r0, #0 beq _021D7604 ldr r0, _021D76E4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #2 strb r0, [r4, #0xc] mov r0, #0 @@ -162,11 +162,11 @@ _021D7604: mov r1, #3 strh r1, [r0] ldr r0, _021D76E8 ; =0x000005E3 - bl FUN_020054C8 + bl PlaySE b _021D7620 _021D7612: ldr r0, _021D76E4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #3 strb r0, [r4, #0xc] mov r0, #0 @@ -189,7 +189,7 @@ _021D762E: ldr r0, [r4, #0x1c] strb r1, [r0, #3] ldr r0, _021D76E4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021D7644: mov r0, #1 pop {r3, r4, r5, pc} @@ -198,7 +198,7 @@ _021D7648: tst r0, r2 beq _021D765C ldr r0, _021D76E4 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #3 strb r0, [r4, #0xc] mov r0, #0 @@ -264,7 +264,7 @@ _021D76BE: pop {r3, r4, r5, pc} _021D76C6: ldr r0, _021D76EC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldrb r1, [r4, #0x11] cmp r1, #3 bne _021D76DA @@ -344,7 +344,7 @@ _021D775E: bl FUN_0200D0E0 add r0, r5, #0 add r0, #0x94 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0 strh r0, [r5, #8] ldrb r1, [r5, #0xd] @@ -499,7 +499,7 @@ _021D788A: bl FUN_0200D0E0 add r0, r5, #0 add r0, #0x94 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0 strh r0, [r5, #8] cmp r4, #0 @@ -739,7 +739,7 @@ _021D7A7A: _021D7A88: bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x18] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D7AA0 ; =0x027E0000 ldr r1, _021D7AA4 ; =0x00003FF8 mov r0, #1 @@ -921,7 +921,7 @@ MOD61_021D7BD0: ; 0x021D7BD0 add r4, r0, #0 bl MOD61_021D7BB0 ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0 ldr r5, _021D7CAC ; =0x021D8434 str r0, [r4, #0x18] @@ -931,7 +931,7 @@ MOD61_021D7BD0: ; 0x021D7BD0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7CB0 ; =0x021D84C8 add r3, sp, #0x10 mov r2, #0x11 @@ -946,67 +946,67 @@ _021D7BFC: ldr r0, [r4, #0x18] add r2, sp, #0x10 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #1 add r2, sp, #0x2c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #2 add r2, sp, #0x48 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #3 add r2, sp, #0x64 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #4 add r2, sp, #0x80 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x18] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x18] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x18] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0x18] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 ldr r3, [r4] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #1 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #3 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r4] mov r0, #4 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x9c pop {r4, r5, pc} .align 2, 0 @@ -1020,19 +1020,19 @@ MOD61_021D7CB4: ; 0x021D7CB4 add r4, r0, #0 ldr r0, [r4, #0x18] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x18] bl FreeToHeap pop {r4, pc} @@ -1095,7 +1095,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 ldr r0, [r5, #0x18] ldr r3, [r3, #0x10] mov r1, #1 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r3, [sp, #0x28] mov r0, #0 str r0, [sp] @@ -1103,7 +1103,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 ldr r0, [r5, #0x18] ldr r3, [r3, #0x10] mov r1, #4 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r7, #0 bl FreeToHeap ldr r1, [sp, #0x1c] @@ -1127,7 +1127,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 mov r3, #0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r0, [r5] bl FUN_02002FD0 str r0, [r5, #0x30] @@ -1281,7 +1281,7 @@ _021D7E00: ldr r0, [r5, #0x18] ldr r2, _021D7FAC ; =0x00002001 mov r1, #4 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 ldr r0, [r5, #0x3c] mov r1, #0x20 @@ -1304,13 +1304,13 @@ _021D7E00: lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r5, #0x18] - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r5, #0x18] mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x18] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldrb r0, [r5, #0xc] cmp r0, #1 bne _021D7FA6 @@ -1336,10 +1336,10 @@ _021D7E00: lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r5, #0x18] - bl FUN_02018170 + bl CopyToBgTilemapRect ldr r0, [r5, #0x18] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r2, #0 strb r2, [r5, #0x14] ldr r0, _021D7FB0 ; =MOD61_021D7AA8 @@ -1402,7 +1402,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 str r0, [sp, #0x10] ldr r0, [r5, #0x18] add r1, #0x44 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #8 str r0, [sp] mov r0, #0x1a @@ -1417,7 +1417,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 ldr r0, [r5, #0x18] add r1, #0x54 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd str r0, [sp] mov r0, #0x1a @@ -1432,7 +1432,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 ldr r0, [r5, #0x18] add r1, #0x64 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x14 str r0, [sp] mov r0, #8 @@ -1447,7 +1447,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 ldr r0, [r5, #0x18] add r1, #0x74 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x14 str r0, [sp] mov r0, #8 @@ -1462,7 +1462,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 ldr r0, [r5, #0x18] add r1, #0x84 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -1477,7 +1477,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 add r1, #0x94 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r4, #0 add r5, #0x44 add r6, r4, #0 @@ -1513,9 +1513,9 @@ MOD61_021D80F4: ; 0x021D80F4 add r5, #0x44 _021D80FC: add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #6 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 26b7d486..313e1dd9 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -1162,7 +1162,7 @@ MOD62_0222DE00: ; 0x0222DE00 add r1, sp, #0x1c mov r2, #0xa mov r3, #2 - bl FUN_020190EC + bl AddTextWindowTopLeftCorner mov r3, #0 str r3, [sp] mov r0, #0xff @@ -1238,7 +1238,7 @@ MOD62_0222DE00: ; 0x0222DE00 ldr r0, [sp, #0x14] bl DestroyMsgData add r0, sp, #0x1c - bl FUN_02019178 + bl RemoveWindow add sp, #0x5c pop {r4, r5, r6, r7, pc} nop @@ -1550,7 +1550,7 @@ _0222E120: ldrsh r3, [r7, r3] mov r1, #5 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x59 lsl r3, r3, #2 ldr r0, [r7, r3] @@ -1558,7 +1558,7 @@ _0222E120: ldrsh r3, [r7, r3] mov r1, #5 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit _0222E160: ldr r0, [sp, #4] cmp r0, #0 @@ -1675,14 +1675,14 @@ _0222E22E: lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #5 - bl FUN_02017B48 + bl Bg_GetXpos add r4, r0, #0 mov r1, #0x59 ldr r0, [sp, #0x1c] lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #5 - bl FUN_02017B54 + bl Bg_GetYpos add r3, r0, #0 ldr r0, [sp, #0xc] mov r5, #0x37 @@ -1954,7 +1954,7 @@ _0222E442: ldr r1, [sp, #0x18] lsr r2, r2, #0x18 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized add r0, r7, #0 mov r1, #0x35 bl ListMenuItems_ctor @@ -3323,7 +3323,7 @@ MOD62_0222EEE0: ; 0x0222EEE0 str r0, [sp, #0x10] add r0, r7, #0 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized mov r1, #1 add r0, r5, #0 add r2, r1, #0 @@ -3374,7 +3374,7 @@ MOD62_0222EF44: ; 0x0222EF44 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r7, #0 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0xf bl FillWindowPixelBuffer @@ -3673,9 +3673,9 @@ MOD62_0222F1E8: ; 0x0222F1E8 add r5, #0x30 _0222F1F2: add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xb @@ -4603,7 +4603,7 @@ MOD62_0222F904: ; 0x0222F904 bl FUN_0200CCF8 add r0, r4, #0 add r0, #0xfc - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r4, r0] @@ -4615,7 +4615,7 @@ MOD62_0222F904: ; 0x0222F904 bl ListMenuItems_dtor add r4, #0xfc add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow mov r0, #1 pop {r4, pc} .align 2, 0 @@ -5002,7 +5002,7 @@ _0222FBF0: add r0, r4, #0 bl MOD62_0222D654 ldr r0, _0222FD64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222FD4C _0222FC4C: ldr r0, _0222FD68 ; =gMain @@ -5033,7 +5033,7 @@ _0222FC4C: add r3, r4, #0 bl MOD62_0222E3C4 ldr r0, _0222FD64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222FD4C _0222FC8E: mov r0, #2 @@ -5043,7 +5043,7 @@ _0222FC8E: add r1, #0x10 str r0, [r4, r1] ldr r0, _0222FD6C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _0222FD4C _0222FCA2: mov r0, #0x1a @@ -5105,7 +5105,7 @@ _0222FD10: bne _0222FD4C add r0, r4, #0 add r0, #0xec - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 bl MOD62_0222ED04 add r0, r4, #0 @@ -5335,7 +5335,7 @@ _0222FEBA: add r0, r4, #0 bl MOD62_0222F0D4 ldr r0, _022300B0 ; =0x000006C5 - bl FUN_020054C8 + bl PlaySE _0222FEE6: ldr r0, _022300B4 ; =0x00000404 add r1, r6, #0 @@ -5368,7 +5368,7 @@ _0222FEF2: add r0, r4, #0 bl MOD62_0222F0D4 ldr r0, _022300B0 ; =0x000006C5 - bl FUN_020054C8 + bl PlaySE _0222FF34: ldr r0, _022300B8 ; =0x00000408 add r1, r6, #0 @@ -5386,7 +5386,7 @@ _0222FF40: mov r1, #5 str r1, [r4, r0] ldr r0, _022300BC ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _0222FF58: ldr r0, _022300C0 ; =0x0000040C mov r1, #0 @@ -5412,7 +5412,7 @@ _0222FF6E: mov r1, #0 bl MOD62_022300DC ldr r0, _022300C4 ; =0x000005E2 - bl FUN_020054C8 + bl PlaySE _0222FF8E: mov r0, #0x41 mov r1, #0x8e @@ -5442,7 +5442,7 @@ _0222FFAC: mov r1, #0 bl MOD62_022300DC ldr r0, _022300BC ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _0222FFCC: ldr r0, _022300C8 ; =0x00000414 mov r1, #0x8f @@ -5464,7 +5464,7 @@ _0222FFE6: cmp r0, #0 bne _02230006 ldr r0, _022300CC ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add r4, #0xec add r0, r4, #0 mov r1, #0xf @@ -5505,14 +5505,14 @@ _02230006: add r1, r5, #0 bl MOD62_0222F168 ldr r0, _022300D0 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _0223005C: ldrb r0, [r6, r5] cmp r0, #0 beq _022300A8 ldr r0, _022300CC ; =0x000005F2 - bl FUN_020054C8 + bl PlaySE add r4, #0xec add r0, r4, #0 mov r1, #0x10 @@ -5537,7 +5537,7 @@ _02230074: add r0, r4, #0 bl MOD62_0222F208 ldr r0, _022300D0 ; =0x000005EB - bl FUN_020054C8 + bl PlaySE pop {r4, r5, r6, pc} _022300A4: bl GF_AssertFail @@ -6028,7 +6028,7 @@ _0223042E: bl GX_EngineBToggleLayers mov r0, #7 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority add r0, r4, #0 mov r1, #1 bl MOD62_0222F738 @@ -6052,7 +6052,7 @@ _0223049A: bne _02230598 mov r0, #3 mov r1, #1 - bl FUN_020178BC + bl SetBgPriority mov r0, #0x10 str r0, [sp] mov r3, #0 @@ -6272,7 +6272,7 @@ _02230646: add r0, r4, #0 bl MOD62_0223026C ldr r0, _02230728 ; =0x000006C6 - bl FUN_020054C8 + bl PlaySE mov r0, #0xf7 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -6697,11 +6697,11 @@ _022309DC: mov r0, #0x43 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0x43 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xf7 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -6844,10 +6844,10 @@ _02230B40: bl FUN_02003210 mov r0, #3 add r1, r0, #0 - bl FUN_020178BC + bl SetBgPriority mov r0, #7 mov r1, #3 - bl FUN_020178BC + bl SetBgPriority mov r0, #4 mov r1, #0 bl GX_EngineBToggleLayers @@ -6979,7 +6979,7 @@ _02230C3E: bl MOD62_0222DB78 _02230C80: ldr r0, _02230CB8 ; =0x000005EA - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0xff add r0, #0xd4 @@ -7036,7 +7036,7 @@ _02230CEC: bne _02230D26 add r0, r4, #0 add r0, #0xec - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 bl MOD62_0222ED04 add r0, r4, #0 @@ -7212,7 +7212,7 @@ _02230E46: mov r2, #0 bl MOD62_0222FA40 ldr r0, _02230F28 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230F18 _02230E66: ldr r0, _02230F2C ; =gMain @@ -7240,7 +7240,7 @@ _02230E66: lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _02230F28 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230F18 _02230EA4: mov r0, #2 @@ -7260,7 +7260,7 @@ _02230EA4: lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _02230F30 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _02230F18 _02230ED0: ldr r1, _02230F2C ; =gMain @@ -7398,7 +7398,7 @@ _02230F90: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _022310C0 ; =MOD62_02231294 add r3, sp, #0xa8 mov r2, #0xa @@ -7413,26 +7413,26 @@ _02230FF0: add r0, r4, #0 add r2, sp, #0xa8 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 add r2, sp, #0xc4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 add r2, sp, #0xe0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _022310C4 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -7454,34 +7454,34 @@ _02231052: mov r1, #4 add r2, sp, #0x38 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 add r2, sp, #0x54 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #6 add r2, sp, #0x70 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #7 add r2, sp, #0x8c mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #6 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r0, r4, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #4 mov r1, #0 bl GX_EngineBToggleLayers @@ -7511,7 +7511,7 @@ MOD62_022310CC: ; 0x022310CC bl FUN_0200372C add r4, #0xe4 ldr r0, [r4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _02231104 ; =0x027E0000 ldr r1, _02231108 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index ea96bf3b..182b8d56 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -37,12 +37,12 @@ MOD63_021D74E0: ; 0x021D74E0 str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #1 mov r0, #3 mov r1, #0x1e lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap mov r1, #0x79 add r0, r4, #0 lsl r1, r1, #2 @@ -214,7 +214,7 @@ _021D768C: mov r1, #0x3c bl FUN_020053CC ldr r0, _021D77AC ; =0x000005F4 - bl FUN_020054C8 + bl PlaySE mov r0, #4 str r0, [r5] b _021D779C @@ -363,7 +363,7 @@ MOD63_021D77B4: ; 0x021D77B4 add r0, r7, #0 bl OverlayManager_FreeData add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap cmp r5, #1 beq _021D77F2 cmp r5, #2 @@ -404,7 +404,7 @@ MOD63_021D782C: ; 0x021D782C ldr r0, [r0, #4] bx r3 nop -_021D7834: .word FUN_0201AB60 +_021D7834: .word DoScheduledBgGpuUpdates thumb_func_end MOD63_021D782C thumb_func_start MOD63_021D7838 @@ -500,7 +500,7 @@ MOD63_021D78BC: ; 0x021D78BC add r0, #0x68 add r1, r4, #0 mov r2, #4 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator mov r0, #0x30 add r1, r6, #0 add r2, r4, #0 @@ -692,7 +692,7 @@ MOD63_021D7A48: ; 0x021D7A48 sub sp, #0xb8 add r4, r0, #0 ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0xa8 ldr r5, _021D7B80 ; =MOD63_021DB9B4 str r0, [r4, #4] @@ -702,7 +702,7 @@ MOD63_021D7A48: ; 0x021D7A48 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7B84 ; =MOD63_021DB9E0 add r3, sp, #0x8c ldmia r5!, {r0, r1} @@ -717,7 +717,7 @@ MOD63_021D7A48: ; 0x021D7A48 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7B88 ; =MOD63_021DB9C4 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -732,7 +732,7 @@ MOD63_021D7A48: ; 0x021D7A48 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7B8C ; =MOD63_021DBA50 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -747,7 +747,7 @@ MOD63_021D7A48: ; 0x021D7A48 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7B90 ; =MOD63_021DBA34 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -762,7 +762,7 @@ MOD63_021D7A48: ; 0x021D7A48 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7B94 ; =MOD63_021DB9FC add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -777,7 +777,7 @@ MOD63_021D7A48: ; 0x021D7A48 ldr r0, [r4, #4] mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7B98 ; =MOD63_021DBA18 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -792,7 +792,7 @@ MOD63_021D7A48: ; 0x021D7A48 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers @@ -819,10 +819,10 @@ MOD63_021D7A48: ; 0x021D7A48 bl GX_EngineBToggleLayers mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0xb8 pop {r3, r4, r5, pc} nop @@ -865,22 +865,22 @@ MOD63_021D7B9C: ; 0x021D7B9C bl GX_EngineBToggleLayers ldr r0, [r4, #4] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} @@ -2031,15 +2031,15 @@ _021D844C: bl GfGfxLoader_GXLoadPal mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r2, _021D85CC ; =0x00000227 mov r0, #1 mov r1, #0x1a @@ -2054,7 +2054,7 @@ _021D844C: ldr r2, _021D85D0 ; =MOD63_021DB9A0 add r0, r5, #0 add r1, #0xac - bl FUN_02019150 + bl AddWindow mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -2104,12 +2104,12 @@ _021D844C: add r1, #2 mov r2, #2 mov r3, #0x42 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #4 add r1, sp, #0x1c mov r2, #2 mov r3, #0x44 - bl FUN_02017FB4 + bl BG_LoadPlttData add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop @@ -2183,7 +2183,7 @@ MOD63_021D8644: ; 0x021D8644 add r0, r2, #0 bx r3 .align 2, 0 -_021D864C: .word FUN_02019178 +_021D864C: .word RemoveWindow thumb_func_end MOD63_021D8644 thumb_func_start MOD63_021D8650 diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index 6f6f8f75..34d50a11 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -69,7 +69,7 @@ MOD63_021D88F0: ; 0x021D88F0 sub sp, #0xb8 add r4, r0, #0 ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0xa8 ldr r5, _021D89E8 ; =MOD63_021DBB4C str r0, [r4, #0xc] @@ -79,7 +79,7 @@ MOD63_021D88F0: ; 0x021D88F0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D89EC ; =MOD63_021DBC88 add r3, sp, #0x8c ldmia r5!, {r0, r1} @@ -94,7 +94,7 @@ MOD63_021D88F0: ; 0x021D88F0 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D89F0 ; =MOD63_021DBC6C add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -109,7 +109,7 @@ MOD63_021D88F0: ; 0x021D88F0 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D89F4 ; =MOD63_021DBBC4 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -124,7 +124,7 @@ MOD63_021D88F0: ; 0x021D88F0 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D89F8 ; =MOD63_021DBBFC add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -139,7 +139,7 @@ MOD63_021D88F0: ; 0x021D88F0 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D89FC ; =MOD63_021DBC18 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -154,7 +154,7 @@ MOD63_021D88F0: ; 0x021D88F0 ldr r0, [r4, #0xc] mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8A00 ; =MOD63_021DBC34 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -169,13 +169,13 @@ MOD63_021D88F0: ; 0x021D88F0 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0xb8 pop {r3, r4, r5, pc} nop @@ -194,7 +194,7 @@ MOD63_021D8A04: ; 0x021D8A04 sub sp, #0x80 add r4, r0, #0 ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x70 ldr r5, _021D8AC4 ; =MOD63_021DBB3C str r0, [r4, #0xc] @@ -204,7 +204,7 @@ MOD63_021D8A04: ; 0x021D8A04 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -227,7 +227,7 @@ MOD63_021D8A04: ; 0x021D8A04 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8AD0 ; =MOD63_021DBCA4 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -242,7 +242,7 @@ MOD63_021D8A04: ; 0x021D8A04 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8AD4 ; =MOD63_021DBCC0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -257,7 +257,7 @@ MOD63_021D8A04: ; 0x021D8A04 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8AD8 ; =MOD63_021DBCDC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -272,10 +272,10 @@ MOD63_021D8A04: ; 0x021D8A04 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x80 pop {r3, r4, r5, pc} nop @@ -293,7 +293,7 @@ MOD63_021D8ADC: ; 0x021D8ADC sub sp, #0x9c add r4, r0, #0 ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x8c ldr r5, _021D8BBC ; =MOD63_021DBB6C str r0, [r4, #0xc] @@ -303,7 +303,7 @@ MOD63_021D8ADC: ; 0x021D8ADC ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -326,7 +326,7 @@ MOD63_021D8ADC: ; 0x021D8ADC str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8BC8 ; =MOD63_021DBD14 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -341,7 +341,7 @@ MOD63_021D8ADC: ; 0x021D8ADC str r0, [r3] ldr r0, [r4, #0xc] mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8BCC ; =MOD63_021DBD30 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -356,7 +356,7 @@ MOD63_021D8ADC: ; 0x021D8ADC str r0, [r3] ldr r0, [r4, #0xc] mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8BD0 ; =MOD63_021DBBA8 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -371,7 +371,7 @@ MOD63_021D8ADC: ; 0x021D8ADC str r0, [r3] ldr r0, [r4, #0xc] add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D8BD4 ; =MOD63_021DBBE0 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -386,10 +386,10 @@ MOD63_021D8ADC: ; 0x021D8ADC str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x9c pop {r4, r5, pc} nop @@ -582,11 +582,11 @@ MOD63_021D8D10: ; 0x021D8D10 bl GX_DisableEngineBLayers mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r0, #3 mov r1, #0x4c lsl r2, r0, #0x11 - bl FUN_0201681C + bl CreateHeap mov r1, #0xab add r0, r4, #0 lsl r1, r1, #2 @@ -739,7 +739,7 @@ MOD63_021D8E68: ; 0x021D8E68 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x4c - bl FUN_020168D0 + bl DestroyHeap ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID ldr r1, _021D8E98 ; =MOD63_021DBAB8 bl RegisterMainOverlay @@ -1200,22 +1200,22 @@ MOD63_021D9234: ; 0x021D9234 bl MOD63_021DAF9C ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] bl FreeToHeap mov r0, #0 @@ -1708,16 +1708,16 @@ _021D964A: _021D965E: ldr r0, [r5, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0xc] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0xc] bl FreeToHeap ldr r0, [r5, #0x10] @@ -1930,7 +1930,7 @@ _021D9840: ldr r1, [r2, #0x14] add r1, r2, r1 sub r1, r1, r0 - bl FUN_02016B44 + bl ReallocFromHeap mov r0, #0x80 mov r1, #0x4c bl NARC_ctor @@ -2716,7 +2716,7 @@ MOD63_021D9EE0: ; 0x021D9EE0 ldr r0, [r4, #0xc] mov r1, #1 sub r3, r2, #5 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 str r0, [r4, #8] _021D9EFE: @@ -2736,7 +2736,7 @@ MOD63_021D9F00: ; 0x021D9F00 ldr r0, [r4, #0xc] mov r1, #2 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 str r0, [r4, #8] _021D9F1E: @@ -2752,7 +2752,7 @@ MOD63_021D9F20: ; 0x021D9F20 ldr r0, [r4, #0xc] mov r1, #3 sub r3, #0x11 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0 str r0, [r4, #8] pop {r4, pc} @@ -3183,7 +3183,7 @@ _021DA192: mov r1, #3 mov r2, #1 mov r3, #0x40 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #1 lsl r0, r0, #0xc bl FX_Inv @@ -3203,14 +3203,14 @@ _021DA192: mov r1, #2 add r2, sp, #0x10 mov r3, #0x80 - bl FUN_02017BD0 + bl SetBgAffine mov r0, #0x60 str r0, [sp] ldr r0, [r4, #0xc] mov r1, #3 add r2, sp, #0x10 mov r3, #0xc0 - bl FUN_02017BD0 + bl SetBgAffine mov r0, #1 strb r0, [r4, #3] add sp, #0x20 @@ -3357,19 +3357,19 @@ MOD63_021DA418: ; 0x021DA418 beq _021DA458 ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] bl FreeToHeap ldr r0, _021DA470 ; =0x0000028E @@ -3438,7 +3438,7 @@ MOD63_021DA478: ; 0x021DA478 mov r1, #2 mov r2, #4 mov r3, #1 - bl FUN_02017B60 + bl Bg_SetTextDimAndAffineParams mov r0, #1 ldr r1, [r4, #8] lsl r0, r0, #0xa @@ -3454,7 +3454,7 @@ MOD63_021DA478: ; 0x021DA478 mov r1, #3 mov r2, #4 mov r3, #1 - bl FUN_02017B60 + bl Bg_SetTextDimAndAffineParams _021DA4FE: add sp, #0x2c pop {r4, r5, pc} @@ -3502,7 +3502,7 @@ MOD63_021DA504: ; 0x021DA504 mov r1, #2 mov r2, #4 mov r3, #1 - bl FUN_02017B60 + bl Bg_SetTextDimAndAffineParams mov r0, #2 ldr r1, [r4, #8] lsl r0, r0, #0xa @@ -3518,7 +3518,7 @@ MOD63_021DA504: ; 0x021DA504 mov r1, #3 mov r2, #4 mov r3, #1 - bl FUN_02017B60 + bl Bg_SetTextDimAndAffineParams add sp, #0x2c pop {r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 7a70bf1f..47d2195c 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -12,7 +12,7 @@ MOD64_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x2f lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D7630 ; =0x000006B4 add r0, r4, #0 mov r2, #0x2f @@ -30,7 +30,7 @@ _021D7504: add r0, r5, r0 mov r1, #0x2f mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r0, r4, #0 bl OverlayManager_GetField18 add r4, r0, #0 @@ -60,7 +60,7 @@ _021D755E: mov r1, #0x2f bl MOD64_021D7810 mov r0, #0x2f - bl FUN_02016B94 + bl BgConfig_Alloc add r1, r5, #0 add r1, #0x94 str r0, [r1] @@ -71,7 +71,7 @@ _021D755E: str r1, [sp] str r1, [sp, #8] str r1, [sp, #0xc] - bl FUN_02016BBC + bl SetBothScreensModesAndDisable add r0, r5, #0 add r0, #0x94 ldr r0, [r0] @@ -299,7 +299,7 @@ _021D7726: add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x2f - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} thumb_func_end MOD64_021D76F4 @@ -312,7 +312,7 @@ MOD64_021D77A4: ; 0x021D77A4 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] @@ -566,15 +566,15 @@ MOD64_021D7970: ; 0x021D7970 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r7, #0 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 add r1, r7, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D7A30 ; =0x021D9094 add r3, sp, #0x1c ldmia r6!, {r0, r1} @@ -589,15 +589,15 @@ MOD64_021D7970: ; 0x021D7970 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r6, _021D7A34 ; =0x021D90CC add r3, sp, #0 ldmia r6!, {r0, r1} @@ -612,15 +612,15 @@ MOD64_021D7970: ; 0x021D7970 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #3 mov r1, #0x20 mov r2, #0 add r3, r4, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r0, r5, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x54 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -635,13 +635,13 @@ MOD64_021D7A38: ; 0x021D7A38 push {r4, lr} add r4, r0, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD64_021D7A38 @@ -678,7 +678,7 @@ MOD64_021D7A54: ; 0x021D7A54 ldr r0, [r0] ldr r1, [r1] mov r2, #1 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x98 ldr r0, [r0] @@ -724,7 +724,7 @@ MOD64_021D7AEC: ; 0x021D7AEC add r4, r0, #0 add r0, #0x98 ldr r0, [r0] - bl FUN_02019178 + bl RemoveWindow add r4, #0x98 ldr r0, [r4] bl FreeToHeap @@ -1508,7 +1508,7 @@ _021D80D2: add r0, r4, #0 bl MOD64_021D83C4 ldr r0, _021D80FC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _021D80F4 _021D80F0: mov r0, #1 @@ -1566,7 +1566,7 @@ _021D8146: mov r1, #1 bl MOD64_021D83C4 ldr r0, _021D81D0 ; =0x000006CA - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _021D815E: mov r0, #0x26 @@ -1867,7 +1867,7 @@ MOD64_021D8384: ; 0x021D8384 bmi _021D83A0 str r0, [r4, #0x54] ldr r0, _021D83C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D83A0: ldr r0, _021D83BC ; =gMain ldr r1, [r0, #0x48] @@ -1880,7 +1880,7 @@ _021D83A0: bge _021D83BA str r0, [r4, #0x54] ldr r0, _021D83C0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D83BA: pop {r4, pc} .align 2, 0 @@ -3445,7 +3445,7 @@ _021D8F52: ldr r1, [r1] mov r2, #3 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _021D8FA8 ; =0x0001020A mov r2, #5 str r0, [sp] @@ -3476,7 +3476,7 @@ _021D8FB2: add r0, r5, #0 add r0, #0x9c ldr r0, [r0] - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0x9c ldr r0, [r0] @@ -3537,14 +3537,14 @@ MOD64_021D902C: ; 0x021D902C add r1, r0, #0 add r1, #0xa8 ldr r1, [r1] - ldr r3, _021D9040 ; =FUN_02019570 + ldr r3, _021D9040 ; =ClearWindowTilemapAndCopyToVram lsl r1, r1, #2 add r0, r0, r1 add r0, #0x9c ldr r0, [r0] bx r3 nop -_021D9040: .word FUN_02019570 +_021D9040: .word ClearWindowTilemapAndCopyToVram thumb_func_end MOD64_021D902C thumb_func_start MOD64_021D9044 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index e9e1ed78..4fc8d105 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -13,7 +13,7 @@ MOD65_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x2d lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #2 add r0, r4, #0 lsl r1, r1, #8 @@ -80,7 +80,7 @@ MOD65_021D753C: ; 0x021D753C add r0, r5, #0 bl OverlayManager_FreeData ldr r0, [r4] - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD65_021D753C @@ -264,7 +264,7 @@ MOD65_021D76DC: ; 0x021D76DC _021D76EE: bl FUN_0201C30C ldr r0, [r4, #0x24] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D7708 ; =0x027E0000 ldr r1, _021D770C ; =0x00003FF8 mov r0, #1 @@ -362,7 +362,7 @@ _021D77A2: tst r0, r1 beq _021D77BE ldr r0, _021D77FC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xff strb r0, [r5, #0x1a] mov r0, #0 @@ -374,7 +374,7 @@ _021D77BE: tst r0, r1 beq _021D77F2 ldr r0, _021D77FC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r4, #0xff beq _021D77DC mov r0, #1 @@ -433,7 +433,7 @@ MOD65_021D7818: ; 0x021D7818 tst r0, r1 beq _021D784A ldr r0, _021D78A8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD65_021D86BC add r0, r5, #0 @@ -447,7 +447,7 @@ _021D784A: tst r0, r1 beq _021D789E ldr r0, _021D78A8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #1 mvn r0, r0 cmp r4, r0 @@ -528,7 +528,7 @@ MOD65_021D78CC: ; 0x021D78CC b _021D7916 _021D78E8: ldr r0, _021D791C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD65_021D8764 mov r0, #5 @@ -537,7 +537,7 @@ _021D78E8: pop {r4, pc} _021D78FC: ldr r0, _021D791C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x42 lsl r0, r0, #2 add r0, r4, r0 @@ -581,7 +581,7 @@ _021D7940: mov r0, #0x42 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldrb r0, [r4, #0x1a] ldr r3, [r4, #0x20] lsl r2, r0, #3 @@ -754,7 +754,7 @@ MOD65_021D7A8C: ; 0x021D7A8C add r5, r0, #0 bl MOD65_021D7A6C ldr r0, [r5] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0 ldr r4, _021D7AFC ; =0x021DA040 str r0, [r5, #0x24] @@ -764,7 +764,7 @@ MOD65_021D7A8C: ; 0x021D7A8C ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _021D7B00 ; =0x021DA140 add r3, sp, #0x10 mov r2, #0x15 @@ -782,17 +782,17 @@ _021D7AC6: lsr r1, r1, #0x18 add r2, r6, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate lsl r1, r4, #0x18 ldr r0, [r5, #0x24] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit lsl r0, r4, #0x18 ldr r3, [r5] lsr r0, r0, #0x18 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r7, r7, #1 add r4, r4, #1 add r6, #0x1c @@ -814,7 +814,7 @@ _021D7B0A: lsl r1, r4, #0x18 ldr r0, [r5, #0x24] lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #6 blt _021D7B0A @@ -919,10 +919,10 @@ MOD65_021D7B24: ; 0x021D7B24 bl NARC_dtor ldr r0, [r5, #0x24] mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x24] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -995,7 +995,7 @@ _021D7C68: ldrb r2, [r4] ldrb r3, [r4, #1] ldr r0, [r6, #0x24] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -1020,9 +1020,9 @@ MOD65_021D7CA8: ; 0x021D7CA8 add r5, #0xe8 _021D7CB0: add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xd @@ -1406,7 +1406,7 @@ _021D7FCA: add r3, r2, #0 bl FillWindowPixelRect mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl FUN_02002B7C mov r3, #0 @@ -1716,7 +1716,7 @@ MOD65_021D8214: ; 0x021D8214 beq _021D823E add r0, r5, #0 add r0, #0xe8 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _021D823E: add r0, r5, #0 add r0, #0xc4 @@ -1900,7 +1900,7 @@ MOD65_021D83A0: ; 0x021D83A0 add r4, r0, #0 ldr r0, _021D8470 ; =0x000005E4 add r5, r1, #0 - bl FUN_020054C8 + bl PlaySE ldrh r1, [r4, #0x14] ldr r0, _021D8474 ; =0x0000FFFF cmp r1, r0 @@ -2077,7 +2077,7 @@ MOD65_021D84F0: ; 0x021D84F0 cmp r6, #0 bne _021D850C ldr r0, _021D862C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D850C: add r1, sp, #0x10 add r0, r7, #0 @@ -2297,7 +2297,7 @@ MOD65_021D86BC: ; 0x021D86BC mov r0, #0x46 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0xc8 add r2, sp, #0 @@ -2326,7 +2326,7 @@ MOD65_021D8704: ; 0x021D8704 cmp r2, #0 bne _021D8710 ldr r0, _021D8714 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D8710: pop {r3, pc} nop @@ -2710,7 +2710,7 @@ MOD65_021D8A08: ; 0x021D8A08 mov r0, #3 mov r1, #0x2e lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #0x6f add r0, r4, #0 lsl r1, r1, #2 @@ -2921,7 +2921,7 @@ MOD65_021D8BBC: ; 0x021D8BBC add r0, r5, #0 bl OverlayManager_FreeData ldr r0, [r4] - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -3025,7 +3025,7 @@ MOD65_021D8C88: ; 0x021D8C88 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x68] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r0, [r4, #0x44] bl FUN_020081C4 bl FUN_0200BC30 @@ -3069,7 +3069,7 @@ MOD65_021D8CD8: ; 0x021D8CD8 add r5, r0, #0 bl MOD65_021D8CB8 ldr r0, [r5] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #8 ldr r4, _021D8D5C ; =0x021DA35C str r0, [r5, #0x68] @@ -3079,7 +3079,7 @@ MOD65_021D8CD8: ; 0x021D8CD8 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _021D8D60 ; =0x021DA3C8 add r3, sp, #0x18 mov r2, #0xa @@ -3108,15 +3108,15 @@ _021D8D28: add r2, r6, #0 add r1, r7, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #0x68] add r1, r7, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r3, [r5] add r0, r7, #0 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r0, [sp] add r4, r4, #1 add r0, r0, #1 @@ -3141,13 +3141,13 @@ _021D8D6E: lsl r1, r4, #0x18 ldr r0, [r5, #0x68] lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #3 blt _021D8D6E ldr r0, [r5, #0x68] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r5, #0x68] bl FreeToHeap pop {r3, r4, r5, pc} @@ -3248,10 +3248,10 @@ MOD65_021D8D90: ; 0x021D8D90 bl NARC_dtor ldr r0, [r5, #0x68] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x68] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} thumb_func_end MOD65_021D8D90 @@ -3265,7 +3265,7 @@ MOD65_021D8E68: ; 0x021D8E68 ldr r0, [r4, #0x68] ldr r2, _021D8EAC ; =0x021DA354 add r1, #0x6c - bl FUN_02019150 + bl AddWindow add r0, r4, #0 add r0, #0x6c mov r1, #0 @@ -3296,10 +3296,10 @@ MOD65_021D8EB0: ; 0x021D8EB0 push {r4, lr} add r4, r0, #0 add r0, #0x6c - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r4, #0x6c add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} thumb_func_end MOD65_021D8EB0 @@ -3917,7 +3917,7 @@ _021D9366: bl FUN_0200D0E0 add r4, #0x6c add r0, r4, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #8 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index c902cd22..95660bd2 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -13,7 +13,7 @@ MOD66_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x11 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r4, #0 mov r1, #0xe4 mov r2, #0x11 @@ -119,7 +119,7 @@ MOD66_021D75B0: ; 0x021D75B0 add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x11 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, pc} thumb_func_end MOD66_021D75B0 @@ -142,7 +142,7 @@ _021D75DE: add r0, r4, #0 bl MOD66_021D9220 ldr r0, [r4, #0x28] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D7600 ; =0x027E0000 ldr r1, _021D7604 ; =0x00003FF8 mov r0, #1 @@ -269,7 +269,7 @@ _021D7694: _021D76E4: bl MOD66_021D7608 ldr r0, [r4, #4] - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x28] ldr r1, [r4, #0x28] add r0, r4, #0 @@ -336,7 +336,7 @@ _021D7782: lsl r1, r4, #0x18 ldr r0, [r5, #0x28] lsr r1, r1, #0x18 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, r4, #1 cmp r4, #8 blt _021D7782 @@ -393,7 +393,7 @@ MOD66_021D77E4: ; 0x021D77E4 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _021D78B0 ; =0x021D9634 add r3, sp, #0x14 mov r2, #0x1c @@ -411,12 +411,12 @@ _021D7814: lsr r1, r1, #0x18 add r2, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate lsl r1, r4, #0x18 add r0, r6, #0 lsr r1, r1, #0x18 add r4, r4, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add r7, r7, #1 add r5, #0x1c cmp r7, #8 @@ -426,49 +426,49 @@ _021D7814: ldr r3, [r3, #4] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #1 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #2 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #3 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #4 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #5 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #6 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [sp] mov r0, #7 ldr r3, [r3, #4] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0xf4 pop {r4, r5, r6, r7, pc} nop @@ -1001,7 +1001,7 @@ MOD66_021D7CAC: ; 0x021D7CAC mov r1, #0x11 bl FUN_0200E1D0 ldr r0, _021D7CF0 ; =0x0000068F - bl FUN_020054C8 + bl PlaySE mov r0, #0 bl FUN_0200E394 mov r0, #1 @@ -1038,7 +1038,7 @@ MOD66_021D7CF8: ; 0x021D7CF8 bl FUN_0200E1D0 mov r0, #0x69 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE mov r0, #0 add sp, #0xc pop {pc} @@ -1061,7 +1061,7 @@ MOD66_021D7D24: ; 0x021D7D24 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, _021D7D64 ; =0x0000068F - bl FUN_020054C8 + bl PlaySE mov r0, #0 bl FUN_0200E394 mov r1, #4 @@ -1096,7 +1096,7 @@ MOD66_021D7D6C: ; 0x021D7D6C bl FUN_0200E1D0 mov r0, #0x69 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE mov r0, #0 add sp, #0xc pop {pc} @@ -1115,7 +1115,7 @@ MOD66_021D7D98: ; 0x021D7D98 tst r1, r2 beq _021D7DB6 ldr r0, _021D7DD0 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021D7DB6: @@ -1150,7 +1150,7 @@ MOD66_021D7DD4: ; 0x021D7DD4 cmp r0, #0 beq _021D7DFA ldr r0, _021D7E28 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021D7DFA: @@ -1161,7 +1161,7 @@ _021D7DFE: tst r2, r3 beq _021D7E0E ldr r0, _021D7E28 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021D7E0E: @@ -1189,7 +1189,7 @@ MOD66_021D7E2C: ; 0x021D7E2C tst r1, r3 beq _021D7E42 ldr r0, _021D7E50 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, pc} _021D7E42: @@ -1407,7 +1407,7 @@ _021D7FCE: ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #5 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 beq _021D7FEE mov r4, #0 @@ -1630,10 +1630,10 @@ MOD66_021D8140: ; 0x021D8140 bl MOD66_021D8480 ldr r0, [r5, #0x28] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x28] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _021D818A: pop {r3, r4, r5, pc} thumb_func_end MOD66_021D8140 @@ -1805,7 +1805,7 @@ MOD66_021D82B8: ; 0x021D82B8 add r0, r6, #0 bl CopyWindowToVram add r0, r6, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D82DC: @@ -2046,7 +2046,7 @@ MOD66_021D8494: ; 0x021D8494 add r0, r5, #0 bl FillWindowPixelBuffer add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldrb r1, [r4, #0x15] add r0, r5, #0 mov r2, #0 @@ -2055,7 +2055,7 @@ MOD66_021D8494: ; 0x021D8494 bl FUN_0200D7A0 ldr r0, [r6, #0x28] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _021D84C6: pop {r4, r5, r6, pc} thumb_func_end MOD66_021D8494 @@ -2090,7 +2090,7 @@ MOD66_021D84C8: ; 0x021D84C8 lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect add r4, #0x84 ldr r0, [r4] mov r1, #1 @@ -2147,7 +2147,7 @@ MOD66_021D8554: ; 0x021D8554 ldr r0, [r5, #0x28] add r1, #0x28 mov r2, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #3 str r0, [sp] mov r0, #0x15 @@ -2162,7 +2162,7 @@ MOD66_021D8554: ; 0x021D8554 str r0, [sp, #0x10] ldr r0, [r5, #0x28] mov r3, #9 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #3 str r0, [sp] mov r0, #0x1c @@ -2177,7 +2177,7 @@ MOD66_021D8554: ; 0x021D8554 str r0, [sp, #0x10] ldr r0, [r5, #0x28] mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #8 str r0, [sp] mov r0, #0x1c @@ -2192,7 +2192,7 @@ MOD66_021D8554: ; 0x021D8554 add r1, #0x58 mov r2, #4 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0 str r0, [sp] mov r0, #0xa @@ -2208,7 +2208,7 @@ MOD66_021D8554: ; 0x021D8554 add r1, #0x68 mov r2, #4 mov r3, #0xb - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0x28 mov r1, #0 @@ -2234,16 +2234,16 @@ MOD66_021D8554: ; 0x021D8554 bl CopyWindowToVram add r0, r4, #0 add r0, #0x38 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x48 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x58 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r4, #0x68 add r0, r4, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add sp, #0x14 pop {r4, r5, pc} nop @@ -2262,7 +2262,7 @@ MOD66_021D8670: ; 0x021D8670 _021D8678: lsl r0, r5, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -2302,7 +2302,7 @@ MOD66_021D868C: ; 0x021D868C lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r5, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect _021D86CA: add r0, r5, #0 add r0, #0xcc @@ -2333,7 +2333,7 @@ _021D86CA: lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r5, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect add sp, #0x1c pop {r4, r5, pc} thumb_func_end MOD66_021D868C @@ -2394,7 +2394,7 @@ MOD66_021D870C: ; 0x021D870C ldrb r2, [r3, #2] ldrb r3, [r3, #3] ldr r0, [r5, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect add r0, r5, #0 add r0, #0xd4 ldrb r1, [r7, #4] @@ -2423,7 +2423,7 @@ MOD66_021D870C: ; 0x021D870C ldrb r2, [r7, #2] ldrb r3, [r7, #3] ldr r0, [r5, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect ldr r0, [sp, #0x1c] cmp r0, #2 beq _021D882E @@ -2453,7 +2453,7 @@ MOD66_021D870C: ; 0x021D870C ldrb r2, [r6, #2] ldrb r3, [r6, #3] ldr r0, [r5, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect add r0, r5, #0 add r0, #0xd4 ldrb r1, [r4, #4] @@ -2480,7 +2480,7 @@ MOD66_021D870C: ; 0x021D870C ldrb r2, [r4, #2] ldrb r3, [r4, #3] ldr r0, [r5, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect _021D882E: add sp, #0x24 pop {r4, r5, r6, r7, pc} @@ -2516,7 +2516,7 @@ MOD66_021D8838: ; 0x021D8838 lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect add r0, r4, #0 add r0, #0xbc mov r2, #0 @@ -2541,7 +2541,7 @@ MOD66_021D8838: ; 0x021D8838 lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect ldrb r0, [r4] cmp r0, #1 beq _021D88DE @@ -2569,7 +2569,7 @@ MOD66_021D8838: ; 0x021D8838 lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_02018170 + bl CopyToBgTilemapRect _021D88DE: add r0, r4, #0 mov r1, #0 @@ -2598,7 +2598,7 @@ _021D88DE: lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect add r0, r4, #0 add r0, #0xc4 mov r2, #0 @@ -2622,7 +2622,7 @@ _021D88DE: lsr r0, r0, #0x18 str r0, [sp, #0x18] ldr r0, [r4, #0x28] - bl FUN_020181EC + bl CopyRectToBgTilemapRect ldrh r1, [r4, #2] mov r0, #1 tst r0, r1 @@ -2657,19 +2657,19 @@ _021D897C: _021D898C: ldr r0, [r4, #0x28] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #6 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r3, r4, pc} thumb_func_end MOD66_021D8838 @@ -2683,22 +2683,22 @@ MOD66_021D89B8: ; 0x021D89B8 mov r1, #6 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x28] mov r1, #7 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #0 ldr r0, [r4, #0x28] mov r1, #6 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #0 ldr r0, [r4, #0x28] mov r1, #7 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0 str r1, [sp] mov r0, #0x20 @@ -2709,7 +2709,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2720,7 +2720,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2731,7 +2731,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #2 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2742,7 +2742,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #3 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2753,7 +2753,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #4 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2764,7 +2764,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #5 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2775,7 +2775,7 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #6 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2786,31 +2786,31 @@ MOD66_021D89B8: ; 0x021D89B8 ldr r0, [r4, #0x28] mov r1, #7 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4, #0x28] mov r1, #0 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #3 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #6 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r4, #0x28] mov r1, #7 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2943,12 +2943,12 @@ MOD66_021D8BF0: ; 0x021D8BF0 mov r1, #6 mov r2, #0 mov r3, #8 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0x28] mov r1, #7 mov r2, #0 mov r3, #8 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _021D8C4A _021D8C16: cmp r4, #0xf8 @@ -2957,23 +2957,23 @@ _021D8C16: mov r1, #6 mov r2, #0 mov r3, #0xf8 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0x28] mov r1, #7 mov r2, #0 mov r3, #0xf8 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText b _021D8C4A _021D8C34: mov r1, #6 mov r2, #0 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0x28] mov r1, #7 mov r2, #0 add r3, r4, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText _021D8C4A: cmp r6, #0x50 bge _021D8C68 @@ -2981,12 +2981,12 @@ _021D8C4A: mov r1, #6 mov r2, #3 mov r3, #0x50 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0x28] mov r1, #7 mov r2, #3 mov r3, #0x50 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, r5, r6, pc} _021D8C68: mov r3, #0x13 @@ -2996,24 +2996,24 @@ _021D8C68: ble _021D8C8A mov r1, #6 mov r2, #3 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r3, #0x13 ldr r0, [r5, #0x28] mov r1, #7 mov r2, #3 lsl r3, r3, #4 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, r5, r6, pc} _021D8C8A: mov r1, #6 mov r2, #3 add r3, r6, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r0, [r5, #0x28] mov r1, #7 mov r2, #3 add r3, r6, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD66_021D8BF0 @@ -3336,7 +3336,7 @@ _021D8ED0: mov r1, #1 bl FUN_02020208 ldr r0, _021D9018 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #4] add sp, #0x10 add r0, r0, #1 @@ -3360,7 +3360,7 @@ _021D8F04: bl MOD66_021D868C ldr r0, [r5, #0x28] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _021D8F2C: ldr r1, [r4, #8] add r0, r1, #1 @@ -3416,7 +3416,7 @@ _021D8F7C: ldr r0, [r5, #0x28] mov r1, #4 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -3427,7 +3427,7 @@ _021D8F7C: ldr r0, [r5, #0x28] mov r1, #5 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r1, r4, #0 add r0, r5, #0 add r1, #0x68 @@ -3507,7 +3507,7 @@ _021D903C: mov r2, #2 bl FUN_0200E1D0 ldr r0, _021D90EC ; =0x00000691 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #4] add sp, #0x10 add r0, r0, #1 @@ -3527,17 +3527,17 @@ _021D9066: ldr r0, [r5, #0x28] mov r1, #4 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #0 mov r1, #0 mov r2, #1 bl MOD66_021D868C ldr r0, [r5, #0x28] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r0, [r5, #0x28] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r3, #0 str r3, [r5, #0x14] mov r0, #8 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 60bd02b5..c17a7105 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -30,12 +30,12 @@ MOD67_021D74E0: ; 0x021D74E0 strh r1, [r3] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers mov r2, #2 mov r0, #3 mov r1, #0x2a lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r4, #0 bl OverlayManager_GetField18 add r5, r0, #0 @@ -48,7 +48,7 @@ MOD67_021D74E0: ; 0x021D74E0 add r4, r0, #0 bl memset mov r0, #0x2a - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] str r5, [r4, #0x4c] add r0, r5, #0 @@ -165,7 +165,7 @@ MOD67_021D7624: ; 0x021D7624 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x2a - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -175,7 +175,7 @@ MOD67_021D7624: ; 0x021D7624 MOD67_021D7660: ; 0x021D7660 push {r3, lr} ldr r0, [r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D7678 ; =0x027E0000 ldr r1, _021D767C ; =0x00003FF8 mov r0, #1 @@ -221,7 +221,7 @@ MOD67_021D76A0: ; 0x021D76A0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D776C ; =0x021D975C add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -236,10 +236,10 @@ MOD67_021D76A0: ; 0x021D76A0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7770 ; =0x021D9740 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -254,10 +254,10 @@ MOD67_021D76A0: ; 0x021D76A0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7774 ; =0x021D9778 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -272,7 +272,7 @@ MOD67_021D76A0: ; 0x021D76A0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021D7778 ; =0x021D9794 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -287,17 +287,17 @@ MOD67_021D76A0: ; 0x021D76A0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x2a - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x2a - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x80 pop {r3, r4, r5, pc} nop @@ -315,16 +315,16 @@ MOD67_021D777C: ; 0x021D777C bl GX_DisableEngineALayers add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x2a add r1, r4, #0 bl FreeToHeapExplicit @@ -405,7 +405,7 @@ _021D7802: _021D7844: ldr r0, [r4] mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer add r1, r4, #0 mov r2, #2 add r1, #0x5c @@ -417,7 +417,7 @@ _021D7844: mov r1, #3 add r2, r4, #0 lsl r3, r3, #0xa - bl FUN_02017DFC + bl BG_LoadScreenTilemapData mov r1, #0x1e mov r0, #0 lsl r1, r1, #4 @@ -425,7 +425,7 @@ _021D7844: bl FUN_02002ED0 mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x10 pop {r4, pc} thumb_func_end MOD67_021D77B0 @@ -587,7 +587,7 @@ _021D7970: mov r1, #1 strb r1, [r4, r0] ldr r0, _021D7A24 ; =0x00000691 - bl FUN_020054C8 + bl PlaySE b _021D7A12 _021D79AC: bl MOD67_021D7C30 @@ -613,7 +613,7 @@ _021D79AC: ldrb r1, [r4, r1] ldr r0, [r4] add r2, r4, r2 - bl FUN_02018148 + bl LoadRectToBgTilemapRect mov r3, #0 add r2, r4, #0 str r3, [sp] @@ -624,15 +624,15 @@ _021D79AC: ldr r0, [r4] ldrb r1, [r4, r1] add r2, #0x5c - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r1, _021D7A34 ; =0x00001062 ldr r0, [r4] ldrb r1, [r4, r1] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldr r1, _021D7A30 ; =0x00001061 ldr r0, [r4] ldrb r1, [r4, r1] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0xc mov r0, #1 pop {r3, r4, pc} @@ -678,7 +678,7 @@ _021D7A4A: mov r1, #1 strb r1, [r4, r0] ldr r0, _021D7AA0 ; =0x00000691 - bl FUN_020054C8 + bl PlaySE b _021D7A92 _021D7A72: bl MOD67_021D7CBC @@ -826,10 +826,10 @@ MOD67_021D7B5C: ; 0x021D7B5C ldr r0, [r5] add r3, r2, #0 add r4, r1, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r5] add r1, r4, #0 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0xc pop {r4, r5, pc} .align 2, 0 @@ -841,7 +841,7 @@ MOD67_021D7B84: ; 0x021D7B84 add r4, r0, #0 ldr r0, [r4] mov r1, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r2, _021D7B9C ; =0x0000085C add r1, r4, r2 sub r2, #0x5c @@ -863,7 +863,7 @@ MOD67_021D7BA0: ; 0x021D7BA0 ldr r0, [r7] lsr r1, r1, #0x18 add r5, r3, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer str r0, [sp, #0x14] ldr r1, _021D7C2C ; =0x021D97D8 lsl r0, r5, #5 @@ -890,7 +890,7 @@ _021D7BCA: ldr r1, [sp, #0x18] mov r2, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect b _021D7C10 _021D7BF0: ldr r0, [sp, #0x14] @@ -920,7 +920,7 @@ _021D7C10: ldr r0, [r7] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -965,19 +965,19 @@ MOD67_021D7C30: ; 0x021D7C30 add r0, r0, #5 ldrb r0, [r4, r0] mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7CB8 ; =0x00001063 mov r1, #1 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7CA8 ; =0x00001062 mov r1, #2 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7CB0 ; =0x00001061 mov r1, #3 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority mov r0, #1 pop {r4, pc} _021D7CA4: @@ -1031,19 +1031,19 @@ MOD67_021D7CBC: ; 0x021D7CBC add r0, r0, #5 ldrb r0, [r4, r0] mov r1, #0 - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7D50 ; =0x00001063 mov r1, #1 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7D58 ; =0x00001062 mov r1, #2 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority ldr r0, _021D7D5C ; =0x00001061 mov r1, #3 ldrb r0, [r4, r0] - bl FUN_020178BC + bl SetBgPriority _021D7D30: ldr r0, _021D7D54 ; =0x0000105F ldrsb r1, [r4, r0] @@ -1077,7 +1077,7 @@ _021D7D6A: ldr r0, [r7] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -1095,7 +1095,7 @@ MOD67_021D7D84: ; 0x021D7D84 add r5, r0, #4 _021D7D8A: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #4 @@ -1146,9 +1146,9 @@ _021D7DB4: bl MOD67_021D8344 _021D7DF2: add r0, r6, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, r5, r6, pc} thumb_func_end MOD67_021D7D9C diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index b2170444..e30ad283 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -32,7 +32,7 @@ MOD68_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x24 lsr r2, r2, #9 - bl FUN_0201681C + bl CreateHeap mov r1, #0x81 add r0, r4, #0 lsl r1, r1, #2 @@ -49,7 +49,7 @@ MOD68_021D74E0: ; 0x021D74E0 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0x24 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r5] mov r0, #0x7e lsl r0, r0, #2 @@ -73,7 +73,7 @@ MOD68_021D74E0: ; 0x021D74E0 bl MOD68_021D7870 mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 @@ -173,7 +173,7 @@ MOD68_021D762C: ; 0x021D762C add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x24 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _021D767C ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -187,7 +187,7 @@ _021D767C: .word 0x04000050 MOD68_021D7680: ; 0x021D7680 push {r3, lr} ldr r0, [r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D7698 ; =0x027E0000 ldr r1, _021D769C ; =0x00003FF8 mov r0, #1 @@ -233,7 +233,7 @@ MOD68_021D76C0: ; 0x021D76C0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable bl MOD68_021D7FD8 ldr r5, _021D7768 ; =0x021D8910 add r3, sp, #0x38 @@ -249,10 +249,10 @@ MOD68_021D76C0: ; 0x021D76C0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D776C ; =0x021D88D8 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -267,12 +267,12 @@ MOD68_021D76C0: ; 0x021D76C0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #8 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText ldr r5, _021D7770 ; =0x021D88F4 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -287,12 +287,12 @@ MOD68_021D76C0: ; 0x021D76C0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x24 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x64 pop {r4, r5, pc} nop @@ -311,13 +311,13 @@ MOD68_021D7774: ; 0x021D7774 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x24 add r1, r4, #0 bl FreeToHeapExplicit @@ -393,12 +393,12 @@ _021D7812: mov r1, #1 add r2, r4, #0 mov r3, #2 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 bl FreeToHeap ldr r0, [r5] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r1, #0x1e mov r0, #0 lsl r1, r1, #4 @@ -482,7 +482,7 @@ _021D78D2: ldr r0, [r7] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -500,7 +500,7 @@ MOD68_021D78EC: ; 0x021D78EC mov r4, #0 _021D78F2: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xc @@ -544,7 +544,7 @@ MOD68_021D7904: ; 0x021D7904 ldr r0, [sp, #0x10] bl String_dtor add r0, r5, r4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD68_021D7904 @@ -736,7 +736,7 @@ MOD68_021D7A18: ; 0x021D7A18 add r0, r5, #0 bl String_dtor add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -774,7 +774,7 @@ MOD68_021D7AE4: ; 0x021D7AE4 add r0, r4, #0 bl String_dtor add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -810,7 +810,7 @@ MOD68_021D7B34: ; 0x021D7B34 add r0, r4, #0 bl String_dtor add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -855,7 +855,7 @@ _021D7BA4: add r0, r4, #0 bl String_dtor add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -891,7 +891,7 @@ MOD68_021D7BDC: ; 0x021D7BDC add r0, r4, #0 bl String_dtor add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, pc} nop @@ -980,7 +980,7 @@ MOD68_021D7C28: ; 0x021D7C28 add r0, r4, #0 bl String_dtor add r0, r6, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -1393,7 +1393,7 @@ MOD68_021D7F98: ; 0x021D7F98 bl MOD68_021D85F4 ldr r0, [r4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, pc} .align 2, 0 thumb_func_end MOD68_021D7F98 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 58d0b4f8..b29554ea 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -13,7 +13,7 @@ HOF_OverlayInit: ; 0x0222D5C0 mov r0, #3 mov r1, #0x3f lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222D70C ; =0x00001B60 add r0, r5, #0 mov r2, #0x3f @@ -213,7 +213,7 @@ _0222D762: add r0, r6, #0 bl OverlayManager_FreeData mov r0, #0x3f - bl FUN_020168D0 + bl DestroyHeap ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -735,7 +735,7 @@ MOD69_0222DBAC: ; 0x0222DBAC sub sp, #0x14 add r4, r0, #0 mov r0, #0x3f - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x10] ldr r0, _0222DCF4 ; =0x0222F8CC bl GX_SetBanks @@ -745,28 +745,28 @@ MOD69_0222DBAC: ; 0x0222DBAC and r0, r1 strh r0, [r2] ldr r0, _0222DD00 ; =0x0222F7C4 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0x10] ldr r2, _0222DD04 ; =0x0222F850 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] ldr r2, _0222DD08 ; =0x0222F818 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] ldr r2, _0222DD0C ; =0x0222F834 mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r2, #0 str r2, [sp] mov r1, #1 ldr r0, [r4, #0x10] add r3, r1, #0 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -776,7 +776,7 @@ MOD69_0222DBAC: ; 0x0222DBAC ldr r0, [r4, #0x10] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0 add r1, r4, #0 str r3, [sp] @@ -789,17 +789,17 @@ MOD69_0222DBAC: ; 0x0222DBAC str r2, [sp, #0x10] ldr r0, [r4, #0x10] add r1, #0x14 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0x14 mov r1, #0 bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r0, r4, #0 add r0, #0x14 - bl FUN_02019270 + bl PutWindowTilemap mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -846,7 +846,7 @@ MOD69_0222DBAC: ; 0x0222DBAC bl GfGfxLoader_LoadScrnData ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, _0222DD10 ; =0x04000040 mov r1, #0 strh r1, [r0] @@ -900,16 +900,16 @@ MOD69_0222DD18: ; 0x0222DD18 str r0, [r2] add r0, r4, #0 add r0, #0x14 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] bl FreeToHeap pop {r4, pc} @@ -2469,7 +2469,7 @@ _0222E9D8: mov r1, #0x18 bl MOD69_0222E89C ldr r0, [r4, #0x10] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0x14 str r0, [r4, #0x30] ldr r0, [r4, #0x34] @@ -2490,7 +2490,7 @@ _0222E9FC: mov r1, #0x58 bl MOD69_0222E89C ldr r0, [r4, #0x10] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0x14 str r0, [r4, #0x30] ldr r0, [r4, #0x34] @@ -2521,7 +2521,7 @@ _0222EA2E: mov r1, #0x88 bl MOD69_0222E89C ldr r0, [r4, #0x10] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #0x34] add r0, r0, #1 str r0, [r4, #0x34] @@ -2595,7 +2595,7 @@ _0222EAEA: ldr r0, [r4, #0xc] lsr r1, r1, #0x18 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 add r0, #0x14 bl MOD69_0222F6C0 @@ -2610,7 +2610,7 @@ _0222EB16: mov r1, #0 bl FillWindowPixelBuffer ldr r0, [r4, #0x10] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode ldr r0, [r4, #0x28] add r0, r0, #1 str r0, [r4, #0x28] @@ -2622,7 +2622,7 @@ _0222EB2C: lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 bl MOD69_0222E204 add r0, r5, #0 @@ -2744,7 +2744,7 @@ MOD69_0222EB4C: ; 0x0222EB4C bl AddTextPrinterParameterized2 add r4, #0x14 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r4, pc} nop diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index 9db294af..8dc21247 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -11,12 +11,12 @@ MOD70_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x3c lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap mov r2, #7 mov r0, #3 mov r1, #0x3d lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #0xdc mov r2, #0x3c @@ -76,9 +76,9 @@ MOD70_021D755C: ; 0x021D755C add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x3d - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x3c - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -405,7 +405,7 @@ MOD70_021D77CC: ; 0x021D77CC str r5, [r4] str r6, [r4, #4] mov r0, #0x3d - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x10] bl NNS_G2dInitOamManagerModule mov r0, #0 @@ -647,7 +647,7 @@ MOD70_021D79C0: ; 0x021D79C0 b _021D7A14 _021D79D4: ldr r0, _021D7A1C ; =0x0000060E - bl FUN_020054C8 + bl PlaySE mov r1, #0 mov r0, #6 str r0, [sp] @@ -788,7 +788,7 @@ MOD70_021D7ADC: ; 0x021D7ADC push {r4, lr} add r4, r0, #0 ldr r0, _021D7AF0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD70_021D7D98 mov r0, #1 @@ -810,17 +810,17 @@ MOD70_021D7AF4: ; 0x021D7AF4 orr r0, r1 strh r0, [r2] ldr r0, _021D7C00 ; =0x021D823C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r5, #0x10] ldr r2, _021D7C04 ; =0x021D8268 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #0x10] ldr r2, _021D7C08 ; =0x021D824C mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -857,7 +857,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 mov r1, #1 ldr r0, [r5, #0x10] add r3, r1, #0 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -867,7 +867,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 ldr r0, [r5, #0x10] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r5, #0 mov r1, #1 bl MOD70_021D7C2C @@ -900,7 +900,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 bl FUN_0200CCA4 ldr r0, [r5, #0x10] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r3, #8 ldr r0, _021D7C0C ; =0x04000050 mov r1, #0 @@ -927,10 +927,10 @@ MOD70_021D7C10: ; 0x021D7C10 add r4, r0, #0 ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl MOD70_021D7C98 pop {r4, pc} @@ -957,7 +957,7 @@ MOD70_021D7C2C: ; 0x021D7C2C ldr r0, [r5, #0x10] add r1, #0x14 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x1e @@ -976,13 +976,13 @@ MOD70_021D7C2C: ; 0x021D7C2C ldr r0, [r5, #0x10] add r1, #0x24 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x14 - bl FUN_02019270 + bl PutWindowTilemap add r5, #0x24 add r0, r5, #0 - bl FUN_02019270 + bl PutWindowTilemap add r4, #0xb4 add r0, r4, #0 add sp, #0x14 @@ -998,7 +998,7 @@ MOD70_021D7C98: ; 0x021D7C98 add r5, #0x14 _021D7CA0: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #2 @@ -1029,10 +1029,10 @@ MOD70_021D7CC0: ; 0x021D7CC0 bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add r4, #0x24 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r4, pc} thumb_func_end MOD70_021D7CC0 @@ -1114,7 +1114,7 @@ MOD70_021D7CE8: ; 0x021D7CE8 add r3, r1, #0 bl AddTextPrinterParameterized add r0, r6, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end MOD70_021D7CE8 @@ -1341,7 +1341,7 @@ _021D7F1E: blt _021D7F1E _021D7F66: ldr r0, [sp, #0xc] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD70_021D7D98 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 303bee40..5ece5081 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -27,7 +27,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 ldr r2, _0222D734 ; =0x000707D0 mov r0, #3 mov r1, #0x1a - bl FUN_0201681C + bl CreateHeap ldr r1, _0222D738 ; =0x000036B4 add r0, r5, #0 mov r2, #0x1a @@ -38,7 +38,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 add r1, r4, #0 bl MIi_CpuClearFast mov r0, #0x1a - bl FUN_02016B94 + bl BgConfig_Alloc mov r1, #0x5d lsl r1, r1, #2 str r0, [r4, r1] @@ -74,7 +74,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 bl MOD71_0222E76C mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers bl MOD71_0222E558 mov r0, #0x5d lsl r0, r0, #2 @@ -128,7 +128,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 bl FUN_02083B84 mov r0, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -314,28 +314,28 @@ MOD71_0222D820: ; 0x0222D820 bl MOD71_02230F40 mov r0, #4 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineBToggleLayers mov r0, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -932,7 +932,7 @@ _0222DDA6: mov r0, #0x50 bl FUN_02031588 mov r0, #2 - bl FUN_020166A8 + bl SetSoftResetDisableMask add r0, r4, #0 bl MOD71_02230B88 ldr r0, [r4, #0x4c] @@ -1211,13 +1211,13 @@ _0222DFD6: bl FUN_0200A208 mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -1267,13 +1267,13 @@ _0222E054: bl FUN_0200A208 mov r0, #4 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineBToggleLayers @@ -1304,7 +1304,7 @@ _0222E094: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -1317,7 +1317,7 @@ _0222E094: mov r2, #1 bl MOD71_02230F40 mov r0, #2 - bl FUN_020166B8 + bl ClearSoftResetDisableMask add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} @@ -1777,7 +1777,7 @@ MOD71_0222E438: ; 0x0222E438 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x1a - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} nop @@ -1793,7 +1793,7 @@ MOD71_0222E4DC: ; 0x0222E4DC mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r0, _0222E548 ; =0x00002110 ldr r0, [r5, r0] cmp r0, #0 @@ -1876,7 +1876,7 @@ MOD71_0222E578: ; 0x0222E578 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _0222E74C ; =0x0223115C add r3, sp, #0xa8 ldmia r4!, {r0, r1} @@ -1891,10 +1891,10 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r4, _0222E750 ; =0x02231124 add r3, sp, #0x8c ldmia r4!, {r0, r1} @@ -1909,10 +1909,10 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r4, _0222E754 ; =0x02231178 add r3, sp, #0x70 ldmia r4!, {r0, r1} @@ -1927,10 +1927,10 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r4, _0222E758 ; =0x02231194 add r3, sp, #0x54 ldmia r4!, {r0, r1} @@ -1945,7 +1945,7 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r4, _0222E75C ; =0x022310EC add r3, sp, #0x38 ldmia r4!, {r0, r1} @@ -1960,10 +1960,10 @@ MOD71_0222E578: ; 0x0222E578 add r0, r5, #0 mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r4, _0222E760 ; =0x02231108 add r3, sp, #0x1c ldmia r4!, {r0, r1} @@ -1978,7 +1978,7 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r4, _0222E764 ; =0x02231140 add r3, sp, #0 ldmia r4!, {r0, r1} @@ -1993,22 +1993,22 @@ MOD71_0222E578: ; 0x0222E578 str r0, [r3] add r0, r5, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x1a - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x1a - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x1a - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r4, #0 mov r6, #3 add r7, r4, #0 @@ -2018,51 +2018,51 @@ _0222E6BC: add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 add r2, r6, #0 add r3, r7, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r1, r4, #4 lsl r1, r1, #0x18 mov r2, #0 add r0, r5, #0 lsr r1, r1, #0x18 add r3, r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r1, r4, #4 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, r4, #1 cmp r4, #4 blt _0222E6BC mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -2188,25 +2188,25 @@ MOD71_0222E848: ; 0x0222E848 push {r4, lr} add r4, r0, #0 mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD71_0222E848 @@ -2237,7 +2237,7 @@ _0222E8B2: lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_0201886C + bl GetBgTilemapBuffer cmp r0, #0 beq _0222E8D0 ldr r2, [sp, #4] @@ -2246,7 +2246,7 @@ _0222E8B2: add r0, r5, #0 lsr r1, r1, #0x18 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData _0222E8D0: add r0, r6, #0 bl FreeToHeap @@ -2262,7 +2262,7 @@ MOD71_0222E8DC: ; 0x0222E8DC sub sp, #4 mov r1, #2 add r4, r0, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r2, r0, #0 mov r0, #0 mov r3, #6 @@ -2270,7 +2270,7 @@ MOD71_0222E8DC: ; 0x0222E8DC add r0, r4, #0 mov r1, #2 lsl r3, r3, #8 - bl FUN_02017CE8 + bl BgCopyOrUncompressTilemapBufferRangeToVram add sp, #4 pop {r3, r4, pc} .align 2, 0 @@ -2304,10 +2304,10 @@ MOD71_0222E900: ; 0x0222E900 bl GfGfxLoader_GXLoadPal mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -2414,7 +2414,7 @@ MOD71_0222E900: ; 0x0222E900 bl FUN_02002ED0 add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2958,7 +2958,7 @@ _0222EE9A: add r0, #0x1c lsl r0, r0, #4 add r0, r6, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram _0222EEA6: mov r0, #3 str r0, [sp] @@ -3046,21 +3046,21 @@ MOD71_0222EF24: ; 0x0222EF24 add r0, #0x1a lsl r0, r0, #4 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x1c lsl r0, r0, #4 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x1e lsl r0, r0, #4 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r4, #0x20 lsl r0, r4, #4 add r0, r5, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram pop {r4, r5, r6, pc} thumb_func_end MOD71_0222EF24 @@ -3633,7 +3633,7 @@ MOD71_0222F3DC: ; 0x0222F3DC cmp r0, r6 beq _0222F416 ldr r0, _0222F428 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE str r6, [r4] mov r7, #1 _0222F416: @@ -3966,7 +3966,7 @@ MOD71_0222F674: ; 0x0222F674 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -4023,7 +4023,7 @@ _0222F6EE: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -4058,7 +4058,7 @@ _0222F738: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -4103,7 +4103,7 @@ MOD71_0222F790: ; 0x0222F790 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -4149,7 +4149,7 @@ MOD71_0222F7E4: ; 0x0222F7E4 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -4326,7 +4326,7 @@ MOD71_0222F954: ; 0x0222F954 pop {r4, r5, r6, pc} _0222F976: ldr r0, _0222FA10 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0222FA14 ; =0x0000366C ldr r0, [r5, r0] bl FUN_0202DFA4 @@ -4344,7 +4344,7 @@ _0222F976: b _0222F9E4 _0222F9A0: ldr r0, _0222FA10 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0222FA24 ; =0x00003670 str r4, [r5, r0] mov r0, #0x1a @@ -4377,7 +4377,7 @@ _0222F9E4: bl FUN_0200CCF8 ldr r0, _0222FA30 ; =0x00003684 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xda lsl r0, r0, #6 mov r1, #0 @@ -4895,7 +4895,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5f lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5005,7 +5005,7 @@ _0222FF10: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5044,7 +5044,7 @@ _0222FF64: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5081,7 +5081,7 @@ _0222FFB4: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5134,7 +5134,7 @@ MOD71_02230020: ; 0x02230020 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5243,7 +5243,7 @@ _02230108: lsl r1, r0, #4 ldr r0, [sp, #4] add r0, r0, r1 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r7, #0 add r0, #0x8c ldr r0, [r0] @@ -5280,7 +5280,7 @@ _02230154: lsl r1, r0, #4 ldr r0, [sp, #4] add r0, r0, r1 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r6, r6, #1 add r4, r4, #4 add r5, #0x10 @@ -5550,11 +5550,11 @@ MOD71_02230390: ; 0x02230390 ldr r1, _0223048C ; =0x00000568 str r0, [sp] add r0, r0, r1 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r1, _02230490 ; =0x00000578 ldr r0, [sp] add r0, r0, r1 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer ldr r6, [sp] ldr r1, _02230494 ; =0x00000438 add r0, r6, #0 @@ -5622,7 +5622,7 @@ _0223042C: lsl r1, r0, #4 ldr r0, [sp, #4] add r0, r0, r1 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _02230438: add r7, r7, #1 add r6, #0x10 @@ -5688,7 +5688,7 @@ MOD71_022304AC: ; 0x022304AC ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, _02230534 ; =0x00002218 add r1, r4, #0 add r1, #0x88 @@ -5787,7 +5787,7 @@ _0223056E: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5836,7 +5836,7 @@ _022305EE: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5885,7 +5885,7 @@ MOD71_02230650: ; 0x02230650 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5f lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5942,7 +5942,7 @@ _022306CA: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -5977,7 +5977,7 @@ _02230714: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -6141,7 +6141,7 @@ MOD71_02230810: ; 0x02230810 ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5f lsl r3, r3, #2 ldr r0, [r4, r3] @@ -6237,7 +6237,7 @@ _0223092E: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -6276,7 +6276,7 @@ _02230982: ldr r0, [r4, r0] add r2, r1, #0 add r3, r1, #0 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0x5e lsl r3, r3, #2 ldr r0, [r4, r3] @@ -6467,7 +6467,7 @@ MOD71_02230B3C: ; 0x02230B3C ldr r0, [r4, r0] ldr r3, [r4, r3] mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x5d ldr r3, _02230B6C ; =0x000022B8 lsl r0, r0, #2 @@ -6475,7 +6475,7 @@ MOD71_02230B3C: ; 0x02230B3C ldr r3, [r4, r3] mov r1, #3 mov r2, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, pc} .align 2, 0 _02230B6C: .word 0x000022B8 @@ -6624,7 +6624,7 @@ MOD71_02230C48: ; 0x02230C48 add r5, r1, #0 str r0, [sp, #0x14] str r2, [sp, #0x10] - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -6642,7 +6642,7 @@ MOD71_02230C48: ; 0x02230C48 ldr r0, [sp, #0x14] add r1, #0x10 mov r3, #0x14 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x10 mov r1, #0 @@ -6662,7 +6662,7 @@ MOD71_02230C48: ; 0x02230C48 add r1, #0x60 mov r2, #1 mov r3, #0x1a - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r0, #0x60 mov r1, #0 @@ -6701,7 +6701,7 @@ MOD71_02230C48: ; 0x02230C48 ldr r0, [sp, #0x14] add r1, r5, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x15 lsl r0, r0, #4 add r0, r5, r0 @@ -6723,7 +6723,7 @@ MOD71_02230C48: ; 0x02230C48 add r1, r5, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x16 lsl r0, r0, #4 add r0, r5, r0 @@ -6745,7 +6745,7 @@ MOD71_02230C48: ; 0x02230C48 add r1, r5, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x17 lsl r0, r0, #4 add r0, r5, r0 @@ -6766,7 +6766,7 @@ MOD71_02230C48: ; 0x02230C48 add r1, r5, r1 mov r2, #0 mov r3, #0x14 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #6 lsl r0, r0, #6 add r0, r5, r0 @@ -6787,7 +6787,7 @@ MOD71_02230C48: ; 0x02230C48 add r1, r5, r1 mov r2, #0 mov r3, #0x14 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x19 lsl r0, r0, #4 add r0, r5, r0 @@ -6820,7 +6820,7 @@ _02230DE2: add r1, r5, r1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x18] mov r1, #0 add r0, r5, r0 @@ -6858,7 +6858,7 @@ _02230E2C: ldr r0, [sp, #0x14] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, r7 mov r1, #0 bl FillWindowPixelBuffer @@ -6884,7 +6884,7 @@ _02230E8E: add r0, r5, #7 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r5, r5, #1 cmp r5, #0xe blt _02230E8E @@ -6894,38 +6894,38 @@ _02230EA0: add r0, #0x1a lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r5, r5, #1 cmp r5, #8 blt _02230EA0 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x10 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x60 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x15 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x16 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x17 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #6 lsl r0, r0, #6 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x19 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r3, r4, r5, pc} thumb_func_end MOD71_02230E88 @@ -7097,7 +7097,7 @@ MOD71_02231018: ; 0x02231018 add r1, r4, #0 mov r2, #0 mov r3, #0x13 - bl FUN_02019064 + bl AddWindowParameterized ldr r2, _0223108C ; =0x000001F7 add r0, r4, #0 mov r1, #0 @@ -7143,7 +7143,7 @@ MOD71_02231098: ; 0x02231098 cmp r2, #0 bne _022310A4 ldr r0, _022310A8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _022310A4: pop {r3, pc} nop diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index 7d9850cc..28b61540 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -23,7 +23,7 @@ MOD73_021D74F0: ; 0x021D74F0 mov r0, #3 mov r1, #0x38 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D757C ; =0x000015E8 add r0, r5, #0 mov r2, #0x38 @@ -201,7 +201,7 @@ MOD73_021D7640: ; 0x021D7640 mov r0, #0 str r0, [r6, #0x18] add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop @@ -588,11 +588,11 @@ _021D7966: cmp r7, #0xa bge _021D799C ldr r0, _021D79D8 ; =0x000006BD - bl FUN_020054C8 + bl PlaySE b _021D79A2 _021D799C: ldr r0, _021D79DC ; =0x000006BE - bl FUN_020054C8 + bl PlaySE _021D79A2: mov r0, #0xd6 lsl r0, r0, #2 @@ -777,7 +777,7 @@ _021D7AE2: mov r1, #0 bl FUN_020054F0 ldr r0, _021D7C88 ; =0x000006C2 - bl FUN_020054C8 + bl PlaySE ldr r0, _021D7C8C ; =0x000005A4 mov r1, #0 add r0, r4, r0 @@ -1022,7 +1022,7 @@ _021D7D42: add r0, r4, r0 bl MOD73_021DA730 ldr r0, _021D7F4C ; =0x000006C3 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -1042,7 +1042,7 @@ _021D7D66: add r0, r4, r0 bl MOD73_021DB260 ldr r0, _021D7F4C ; =0x000006C3 - bl FUN_020054C8 + bl PlaySE ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -1673,7 +1673,7 @@ _021D8292: add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D82F8 ; =0x000006C1 - bl FUN_020054C8 + bl PlaySE pop {r4, pc} _021D82C2: add r0, r0, #4 @@ -1693,7 +1693,7 @@ _021D82C2: add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D82F8 ; =0x000006C1 - bl FUN_020054C8 + bl PlaySE _021D82EC: pop {r4, pc} nop @@ -1829,7 +1829,7 @@ MOD73_021D83D0: ; 0x021D83D0 ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _021D83FC: ldrb r0, [r4, #0x12] cmp r0, #1 @@ -1846,7 +1846,7 @@ _021D83FC: ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE b _021D8434 _021D8422: cmp r0, #2 @@ -1896,7 +1896,7 @@ MOD73_021D8458: ; 0x021D8458 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D84F8 ; =0x000006C1 - bl FUN_020054C8 + bl PlaySE mov r0, #0xb mov r1, #1 lsl r0, r0, #6 @@ -1911,7 +1911,7 @@ _021D8490: add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D84F8 ; =0x000006C1 - bl FUN_020054C8 + bl PlaySE mov r0, #0xb mov r1, #2 lsl r0, r0, #6 @@ -1969,7 +1969,7 @@ MOD73_021D84FC: ; 0x021D84FC add r0, r0, r3 bl MOD73_021DB020 ldr r0, _021D8528 ; =0x000006BF - bl FUN_020054C8 + bl PlaySE _021D851C: pop {r3, pc} nop @@ -2108,7 +2108,7 @@ _021D860E: ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl FUN_020054C8 + bl PlaySE _021D861E: ldrh r1, [r4, #8] mov r0, #0xd5 @@ -2407,7 +2407,7 @@ MOD73_021D88B0: ; 0x021D88B0 ldr r0, [r4, #0x20] cmp r0, #0 beq _021D88C2 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates _021D88C2: pop {r4, pc} thumb_func_end MOD73_021D88B0 @@ -2440,7 +2440,7 @@ MOD73_021D88E4: ; 0x021D88E4 add r6, r0, #0 bl MOD73_021D88C4 ldr r0, [sp] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #8 ldr r4, _021D8974 ; =0x021DBD30 str r0, [r6] @@ -2450,13 +2450,13 @@ MOD73_021D88E4: ; 0x021D88E4 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers mov r0, #0 mov r1, #2 - bl FUN_020178BC + bl SetBgPriority ldr r4, _021D8978 ; =0x021DBD68 add r3, sp, #0x18 mov r2, #0xe @@ -2483,15 +2483,15 @@ _021D8944: ldr r0, [r6] add r2, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldrb r1, [r5] ldr r0, [r6] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldrb r0, [r5] ldr r3, [sp] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange add r7, r7, #1 add r4, #0x1c add r5, r5, #1 @@ -2511,16 +2511,16 @@ MOD73_021D8980: ; 0x021D8980 add r4, r0, #0 ldr r0, [r4] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4] bl FreeToHeap pop {r4, pc} @@ -4642,7 +4642,7 @@ _021D9958: mov r1, #0 bl FUN_020200A0 ldr r0, _021D9A24 ; =0x000006BC - bl FUN_020054C8 + bl PlaySE mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -4792,10 +4792,10 @@ MOD73_021D9AB4: ; 0x021D9AB4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r4, #4] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit pop {r4, pc} thumb_func_end MOD73_021D9AB4 @@ -4874,7 +4874,7 @@ _021D9B02: mov r1, #5 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #0xa ldr r3, [sp, #0x1c] str r0, [sp] @@ -4890,7 +4890,7 @@ _021D9B02: mov r1, #5 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r7, [r5, #0x1c] mov r2, #0x13 ldr r0, [r5, #0x18] @@ -4930,10 +4930,10 @@ _021D9B02: blt _021D9B02 _021D9BCE: ldr r0, [r5, #0xc] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [r5, #4] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _021D9BDC: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} @@ -4966,7 +4966,7 @@ MOD73_021D9BE0: ; 0x021D9BE0 ldr r0, [r5, #4] ldr r1, [r5, #8] add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd str r0, [sp] mov r0, #0x14 @@ -4981,7 +4981,7 @@ MOD73_021D9BE0: ; 0x021D9BE0 ldr r1, [r5, #0xc] mov r2, #4 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r5, #8] mov r1, #0xf bl FillWindowPixelBuffer @@ -5017,15 +5017,15 @@ MOD73_021D9C7C: ; 0x021D9C7C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #8] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor ldr r0, [r4, #0xc] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020191A4 + bl WindowArray_dtor pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9C7C @@ -5081,7 +5081,7 @@ _021D9CD8: lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #4] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r1, [r5, #0x24] mov r2, #0 ldrh r0, [r1] @@ -5097,7 +5097,7 @@ _021D9CD8: mov r0, #3 str r0, [sp, #8] ldr r0, [r5, #4] - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r3, r5, #0 str r4, [sp] mov r0, #0x7a @@ -5108,7 +5108,7 @@ _021D9CD8: str r0, [r5, #0x28] ldr r0, [r5, #4] mov r1, #5 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD73_021D9CA0 @@ -5950,7 +5950,7 @@ _021DA2FA: ldr r1, [r4, #8] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r4, #8] mov r1, #0 bl FillWindowPixelBuffer @@ -5973,10 +5973,10 @@ MOD73_021DA354: ; 0x021DA354 mov r6, #1 _021DA35C: ldr r0, [r5, #8] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r5, #8] add r1, r6, #0 - bl FUN_020191A4 + bl WindowArray_dtor add r4, r4, #1 add r5, r5, #4 cmp r4, #4 @@ -6029,7 +6029,7 @@ MOD73_021DA374: ; 0x021DA374 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_02018148 + bl LoadRectToBgTilemapRect ldr r1, [sp, #0x10] mov r2, #0 ldrh r0, [r1] @@ -6045,12 +6045,12 @@ MOD73_021DA374: ; 0x021DA374 mov r0, #4 str r0, [sp, #8] ldr r0, [r4, #4] - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r5, #0 bl FreeToHeap ldr r0, [r4, #4] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} thumb_func_end MOD73_021DA374 @@ -6170,7 +6170,7 @@ MOD73_021DA4D4: ; 0x021DA4D4 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0xc] mov r1, #0xf bl FillWindowPixelBuffer @@ -6210,9 +6210,9 @@ MOD73_021DA4D4: ; 0x021DA4D4 mov r3, #1 bl FUN_0200CCA4 ldr r0, [r4, #0xc] - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, [r4, #0x10] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, pc} nop @@ -6386,7 +6386,7 @@ _021DA682: mov r3, #0xa0 bl AddTextPrinterParameterized2 ldr r0, [r4, #0xc] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, pc} nop @@ -6442,7 +6442,7 @@ MOD73_021DA6BC: ; 0x021DA6BC mov r3, #0x10 bl AddTextPrinterParameterized2 ldr r0, [r4, #0x10] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -6477,11 +6477,11 @@ MOD73_021DA754: ; 0x021DA754 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, [r4, #0xc] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, [r4, #0x10] - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA754 @@ -6572,7 +6572,7 @@ _021DA7EC: add r3, r1, #0 bl FUN_0200D0BC ldr r0, [r4, #0x14] - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 44254d39..26a78f49 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -13,7 +13,7 @@ MOD74_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x4a lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #0xad add r0, r4, #0 lsl r1, r1, #2 @@ -56,7 +56,7 @@ MOD74_021D7540: ; 0x021D7540 add r0, r5, #0 bl OverlayManager_FreeData ldr r0, [r4] - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -343,7 +343,7 @@ MOD74_021D7784: ; 0x021D7784 bl MOD74_021D82E8 bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x10] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _021D77A4 ; =0x027E0000 ldr r1, _021D77A8 ; =0x00003FF8 mov r0, #1 @@ -584,7 +584,7 @@ MOD74_021D7934: ; 0x021D7934 sub sp, #0x64 add r5, r0, #0 ldr r0, [r5] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0 ldr r4, _021D79C0 ; =0x021D84A0 str r0, [r5, #0x10] @@ -594,7 +594,7 @@ MOD74_021D7934: ; 0x021D7934 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r4, _021D79C4 ; =0x021D8570 add r3, sp, #0x10 mov r2, #0xa @@ -618,11 +618,11 @@ _021D7976: lsr r1, r1, #0x18 add r2, r6, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate lsl r1, r4, #0x18 ldr r0, [r5, #0x10] lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldrh r0, [r5, #8] add r7, r7, #1 add r4, r4, #1 @@ -635,7 +635,7 @@ _021D799C: ldr r3, [r5] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldrh r0, [r5, #8] cmp r0, #0 beq _021D79BA @@ -643,7 +643,7 @@ _021D799C: mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange _021D79BA: add sp, #0x64 pop {r4, r5, r6, r7, pc} @@ -667,7 +667,7 @@ _021D79D8: ldr r0, [r6, #0x10] lsr r1, r1, #0x18 add r5, r5, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldrh r0, [r6, #8] add r4, r4, #1 add r0, r0, #2 @@ -747,7 +747,7 @@ _021D7A5A: bl NARC_dtor ldr r0, [r5, #0x10] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0x14 pop {r4, r5, pc} .align 2, 0 @@ -768,7 +768,7 @@ _021D7A9A: ldr r0, [r6, #0x10] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -787,7 +787,7 @@ _021D7AC0: ldr r0, [r6, #0x10] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -825,9 +825,9 @@ _021D7AFE: add r5, #0x6c _021D7B08: add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, r6 @@ -1667,7 +1667,7 @@ MOD74_021D81E0: ; 0x021D81E0 bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x8c - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 mov r1, #1 bl MOD74_021D8388 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 3500c458..23d75c48 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -32,7 +32,7 @@ MOD75_021E6BA0: ; 0x021E6BA0 mov r1, #6 mov r0, #3 lsl r2, r1, #0xf - bl FUN_0201681C + bl CreateHeap ldr r1, _021E6D60 ; =0x000004A4 add r0, r5, #0 mov r2, #6 @@ -49,7 +49,7 @@ MOD75_021E6BA0: ; 0x021E6BA0 add r0, r4, #0 bl MOD75_021E6FA4 mov r0, #6 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] add r0, r4, #0 add r0, #0xcc @@ -68,7 +68,7 @@ MOD75_021E6BA0: ; 0x021E6BA0 bl FUN_0200E1D0 mov r0, #3 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0 bl MOD75_021E7470 add r0, r4, #0 @@ -460,7 +460,7 @@ MOD75_021E6F00: ; 0x021E6F00 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #6 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -530,7 +530,7 @@ MOD75_021E6FFC: ; 0x021E6FFC MOD75_021E700C: ; 0x021E700C push {r3, lr} ldr r0, [r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _021E702C ; =0x027E0000 @@ -578,7 +578,7 @@ MOD75_021E7054: ; 0x021E7054 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021E71A0 ; =0x021EC440 add r3, sp, #0xa8 ldmia r5!, {r0, r1} @@ -593,10 +593,10 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021E71A4 ; =0x021EC45C add r3, sp, #0x8c ldmia r5!, {r0, r1} @@ -611,7 +611,7 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021E71A8 ; =0x021EC494 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -626,10 +626,10 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021E71AC ; =0x021EC4E8 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -644,7 +644,7 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021E71B0 ; =0x021EC478 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -659,10 +659,10 @@ MOD75_021E7054: ; 0x021E7054 add r0, r4, #0 mov r1, #4 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021E71B4 ; =0x021EC4B0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -677,7 +677,7 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _021E71B8 ; =0x021EC4CC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -692,27 +692,27 @@ MOD75_021E7054: ; 0x021E7054 str r0, [r3] add r0, r4, #0 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #7 mov r2, #9 mov r3, #0x80 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos add r0, r4, #0 mov r1, #7 mov r2, #0xc mov r3, #0x50 - bl FUN_0201AF50 + bl ScheduleSetBgAffinePos mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #6 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #6 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0xd4 pop {r4, r5, pc} nop @@ -738,25 +738,25 @@ MOD75_021E71BC: ; 0x021E71BC bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #6 add r1, r4, #0 bl FreeToHeapExplicit @@ -1611,7 +1611,7 @@ _021E784E: lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x20 pop {r4, r5, r6, pc} nop @@ -1637,15 +1637,15 @@ MOD75_021E7870: ; 0x021E7870 b _021E78A0 _021E7890: ldr r0, _021E7964 ; =0x000006CC - bl FUN_020054C8 + bl PlaySE b _021E78A6 _021E7898: ldr r0, _021E7968 ; =0x000006CD - bl FUN_020054C8 + bl PlaySE b _021E78A6 _021E78A0: ldr r0, _021E796C ; =0x000006CE - bl FUN_020054C8 + bl PlaySE _021E78A6: ldr r0, _021E7960 ; =0x00000482 mov r1, #3 @@ -1731,7 +1731,7 @@ _021E794C: bne _021E795C add r5, #0x14 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _021E795C: pop {r3, r4, r5, r6, r7, pc} nop @@ -1962,7 +1962,7 @@ _021E7B12: bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 bl MOD75_021E8B70 add r0, r4, #0 @@ -2030,7 +2030,7 @@ MOD75_021E7B7C: ; 0x021E7B7C cmp r0, #1 bne _021E7BC0 ldr r0, _021E7CDC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add sp, #4 mov r0, #2 pop {r3, r4, r5, r6, pc} @@ -2130,7 +2130,7 @@ _021E7C6E: pop {r3, r4, r5, r6, pc} _021E7C82: ldr r0, _021E7CDC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] @@ -2150,7 +2150,7 @@ _021E7C82: pop {r3, r4, r5, r6, pc} _021E7CAC: ldr r0, _021E7CDC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r4] lsl r2, r6, #2 ldrh r1, [r0, r2] @@ -2220,7 +2220,7 @@ MOD75_021E7D14: ; 0x021E7D14 pop {r4, pc} _021E7D2E: ldr r0, _021E7E00 ; =0x000006CA - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] @@ -2259,7 +2259,7 @@ _021E7D68: bl MOD75_021E7E0C ldr r0, [r4] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #1 pop {r4, pc} _021E7D88: @@ -2274,7 +2274,7 @@ _021E7D88: pop {r4, pc} _021E7D9A: ldr r0, _021E7E00 ; =0x000006CA - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] @@ -2312,7 +2312,7 @@ _021E7DD4: bl MOD75_021E7E0C ldr r0, [r4] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer mov r0, #1 pop {r4, pc} _021E7DF2: @@ -2402,10 +2402,10 @@ MOD75_021E7E60: ; 0x021E7E60 mov r1, #0 bl FillWindowPixelBuffer add r0, r4, #4 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 add r0, #0xf0 ldr r0, [r0] @@ -2574,7 +2574,7 @@ _021E7FB6: bl MOD75_021E84E4 ldr r0, [r5] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer _021E8004: add r5, #0xfc ldr r0, [r5] @@ -2609,7 +2609,7 @@ MOD75_021E8020: ; 0x021E8020 pop {r3, r4, r5, pc} _021E803E: ldr r0, _021E8190 ; =0x000006CA - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r1, #0xc4 ldr r3, [r1] @@ -2628,7 +2628,7 @@ _021E803E: bl MOD75_021E84E4 ldr r0, [r5] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] @@ -2695,7 +2695,7 @@ _021E80D8: pop {r3, r4, r5, pc} _021E80EA: ldr r0, _021E8190 ; =0x000006CA - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r1, #0xc4 ldr r3, [r1] @@ -2714,7 +2714,7 @@ _021E80EA: bl MOD75_021E84E4 ldr r0, [r5] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] @@ -3045,7 +3045,7 @@ MOD75_021E8374: ; 0x021E8374 ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #4 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 bne _021E83B6 mov r0, #0 @@ -3089,7 +3089,7 @@ MOD75_021E83CC: ; 0x021E83CC ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #4 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 bne _021E840E mov r0, #0 @@ -3146,14 +3146,14 @@ _021E8460: cmp r0, #3 bne _021E84CA ldr r0, _021E84D8 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE ldrb r1, [r4, #6] add r0, r5, #0 mov r2, #2 bl MOD75_021E84E4 ldr r0, [r5] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer ldrb r0, [r4, #6] lsl r3, r0, #1 ldr r0, _021E84DC ; =0x00000424 @@ -3215,7 +3215,7 @@ MOD75_021E84E4: ; 0x021E84E4 add r5, r1, #0 mov r1, #4 add r6, r2, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer add r7, r0, #0 ldr r0, _021E856C ; =0x00000424 ldrb r0, [r4, r0] @@ -3289,7 +3289,7 @@ MOD75_021E8574: ; 0x021E8574 add r4, r1, #0 ldr r0, [r0] mov r1, #4 - bl FUN_0201886C + bl GetBgTilemapBuffer mov ip, r0 add r1, r4, #0 mov r0, #6 @@ -3329,7 +3329,7 @@ _021E85A8: ldr r0, [sp] mov r1, #4 ldr r0, [r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r3, r4, r5, r6, r7, pc} nop _021E85D4: .word 0x00000276 @@ -3360,7 +3360,7 @@ _021E85FA: mov r2, #0x50 bl MOD75_021EC380 ldr r0, _021E8678 ; =0x000005E4 - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #2 bl MOD75_021E8574 @@ -3452,7 +3452,7 @@ _021E869C: _021E86B2: ldr r0, [r5] mov r1, #4 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021E86BC: .word 0x00000424 @@ -3603,7 +3603,7 @@ MOD75_021E87B8: ; 0x021E87B8 ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #4 - bl FUN_0201AFBC + bl DoesPixelAtScreenXYMatchPtrVal cmp r0, #0 beq _021E87EE add sp, #8 @@ -3750,7 +3750,7 @@ _021E88D0: cmp r0, #1 bne _021E8912 ldr r0, _021E89E8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD75_021E89F0 mov r1, #0x49 @@ -3766,7 +3766,7 @@ _021E8912: tst r0, r1 beq _021E892E ldr r0, _021E89E8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD75_021E89F0 add sp, #4 @@ -3833,7 +3833,7 @@ _021E899A: b _021E89E0 _021E89AA: ldr r0, _021E89E8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _021E89EC ; =gMain ldr r1, [r0, #0x48] mov r0, #1 @@ -3851,7 +3851,7 @@ _021E89C8: pop {r3, r4, r5, r6, pc} _021E89CE: ldr r0, _021E89E8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 bl MOD75_021E89F0 add sp, #4 @@ -4366,7 +4366,7 @@ MOD75_021E8DAC: ; 0x021E8DAC ldr r2, _021E8E08 ; =0x021EC5C0 mov r1, #1 mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 add r0, #0xfc ldr r0, [r0] @@ -4383,7 +4383,7 @@ _021E8DDA: ldr r2, _021E8E0C ; =0x021EC5F2 mov r1, #1 mov r3, #0 - bl FUN_02018148 + bl LoadRectToBgTilemapRect add r0, r4, #0 add r0, #0xfc ldr r0, [r0] @@ -4392,7 +4392,7 @@ _021E8DDA: _021E8DFC: ldr r0, [r4] mov r1, #1 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0xc pop {r3, r4, pc} .align 2, 0 @@ -4504,7 +4504,7 @@ _021E8ED2: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -4834,7 +4834,7 @@ _021E917A: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -4970,7 +4970,7 @@ _021E9286: strh r1, [r4, r0] mov r0, #6 lsl r0, r0, #8 - bl FUN_020054C8 + bl PlaySE mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -5150,7 +5150,7 @@ _021E9402: _021E940E: add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -5296,7 +5296,7 @@ _021E952C: add r0, r4, #0 bl MOD75_021EB504 ldr r0, _021E95B0 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE mov r0, #7 pop {r4, pc} _021E9544: @@ -5307,7 +5307,7 @@ _021E9544: add r0, r4, #0 bl MOD75_021EB504 ldr r0, _021E95B0 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE mov r0, #7 pop {r4, pc} _021E955E: @@ -5322,7 +5322,7 @@ _021E955E: mov r1, #0 bl MOD75_021EC298 ldr r0, _021E95B8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #8 pop {r4, pc} _021E9580: @@ -5338,7 +5338,7 @@ _021E9580: mov r1, #1 bl MOD75_021EC090 ldr r0, _021E95B8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, pc} _021E95A6: @@ -5507,7 +5507,7 @@ _021E96EC: bl FUN_0200D0E0 add r0, r5, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 mov r1, #1 bl MOD75_021EC090 @@ -5542,7 +5542,7 @@ _021E9730: bl MOD75_021E92BC add r4, #0x64 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0xb pop {r4, pc} .align 2, 0 @@ -5577,7 +5577,7 @@ _021E9772: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -5613,7 +5613,7 @@ MOD75_021E97A8: ; 0x021E97A8 bl MOD75_021EB344 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -5638,7 +5638,7 @@ MOD75_021E97E4: ; 0x021E97E4 bl MOD75_021EB344 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -5807,7 +5807,7 @@ _021E9952: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -6162,7 +6162,7 @@ _021E9C46: mov r1, #1 bl MOD75_021EB708 ldr r0, _021E9D5C ; =0x00000638 - bl FUN_020054C8 + bl PlaySE add sp, #8 mov r0, #0x12 pop {r3, r4, r5, pc} @@ -6175,7 +6175,7 @@ _021E9C62: mov r1, #1 bl MOD75_021EB708 ldr r0, _021E9D5C ; =0x00000638 - bl FUN_020054C8 + bl PlaySE add sp, #8 mov r0, #0x12 pop {r3, r4, r5, pc} @@ -6231,7 +6231,7 @@ _021E9C80: ldr r1, _021E9D58 ; =0x00000426 strb r0, [r4, r1] ldr r0, _021E9D64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add sp, #8 mov r0, #0x13 pop {r3, r4, r5, pc} @@ -6258,12 +6258,12 @@ _021E9D00: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 ldr r0, _021E9D64 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add sp, #8 mov r0, #0x10 pop {r3, r4, r5, pc} @@ -6446,7 +6446,7 @@ _021E9EA2: bl FUN_0200D0E0 add r0, r5, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 mov r1, #1 bl MOD75_021EC090 @@ -6476,7 +6476,7 @@ MOD75_021E9EE4: ; 0x021E9EE4 pop {r4, pc} _021E9EF8: ldr r0, _021E9F68 ; =0x00000644 - bl FUN_020054C8 + bl PlaySE ldr r1, _021E9F6C ; =0x00000488 add r0, r4, #0 ldrsh r2, [r4, r1] @@ -6523,7 +6523,7 @@ _021E9F44: bl MOD75_021E92BC add r4, #0x64 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #0x16 pop {r4, pc} .align 2, 0 @@ -6567,7 +6567,7 @@ _021E9F96: bl FUN_0200D0E0 add r0, r4, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 mov r1, #1 bl MOD75_021EC090 @@ -6707,7 +6707,7 @@ MOD75_021EA0CC: ; 0x021EA0CC ldr r0, [r4] add r5, r1, #0 mov r1, #7 - bl FUN_02018878 + bl GetBgAffineRotation lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, r0, r5 @@ -6733,7 +6733,7 @@ _021EA0FE: mov r1, #7 mov r2, #0 lsr r3, r3, #0x10 - bl FUN_0201AF08 + bl ScheduleSetBgAffineRotation ldr r0, _021EA114 ; =0x0000049A strh r5, [r4, r0] pop {r3, r4, r5, pc} @@ -6862,7 +6862,7 @@ _021EA1EC: ldrh r3, [r5, r3] mov r1, #7 mov r2, #0 - bl FUN_0201AF08 + bl ScheduleSetBgAffineRotation ldr r0, _021EA2CC ; =0x000001F6 add r1, r6, #0 bl _s32_div_f @@ -7376,7 +7376,7 @@ _021EA5C2: cmp r1, r3 beq _021EA5F8 ldr r0, _021EA600 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021EA5D4: @@ -7396,7 +7396,7 @@ _021EA5E8: cmp r1, r3 beq _021EA5F8 ldr r0, _021EA600 ; =0x00000638 - bl FUN_020054C8 + bl PlaySE mov r0, #1 _021EA5F8: pop {r3, r4, r5, r6, r7, pc} @@ -7424,7 +7424,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, r4, #4 mov r2, #2 mov r3, #0xe - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x12 str r0, [sp] mov r0, #0x20 @@ -7440,7 +7440,7 @@ MOD75_021EA604: ; 0x021EA604 ldr r0, [r4] add r1, #0x14 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd str r0, [sp] mov r0, #0x24 @@ -7455,7 +7455,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x24 mov r2, #2 mov r3, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0xe @@ -7471,7 +7471,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x34 mov r2, #0 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0xd @@ -7487,7 +7487,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x44 mov r2, #0 mov r3, #6 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xb str r0, [sp] mov r0, #0xc @@ -7503,7 +7503,7 @@ MOD75_021EA604: ; 0x021EA604 ldr r0, [r4] add r1, #0x54 add r3, r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -7519,7 +7519,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x64 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd str r0, [sp] mov r0, #0xc @@ -7535,7 +7535,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x74 mov r2, #0 mov r3, #0x13 - bl FUN_02019064 + bl AddWindowParameterized mov r3, #1 add r1, r4, #0 str r3, [sp] @@ -7550,7 +7550,7 @@ MOD75_021EA604: ; 0x021EA604 str r0, [sp, #0x10] ldr r0, [r4] mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #7 @@ -7566,7 +7566,7 @@ MOD75_021EA604: ; 0x021EA604 add r1, #0x94 mov r2, #0 mov r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xc str r0, [sp] mov r0, #0xb @@ -7582,7 +7582,7 @@ MOD75_021EA604: ; 0x021EA604 add r4, #0xa4 add r1, r4, #0 mov r3, #1 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {r3, r4, pc} nop @@ -7604,7 +7604,7 @@ MOD75_021EA7A0: ; 0x021EA7A0 _021EA7A6: lsl r0, r4, #4 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -7689,7 +7689,7 @@ _021EA828: mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0xe str r0, [sp] mov r0, #1 @@ -7705,7 +7705,7 @@ _021EA828: mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -7817,7 +7817,7 @@ _021EA936: bl MOD75_021EA880 add r4, #0x24 add r0, r4, #0 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode pop {r3, r4, r5, r6, r7, pc} nop _021EA94C: .word 0x00000429 @@ -7901,7 +7901,7 @@ _021EA9A8: bl BlitBitmapRectToWindow add r5, #0x54 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r0, #6 add r1, r7, #0 bl FreeToHeapExplicit @@ -7990,7 +7990,7 @@ _021EAA4C: _021EAA8C: add r5, #0x54 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [sp, #0x18] mov r0, #6 bl FreeToHeapExplicit @@ -8850,7 +8850,7 @@ MOD75_021EB130: ; 0x021EB130 ldr r0, [r5] add r1, #0xb4 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #4 str r0, [sp, #0x14] b _021EB1B0 @@ -8875,7 +8875,7 @@ _021EB180: add r1, #0xb4 mov r2, #0 mov r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #3 str r0, [sp, #0x14] _021EB1B0: @@ -8981,7 +8981,7 @@ _021EB22E: bl MOD75_021EAB44 add r0, r5, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] @@ -9048,7 +9048,7 @@ _021EB298: ldr r0, [sp, #0x18] bl String_dtor add r0, r4, r6 - bl FUN_02019220 + bl ScheduleWindowCopyToVram _021EB31E: add r0, r5, #0 ldr r2, _021EB340 ; =0x000003F7 @@ -9058,7 +9058,7 @@ _021EB31E: bl FUN_0200CCA4 add r5, #0xb4 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -9095,7 +9095,7 @@ _021EB364: mov r1, #1 bl FUN_0200D0E0 add r0, r4, r6 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer _021EB37A: add r0, r5, #0 add r0, #0xb4 @@ -9103,7 +9103,7 @@ _021EB37A: bl FUN_0200CCF8 add r0, r5, #0 add r0, #0xb4 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9115,7 +9115,7 @@ _021EB37A: bl ListMenuItems_dtor add r0, r5, #0 add r0, #0xb4 - bl FUN_02019178 + bl RemoveWindow add r0, r5, #0 add r0, #0x14 mov r1, #0 @@ -9129,7 +9129,7 @@ _021EB37A: bl MOD75_021EAAE8 add r0, r5, #0 add r0, #0x14 - bl FUN_02019220 + bl ScheduleWindowCopyToVram mov r1, #0 add r0, r5, #0 add r2, r1, #0 @@ -9181,7 +9181,7 @@ MOD75_021EB3D8: ; 0x021EB3D8 bl AddTextPrinterParameterized2 add r5, #0x14 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 bl String_dtor add r0, r6, #0 @@ -9259,7 +9259,7 @@ MOD75_021EB454: ; 0x021EB454 bl AddTextPrinterParameterized add r5, #0x34 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 bl String_dtor add r0, r6, #0 @@ -9320,7 +9320,7 @@ MOD75_021EB504: ; 0x021EB504 mov r3, #0x10 bl AddTextPrinterParameterized add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r6, #0 bl String_dtor add sp, #0xc @@ -9342,13 +9342,13 @@ MOD75_021EB580: ; 0x021EB580 bl FUN_0200CCF8 add r0, r4, #0 add r0, #0x34 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r4, #0 add r0, #0x94 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r4, #0x14 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r4, pc} thumb_func_end MOD75_021EB580 @@ -9441,7 +9441,7 @@ MOD75_021EB660: ; 0x021EB660 sub sp, #0xc add r4, r0, #0 mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl FUN_02002B7C add r0, r4, #0 @@ -9491,7 +9491,7 @@ _021EB6C2: pop {r3, pc} _021EB6C8: ldr r0, _021EB6DC ; =0x0000060D - bl FUN_020054C8 + bl PlaySE b _021EB6D8 _021EB6D0: ldr r0, _021EB6DC ; =0x0000060D @@ -9632,7 +9632,7 @@ _021EB722: sub r3, r5, r3 bl AddTextPrinterParameterized add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r6, #0 bl String_dtor add sp, #0xc @@ -9737,7 +9737,7 @@ _021EB866: sub r3, r5, r3 bl AddTextPrinterParameterized add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r6, #0 bl String_dtor add sp, #0xc @@ -9831,7 +9831,7 @@ MOD75_021EB8E8: ; 0x021EB8E8 sub r3, r5, r3 bl AddTextPrinterParameterized add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index fc6dc5bd..ae83c7a7 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -11,7 +11,7 @@ MOD76_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x43 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap mov r1, #0x62 add r0, r5, #0 lsl r1, r1, #2 @@ -50,7 +50,7 @@ MOD76_021D74E0: ; 0x021D74E0 str r1, [r4, r0] add r0, r4, #0 add r0, #0xc8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r4, #0 bl MOD76_021D8CD4 ldr r0, _021D7564 ; =MOD76_021D76E8 @@ -166,7 +166,7 @@ MOD76_021D761C: ; 0x021D761C add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x43 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, pc} thumb_func_end MOD76_021D761C @@ -192,7 +192,7 @@ MOD76_021D7638: ; 0x021D7638 and r0, r1 str r0, [r2] mov r0, #0x43 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] mov r0, #0 mov r1, #0x43 @@ -247,7 +247,7 @@ MOD76_021D76B8: ; 0x021D76B8 MOD76_021D76E8: ; 0x021D76E8 push {r3, lr} ldr r0, [r0, #4] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _021D7708 ; =0x027E0000 @@ -295,7 +295,7 @@ MOD76_021D7730: ; 0x021D7730 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D77D8 ; =0x021D8E88 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -310,10 +310,10 @@ MOD76_021D7730: ; 0x021D7730 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D77DC ; =0x021D8EC0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -328,10 +328,10 @@ MOD76_021D7730: ; 0x021D7730 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D77E0 ; =0x021D8EA4 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -346,15 +346,15 @@ MOD76_021D7730: ; 0x021D7730 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x43 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x64 pop {r4, r5, pc} nop @@ -373,13 +373,13 @@ MOD76_021D77E4: ; 0x021D77E4 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer mov r0, #0x43 add r1, r4, #0 bl FreeToHeapExplicit @@ -464,7 +464,7 @@ _021D78A8: ldr r0, [r7, #4] add r1, r5, #0 add r2, r4, #0 - bl FUN_02019150 + bl AddWindow add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -498,7 +498,7 @@ MOD76_021D78E8: ; 0x021D78E8 add r5, #8 _021D78F0: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xf @@ -580,7 +580,7 @@ MOD76_021D7974: ; 0x021D7974 tst r1, r0 beq _021D799C ldr r0, _021D7A8C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r2, [r5] mov r0, #1 ldrb r1, [r2, #0x14] @@ -640,7 +640,7 @@ _021D79EE: b _021D7A38 _021D7A04: ldr r0, _021D7A8C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r1, [r5] add r0, r5, #0 ldrh r1, [r1, #0x10] @@ -663,7 +663,7 @@ _021D7A04: pop {r3, r4, r5, pc} _021D7A38: ldr r0, _021D7A8C ; =0x000005DD - bl FUN_020054C8 + bl PlaySE ldr r1, [r5] add r0, r5, #0 ldrh r1, [r1, #0x10] @@ -901,19 +901,19 @@ MOD76_021D7BE0: ; 0x021D7BE0 mov r2, #0 mov r1, #2 add r3, r2, #0 - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r5, #0 add r0, #0x18 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x68 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0xb8 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _021D7CC4 ; =0x0000FFFF cmp r4, r0 beq _021D7C2E @@ -932,37 +932,37 @@ _021D7C3A: add r3, r1, #0 mov r2, #0 add r3, #0xfe - bl FUN_0201AEE4 + bl ScheduleSetBgPosText add r0, r5, #0 add r0, #8 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x28 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x38 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x48 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x58 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0xa8 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x78 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x88 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x98 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x18 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r0, _021D7CC4 ; =0x0000FFFF cmp r4, r0 beq _021D7CA6 @@ -1346,7 +1346,7 @@ _021D7F50: str r0, [r5, r1] add r5, #0xd8 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1385,7 +1385,7 @@ MOD76_021D7FD0: ; 0x021D7FD0 cmp r6, #1 beq _021D7FE8 ldr r0, _021D8004 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE _021D7FE8: ldr r0, [r4] ldrb r0, [r0, #0x14] @@ -1549,43 +1549,43 @@ _021D80BE: bl FUN_0200C644 add r0, r5, #0 add r0, #0x28 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r0, #0x38 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r0, #0x48 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r0, #0x58 - bl FUN_02019220 + bl ScheduleWindowCopyToVram b _021D817E _021D815E: add r0, r5, #0 add r0, #0x28 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x38 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x48 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer add r0, r5, #0 add r0, #0x58 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer _021D817E: add r0, r5, #0 add r0, #0xa8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r0, #0x78 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r0, r5, #0 add r0, #0x88 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add r5, #0x98 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #4 pop {r3, r4, r5, r6, pc} nop @@ -1643,7 +1643,7 @@ MOD76_021D81AC: ; 0x021D81AC bl MOD76_021D8300 add r0, r5, #0 add r0, #0x68 - bl FUN_02019220 + bl ScheduleWindowCopyToVram b _021D8232 _021D8222: add r0, r5, #0 @@ -1651,11 +1651,11 @@ _021D8222: bl MOD76_021D8300 add r0, r5, #0 add r0, #0x68 - bl FUN_0201958C + bl ClearWindowTilemapAndScheduleTransfer _021D8232: add r5, #0xb8 add r0, r5, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -1683,7 +1683,7 @@ MOD76_021D8244: ; 0x021D8244 mov r1, #2 add r2, r4, #0 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #5 str r0, [sp] mov r0, #1 @@ -1699,7 +1699,7 @@ MOD76_021D8244: ; 0x021D8244 mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #6 str r0, [sp] mov r0, #1 @@ -1715,7 +1715,7 @@ MOD76_021D8244: ; 0x021D8244 mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #6 str r0, [sp] mov r0, #1 @@ -1730,7 +1730,7 @@ MOD76_021D8244: ; 0x021D8244 mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 - bl FUN_02018540 + bl FillBgTilemapRect add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -1755,7 +1755,7 @@ _021D82E0: blo _021D82E0 ldr r0, [r5, #4] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r4, r5, r6, pc} thumb_func_end MOD76_021D82D8 @@ -1794,7 +1794,7 @@ _021D832E: _021D8344: ldr r0, [r5, #4] mov r1, #2 - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer pop {r3, r4, r5, r6, r7, pc} nop _021D8350: .word 0x0000FFFF @@ -2048,7 +2048,7 @@ MOD76_021D853C: ; 0x021D853C add r1, r5, #0 bl MOD76_021D8354 mov r0, #1 - bl FUN_02002B60 + bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl FUN_02002B7C ldr r0, [r4] @@ -2101,7 +2101,7 @@ _021D85B8: pop {r3, pc} _021D85BE: ldr r0, _021D85DC ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE b _021D85D6 _021D85C6: ldr r0, _021D85E0 ; =0x00000483 @@ -2182,7 +2182,7 @@ MOD76_021D862C: ; 0x021D862C bl MOD76_021D7CC8 add r0, r4, #0 add r0, #0xc8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] @@ -2230,7 +2230,7 @@ MOD76_021D8688: ; 0x021D8688 bl MOD76_021D7CC8 add r0, r4, #0 add r0, #0xc8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 6affcb88..2d4f838a 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -28,7 +28,7 @@ MOD77_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x32 lsl r2, r2, #7 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D75DC ; =0x0000C32C add r0, r4, #0 mov r2, #0x32 @@ -76,7 +76,7 @@ _021D7540: lsr r0, r0, #0x18 bl FUN_0201B2EC ldr r0, [r5] - bl FUN_02016B94 + bl BgConfig_Alloc ldr r1, _021D75F4 ; =0x0000C010 str r0, [r5, r1] bl GX_BothDispOn @@ -100,7 +100,7 @@ _021D7540: bl GX_SwapDisplay mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r5, #0 bl MOD77_021D7C64 mov r0, #1 @@ -250,7 +250,7 @@ _021D76FA: add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #2 cmp r0, #4 bhi _021D7732 @@ -369,7 +369,7 @@ _021D77F0: add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE sub r0, r7, #2 cmp r6, r0 beq _021D780A @@ -446,7 +446,7 @@ _021D7886: add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE sub r0, r7, #2 cmp r6, r0 beq _021D78B6 @@ -646,7 +646,7 @@ _021D7A4E: add r0, r4, r0 bl FUN_0200CCF8 ldr r0, _021D7B98 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE mov r0, #0xd8 str r0, [sp] mov r0, #0x20 @@ -692,7 +692,7 @@ _021D7A94: cmp r0, #1 bne _021D7B66 ldr r0, _021D7B98 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021D7B66 _021D7AC0: ldr r0, _021D7B9C ; =0x00000403 @@ -730,7 +730,7 @@ _021D7AFA: mov r0, #0x10 str r0, [r5] ldr r0, _021D7B98 ; =0x000005DD - bl FUN_020054C8 + bl PlaySE b _021D7B66 _021D7B0E: bl MOD77_021D8CF8 @@ -831,7 +831,7 @@ MOD77_021D7BAC: ; 0x021D7BAC add r0, r6, #0 bl OverlayManager_FreeData add r0, r5, #0 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _021D7C20 ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] @@ -876,7 +876,7 @@ MOD77_021D7C44: ; 0x021D7C44 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -1338,17 +1338,17 @@ MOD77_021D7FAC: ; 0x021D7FAC ldr r0, [r5, r0] mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, _021D8208 ; =0x0000C010 mov r1, #6 ldr r0, [r5, r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D8210 ; =0x021D8F98 ldr r0, [r5, r0] mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1413,16 +1413,16 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #6 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r1, _021D821C ; =0x00004753 mov r0, #6 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, _021D8208 ; =0x0000C010 ldr r2, _021D8220 ; =0x021D8F40 ldr r0, [r5, r1] add r1, r1, #4 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x20 @@ -1446,17 +1446,17 @@ MOD77_021D7FAC: ; 0x021D7FAC ldr r0, [r5, r0] ldr r2, _021D820C ; =0x021D8F7C mov r1, #2 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, _021D8208 ; =0x0000C010 mov r1, #2 ldr r0, [r5, r0] - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D8210 ; =0x021D8F98 ldr r0, [r5, r0] mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1508,10 +1508,10 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #2 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor ldr r1, [r5] mov r0, #0x10 bl String_ctor @@ -1533,29 +1533,29 @@ MOD77_021D7FAC: ; 0x021D7FAC add r1, sp, #0x14 add r1, #2 add r2, r0, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x14 add r2, r0, #0 mov r3, #0x84 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x10 add r1, #2 add r2, r0, #0 mov r3, #0x86 - bl FUN_02017FB4 + bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x10 add r2, r0, #0 mov r3, #0x9e - bl FUN_02017FB4 + bl BG_LoadPlttData ldr r1, _021D8208 ; =0x0000C010 ldr r2, _021D823C ; =0x021D8F30 ldr r0, [r5, r1] add r1, #0x24 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x20 @@ -1618,26 +1618,26 @@ MOD77_021D8248: ; 0x021D8248 add r4, r0, #0 ldr r0, _021D8288 ; =0x0000C034 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _021D828C ; =0x0000C014 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _021D8290 ; =0x0000C010 mov r1, #2 ldr r0, [r4, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #6 ldr r0, [r4, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #3 ldr r0, [r4, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #7 ldr r0, [r4, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} nop _021D8288: .word 0x0000C034 @@ -1748,7 +1748,7 @@ MOD77_021D835C: ; 0x021D835C cmp r2, #0 bne _021D8368 ldr r0, _021D836C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _021D8368: pop {r3, pc} nop @@ -1764,7 +1764,7 @@ MOD77_021D8370: ; 0x021D8370 add r6, r3, #0 ldr r0, [r5, r0] str r1, [sp] - bl FUN_02019150 + bl AddWindow ldrh r0, [r6, #0x10] ldr r1, [r5] bl ListMenuItems_ctor @@ -1844,7 +1844,7 @@ MOD77_021D8418: ; 0x021D8418 str r3, [sp, #4] ldr r7, [sp, #0x44] ldr r6, [sp, #0x48] - bl FUN_02019150 + bl AddWindow ldr r2, [sp, #0x40] ldr r3, [r5] mov r0, #0 @@ -1932,7 +1932,7 @@ MOD77_021D84D8: ; 0x021D84D8 bl FUN_0200CCF8 ldr r0, _021D8504 ; =0x0000C024 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _021D8508 ; =0x0000C054 mov r1, #0 ldr r0, [r4, r0] @@ -1968,7 +1968,7 @@ MOD77_021D8510: ; 0x021D8510 add r1, #0x34 ldr r2, _021D85C8 ; =0x021D8F28 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x30 @@ -2057,7 +2057,7 @@ MOD77_021D85E0: ; 0x021D85E0 add r1, #0x34 ldr r2, _021D868C ; =0x021D8F28 add r1, r5, r1 - bl FUN_02019150 + bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x30 @@ -2130,7 +2130,7 @@ MOD77_021D8698: ; 0x021D8698 bl FUN_0200CCF8 ldr r0, _021D86B0 ; =0x0000C044 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 _021D86B0: .word 0x0000C044 diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s index 7fc7439a..4b4209f2 100644 --- a/arm9/modules/78/asm/module_78.s +++ b/arm9/modules/78/asm/module_78.s @@ -12,7 +12,7 @@ MOD78_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x48 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #0xa0 mov r2, #0x48 @@ -148,7 +148,7 @@ _021D75DE: b _021D7662 _021D7614: ldr r0, _021D76B4 ; =0x000006DC - bl FUN_020054C8 + bl PlaySE ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -259,7 +259,7 @@ _021D76C8: bl OverlayManager_FreeData bl FUN_0201B398 mov r0, #0x48 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD78_021D76B8 @@ -338,7 +338,7 @@ MOD78_021D778C: ; 0x021D778C add r0, #0x70 mov r1, #0x48 mov r2, #4 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator add r1, r5, #0 add r1, #0x9c ldrb r2, [r1] diff --git a/arm9/modules/79/asm/module_79_arm.s b/arm9/modules/79/asm/module_79_arm.s index 24356937..6564b7da 100644 --- a/arm9/modules/79/asm/module_79_arm.s +++ b/arm9/modules/79/asm/module_79_arm.s @@ -3438,7 +3438,7 @@ _022152DC: cmp r0, #0 beq _02215448 add r4, r0, #9 - ldr r1, _0221562C ; =UNK_0210430C + ldr r1, _0221562C ; =__msl_digit mov r2, #0 b _02215330 _0221532C: @@ -3460,7 +3460,7 @@ _02215358: cmp r0, #0 bne _0221532C mov r3, r4 - ldr r1, _0221562C ; =UNK_0210430C + ldr r1, _0221562C ; =__msl_digit mov r2, #0 b _02215374 _02215370: @@ -3655,7 +3655,7 @@ _0221561C: .word MOD79_02216F64 _02215620: .word MOD79_02216F6C _02215624: .word 0x51EB851F _02215628: .word MOD79_02216F70 -_0221562C: .word UNK_0210430C +_0221562C: .word __msl_digit _02215630: .word MOD79_02216F7C _02215634: .word MOD79_02216F8C _02215638: .word MOD79_0221673C @@ -4101,7 +4101,7 @@ _02215C1C: bl sscanf mov r3, #0 mov ip, #1 - ldr r2, _02215D24 ; =UNK_0210430C + ldr r2, _02215D24 ; =__msl_digit b _02215C5C _02215C50: ldr r1, [sp, #0x14] @@ -4163,7 +4163,7 @@ _02215D14: .word 0x0000024E _02215D18: .word MOD79_02217000 _02215D1C: .word 0x0000024F _02215D20: .word MOD79_02217020 -_02215D24: .word UNK_0210430C +_02215D24: .word __msl_digit arm_func_end MOD79_02215BD8 arm_func_start MOD79_02215D28 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 83e02d71..a1fe2ee3 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -1391,7 +1391,7 @@ _0222DFE4: mov r0, #3 mov r1, #0x3e lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222E108 ; =0x00001044 add r0, r6, #0 mov r2, #0x3e @@ -1401,7 +1401,7 @@ _0222DFE4: add r4, r0, #0 bl memset mov r0, #0x3e - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] ldr r0, _0222E10C ; =0x02237E24 add r2, sp, #0 @@ -1413,7 +1413,7 @@ _0222DFE4: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, r7, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #0xb mov r1, #0x40 mov r2, #0x3e @@ -1453,7 +1453,7 @@ _0222DFE4: str r0, [r4, r1] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0 add r1, r6, #0 bl MOD80_0222E338 @@ -1689,7 +1689,7 @@ MOD80_0222E25C: ; 0x0222E25C add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x3e - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -2631,7 +2631,7 @@ MOD80_0222EA04: ; 0x0222EA04 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0222EB00 ; =0x02236F04 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -2646,10 +2646,10 @@ MOD80_0222EA04: ; 0x0222EA04 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222EB04 ; =0x02236EE8 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -2664,7 +2664,7 @@ MOD80_0222EA04: ; 0x0222EA04 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0222EB08 ; =0x02236F20 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -2679,7 +2679,7 @@ MOD80_0222EA04: ; 0x0222EA04 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0222EB0C ; =0x02236F3C add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -2694,10 +2694,10 @@ MOD80_0222EA04: ; 0x0222EA04 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222EB10 ; =0x02236ECC add r3, sp, #0 ldmia r5!, {r0, r1} @@ -2712,17 +2712,17 @@ MOD80_0222EA04: ; 0x0222EA04 add r0, r4, #0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -2745,19 +2745,19 @@ MOD80_0222EB14: ; 0x0222EB14 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_0222EB14 @@ -2947,7 +2947,7 @@ MOD80_0222EC98: ; 0x0222EC98 ldr r0, [r7, #4] add r1, r7, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _0222ED88 ; =0x00000EB8 mov r1, #0 add r0, r7, r0 @@ -2989,7 +2989,7 @@ _0222ECF2: add r1, r5, #0 mov r2, #1 mov r3, #9 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -3015,7 +3015,7 @@ _0222ECF2: ldr r0, [r7, #4] add r1, r7, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _0222ED94 ; =0x00000E98 mov r1, #0xf add r0, r7, r0 @@ -3035,7 +3035,7 @@ _0222ECF2: add r1, r7, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _0222ED98 ; =0x00000FB8 mov r1, #0xf add r0, r7, r0 @@ -3056,23 +3056,23 @@ MOD80_0222ED9C: ; 0x0222ED9C add r6, r0, #0 ldr r0, _0222EDD0 ; =0x00000FB8 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0222EDD4 ; =0x00000E98 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0222EDD8 ; =0x00000ED8 mov r4, #0 add r5, r6, r0 _0222EDB6: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #3 blt _0222EDB6 ldr r0, _0222EDDC ; =0x00000EB8 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, r5, r6, pc} nop _0222EDD0: .word 0x00000FB8 @@ -3290,7 +3290,7 @@ _0222EF50: mov r0, #9 str r0, [r4, #0x2c] ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F07C _0222EF6A: ldrh r1, [r4, #0x3a] @@ -3306,7 +3306,7 @@ _0222EF6A: ldr r0, _0222F094 ; =0x00000708 strh r0, [r4, #0x3a] ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F07C _0222EF8C: ldr r0, _0222F08C ; =0x00000D5C @@ -3325,7 +3325,7 @@ _0222EF8C: mov r2, #5 bl MOD80_0222E6DC ldr r0, _0222F098 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE ldr r0, _0222F09C ; =0x00000FDC mov r1, #0 str r1, [r4, r0] @@ -3337,7 +3337,7 @@ _0222EFBE: mov r0, #9 str r0, [r4, #0x2c] ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F07C _0222EFD2: bl MOD80_0222E7BC @@ -3357,7 +3357,7 @@ _0222EFD2: ldr r0, [r4, r0] bl FUN_020200BC ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F07C _0222F002: mov r0, #0x40 @@ -3376,7 +3376,7 @@ _0222F002: add r0, #0xb4 strh r1, [r0] ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0xb4 ldrh r0, [r0] @@ -3406,7 +3406,7 @@ _0222F040: add r0, #0xb4 strh r1, [r0] ldr r0, _0222F090 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0xb4 ldrh r0, [r0] @@ -3550,7 +3550,7 @@ MOD80_0222F14C: ; 0x0222F14C bl FUN_0200D0E0 ldr r0, _0222F1B0 ; =0x00000FB8 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _0222F1B4 ; =0x00000D5C mov r1, #1 ldr r0, [r4, r0] @@ -3564,7 +3564,7 @@ _0222F18A: bl FUN_0200D0E0 ldr r0, _0222F1B0 ; =0x00000FB8 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r1, #0 add r0, r4, #0 add r2, r1, #0 @@ -3959,10 +3959,10 @@ MOD80_0222F494: ; 0x0222F494 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222F56C ; =0x02236FAC add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -3977,7 +3977,7 @@ MOD80_0222F494: ; 0x0222F494 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0222F570 ; =0x02236F90 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -3992,7 +3992,7 @@ MOD80_0222F494: ; 0x0222F494 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _0222F574 ; =0x02236F74 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -4007,10 +4007,10 @@ MOD80_0222F494: ; 0x0222F494 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222F578 ; =0x02236F58 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -4025,17 +4025,17 @@ MOD80_0222F494: ; 0x0222F494 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x8c pop {r4, r5, pc} nop @@ -4051,19 +4051,19 @@ MOD80_0222F57C: ; 0x0222F57C push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_0222F57C @@ -4245,7 +4245,7 @@ MOD80_0222F6EC: ; 0x0222F6EC ldr r0, [r0, #4] add r1, r1, r2 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _0222F7A8 ; =0x00000E98 ldr r0, [sp, #0x14] add r0, r0, r1 @@ -4268,7 +4268,7 @@ MOD80_0222F6EC: ; 0x0222F6EC add r1, r1, r2 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _0222F7B0 ; =0x00000F08 ldr r0, [sp, #0x14] ldr r4, _0222F7B4 ; =0x02236FE4 @@ -4300,7 +4300,7 @@ _0222F754: ldr r0, [r0, #4] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -4328,16 +4328,16 @@ MOD80_0222F7B8: ; 0x0222F7B8 add r5, r0, #0 ldr r0, _0222F7E4 ; =0x00000E98 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0222F7E8 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0222F7EC ; =0x00000F08 mov r4, #0 add r5, r5, r0 _0222F7D2: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xa @@ -4441,7 +4441,7 @@ MOD80_0222F86C: ; 0x0222F86C mov r2, #7 bl MOD80_0222E6DC ldr r0, _0222F8C8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F8B8 _0222F8A2: mov r1, #2 @@ -4452,7 +4452,7 @@ _0222F8A2: mov r2, #0 bl MOD80_0222E7A8 ldr r0, _0222F8C8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0222F8B8: mov r0, #3 add sp, #8 @@ -5286,10 +5286,10 @@ MOD80_0222FF6C: ; 0x0222FF6C str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02230024 ; =0x022370BC add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -5304,7 +5304,7 @@ MOD80_0222FF6C: ; 0x0222FF6C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02230028 ; =0x022370A0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -5319,10 +5319,10 @@ MOD80_0222FF6C: ; 0x0222FF6C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223002C ; =0x02237084 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -5337,17 +5337,17 @@ MOD80_0222FF6C: ; 0x0222FF6C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x70 pop {r3, r4, r5, pc} nop @@ -5362,16 +5362,16 @@ MOD80_02230030: ; 0x02230030 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_02230030 @@ -5501,7 +5501,7 @@ MOD80_02230128: ; 0x02230128 ldr r0, [r0, #4] add r1, r1, r2 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _022301E4 ; =0x00000E98 ldr r0, [sp, #0x14] add r0, r0, r1 @@ -5524,7 +5524,7 @@ MOD80_02230128: ; 0x02230128 add r1, r1, r2 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _022301EC ; =0x00000F08 ldr r0, [sp, #0x14] ldr r4, _022301F0 ; =0x022370F4 @@ -5556,7 +5556,7 @@ _02230190: ldr r0, [r0, #4] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -5584,16 +5584,16 @@ MOD80_022301F4: ; 0x022301F4 add r5, r0, #0 ldr r0, _02230220 ; =0x00000E98 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02230224 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02230228 ; =0x00000F08 mov r4, #0 add r5, r5, r0 _0223020E: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #0xa @@ -5724,7 +5724,7 @@ MOD80_022302F8: ; 0x022302F8 mov r2, #4 bl MOD80_0222E6DC ldr r0, _02230390 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230384 _02230326: mov r3, #2 @@ -5736,7 +5736,7 @@ _02230326: str r3, [r4, #0x2c] bl MOD80_0222E7A8 ldr r0, _02230390 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230384 _02230340: mov r0, #0x10 @@ -5753,7 +5753,7 @@ _02230340: mov r0, #6 str r0, [r4, #0x2c] ldr r0, _02230390 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230384 _02230362: mov r0, #0x20 @@ -5771,7 +5771,7 @@ _02230362: mov r0, #6 str r0, [r4, #0x2c] ldr r0, _02230390 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02230384: mov r0, #3 pop {r3, r4, r5, pc} @@ -6279,10 +6279,10 @@ MOD80_02230760: ; 0x02230760 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223080C ; =0x022371EC add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -6297,10 +6297,10 @@ MOD80_02230760: ; 0x02230760 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02230810 ; =0x022371B4 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -6315,25 +6315,25 @@ MOD80_02230760: ; 0x02230760 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x54 pop {r4, r5, pc} nop @@ -6347,19 +6347,19 @@ MOD80_02230814: ; 0x02230814 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_02230814 @@ -6511,7 +6511,7 @@ MOD80_02230944: ; 0x02230944 ldr r0, [r0, #4] add r1, r1, r2 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _02230A6C ; =0x00000EB8 ldr r0, [sp, #0x14] add r0, r0, r1 @@ -6546,7 +6546,7 @@ MOD80_02230944: ; 0x02230944 ldr r0, [r0, #4] add r1, r1, r2 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, _02230A74 ; =0x00000E98 ldr r0, [sp, #0x14] add r0, r0, r1 @@ -6579,7 +6579,7 @@ _022309D2: lsl r3, r3, #0x18 ldr r0, [r0, #4] lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -6620,7 +6620,7 @@ _02230A20: lsl r3, r3, #0x18 ldr r0, [r0, #4] lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [sp, #0x18] mov r1, #0 add r0, r0, r7 @@ -6648,16 +6648,16 @@ MOD80_02230A88: ; 0x02230A88 add r5, r0, #0 ldr r0, _02230AB4 ; =0x00000E98 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02230AB8 ; =0x00000EB8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02230ABC ; =0x00000F08 mov r4, #0 add r5, r5, r0 _02230AA2: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #8 @@ -6803,7 +6803,7 @@ _02230BC8: mov r0, #3 str r0, [r4, #0x2c] ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230CAE _02230BD4: ldr r0, _02230CBC ; =0x00000B22 @@ -6824,20 +6824,20 @@ _02230BD4: cmp r0, #0 beq _02230C04 ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #3 pop {r3, r4, r5, pc} _02230C04: mov r0, #8 str r0, [r4, #0x2c] ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230CAE _02230C10: mov r0, #0xb str r0, [r4, #0x2c] ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230CAE _02230C1C: mov r0, #0xe @@ -6856,7 +6856,7 @@ _02230C22: mov r2, #0x16 bl MOD80_0222E6DC ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230CAE _02230C44: mov r0, #2 @@ -6873,7 +6873,7 @@ _02230C44: mov r2, #0x16 bl MOD80_0222E6DC ldr r0, _02230CB8 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02230CAE _02230C6A: add r0, r4, #0 @@ -6905,7 +6905,7 @@ _02230C6A: add r4, #0xc4 ldr r0, _02230CB8 ; =0x000005DC str r5, [r4] - bl FUN_020054C8 + bl PlaySE _02230CAE: mov r0, #3 pop {r3, r4, r5, pc} @@ -6937,7 +6937,7 @@ MOD80_02230CC8: ; 0x02230CC8 mov r2, #1 bl MOD80_0222E6DC ldr r0, _02230D5C ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _02230D4C _02230CF6: add r0, r4, r1 @@ -6958,11 +6958,11 @@ _02230CF6: mov r2, #1 bl MOD80_0222E6DC ldr r0, _02230D5C ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _02230D4C _02230D26: ldr r0, _02230D60 ; =0x000005FF - bl FUN_020054C8 + bl PlaySE ldr r0, _02230D58 ; =0x00000F0F mov r1, #0xd str r0, [sp] @@ -7172,7 +7172,7 @@ MOD80_02230E9C: ; 0x02230E9C mov r2, #1 bl MOD80_0222E6DC ldr r0, _02230EF4 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE b _02230EE8 _02230ECC: str r1, [sp] @@ -7249,7 +7249,7 @@ MOD80_02230F3C: ; 0x02230F3C mov r2, #1 bl MOD80_0222E6DC ldr r0, _02230F74 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE mov r0, #3 add sp, #4 pop {r3, r4, pc} @@ -7278,7 +7278,7 @@ MOD80_02230F78: ; 0x02230F78 mov r1, #0 str r1, [r4, r0] ldr r0, _02230FB0 ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE mov r0, #3 add sp, #4 pop {r3, r4, pc} @@ -7308,7 +7308,7 @@ MOD80_02230FB4: ; 0x02230FB4 add r2, r1, #0 bl MOD80_0222E7A8 ldr r0, _02230FEC ; =0x000005F3 - bl FUN_020054C8 + bl PlaySE mov r0, #3 add sp, #4 pop {r3, r4, pc} @@ -7356,14 +7356,14 @@ MOD80_02231008: ; 0x02231008 sub r0, r0, #1 str r0, [r1, #0x28] ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _022310D0 _02231036: ldr r0, [r1, #0x2c] cmp r0, #0 beq _02231042 ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02231042: mov r0, #0xfe lsl r0, r0, #4 @@ -7387,14 +7387,14 @@ _0223104E: add r0, r0, #1 str r0, [r1, #0x28] ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _022310D0 _02231072: ldr r0, [r1, #0x2c] cmp r0, #1 beq _0223107E ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0223107E: mov r0, #0xfe lsl r0, r0, #4 @@ -7413,7 +7413,7 @@ _0223108A: cmp r0, #1 beq _022310A2 ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _022310A2: mov r0, #0xfe lsl r0, r0, #4 @@ -7432,7 +7432,7 @@ _022310AE: cmp r0, #0 beq _022310C6 ldr r0, _02231104 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _022310C6: mov r0, #0xfe lsl r0, r0, #4 @@ -7520,7 +7520,7 @@ MOD80_0223113C: ; 0x0223113C add r1, r4, r1 mov r2, #0 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _022311BC ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -7539,7 +7539,7 @@ MOD80_0223113C: ; 0x0223113C add r1, r4, r1 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _022311C4 ; =0x00000EE8 mov r1, #0 add r0, r4, r0 @@ -7631,7 +7631,7 @@ _02231240: ldr r0, [r4, r0] bl ListMenuItems_dtor ldr r0, _022312BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #6 str r0, [r4, #0x2c] b _022312AE @@ -7657,12 +7657,12 @@ _02231266: bl FUN_0200D0E0 ldr r0, _022312C0 ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _022312C8 ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _022312BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r4, #0x2c] _022312AE: @@ -7756,7 +7756,7 @@ _02231342: add r0, r4, r0 bl FUN_0200CCF8 ldr r0, _02231470 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #4 str r0, [r4, #0x2c] mov r0, #0xfe @@ -7794,16 +7794,16 @@ _0223138C: bl FUN_0200CCF8 ldr r0, _02231474 ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223146C ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02231478 ; =0x00000B22 strh r5, [r4, r0] mov r0, #0 str r0, [r4, #0x2c] ldr r0, _02231470 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0223147C ; =0x00000F18 mov r1, #0 add r0, r4, r0 @@ -7909,7 +7909,7 @@ MOD80_02231490: ; 0x02231490 add r1, r4, r1 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _022314E8 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -7994,9 +7994,9 @@ _0223154A: bl FUN_0200D0E0 ldr r0, _022315F8 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02231600 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r5, #0x2c] b _022315EA @@ -8015,9 +8015,9 @@ _0223158E: bl FUN_0200CCF8 ldr r0, _022315F8 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02231600 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02231604 ; =0x00000B24 add r1, r4, #1 strb r1, [r5, r0] @@ -8085,7 +8085,7 @@ MOD80_02231614: ; 0x02231614 add r1, r4, r1 mov r2, #0 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _0223166C ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -8167,9 +8167,9 @@ _022316D0: bl FUN_0200D0E0 ldr r0, _02231774 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223177C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r5, #0x2c] b _02231766 @@ -8188,9 +8188,9 @@ _0223170C: bl FUN_0200CCF8 ldr r0, _02231774 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223177C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02231780 ; =0x00000B22 add r1, r4, #0 add r0, r5, r0 @@ -8642,7 +8642,7 @@ MOD80_02231AB0: ; 0x02231AB0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02231BB4 ; =0x02237288 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -8657,10 +8657,10 @@ MOD80_02231AB0: ; 0x02231AB0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02231BB8 ; =0x022372A4 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -8675,7 +8675,7 @@ MOD80_02231AB0: ; 0x02231AB0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02231BBC ; =0x0223726C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -8690,10 +8690,10 @@ MOD80_02231AB0: ; 0x02231AB0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02231BC0 ; =0x02237234 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -8708,10 +8708,10 @@ MOD80_02231AB0: ; 0x02231AB0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02231BC4 ; =0x02237250 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -8726,17 +8726,17 @@ MOD80_02231AB0: ; 0x02231AB0 add r0, r4, #0 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -8759,19 +8759,19 @@ MOD80_02231BC8: ; 0x02231BC8 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_02231BC8 @@ -9117,7 +9117,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, [r4, #4] add r1, r4, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02231FDC ; =0x00000EB8 mov r1, #0 add r0, r4, r0 @@ -9146,7 +9146,7 @@ MOD80_02231EA8: ; 0x02231EA8 add r1, r4, r1 mov r2, #0 mov r3, #5 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02231FE4 ; =0x00000EC8 mov r1, #0 add r0, r4, r0 @@ -9168,7 +9168,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, [r4, #4] add r1, r4, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02231FE8 ; =0x00000E98 mov r1, #0 add r0, r4, r0 @@ -9188,7 +9188,7 @@ MOD80_02231EA8: ; 0x02231EA8 add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02231FF0 ; =0x00000FB8 mov r1, #0 add r0, r4, r0 @@ -9208,7 +9208,7 @@ MOD80_02231EA8: ; 0x02231EA8 add r1, r4, r1 mov r2, #1 mov r3, #0x19 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02231FF8 ; =0x00000EE8 mov r1, #6 add r0, r4, r0 @@ -9237,7 +9237,7 @@ MOD80_02231EA8: ; 0x02231EA8 add r1, r4, r1 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized add sp, #0x14 pop {r3, r4, pc} .align 2, 0 @@ -9261,22 +9261,22 @@ MOD80_0223200C: ; 0x0223200C add r4, r0, #0 ldr r0, _02232044 ; =0x00000FB8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02232048 ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223204C ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02232050 ; =0x00000E98 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02232054 ; =0x00000EC8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02232058 ; =0x00000EB8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} nop _02232044: .word 0x00000FB8 @@ -9434,13 +9434,13 @@ _02232168: mov r0, #2 str r0, [r5, #0x2c] ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02232368 _0223218E: cmp r0, #0x1f beq _022321B6 ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r2, r5, #0 add r3, r5, #0 ldr r1, [r5] @@ -9542,7 +9542,7 @@ _02232250: mov r0, #2 str r0, [r5, #0x2c] ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02232368 _02232274: mov r0, #1 @@ -9560,7 +9560,7 @@ _02232274: mov r0, #2 str r0, [r5, #0x2c] ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02232368 _0223229A: cmp r3, #0x1f @@ -9636,7 +9636,7 @@ _022322BC: mov r2, #9 bl MOD80_0222E6DC ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02232368 _0223233C: ldr r0, _02232378 ; =0x00000F0F @@ -9654,11 +9654,11 @@ _0223233C: b _02232368 _0223235A: ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02232368 _02232362: ldr r0, _02232374 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02232368: mov r0, #3 add sp, #8 @@ -9732,7 +9732,7 @@ _022323CE: add r0, r5, #0 bl MOD80_02232D7C ldr r0, _02232450 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _022323FE _022323F6: add r0, r5, #0 @@ -9743,7 +9743,7 @@ _022323FE: cmp r4, #0 beq _02232420 ldr r0, _02232450 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r0, #0xba ldrh r0, [r0] @@ -11706,10 +11706,10 @@ MOD80_02233358: ; 0x02233358 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02233430 ; =0x0223743C add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -11724,7 +11724,7 @@ MOD80_02233358: ; 0x02233358 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02233434 ; =0x02237458 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -11739,7 +11739,7 @@ MOD80_02233358: ; 0x02233358 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r5, _02233438 ; =0x02237404 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -11754,10 +11754,10 @@ MOD80_02233358: ; 0x02233358 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223343C ; =0x022373E8 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -11772,17 +11772,17 @@ MOD80_02233358: ; 0x02233358 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x8c pop {r4, r5, pc} nop @@ -11798,19 +11798,19 @@ MOD80_02233440: ; 0x02233440 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_02233440 @@ -11904,7 +11904,7 @@ MOD80_02233500: ; 0x02233500 ldr r0, [r7, #4] add r1, r7, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _022335CC ; =0x00000EB8 mov r1, #0 add r0, r7, r0 @@ -11934,7 +11934,7 @@ MOD80_02233500: ; 0x02233500 ldr r0, [r7, #4] add r1, r7, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _022335D4 ; =0x00000E98 mov r1, #0 add r0, r7, r0 @@ -11965,7 +11965,7 @@ _0223357E: ldr r0, [r7, #4] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 mov r1, #0 bl FillWindowPixelBuffer @@ -11998,17 +11998,17 @@ MOD80_022335E0: ; 0x022335E0 add r5, r6, r0 _022335EA: add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow add r4, r4, #1 add r5, #0x10 cmp r4, #6 blt _022335EA ldr r0, _02233610 ; =0x00000E98 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233614 ; =0x00000EB8 add r0, r6, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, r5, r6, pc} nop _0223360C: .word 0x00000F08 @@ -12154,7 +12154,7 @@ _02233714: add r1, r4, r1 mov r2, #0 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02233778 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -12173,7 +12173,7 @@ _02233714: add r1, r4, r1 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02233780 ; =0x00000EE8 mov r1, #0 add r0, r4, r0 @@ -12267,7 +12267,7 @@ _022337FA: mov r0, #5 str r0, [r4, #0x2c] ldr r0, _02233880 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02233872 _02233820: mov r0, #0xfe @@ -12291,10 +12291,10 @@ _02233820: bl FUN_0200D0E0 ldr r0, _02233884 ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223388C ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r1, #5 add r0, r4, #0 add r2, r1, #0 @@ -12302,7 +12302,7 @@ _02233820: mov r0, #2 str r0, [r4, #0x2c] ldr r0, _02233880 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02233872: mov r0, #3 pop {r4, pc} @@ -12425,14 +12425,14 @@ _02233932: bl FUN_0200CCF8 ldr r0, _02233A58 ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233A54 ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0 str r0, [r4, #0x2c] ldr r0, _02233A5C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xfe lsl r0, r0, #4 ldr r3, [r4, r0] @@ -12468,14 +12468,14 @@ _0223398C: bl FUN_0200CCF8 ldr r0, _02233A58 ; =0x00000ED8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233A54 ; =0x00000EE8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233A60 ; =0x00000B1C strh r5, [r4, r0] ldr r0, _02233A5C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0x12 ; BASE_GENDER_RATIO bl GetMonBaseStat @@ -12573,7 +12573,7 @@ MOD80_02233A6C: ; 0x02233A6C add r1, r4, r1 mov r2, #0 mov r3, #0x15 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02233AC4 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -12658,9 +12658,9 @@ _02233B26: bl FUN_0200D0E0 ldr r0, _02233BD4 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233BDC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r5, #0x2c] b _02233BC6 @@ -12679,9 +12679,9 @@ _02233B6A: bl FUN_0200CCF8 ldr r0, _02233BD4 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233BDC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r3, _02233BE0 ; =0x00000F08 ldr r2, _02233BE4 ; =0x00000B1E add r0, r4, #1 @@ -12748,7 +12748,7 @@ MOD80_02233BE8: ; 0x02233BE8 add r1, r4, r1 mov r2, #0 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02233C40 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -12830,9 +12830,9 @@ _02233CA4: bl FUN_0200D0E0 ldr r0, _02233D74 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233D7C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r1, #0xfe lsl r1, r1, #4 ldr r1, [r5, r1] @@ -12851,7 +12851,7 @@ _02233CF4: b _02233D66 _02233CFA: ldr r0, _02233D7C ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _02233D6C ; =0x00000FD4 mov r1, #0 ldr r0, [r5, r0] @@ -12866,7 +12866,7 @@ _02233CFA: bl FUN_0200CCF8 ldr r0, _02233D74 ; =0x00000ED8 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02233D80 ; =0x00000B1C add r1, r4, #0 add r0, r5, r0 @@ -14103,7 +14103,7 @@ MOD80_02234698: ; 0x02234698 cmp r1, r0 beq _022346C4 ldr r0, _022346D4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _022346C4: add r0, sp, #0 ldrh r0, [r0] @@ -14222,7 +14222,7 @@ MOD80_02234780: ; 0x02234780 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _0223488C ; =0x02237544 add r3, sp, #0x70 ldmia r5!, {r0, r1} @@ -14237,10 +14237,10 @@ MOD80_02234780: ; 0x02234780 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02234890 ; =0x02237528 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -14255,10 +14255,10 @@ MOD80_02234780: ; 0x02234780 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02234894 ; =0x0223757C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -14273,10 +14273,10 @@ MOD80_02234780: ; 0x02234780 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02234898 ; =0x02237560 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -14291,10 +14291,10 @@ MOD80_02234780: ; 0x02234780 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0223489C ; =0x0223750C add r3, sp, #0 ldmia r5!, {r0, r1} @@ -14309,17 +14309,17 @@ MOD80_02234780: ; 0x02234780 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -14342,19 +14342,19 @@ MOD80_022348A0: ; 0x022348A0 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_022348A0 @@ -14405,10 +14405,10 @@ MOD80_022348CC: ; 0x022348CC bne _02234944 mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #0 bl GX_EngineBToggleLayers @@ -14445,7 +14445,7 @@ MOD80_02234958: ; 0x02234958 add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02234990 ; =0x00000E98 mov r1, #0 add r0, r4, r0 @@ -14464,7 +14464,7 @@ MOD80_02234994: ; 0x02234994 bx r3 .align 2, 0 _0223499C: .word 0x00000E98 -_022349A0: .word FUN_02019178 +_022349A0: .word RemoveWindow thumb_func_end MOD80_02234994 thumb_func_start MOD80_022349A4 @@ -16555,7 +16555,7 @@ MOD80_02235900: ; 0x02235900 str r5, [r0, #0xc] bl MOD80_02235948 ldr r0, _02235944 ; =0x0000062F - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _0223593C: .word MOD80_02235964 @@ -16655,7 +16655,7 @@ _022359DE: pop {r4, r5, r6, pc} _022359F2: ldr r0, _02235A08 ; =0x0000060D - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0xc] ldr r0, _02235A0C ; =0x00000FEC mov r2, #1 @@ -16692,7 +16692,7 @@ MOD80_02235A10: ; 0x02235A10 str r5, [r0, #0xc] bl MOD80_02235948 ldr r0, _02235A50 ; =0x0000060E - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} nop _02235A48: .word MOD80_02235A54 @@ -16754,7 +16754,7 @@ _02235A9E: str r0, [r4] mov r0, #0x63 lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} _02235AC2: mov r0, #0x13 @@ -16876,7 +16876,7 @@ MOD80_02235B90: ; 0x02235B90 cmp r0, #1 bne _02235BAA ldr r0, _02235C24 ; =0x0000064F - bl FUN_020054C8 + bl PlaySE _02235BAA: ldr r4, [sp, #4] mov r0, #0xe @@ -17886,13 +17886,13 @@ MOD80_02236378: ; 0x02236378 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02236458 ; =0x0223761C add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -17907,7 +17907,7 @@ MOD80_02236378: ; 0x02236378 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers @@ -17925,13 +17925,13 @@ MOD80_02236378: ; 0x02236378 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02236460 ; =0x02237600 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -17946,7 +17946,7 @@ MOD80_02236378: ; 0x02236378 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0 bl GX_EngineBToggleLayers @@ -17954,12 +17954,12 @@ MOD80_02236378: ; 0x02236378 mov r1, #0x20 add r2, r0, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x3e - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0x10 mov r1, #0 bl GX_EngineBToggleLayers @@ -17977,16 +17977,16 @@ MOD80_02236464: ; 0x02236464 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD80_02236464 @@ -18097,10 +18097,10 @@ MOD80_02236488: ; 0x02236488 bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD80_02236488 @@ -18124,7 +18124,7 @@ MOD80_02236580: ; 0x02236580 ldr r0, [r4, #4] add r1, r4, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02236628 ; =0x00000EC8 mov r1, #0 add r0, r4, r0 @@ -18145,7 +18145,7 @@ MOD80_02236580: ; 0x02236580 add r1, r4, r1 mov r2, #0 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _0223662C ; =0x00000EB8 mov r1, #0 add r0, r4, r0 @@ -18176,7 +18176,7 @@ MOD80_02236580: ; 0x02236580 add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _02236634 ; =0x00000E98 mov r1, #0 add r0, r4, r0 @@ -18196,13 +18196,13 @@ MOD80_02236638: ; 0x02236638 add r4, r0, #0 ldr r0, _02236658 ; =0x00000E98 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _0223665C ; =0x00000EB8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _02236660 ; =0x00000EC8 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} nop _02236658: .word 0x00000E98 @@ -19842,4 +19842,3 @@ MOD80_02237E1C: ; 0x02237E1C .global MOD80_02237E24 MOD80_02237E24: ; 0x02237E24 .space 0x1C - diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index c8b46eb9..09e12fdf 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -16,11 +16,11 @@ _02237E50: mov r0, #3 mov r1, #0x39 lsl r2, r0, #0xf - bl FUN_0201681C + bl CreateHeap mov r0, #3 mov r1, #0x3a lsl r2, r0, #0xf - bl FUN_0201681C + bl CreateHeap bl MOD81_02238858 ldr r1, _02237FD0 ; =0x00000492 mov r0, #3 @@ -41,7 +41,7 @@ _02237E84: mov r0, #0 str r0, [r4, #4] mov r0, #0x39 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #8] mov r0, #0x19 lsl r0, r0, #4 @@ -237,9 +237,9 @@ MOD81_02238004: ; 0x02238004 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x39 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0x3a - bl FUN_020168D0 + bl DestroyHeap add r0, r6, #0 bl OS_RestoreInterrupts mov r0, #1 @@ -520,7 +520,7 @@ MOD81_02238248: ; 0x02238248 cmp r0, #0 bgt _02238284 ldr r0, _0223832C ; =0x000006AE - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0x1e add r0, #0xf0 @@ -944,7 +944,7 @@ MOD81_02238588: ; 0x02238588 mov r1, #2 str r0, [sp] ldr r0, [r4] - bl FUN_02017BD0 + bl SetBgAffine ldr r0, [r4, #0x1c] add r2, sp, #4 lsl r1, r0, #2 @@ -954,7 +954,7 @@ MOD81_02238588: ; 0x02238588 mov r1, #6 str r0, [sp] ldr r0, [r4] - bl FUN_02017BD0 + bl SetBgAffine add sp, #0x14 pop {r3, r4, pc} .align 2, 0 @@ -1048,7 +1048,7 @@ _02238648: lsr r1, r1, #0x18 add r2, r7, #0 add r3, r6, #0 - bl FUN_02017E14 + bl BG_LoadCharTilesData ldr r1, [sp, #0x20] add r0, r4, #0 bl ReleaseBoxMonLock @@ -1130,7 +1130,7 @@ _022386DE: lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02018170 + bl CopyToBgTilemapRect mov r0, #0xa str r0, [sp] str r0, [sp, #4] @@ -1146,7 +1146,7 @@ _022386DE: lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r7, #0 bl FreeToHeap _02238746: @@ -2059,16 +2059,16 @@ MOD81_02238D64: ; 0x02238D64 bl MOD81_0223890C ldr r0, [r4, #0x40] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x40] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x40] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 add r0, #0x44 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x10] cmp r0, #0 beq _02238DB6 @@ -2158,22 +2158,22 @@ MOD81_02238E44: ; 0x02238E44 and r0, r1 strh r0, [r2] ldr r0, _0223904C ; =0x0223D00C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0x40] ldr r2, _02239050 ; =0x0223D01C mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x40] ldr r2, _02239054 ; =0x0223D038 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x40] ldr r2, _02239054 ; =0x0223D038 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -2189,7 +2189,7 @@ MOD81_02238E44: ; 0x02238E44 str r2, [sp] ldr r0, [r4, #0x40] add r3, r1, #0 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -2199,7 +2199,7 @@ MOD81_02238E44: ; 0x02238E44 ldr r0, [r4, #0x40] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4] bl MOD81_02238844 lsl r0, r0, #0x18 @@ -2225,7 +2225,7 @@ MOD81_02238E44: ; 0x02238E44 ldr r0, [r4, #0x40] add r1, #0x44 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0x44 mov r1, #0xf @@ -2306,7 +2306,7 @@ MOD81_02238E44: ; 0x02238E44 bl GfGfxLoader_GXLoadPal ldr r0, [r4, #0x40] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD81_022392D8 mov r1, #0 @@ -2540,7 +2540,7 @@ _0223918A: bl AddTextPrinterParameterized add r0, r4, #0 add r0, #0x44 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0 str r0, [r4, #8] ldr r0, [r5] @@ -2601,7 +2601,7 @@ _0223920E: ; jump table .short _022392B6 - _0223920E - 2 ; case 4 _02239218: ldr r0, _022392D4 ; =0x000006A8 - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 mov r1, #0 mov r2, #0x10 @@ -3143,7 +3143,7 @@ _0223962A: str r0, [r4, #0x24] _02239658: ldr r0, _022396E4 ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x20] add r0, r0, #1 str r0, [r4, #0x20] @@ -3590,7 +3590,7 @@ _022399A0: bne _022399B6 mov r0, #0x6b lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE _022399B6: mov r0, #0x16 lsl r0, r0, #4 @@ -3641,21 +3641,21 @@ MOD81_022399FC: ; 0x022399FC and r0, r1 strh r0, [r2] ldr r0, _02239C84 ; =0x0223D084 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] ldr r2, _02239C88 ; =0x0223D0B4 mov r1, #2 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] ldr r2, _02239C88 ; =0x0223D0B4 mov r1, #6 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate bl OS_DisableInterrupts add r5, r0, #0 add r0, r4, #0 @@ -3664,14 +3664,14 @@ MOD81_022399FC: ; 0x022399FC ldr r2, _02239C8C ; =0x0223D0D0 mov r1, #3 mov r3, #2 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] ldr r2, _02239C8C ; =0x0223D0D0 mov r1, #7 mov r3, #2 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 bl OS_RestoreInterrupts mov r0, #0 @@ -3866,10 +3866,10 @@ _02239C02: mov r1, #6 mov r2, #3 mvn r3, r3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -3882,7 +3882,7 @@ _02239C02: ldr r0, [r0] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r4, #0 add r0, #0xc8 mov r1, #1 @@ -3938,21 +3938,21 @@ _02239CAA: add r0, #0xc0 ldr r0, [r0] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r4, #0xc0 ldr r0, [r4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD81_02239C94 @@ -4272,19 +4272,19 @@ MOD81_02239F58: ; 0x02239F58 mov r1, #2 mov r2, #3 mvn r3, r3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, #0xc0 ldr r0, [r4] mov r1, #6 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer ldr r2, _02239FB0 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -4493,7 +4493,7 @@ MOD81_0223A104: ; 0x0223A104 str r1, [r4, r0] ldr r0, [r4, r0] mov r1, #2 - bl FUN_02017B54 + bl Bg_GetYpos lsl r1, r0, #0xc mov r0, #0x56 lsl r0, r0, #2 @@ -4501,7 +4501,7 @@ MOD81_0223A104: ; 0x0223A104 sub r0, r0, #4 ldr r0, [r4, r0] mov r1, #6 - bl FUN_02017B54 + bl Bg_GetYpos mov r1, #0x57 lsl r0, r0, #0xc lsl r1, r1, #2 @@ -4564,7 +4564,7 @@ MOD81_0223A178: ; 0x0223A178 mov r1, #2 mov r2, #3 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r5, #0x55 lsl r5, r5, #2 add r3, r5, #0 @@ -4577,7 +4577,7 @@ MOD81_0223A178: ; 0x0223A178 sub r3, r6, r3 mov r2, #3 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #0x59 lsl r1, r1, #2 mov r0, #2 @@ -5630,7 +5630,7 @@ _0223A9C8: cmp r0, #0xa ble _0223AA54 ldr r0, _0223AA5C ; =0x000006AC - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r0, r5, #0 add r1, #0x34 @@ -5649,7 +5649,7 @@ _0223A9F2: cmp r0, #0 beq _0223AA54 ldr r0, _0223AA60 ; =0x000006AD - bl FUN_020054C8 + bl PlaySE ldr r0, [r5, #0x20] mov r1, #3 bl FUN_02020130 @@ -5710,17 +5710,17 @@ MOD81_0223AA68: ; 0x0223AA68 and r0, r1 strh r0, [r2] ldr r0, _0223ABB8 ; =0x0223D11C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0x24] ldr r2, _0223ABBC ; =0x0223D13C mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x24] ldr r2, _0223ABBC ; =0x0223D13C mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] bl MOD81_02238828 cmp r0, #3 @@ -5838,12 +5838,12 @@ _0223AAE8: ldr r0, [r4, #0x24] add r2, r1, #0 add r3, #0xfd - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x24] mov r1, #7 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -5866,10 +5866,10 @@ MOD81_0223ABC0: ; 0x0223ABC0 add r4, r0, #0 ldr r0, [r4, #0x24] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x24] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD81_0223ABC0 @@ -6491,13 +6491,13 @@ MOD81_0223B090: ; 0x0223B090 mov r1, #3 ldr r0, [r4, #0x24] add r2, r1, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #3 add r3, r2, #0 ldr r0, [r4, #0x24] mov r1, #7 add r3, #0xfd - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x28] add r1, sp, #0 bl MOD81_02238C70 @@ -6645,7 +6645,7 @@ _0223B1C2: cmp r0, #0 beq _0223B1FC ldr r0, _0223B214 ; =0x000006A9 - bl FUN_020054C8 + bl PlaySE mov r0, #0x10 str r0, [sp] mov r0, #1 @@ -6732,32 +6732,32 @@ MOD81_0223B264: ; 0x0223B264 orr r0, r1 strh r0, [r2] ldr r0, _0223B464 ; =0x0223D188 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0xc] ldr r2, _0223B468 ; =0x0223D198 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223B468 ; =0x0223D198 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223B46C ; =0x0223D1B4 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223B470 ; =0x0223D1D0 mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223B470 ; =0x0223D1D0 mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6830,21 +6830,21 @@ MOD81_0223B264: ; 0x0223B264 ldr r0, [r4, #0xc] mov r2, #0 add r3, r1, #0 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r0, #0xc8 str r0, [sp] ldr r0, [r4, #0xc] mov r1, #5 mov r2, #0 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r0, #0xc8 str r0, [sp] ldr r0, [r4, #0xc] mov r1, #2 mov r2, #0 mov r3, #1 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r1, #0 str r1, [sp] ldr r0, [r4] @@ -6874,7 +6874,7 @@ MOD81_0223B264: ; 0x0223B264 ldr r0, [r4, #0xc] mov r1, #1 mov r2, #0xc8 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0 str r3, [sp] mov r0, #0x20 @@ -6885,7 +6885,7 @@ MOD81_0223B264: ; 0x0223B264 ldr r0, [r4, #0xc] mov r1, #5 mov r2, #0xc8 - bl FUN_02018540 + bl FillBgTilemapRect mov r3, #0 str r3, [sp] mov r0, #0x20 @@ -6896,7 +6896,7 @@ MOD81_0223B264: ; 0x0223B264 ldr r0, [r4, #0xc] mov r1, #2 mov r2, #0xc8 - bl FUN_02018540 + bl FillBgTilemapRect mov r0, #0x14 str r0, [sp] mov r1, #0 @@ -6923,13 +6923,13 @@ MOD81_0223B264: ; 0x0223B264 bl MOD81_022386BC ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [r4, #0xc] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r0, [r4, #0xc] ldr r2, _0223B474 ; =0xFFFFFE80 mov r1, #0x50 @@ -6958,22 +6958,22 @@ MOD81_0223B478: ; 0x0223B478 add r4, r0, #0 ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD81_0223B478 @@ -6989,18 +6989,18 @@ MOD81_0223B4B0: ; 0x0223B4B0 mov r1, #2 mov r2, #3 and r3, r6 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 mov r1, #1 mov r2, #3 add r3, r4, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r4, #0xc0 add r0, r5, #0 mov r1, #5 mov r2, #3 add r3, r4, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, r5, r6, pc} nop _0223B4E4: .word 0x000001FF @@ -7157,7 +7157,7 @@ _0223B5FE: cmp r0, #0 bne _0223B662 ldr r0, _0223B668 ; =0x000006AB - bl FUN_020054C8 + bl PlaySE add r1, r5, #0 add r0, r5, #0 add r1, #0x34 @@ -7219,17 +7219,17 @@ MOD81_0223B670: ; 0x0223B670 orr r0, r1 strh r0, [r2] ldr r0, _0223B7C8 ; =0x0223D21C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0x24] ldr r2, _0223B7CC ; =0x0223D23C mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x24] ldr r2, _0223B7CC ; =0x0223D23C mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] bl MOD81_02238828 cmp r0, #3 @@ -7346,13 +7346,13 @@ _0223B6F0: ldr r0, [r4, #0x24] add r2, r1, #0 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #3 add r3, r2, #0 ldr r0, [r4, #0x24] mov r1, #7 add r3, #0xfd - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -7378,10 +7378,10 @@ MOD81_0223B7D0: ; 0x0223B7D0 add r4, r0, #0 ldr r0, [r4, #0x24] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x24] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD81_0223B7D0 @@ -8018,12 +8018,12 @@ _0223BCC6: ldr r0, [r4, #0x24] add r2, r1, #0 add r3, #0xfd - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x24] mov r1, #7 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x28] add r1, sp, #0 bl MOD81_02238C70 @@ -8381,29 +8381,29 @@ MOD81_0223BF74: ; 0x0223BF74 orr r0, r1 strh r0, [r2] ldr r0, _0223C194 ; =0x0223D294 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0xc] ldr r2, _0223C198 ; =0x0223D2B4 mov r1, #2 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223C198 ; =0x0223D2B4 mov r1, #6 mov r3, #1 - bl FUN_02016C18 + bl InitBgFromTemplate bl OS_DisableInterrupts add r5, r0, #0 ldr r0, [r4, #0xc] ldr r2, _0223C19C ; =0x0223D2D0 mov r1, #3 mov r3, #2 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0xc] ldr r2, _0223C19C ; =0x0223D2D0 mov r1, #7 mov r3, #2 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r5, #0 bl OS_RestoreInterrupts mov r0, #0 @@ -8579,21 +8579,21 @@ _0223C14A: ldr r3, _0223C1A4 ; =0xFFFFFE80 mov r1, #2 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r2, #3 add r3, r2, #0 ldr r0, [r4, #0xc] mov r1, #6 sub r3, #0xc3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r1, #3 ldr r0, [r4, #0xc] add r2, r1, #0 mov r3, #0x43 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #0x10 mov r1, #1 bl GX_EngineAToggleLayers @@ -8624,16 +8624,16 @@ MOD81_0223C1A8: ; 0x0223C1A8 _0223C1B8: ldr r0, [r4, #0xc] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0xc] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD81_0223C1A8 @@ -8828,13 +8828,13 @@ MOD81_0223C350: ; 0x0223C350 ldr r0, [r4, #4] mov r1, #2 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r3, [r4, #0x10] ldr r0, [r4, #4] mov r1, #6 mov r2, #3 asr r3, r3, #0xc - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #8] sub r0, r0, #1 str r0, [r4, #8] @@ -8844,12 +8844,12 @@ _0223C390: mov r1, #2 mov r2, #3 mov r3, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] mov r1, #6 mov r2, #3 mov r3, #0xc0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit add r0, r5, #0 bl MOD81_0223C3B0 pop {r3, r4, r5, pc} @@ -9119,10 +9119,10 @@ MOD81_0223C580: ; 0x0223C580 _0223C5AC: ldr r0, [r4, #0x44] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 add r0, #0x48 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x14] cmp r0, #0 beq _0223C5C6 @@ -9215,17 +9215,17 @@ MOD81_0223C658: ; 0x0223C658 orr r0, r1 strh r0, [r2] ldr r0, _0223C810 ; =0x0223D32C - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #0x44] ldr r2, _0223C814 ; =0x0223D33C mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x44] ldr r2, _0223C818 ; =0x0223D358 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -9241,7 +9241,7 @@ MOD81_0223C658: ; 0x0223C658 str r2, [sp] ldr r0, [r4, #0x44] add r3, r1, #0 - bl FUN_02017F48 + bl BG_FillCharDataRange mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -9251,7 +9251,7 @@ MOD81_0223C658: ; 0x0223C658 ldr r0, [r4, #0x44] mov r1, #1 add r3, r2, #0 - bl FUN_02018540 + bl FillBgTilemapRect ldr r0, [r4] bl MOD81_02238844 lsl r0, r0, #0x18 @@ -9277,7 +9277,7 @@ MOD81_0223C658: ; 0x0223C658 ldr r0, [r4, #0x44] add r1, #0x48 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized add r0, r4, #0 add r0, #0x48 mov r1, #0xf @@ -9292,7 +9292,7 @@ MOD81_0223C658: ; 0x0223C658 bl GfGfxLoader_GXLoadPal ldr r0, [r4, #0x44] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -9653,7 +9653,7 @@ _0223C9D0: bl AddTextPrinterParameterized add r0, r4, #0 add r0, #0x48 - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0 str r0, [r4, #8] ldr r0, [r5] @@ -10287,7 +10287,7 @@ _0223CEDC: cmp r1, r0 bge _0223CF62 ldr r0, _0223CF68 ; =0x000005E6 - bl FUN_020054C8 + bl PlaySE mov r0, #0 ldr r1, [r4, #0x30] mvn r0, r0 @@ -10580,4 +10580,3 @@ MOD81_0223D448: ; 0x0223D448 .global MOD81_0223D450 MOD81_0223D450: ; 0x0223D450 .space 0x10 - diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index ce3a33bb..01d50253 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -641,7 +641,7 @@ _0222DA48: mov r0, #3 mov r1, #0x44 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222DB58 ; =0x00000EC8 add r0, r6, #0 mov r2, #0x44 @@ -651,7 +651,7 @@ _0222DA48: add r4, r0, #0 bl memset mov r0, #0x44 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] ldr r0, _0222DB5C ; =0x0222FC0C add r2, sp, #0 @@ -663,7 +663,7 @@ _0222DA48: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, r7, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r0, #0xb mov r1, #0x20 mov r2, #0x44 @@ -695,7 +695,7 @@ _0222DA48: str r0, [r4, r1] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0 add r1, r6, #0 bl MOD82_0222DD04 @@ -887,7 +887,7 @@ MOD82_0222DC50: ; 0x0222DC50 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x44 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -1503,13 +1503,13 @@ MOD82_0222E15C: ; 0x0222E15C str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222E234 ; =0x0222F878 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -1524,7 +1524,7 @@ MOD82_0222E15C: ; 0x0222E15C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers @@ -1542,13 +1542,13 @@ MOD82_0222E15C: ; 0x0222E15C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #1 mov r1, #0 bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _0222E23C ; =0x0222F85C add r3, sp, #0 ldmia r5!, {r0, r1} @@ -1563,7 +1563,7 @@ MOD82_0222E15C: ; 0x0222E15C str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r0, #2 mov r1, #0 bl GX_EngineBToggleLayers @@ -1571,12 +1571,12 @@ MOD82_0222E15C: ; 0x0222E15C mov r1, #0x20 add r2, r0, #0 mov r3, #0x44 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x44 - bl FUN_02017F18 + bl BG_ClearCharDataRange add sp, #0x70 pop {r3, r4, r5, pc} nop @@ -1591,16 +1591,16 @@ MOD82_0222E240: ; 0x0222E240 push {r4, lr} add r4, r0, #0 mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD82_0222E240 @@ -1711,10 +1711,10 @@ MOD82_0222E264: ; 0x0222E264 bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor mov r0, #4 mov r1, #0 - bl FUN_02017FE4 + bl BG_SetMaskColor add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD82_0222E264 @@ -1739,7 +1739,7 @@ MOD82_0222E35C: ; 0x0222E35C ldr r0, [r4, #4] add r1, r4, r1 mov r2, #0 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x37 lsl r0, r0, #6 add r0, r4, r0 @@ -1761,7 +1761,7 @@ MOD82_0222E35C: ; 0x0222E35C add r1, r4, r1 mov r2, #0 mov r3, #0x1a - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xda lsl r0, r0, #4 add r0, r4, r0 @@ -1783,7 +1783,7 @@ MOD82_0222E35C: ; 0x0222E35C add r1, r4, r1 mov r2, #0 mov r3, #0x1a - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xd9 lsl r0, r0, #4 add r0, r4, r0 @@ -1805,7 +1805,7 @@ MOD82_0222E35C: ; 0x0222E35C ldr r0, [r4, #4] add r1, r4, r1 mov r3, #4 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0xdb lsl r0, r0, #4 add r0, r4, r0 @@ -1837,7 +1837,7 @@ MOD82_0222E35C: ; 0x0222E35C add r1, r4, r1 mov r2, #0 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized mov r0, #0x36 lsl r0, r0, #6 add r0, r4, r0 @@ -1857,23 +1857,23 @@ MOD82_0222E474: ; 0x0222E474 mov r0, #0x36 lsl r0, r0, #6 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xdb lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xd9 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0xda lsl r0, r0, #4 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x37 lsl r0, r0, #6 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} thumb_func_end MOD82_0222E474 @@ -2586,7 +2586,7 @@ _0222E9EC: mov r3, #3 bl MOD82_0222F694 ldr r0, _0222EAA0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EA94 _0222EA08: mov r1, #0x80 @@ -2610,7 +2610,7 @@ _0222EA1C: mov r3, #3 bl MOD82_0222F694 ldr r0, _0222EAA0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EA94 _0222EA38: ldr r2, [r2, #0x48] @@ -2643,7 +2643,7 @@ _0222EA68: add r2, r1, #0 bl MOD82_0222F6D8 ldr r0, _0222EAA0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EA94 _0222EA7C: mov r1, #2 @@ -2655,7 +2655,7 @@ _0222EA7C: mov r0, #0x13 str r0, [r4, #0x1c] ldr r0, _0222EAA0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0222EA94: mov r0, #3 add sp, #0x1c @@ -3176,7 +3176,7 @@ _0222EE90: mov r3, #2 bl MOD82_0222F694 ldr r0, _0222EF20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EF12 _0222EEAA: mov r1, #0x80 @@ -3199,7 +3199,7 @@ _0222EEBE: mov r3, #2 bl MOD82_0222F694 ldr r0, _0222EF20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EF12 _0222EED8: ldr r2, [r2, #0x48] @@ -3214,7 +3214,7 @@ _0222EED8: mov r2, #0x1e bl MOD82_0222DF6C ldr r0, _0222EF20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222EF12 _0222EEFA: mov r1, #2 @@ -3226,7 +3226,7 @@ _0222EEFA: mov r0, #0x15 str r0, [r4, #0x1c] ldr r0, _0222EF20 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0222EF12: mov r0, #3 pop {r4, pc} @@ -3325,7 +3325,7 @@ _0222EFBC: mov r3, #3 bl MOD82_0222F694 ldr r0, _0222F044 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F03C _0222EFD8: mov r1, #0x80 @@ -3349,7 +3349,7 @@ _0222EFEC: mov r3, #3 bl MOD82_0222F694 ldr r0, _0222F044 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F03C _0222F008: ldr r2, [r2, #0x48] @@ -3362,7 +3362,7 @@ _0222F008: mov r0, #0x21 str r0, [r4, #0x1c] ldr r0, _0222F044 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222F03C _0222F024: mov r1, #2 @@ -3374,7 +3374,7 @@ _0222F024: mov r0, #0x1b str r0, [r4, #0x1c] ldr r0, _0222F044 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0222F03C: mov r0, #3 pop {r4, pc} @@ -4580,4 +4580,3 @@ MOD82_0222FC03: ; 0x0222FC03 .global MOD82_0222FC0C MOD82_0222FC0C: ; 0x0222FC0C .space 0x14 - diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 09c161b4..d58de0be 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -18,7 +18,7 @@ MOD83_0222D5C4: ; 0x0222D5C4 mov r0, #5 lsl r0, r0, #6 add r0, r5, r0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0222D63C mov r1, #0x4f @@ -77,7 +77,7 @@ _0222D63C: tst r0, r1 beq _0222D662 ldr r0, _0222D678 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #5 lsl r0, r0, #6 add r0, r5, r0 @@ -86,7 +86,7 @@ _0222D63C: mov r0, #5 lsl r0, r0, #6 add r0, r5, r0 - bl FUN_02019178 + bl RemoveWindow _0222D662: add sp, #0x5c mov r0, #1 @@ -354,7 +354,7 @@ _0222D832: bl FUN_0200CB00 ldr r0, [r4] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r1, _0222D99C ; =0x00006B5A ldr r0, _0222D9A0 ; =0x05000042 strh r1, [r0] @@ -428,10 +428,10 @@ _0222D8B2: ldr r3, [r5, #4] bl MOD83_02238A38 ldr r0, [sp, #0x1c] - bl FUN_0201AB14 + bl GetWindowX add r6, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_0201AB18 + bl GetWindowY add r7, r0, #0 ldr r0, [sp, #0x1c] bl GetWindowWidth @@ -446,7 +446,7 @@ _0222D8B2: mov r1, #1 add r2, r6, #0 add r3, r7, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette mov r0, #1 mov r1, #0 bl GX_EngineAToggleLayers @@ -485,7 +485,7 @@ _0222D94A: beq _0222D994 add r1, #0x10 add r0, r4, r1 - bl FUN_02019178 + bl RemoveWindow mov r0, #0x45 mov r1, #0x13 lsl r0, r0, #2 @@ -495,7 +495,7 @@ _0222D94A: ldr r1, [r1, #0x48] str r1, [r4, r0] ldr r0, _0222D9BC ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _0222D994 _0222D974: mov r0, #1 @@ -586,7 +586,7 @@ _0222DA18: mov r1, #0 mov r2, #3 asr r3, r3, #0xc - bl FUN_0201AEE4 + bl ScheduleSetBgPosText mov r3, #0x41 lsl r3, r3, #2 ldr r0, [r4] @@ -597,7 +597,7 @@ _0222DA18: add r3, r4, r3 mov r2, #3 asr r3, r3, #0xc - bl FUN_0201AEE4 + bl ScheduleSetBgPosText _0222DA48: pop {r3, r4, r5, pc} nop @@ -626,7 +626,7 @@ _0222DA5C: add r0, sp, #0x18 bl GX_SetBanks add r0, sp, #8 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0 str r1, [sp] mov r3, #0xf @@ -645,7 +645,7 @@ _0222DA5C: mov r0, #0 mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #2 lsl r0, r0, #0xe str r0, [sp] @@ -665,7 +665,7 @@ _0222DA5C: strh r2, [r1] mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange mov r0, #0 str r0, [sp] mov r1, #2 @@ -683,7 +683,7 @@ _0222DA5C: mov r0, #2 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange bl FUN_0201BD5C mov r0, #0 mov r1, #0x20 @@ -822,7 +822,7 @@ MOD83_0222DC10: ; 0x0222DC10 mov r1, #2 add r6, r2, #0 add r7, r3, #0 - bl FUN_0201886C + bl GetBgTilemapBuffer ldr r1, _0222DC5C ; =0x00004380 cmp r7, #2 bne _0222DC2A @@ -849,7 +849,7 @@ _0222DC2A: strh r1, [r0, r2] ldr r0, [r5] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r3, r4, r5, r6, r7, pc} nop _0222DC5C: .word 0x00004380 @@ -863,7 +863,7 @@ MOD83_0222DC60: ; 0x0222DC60 add r4, r1, #0 add r6, r2, #0 mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer lsl r1, r6, #5 add r3, r4, r1 ldr r1, _0222DC9C ; =0x00004384 @@ -882,7 +882,7 @@ MOD83_0222DC60: ; 0x0222DC60 strh r1, [r0, r2] ldr r0, [r5] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, r5, r6, pc} nop _0222DC9C: .word 0x00004384 @@ -1477,11 +1477,11 @@ _0222E104: beq _0222E188 ldr r0, [sp, #0x2c] mov r1, #3 - bl FUN_0201AB1C + bl MoveWindowX lsl r1, r5, #0x18 ldr r0, [sp, #0x2c] lsr r1, r1, #0x18 - bl FUN_0201AB20 + bl MoveWindowY ldr r2, [sp, #0x54] ldr r3, [sp, #0x58] lsl r2, r2, #0x10 @@ -1583,7 +1583,7 @@ MOD83_0222E1F8: ; 0x0222E1F8 add r5, #0x5c _0222E206: add r0, r5, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0222E294 ldr r0, [sp, #0xc] @@ -1595,10 +1595,10 @@ _0222E206: mov r3, #3 bl FUN_0200CCA4 add r0, r5, #0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x10] add r0, r5, #0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x14] add r0, r5, #0 bl GetWindowWidth @@ -1613,7 +1613,7 @@ _0222E206: ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] mov r1, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette b _0222E294 _0222E256: mov r1, #1 @@ -1622,10 +1622,10 @@ _0222E256: mov r3, #2 bl FUN_0200CCA4 add r0, r5, #0 - bl FUN_0201AB14 + bl GetWindowX str r0, [sp, #0x18] add r0, r5, #0 - bl FUN_0201AB18 + bl GetWindowY str r0, [sp, #0x1c] add r0, r5, #0 bl GetWindowWidth @@ -1640,7 +1640,7 @@ _0222E256: ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] mov r1, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette _0222E294: add r4, r4, #1 add r5, #0x10 @@ -1648,7 +1648,7 @@ _0222E294: blo _0222E206 ldr r0, [r6] mov r1, #0 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD83_0222E1F8 @@ -1682,7 +1682,7 @@ _0222E2C6: cmp r3, #0 beq _0222E2B8 ldr r0, _0222E2E0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _0222E2DC: str r4, [r5, #0x54] pop {r3, r4, r5, r6, r7, pc} @@ -1699,7 +1699,7 @@ MOD83_0222E2E4: ; 0x0222E2E4 add r1, #0x5c lsl r0, r0, #4 add r0, r1, r0 - bl FUN_0201AB18 + bl GetWindowY sub r0, r0, #1 lsl r4, r0, #3 ldr r0, [r5, #0x54] @@ -1761,11 +1761,11 @@ MOD83_0222E338: ; 0x0222E338 str r0, [sp, #0xc] _0222E362: add r0, r5, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0222E38E add r0, r5, #0 - bl FUN_0201AB18 + bl GetWindowY sub r0, r0, #1 lsl r4, r0, #3 add r0, r5, #0 @@ -1833,9 +1833,9 @@ _0222E3EC: cmp r0, #0 beq _0222E3FE add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow _0222E3FE: add r6, r6, #1 add r4, #0x10 @@ -1844,13 +1844,13 @@ _0222E3FE: blo _0222E3EC ldr r0, [r7] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] bl FreeToHeap mov r0, #0 @@ -1895,7 +1895,7 @@ MOD83_0222E464: ; 0x0222E464 bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _0222E484 ; =MOD83_027E0000 ldr r1, _0222E488 ; =0x00003FF8 mov r0, #1 @@ -1916,7 +1916,7 @@ MOD83_0222E48C: ; 0x0222E48C mov r0, #3 mov r1, #0x51 lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap mov r1, #0x57 add r0, r5, #0 lsl r1, r1, #2 @@ -1928,7 +1928,7 @@ MOD83_0222E48C: ; 0x0222E48C add r4, r0, #0 bl memset mov r0, #0x51 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] mov r0, #0 add r1, r0, #0 @@ -2129,7 +2129,7 @@ _0222E656: tst r0, r1 ldr r0, _0222E7A8 ; =0x000005DC beq _0222E69A - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x54] lsl r0, r0, #2 add r0, r4, r0 @@ -2152,7 +2152,7 @@ _0222E692: bl FUN_02089F24 b _0222E6A8 _0222E69A: - bl FUN_020054C8 + bl PlaySE mov r0, #0 str r0, [r4, #0x58] mov r0, #1 @@ -2372,7 +2372,7 @@ MOD83_0222E850: ; 0x0222E850 add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x51 - bl FUN_020168D0 + bl DestroyHeap mov r0, #0 bl MOD83_02239450 mov r0, #1 @@ -2513,7 +2513,7 @@ _0222E960: add r0, sp, #0x20 bl GX_SetBanks add r0, sp, #0x10 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0 str r1, [sp] mov r3, #0xf @@ -2618,10 +2618,10 @@ _0222E960: ldr r0, [r4, #4] mov r1, #1 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r4, #4] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD83_0222EA88 add sp, #0x48 @@ -2683,10 +2683,10 @@ MOD83_0222EA88: ; 0x0222EA88 ldr r0, [r4, #4] mov r1, #4 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r4, #4] mov r1, #4 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2698,7 +2698,7 @@ MOD83_0222EB04: ; 0x0222EB04 sub sp, #0x5c add r4, r0, #0 add r0, #0x18 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _0222EB4E mov r0, #1 @@ -2739,7 +2739,7 @@ _0222EB4E: bl FUN_0200CCF8 add r4, #0x18 add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow add sp, #0x5c mov r0, #0 pop {r3, r4, pc} @@ -2994,40 +2994,40 @@ MOD83_0222ED88: ; 0x0222ED88 bl MOD83_02238E48 add r0, r4, #0 add r0, #0x18 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #1 bne _0222EDD0 add r0, r4, #0 add r0, #0x18 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x28 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x28 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x38 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 add r0, #0x38 - bl FUN_02019178 + bl RemoveWindow _0222EDD0: ldr r0, [r4, #4] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} @@ -3045,7 +3045,7 @@ MOD83_0222EDF8: ; 0x0222EDF8 add r4, r0, #0 mov r0, #0x55 str r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] add r0, r5, #0 bl OverlayManager_GetField18 @@ -3085,7 +3085,7 @@ MOD83_0222EDF8: ; 0x0222EDF8 mov r2, #3 mov r1, #0x5b lsl r2, r2, #8 - bl FUN_0201681C + bl CreateHeap ldr r1, _0222EE88 ; =0x00000496 mov r0, #9 mov r2, #1 @@ -3312,14 +3312,14 @@ MOD83_0222F048: ; 0x0222F048 push {r4, lr} add r4, r0, #0 mov r0, #0x5b - bl FUN_020168D0 + bl DestroyHeap ldr r0, _0222F06C ; =SDK_OVERLAY_MODULE_63_ID ldr r1, _0222F070 ; =MOD63_021DBAB8 bl RegisterMainOverlay add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x55 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, pc} nop @@ -3703,7 +3703,7 @@ _0222F35E: mov r1, #0 str r1, [r4, r0] ldr r0, _0222F5F0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x16 ldr r1, _0222F5E8 ; =0x00000708 lsl r0, r0, #4 @@ -3761,7 +3761,7 @@ _0222F3D6: mov r3, #0x13 bl MOD83_02238A38 ldr r0, _0222F5F0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0222F5E4 ; =0x000034D8 mov r1, #0 str r1, [r4, r0] @@ -4040,7 +4040,7 @@ _0222F62E: ldr r0, [r4, r0] bl FUN_0200DBFC ldr r0, _0222F744 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE ldr r0, _0222F740 ; =0x000034D8 mov r1, #0 str r1, [r4, r0] @@ -4620,21 +4620,21 @@ _0222FA62: _0222FA70: add r0, r7, #0 add r0, #0x18 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r7, #0 add r0, #0x18 - bl FUN_02019178 + bl RemoveWindow add r0, r7, #0 add r0, #0x58 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 beq _0222FA9C add r0, r7, #0 add r0, #0x58 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r7, #0 add r0, #0x58 - bl FUN_02019178 + bl RemoveWindow _0222FA9C: add r5, r7, #0 mov r6, #0 @@ -4645,9 +4645,9 @@ _0222FAA4: cmp r0, #0 beq _0222FAB6 add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow _0222FAB6: add r6, r6, #1 add r4, #0x10 @@ -4656,16 +4656,16 @@ _0222FAB6: blt _0222FAA4 ldr r0, [r7] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r7] bl FreeToHeap pop {r3, r4, r5, r6, r7, pc} @@ -4726,7 +4726,7 @@ MOD83_0222FB44: ; 0x0222FB44 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #1 bne _0222FB5A add r0, r5, #0 @@ -4919,7 +4919,7 @@ _0222FCBE: cmp r0, #1 bhi _0222FCD4 ldr r0, _0222FCDC ; =0x0000061B - bl FUN_020054C8 + bl PlaySE ldr r0, _0222FCE0 ; =0x0000298C mov r1, #0 str r1, [r4, r0] @@ -5044,7 +5044,7 @@ _0222FD9C: ldr r0, [r0] add r1, r4, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0222FDC6: add r0, r4, #0 mov r1, #1 @@ -5132,7 +5132,7 @@ _0222FE3E: ldr r0, [r5] add r1, r4, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0222FE76: add r0, r4, #0 mov r1, #1 @@ -5186,7 +5186,7 @@ MOD83_0222FEA0: ; 0x0222FEA0 ldr r0, [r4] add r1, r5, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0222FEE6: add r0, r5, #0 mov r1, #1 @@ -5241,7 +5241,7 @@ MOD83_0222FF10: ; 0x0222FF10 ldr r0, [r4] add r1, r5, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0222FF56: add r0, r5, #0 mov r1, #1 @@ -5288,7 +5288,7 @@ MOD83_0222FF80: ; 0x0222FF80 ldr r0, [r0] add r1, r4, #0 mov r3, #0x17 - bl FUN_02019064 + bl AddWindowParameterized _0222FFB4: add r0, r4, #0 mov r1, #1 @@ -5512,7 +5512,7 @@ _0223013E: ldr r0, [r5] add r1, r4, #0 mov r3, #0xf - bl FUN_02019064 + bl AddWindowParameterized _02230172: add r0, r4, #0 mov r1, #1 @@ -5620,11 +5620,11 @@ MOD83_0223020C: ; 0x0223020C lsr r1, r1, #0x18 mov r2, ip mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate lsl r1, r4, #0x18 add r0, r7, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5644,7 +5644,7 @@ MOD83_02230258: ; 0x02230258 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable mov r1, #0 mov r2, #0xf add r0, r4, #0 @@ -5728,10 +5728,10 @@ MOD83_022302B4: ; 0x022302B4 add r0, r4, #0 mov r1, #5 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r4, #0 mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -5788,10 +5788,10 @@ MOD83_02230330: ; 0x02230330 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r4, #0 mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD83_022302B4 add sp, #0x10 @@ -5951,7 +5951,7 @@ _022304A8: ldr r0, [r7] add r1, r4, #0 mov r3, #8 - bl FUN_02019064 + bl AddWindowParameterized _022304E6: add r0, r4, #0 mov r1, #1 @@ -6104,7 +6104,7 @@ MOD83_02230604: ; 0x02230604 b _02230642 _02230628: ldr r0, _02230660 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r6, #0 beq _0223065E add r0, r7, #0 @@ -6117,7 +6117,7 @@ _02230628: pop {r3, r4, r5, r6, r7, pc} _02230642: ldr r0, _02230660 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r4, #0 beq _0223065E ldr r0, _02230664 ; =MOD83_0223B888 @@ -6178,7 +6178,7 @@ MOD83_02230668: ; 0x02230668 strh r1, [r0] add r0, r4, #0 add r0, #0x18 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _022306EC mov r0, #0x13 @@ -6195,7 +6195,7 @@ MOD83_02230668: ; 0x02230668 ldr r0, [r4] add r1, #0x18 mov r3, #2 - bl FUN_02019064 + bl AddWindowParameterized _022306EC: add r1, r4, #0 add r0, r5, #0 @@ -6267,15 +6267,15 @@ _02230768: _02230776: ldr r0, _022307AC ; =0x00002624 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _022307AC ; =0x00002624 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r0, _022307B0 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 mov r1, #0xc4 mov r2, #0 @@ -6309,7 +6309,7 @@ _022307C8: bl GX_EngineAToggleLayers ldr r0, [r5] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0x56 bl ScrStrBufs_new mov r1, #2 @@ -6505,7 +6505,7 @@ MOD83_02230954: ; 0x02230954 mov r0, #3 mov r1, #0x56 lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _022309FC ; =0x00002998 add r0, r5, #0 mov r2, #0x56 @@ -6515,7 +6515,7 @@ MOD83_02230954: ; 0x02230954 add r4, r0, #0 bl memset mov r0, #0x56 - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4] bl GX_DisableEngineALayers bl GX_DisableEngineBLayers @@ -6561,7 +6561,7 @@ _022309D0: mov r0, #0 mov r1, #0x5b lsl r2, r2, #8 - bl FUN_0201681C + bl CreateHeap mov r0, #1 pop {r3, r4, r5, pc} nop @@ -6737,7 +6737,7 @@ _02230B28: _02230B6C: add r0, r4, #0 add r0, #0x58 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _02230B9A mov r0, #2 @@ -6755,7 +6755,7 @@ _02230B6C: ldr r0, [r4] add r1, #0x58 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized _02230B9A: bl MOD83_02239DA0 add r1, r4, #0 @@ -6823,7 +6823,7 @@ _02230C16: mvn r1, r1 bl MOD83_0222FB0C ldr r0, _02230D78 ; =0x00000624 - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r0, r6, #0 add r1, #0x18 @@ -6895,7 +6895,7 @@ _02230CA0: str r0, [r1] add r0, r4, #0 add r0, #0x58 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _02230CFA mov r0, #2 @@ -6913,7 +6913,7 @@ _02230CA0: ldr r0, [r4] add r1, #0x58 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized _02230CFA: add r1, r4, #0 add r2, r4, #0 @@ -7246,7 +7246,7 @@ _02230FCE: bl MOD83_0222F9DC bl FUN_02033ED0 ldr r0, _02231130 ; =0x00000624 - bl FUN_020054C8 + bl PlaySE mov r1, #0 add r0, r4, #0 mvn r1, r1 @@ -7261,7 +7261,7 @@ _02230FCE: b _02231334 _0223100E: ldr r0, _02231134 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r0, r6, #0 add r1, #0x18 @@ -7279,7 +7279,7 @@ _02231030: mov r1, #0 bl MOD83_0222FA0C ldr r0, _02231134 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r0, r6, #0 add r1, #0x18 @@ -7301,7 +7301,7 @@ _02231062: b _02231334 _02231064: ldr r0, _02231134 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r6, #0 mov r1, #0xc4 mov r2, #0 @@ -7342,7 +7342,7 @@ _02231090: _022310B8: add r0, r4, #0 add r0, #0x58 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #0 bne _022310E6 mov r0, #2 @@ -7360,7 +7360,7 @@ _022310B8: ldr r0, [r4] add r1, #0x58 mov r3, #3 - bl FUN_02019064 + bl AddWindowParameterized _022310E6: add r1, r4, #0 add r2, r4, #0 @@ -7453,7 +7453,7 @@ _02231198: mvn r1, r1 bl MOD83_0222FB0C ldr r0, _02231350 ; =0x00000624 - bl FUN_020054C8 + bl PlaySE add r1, r4, #0 add r0, r6, #0 add r1, #0x18 @@ -7576,7 +7576,7 @@ _022312AA: cmp r0, #0 beq _02231334 ldr r0, _02231358 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 add r0, #0xda ldrb r0, [r0] @@ -7695,11 +7695,11 @@ _0223139A: bl RegisterMainOverlay _022313A6: mov r0, #0x5b - bl FUN_020168D0 + bl DestroyHeap add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x56 - bl FUN_020168D0 + bl DestroyHeap ldr r0, _022313E0 ; =0x000015D4 ldr r0, [r4, r0] cmp r0, #2 @@ -8105,7 +8105,7 @@ MOD83_022316C0: ; 0x022316C0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #1 bne _022316D6 add r0, r5, #0 @@ -8120,7 +8120,7 @@ MOD83_022316D8: ; 0x022316D8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 - bl FUN_02019048 + bl WindowIsInUse cmp r0, #1 bne _022316EE add r0, r5, #0 @@ -8332,10 +8332,10 @@ MOD83_02231820: ; 0x02231820 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r4, #0 mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -8520,11 +8520,11 @@ MOD83_02231A00: ; 0x02231A00 mov r0, #0xae lsl r0, r0, #6 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0xae lsl r0, r0, #6 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow pop {r4, pc} .align 2, 0 _02231A40: .word 0x00002B6C @@ -8865,9 +8865,9 @@ _02231CC2: str r2, [r3, #4] ldr r6, [r5, r0] add r0, r7, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r7, #0 - bl FUN_02019178 + bl RemoveWindow add r1, r4, #1 mov r0, #4 sub r0, r0, r1 @@ -8900,7 +8900,7 @@ _02231CC2: ldr r0, [r5, r0] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized add r0, r5, #0 add r1, sp, #0x14 add r2, r4, #1 @@ -9056,9 +9056,9 @@ _02231E2E: cmp r0, #0 beq _02231E50 add r0, r6, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow _02231E50: ldr r0, [sp, #0x1c] add r7, #0x30 @@ -9114,7 +9114,7 @@ _02231E72: ldr r0, [r5, r0] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized _02231EBE: ldr r0, [r4, #0x14] ldr r1, [r4, #0x1c] @@ -9243,7 +9243,7 @@ MOD83_02231F88: ; 0x02231F88 ldr r0, [r5, r0] lsl r3, r3, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized _02231FD2: ldr r1, [r4, #0x1c] add r0, r6, #0 @@ -9393,7 +9393,7 @@ MOD83_022320D8: ; 0x022320D8 lsr r1, r1, #0x18 add r2, #0xc add r3, r6, #0 - bl FUN_02017DFC + bl BG_LoadScreenTilemapData add r0, r7, #0 bl FreeToHeap add sp, #8 @@ -9509,11 +9509,11 @@ _0223219C: ldr r0, [r5, r0] mov r1, #3 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, _02232204 ; =0x0000299C mov r1, #3 ldr r0, [r5, r0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -9541,7 +9541,7 @@ MOD83_02232208: ; 0x02232208 b _02232248 _0223222E: ldr r0, _02232274 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r6, #0 beq _0223226C add r0, r7, #0 @@ -9554,7 +9554,7 @@ _0223222E: pop {r3, r4, r5, r6, r7, pc} _02232248: ldr r0, _02232274 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE cmp r4, #0 beq _0223226C cmp r4, #0x1e @@ -9726,7 +9726,7 @@ MOD83_022323A8: ; 0x022323A8 mov r0, #3 mov r1, #0x57 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _0223240C ; =0x00003CF4 add r0, r4, #0 mov r2, #0x57 @@ -9736,7 +9736,7 @@ MOD83_022323A8: ; 0x022323A8 add r4, r0, #0 bl memset mov r0, #0x57 - bl FUN_02016B94 + bl BgConfig_Alloc ldr r1, _02232410 ; =0x0000299C str r0, [r4, r1] mov r0, #0x57 @@ -9759,7 +9759,7 @@ MOD83_022323A8: ; 0x022323A8 mov r0, #0 mov r1, #0x5b lsl r2, r2, #8 - bl FUN_0201681C + bl CreateHeap mov r0, #1 pop {r4, pc} .align 2, 0 @@ -10018,7 +10018,7 @@ MOD83_022325EC: ; 0x022325EC cmp r0, #1 bhi _02232606 ldr r0, _02232608 ; =0x0000061B - bl FUN_020054C8 + bl PlaySE ldr r0, _0223260C ; =0x00003CE8 mov r1, #0 str r1, [r4, r0] @@ -10172,7 +10172,7 @@ _0223270E: cmp r4, #1 bne _02232746 ldr r0, _02232778 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xab bl FUN_02031588 mov r3, #0xa @@ -10197,7 +10197,7 @@ _02232746: cmp r4, #2 bne _0223275A ldr r0, _02232778 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r5, #0 add r1, r7, #0 mov r2, #0x13 @@ -10206,7 +10206,7 @@ _0223275A: cmp r4, #3 bne _02232764 ldr r0, _02232778 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE _02232764: pop {r3, r4, r5, r6, r7, pc} nop @@ -10406,7 +10406,7 @@ _0223290A: tst r0, r1 beq _02232924 ldr r0, _02232B78 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 mov r1, #0 mov r2, #0x1c @@ -10418,7 +10418,7 @@ _02232924: tst r0, r1 beq _02232934 ldr r0, _02232B78 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #4 str r0, [r5] _02232934: @@ -10430,7 +10430,7 @@ _02232934: _0223293E: mov r0, #6 lsl r0, r0, #8 - bl FUN_020054C8 + bl PlaySE ldr r0, _02232B6C ; =0x00002B60 mov r1, #1 str r6, [r4, r0] @@ -10468,14 +10468,14 @@ _0223297E: tst r0, r1 beq _02232A54 ldr r0, _02232B78 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0xb str r0, [r5] b _02232CF4 _0223299E: mov r0, #6 lsl r0, r0, #8 - bl FUN_020054C8 + bl PlaySE mov r0, #0x10 mov r1, #0 bl GX_EngineAToggleLayers @@ -10520,7 +10520,7 @@ _022329FA: tst r1, r0 beq _02232A54 lsl r0, r0, #9 - bl FUN_020054C8 + bl PlaySE mov r1, #1 add r0, r4, #0 lsl r2, r1, #0xc @@ -10584,10 +10584,10 @@ _02232A88: bl MOD83_022316D8 ldr r0, _02232B7C ; =0x00002B70 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _02232B7C ; =0x00002B70 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow mov r0, #3 str r0, [r5] b _02232CF4 @@ -10626,10 +10626,10 @@ _02232AE2: bl MOD83_022316D8 ldr r0, _02232B7C ; =0x00002B70 add r0, r4, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _02232B7C ; =0x00002B70 add r0, r4, r0 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 mov r1, #0 mov r2, #3 @@ -11312,9 +11312,9 @@ _022330B6: cmp r0, #0 beq _022330CA add r0, r5, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 - bl FUN_02019178 + bl RemoveWindow _022330CA: add r6, r6, #1 add r4, #0x10 @@ -11326,10 +11326,10 @@ _022330CA: cmp r1, #0 beq _022330EA add r0, r7, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram ldr r0, _02233158 ; =0x00002B70 add r0, r7, r0 - bl FUN_02019178 + bl RemoveWindow _022330EA: mov r0, #0xae lsl r0, r0, #6 @@ -11337,28 +11337,28 @@ _022330EA: cmp r1, #0 beq _02233104 add r0, r7, r0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram mov r0, #0xae lsl r0, r0, #6 add r0, r7, r0 - bl FUN_02019178 + bl RemoveWindow _02233104: ldr r0, _0223315C ; =0x0000299C mov r1, #0 ldr r0, [r7, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223315C ; =0x0000299C mov r1, #1 ldr r0, [r7, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223315C ; =0x0000299C mov r1, #2 ldr r0, [r7, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223315C ; =0x0000299C mov r1, #3 ldr r0, [r7, r0] - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, _0223315C ; =0x0000299C ldr r0, [r7, r0] bl FreeToHeap @@ -11366,11 +11366,11 @@ _02233104: ldr r1, _02233164 ; =MOD83_0223A434 bl RegisterMainOverlay mov r0, #0x5b - bl FUN_020168D0 + bl DestroyHeap ldr r0, [sp] bl OverlayManager_FreeData mov r0, #0x57 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop @@ -11453,7 +11453,7 @@ MOD83_022331E0: ; 0x022331E0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _022332A4 ; =MOD83_0223A480 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -11468,10 +11468,10 @@ MOD83_022331E0: ; 0x022331E0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _022332A8 ; =MOD83_0223A4B8 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -11486,10 +11486,10 @@ MOD83_022331E0: ; 0x022331E0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _022332AC ; =MOD83_0223A49C add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -11504,10 +11504,10 @@ MOD83_022331E0: ; 0x022331E0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _022332B0 ; =MOD83_0223A464 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -11522,10 +11522,10 @@ MOD83_022331E0: ; 0x022331E0 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x80 pop {r3, r4, r5, pc} nop @@ -15353,11 +15353,11 @@ MOD83_02234E40: ; 0x02234E40 add r0, r4, #0 bl FUN_0202BF90 mov r0, #4 - bl FUN_020166A8 + bl SetSoftResetDisableMask ldr r0, [r5, #0x10] bl FUN_02022720 mov r0, #4 - bl FUN_020166B8 + bl ClearSoftResetDisableMask pop {r3, r4, r5, pc} thumb_func_end MOD83_02234E40 @@ -15502,7 +15502,7 @@ _02234F3C: ldr r0, [r0, #0x20] lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_02019064 + bl AddWindowParameterized _02234F7A: mov r0, #2 tst r0, r4 @@ -17117,7 +17117,7 @@ MOD83_02235BF4: ; 0x02235BF4 ldr r0, [r5, #0x20] add r6, r1, #0 mov r1, #2 - bl FUN_0201886C + bl GetBgTilemapBuffer add r4, r0, #0 cmp r6, #0 beq _02235C18 @@ -17155,7 +17155,7 @@ _02235C2E: blt _02235C1E ldr r0, [r5, #0x20] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD83_02235BF4 @@ -17427,7 +17427,7 @@ MOD83_02235E68: ; 0x02235E68 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _02235F2C ; =MOD83_0223A52C add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -17442,10 +17442,10 @@ MOD83_02235E68: ; 0x02235E68 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02235F30 ; =MOD83_0223A548 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -17460,10 +17460,10 @@ MOD83_02235E68: ; 0x02235E68 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02235F34 ; =MOD83_0223A564 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -17478,10 +17478,10 @@ MOD83_02235E68: ; 0x02235E68 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _02235F38 ; =MOD83_0223A580 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -17496,10 +17496,10 @@ MOD83_02235E68: ; 0x02235E68 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x80 pop {r3, r4, r5, pc} nop @@ -17601,10 +17601,10 @@ MOD83_02235FBC: ; 0x02235FBC mov r1, #2 str r0, [sp, #8] ldr r0, [r4, #0x20] - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r4, #0x20] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -17859,10 +17859,10 @@ _02236148: mov r1, #2 str r0, [sp, #8] ldr r0, [r6, #0x20] - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r6, #0x20] mov r1, #2 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #2 mov r1, #0 bl GX_EngineAToggleLayers @@ -17921,9 +17921,9 @@ MOD83_02236298: ; 0x02236298 mov r1, #0 bl FUN_0200D0E0 add r0, r4, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r4, #0 - bl FUN_02019178 + bl RemoveWindow _022362B4: pop {r4, pc} .align 2, 0 @@ -18097,16 +18097,16 @@ _022363E2: bl GX_SwapDisplay ldr r0, [r6, #0x20] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r6, #0x20] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r6, #0x20] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r6, #0x20] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r3, r4, r5, r6, r7, pc} nop _0223643C: .word 0x00000478 @@ -18219,7 +18219,7 @@ _02236520: bl FUN_0201C30C bl FUN_02009F80 ldr r0, [r4, #0x20] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates ldr r3, _02236540 ; =MOD83_027E0000 ldr r1, _02236544 ; =0x00003FF8 mov r0, #1 @@ -18459,7 +18459,7 @@ MOD83_022366D0: ; 0x022366D0 mvn r0, r0 str r0, [r5, #8] ldr r0, _02236754 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02236750 _02236712: cmp r4, #0 @@ -18488,7 +18488,7 @@ _02236740: mov r0, #0 bl FUN_02002BB8 ldr r0, _02236754 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r3, r4, r5, pc} _02236750: @@ -18509,7 +18509,7 @@ MOD83_02236764: ; 0x02236764 mov r0, #3 mov r1, #0x4e lsl r2, r2, #0xe - bl FUN_0201681C + bl CreateHeap ldr r1, _022367F0 ; =0x00012608 add r0, r5, #0 mov r2, #0x4e @@ -18519,7 +18519,7 @@ MOD83_02236764: ; 0x02236764 add r4, r0, #0 bl memset mov r0, #0x4e - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #0x20] mov r0, #0x4e bl FUN_02014590 @@ -19023,7 +19023,7 @@ _02236BAC: add r0, r4, #0 bl MOD83_022354F0 ldr r0, _02236DA4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02236D90 _02236BBC: ldr r0, _02236DA0 ; =0x0000E884 @@ -19039,7 +19039,7 @@ _02236BCE: add r0, r4, #0 bl MOD83_022354F0 ldr r0, _02236DA4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02236D90 _02236BDC: add r0, r4, #0 @@ -19048,7 +19048,7 @@ _02236BDC: add r3, r5, #0 bl MOD83_02235E34 ldr r0, _02236DA4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02236D90 _02236BF0: add r0, r4, #0 @@ -19127,7 +19127,7 @@ _02236C76: add r0, r4, #0 bl MOD83_02236450 ldr r0, _02236DA4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE mov r0, #0x13 str r0, [r5] b _02236D90 @@ -19168,7 +19168,7 @@ _02236CAE: mov r0, #0x15 str r0, [r5] mov r0, #4 - bl FUN_020166A8 + bl SetSoftResetDisableMask b _02236D90 _02236CF0: ldr r0, _02236DB0 ; =0x0000E88C @@ -19196,7 +19196,7 @@ _02236D12: ldr r0, [r4, r0] bl FUN_0200DBFC ldr r0, _02236DC0 ; =0x0000061B - bl FUN_020054C8 + bl PlaySE cmp r6, #0xb bne _02236D34 .ifdef DIAMOND @@ -19219,7 +19219,7 @@ _02236D36: mov r0, #0x16 str r0, [r5] mov r0, #4 - bl FUN_020166B8 + bl ClearSoftResetDisableMask b _02236D90 _02236D54: ldr r0, _02236DC8 ; =gMain + 0x40 @@ -19237,7 +19237,7 @@ _02236D64: add r3, r5, #0 bl MOD83_02235E34 ldr r0, _02236DA4 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE b _02236D90 _02236D78: bl FUN_0200E308 @@ -19287,7 +19287,7 @@ MOD83_02236DD0: ; 0x02236DD0 add r0, r4, #0 bl OverlayManager_FreeData mov r0, #0x4e - bl FUN_020168D0 + bl DestroyHeap mov r0, #0 bl MOD83_02239450 mov r0, #1 @@ -22827,7 +22827,7 @@ MOD83_022387A0: ; 0x022387A0 add r6, r1, #0 mov r0, #3 add r2, r3, #0 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 @@ -22910,11 +22910,11 @@ _02238832: add r0, r7, #0 lsr r1, r1, #0x18 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate lsl r1, r4, #0x18 add r0, r7, #0 lsr r1, r1, #0x18 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -23214,7 +23214,7 @@ MOD83_02238A38: ; 0x02238A38 ldr r2, [r4, #0x2c] lsl r2, r2, #0x18 lsr r2, r2, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r1, [sp, #0x28] add r0, r4, #0 bl MOD83_0223894C @@ -23228,7 +23228,7 @@ _02238A8A: add r0, r1, #0 lsl r1, r6, #0x18 lsr r1, r1, #0x18 - bl FUN_0201AB1C + bl MoveWindowX _02238A9C: mov r0, #0 mvn r0, r0 @@ -23237,7 +23237,7 @@ _02238A9C: lsl r1, r5, #0x18 ldr r0, [r4, #0x10] lsr r1, r1, #0x18 - bl FUN_0201AB20 + bl MoveWindowY _02238AAE: ldr r1, [sp, #0x28] add r0, r4, #0 @@ -24230,7 +24230,7 @@ MOD83_022391EC: ; 0x022391EC mov r1, #5 add r2, #0xc lsl r3, r3, #8 - bl FUN_02017DFC + bl BG_LoadScreenTilemapData ldr r0, [sp, #0x10] bl FreeToHeap mov r0, #0x20 @@ -24245,10 +24245,10 @@ MOD83_022391EC: ; 0x022391EC add r0, r5, #0 mov r1, #5 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette add r0, r5, #0 mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram ldr r1, _022392E0 ; =MOD83_022391CC ldr r0, _022392E4 ; =MOD83_0223CAB0 cmp r4, #0xb @@ -24459,7 +24459,7 @@ MOD83_02239414: ; 0x02239414 pop {r3, pc} _0223941E: ldr r0, _02239428 ; =0x000005DC - bl FUN_020054C8 + bl PlaySE pop {r3, pc} nop _02239428: .word 0x000005DC @@ -24577,7 +24577,7 @@ _022394E4: ; jump table .short _02239538 - _022394E4 - 2 ; case 4 _022394EE: mov r0, #4 - bl FUN_020166A8 + bl SetSoftResetDisableMask ldr r0, [r4, #0x14] mov r1, #2 bl FUN_02022840 @@ -24610,7 +24610,7 @@ _02239528: cmp r0, #1 bhi _02239534 mov r0, #4 - bl FUN_020166B8 + bl ClearSoftResetDisableMask _02239534: add r0, r5, #0 pop {r3, r4, r5, pc} @@ -24645,7 +24645,7 @@ MOD83_0223955C: ; 0x0223955C ldr r0, [r0, #0x14] bl FUN_0202287C mov r0, #4 - bl FUN_020166B8 + bl ClearSoftResetDisableMask pop {r3, pc} nop _02239570: .word MOD83_0223BC30 @@ -27529,4 +27529,3 @@ MOD83_0223CADC: ; 0x0223CADC .global MOD83_0223CAEC MOD83_0223CAEC: ; 0x0223CAEC .space 0x6F4 - diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index a5838988..ea18857a 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -25,7 +25,7 @@ _021D74FC: mov r0, #3 mov r1, #0x4b lsl r2, r0, #0x10 - bl FUN_0201681C + bl CreateHeap ldr r1, _021D7670 ; =0x00001244 add r0, r6, #0 mov r2, #0x4b @@ -269,7 +269,7 @@ _021D772E: add r0, r6, #0 bl OverlayManager_FreeData mov r0, #0x4b - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} _021D773E: @@ -562,7 +562,7 @@ MOD84_021D7968: ; 0x021D7968 sub sp, #0xc add r4, r0, #0 mov r0, #0x4b - bl FUN_02016B94 + bl BgConfig_Alloc str r0, [r4, #4] ldr r0, _021D7A60 ; =0x021DA68C bl GX_SetBanks @@ -576,17 +576,17 @@ MOD84_021D7968: ; 0x021D7968 add r2, r0, #0 bl GX_SetGraphicsMode ldr r0, _021D7A6C ; =0x021DA650 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r0, [r4, #4] ldr r2, _021D7A70 ; =0x021DA670 mov r1, #1 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021D7A70 ; =0x021DA670 mov r1, #5 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -692,10 +692,10 @@ MOD84_021D7A84: ; 0x021D7A84 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} @@ -934,7 +934,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 add r0, #0x6c mov r1, #0x4b mov r2, #0x20 - bl FUN_02016B20 + bl GF_ExpHeap_FndInitAllocator ldr r0, [r4, #4] mov r1, #0 bl NNS_G3dGetAnmByIdx diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 17f9316e..d97e5a59 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -32,12 +32,12 @@ _021D817A: mov r1, #2 lsl r0, r0, #24 lsr r0, r0, #24 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r5, #20] mov r1, #3 lsl r0, r0, #24 lsr r0, r0, #24 - bl FUN_020178BC + bl SetBgPriority ldr r0, [r5, #16] add r0, r0, #1 str r0, [r5, #16] @@ -574,12 +574,12 @@ MOD84_021D84F8: ; 0x021D84F8 ldr r1, [r4, #0x24] add r0, r6, #0 lsr r2, r2, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, [r4, #0x24] mov r1, #0 bl FillWindowPixelBuffer ldr r0, [r4, #0x24] - bl FUN_02019270 + bl PutWindowTilemap ldr r0, [r4, #0x24] bl CopyWindowToVram mov r0, #0x4b @@ -600,7 +600,7 @@ MOD84_021D84F8: ; 0x021D84F8 ldr r1, [r4, #0x28] add r0, r6, #0 lsr r2, r2, #0x18 - bl FUN_02019064 + bl AddWindowParameterized ldr r0, _021D85B4 ; =MOD84_021D8784 add r1, r4, #0 mov r2, #0 @@ -626,9 +626,9 @@ _021D85C6: ldr r0, [r4, #0x30] bl String_dtor ldr r0, [r4, #0x24] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x28] - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x24] bl FreeToHeap ldr r0, [r4, #0x28] @@ -850,7 +850,7 @@ MOD84_021D8784: ; 0x021D8784 cmp r0, #0 beq _021D8798 ldr r0, [r4, #0x24] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode mov r0, #0 str r0, [r4, #0x18] _021D8798: @@ -862,7 +862,7 @@ _021D8798: lsr r1, r1, #0x18 mov r2, #3 lsr r3, r3, #0x18 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8784 @@ -913,7 +913,7 @@ _021D87D0: ldr r2, [r5, #0x30] bl AddTextPrinterParameterized3 ldr r0, [r5, #0x24] - bl FUN_02019548 + bl CopyWindowPixelsToVram_TextMode add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 @@ -1041,12 +1041,12 @@ MOD84_021D88DC: ; 0x021D88DC mov r1, #2 mov r2, #0 add r3, r6, r7 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r5, #4] mov r1, #6 mov r2, #0 add r3, r6, r7 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4] cmp r0, #0 beq _021D8914 @@ -1115,12 +1115,12 @@ _021D897C: ldr r2, _021D8A6C ; =0x021DAC70 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _021D8A6C ; =0x021DAC70 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1238,10 +1238,10 @@ MOD84_021D8A74: ; 0x021D8A74 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8A74 @@ -1399,12 +1399,12 @@ _021D8B92: ldr r2, _021D8C38 ; =0x021DAC8C mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _021D8C38 ; =0x021DAC8C mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1486,10 +1486,10 @@ MOD84_021D8C3C: ; 0x021D8C3C add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8C3C @@ -1739,12 +1739,12 @@ _021D8E26: ldr r2, _021D903C ; =0x021DACB8 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021D903C ; =0x021DACB8 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -2052,10 +2052,10 @@ _021D90A2: _021D90AC: ldr r0, [r6, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r6, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [sp] bl OS_RestoreInterrupts pop {r3, r4, r5, r6, r7, pc} @@ -2558,12 +2558,12 @@ _021D949A: ldr r2, _021D9540 ; =0x021DACD4 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _021D9540 ; =0x021DACD4 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -2645,10 +2645,10 @@ MOD84_021D9544: ; 0x021D9544 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9544 @@ -2730,22 +2730,22 @@ MOD84_021D95CC: ; 0x021D95CC mov r1, #2 mov r2, #0 add r3, r6, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] mov r1, #6 mov r2, #0 add r3, r6, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] mov r1, #3 mov r2, #0 add r3, r6, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #4] mov r1, #7 mov r2, #0 add r3, r6, #0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit ldr r0, [r4, #0x50] cmp r0, #0 beq _021D9632 @@ -3018,22 +3018,22 @@ _021D9832: ldr r2, _021D99FC ; =0x021DACF0 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021D9A00 ; =0x021DAD0C mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021D99FC ; =0x021DACF0 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021D9A00 ; =0x021DAD0C mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3264,16 +3264,16 @@ _021D9A26: _021D9A30: ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9A04 @@ -3431,12 +3431,12 @@ _021D9B5A: ldr r2, _021D9C00 ; =0x021DAD28 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _021D9C00 ; =0x021DAD28 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -3518,10 +3518,10 @@ MOD84_021D9C04: ; 0x021D9C04 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9C04 @@ -4105,22 +4105,22 @@ _021DA0AA: ldr r2, _021DA30C ; =0x021DAD68 mov r1, #2 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021DA310 ; =0x021DAD4C mov r1, #3 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021DA30C ; =0x021DAD68 mov r1, #6 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #4] ldr r2, _021DA310 ; =0x021DAD4C mov r1, #7 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4437,16 +4437,16 @@ _021DA35C: _021DA366: ldr r0, [r4, #4] mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #6 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end MOD84_021DA31C diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index 221d2f9d..042746c2 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -18,7 +18,7 @@ MOD85_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x4f lsl r2, r2, #0x12 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #8 mov r2, #0x4f @@ -193,7 +193,7 @@ MOD85_021D7644: ; 0x021D7644 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x4f - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 @@ -263,7 +263,7 @@ MOD85_021D76FC: ; 0x021D76FC push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 mov r0, #0x4f - bl FUN_02016B94 + bl BgConfig_Alloc ldr r1, _021D77CC ; =0x0000043C str r0, [r4, r1] bl MOD85_021D77F8 @@ -408,7 +408,7 @@ MOD85_021D7818: ; 0x021D7818 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D78F4 ; =0x021DED28 add r3, sp, #0x54 ldmia r5!, {r0, r1} @@ -423,15 +423,15 @@ MOD85_021D7818: ; 0x021D7818 str r0, [r3] add r0, r4, #0 add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x4f - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r5, _021D78F8 ; =0x021DED44 add r3, sp, #0x38 ldmia r5!, {r0, r1} @@ -446,10 +446,10 @@ MOD85_021D7818: ; 0x021D7818 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D78FC ; =0x021DED60 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -464,10 +464,10 @@ MOD85_021D7818: ; 0x021D7818 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit ldr r5, _021D7900 ; =0x021DED0C add r3, sp, #0 ldmia r5!, {r0, r1} @@ -482,10 +482,10 @@ MOD85_021D7818: ; 0x021D7818 str r0, [r3] add r0, r4, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate add r0, r4, #0 mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit add sp, #0x80 pop {r3, r4, r5, pc} .align 2, 0 @@ -502,16 +502,16 @@ MOD85_021D7904: ; 0x021D7904 push {r4, lr} add r4, r0, #0 mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} @@ -578,7 +578,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, [r1, #0xc] lsl r2, r2, #4 mov r3, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData add r0, r5, #0 bl FreeToHeap mov r1, #0 @@ -598,7 +598,7 @@ MOD85_021D797C: ; 0x021D797C ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #1 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -619,11 +619,11 @@ MOD85_021D797C: ; 0x021D797C ldr r3, [r3, #8] mov r1, #1 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData ldr r0, _021D7B24 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -643,7 +643,7 @@ MOD85_021D797C: ; 0x021D797C ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #2 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -664,11 +664,11 @@ MOD85_021D797C: ; 0x021D797C ldr r3, [r3, #8] mov r1, #2 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData ldr r0, _021D7B24 ; =0x0000043C mov r1, #2 ldr r0, [r4, r0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -686,7 +686,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, [r1, #0xc] lsl r2, r2, #4 mov r3, #0 - bl FUN_02017FB4 + bl BG_LoadPlttData add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -706,7 +706,7 @@ MOD85_021D797C: ; 0x021D797C ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #7 - bl FUN_02017E14 + bl BG_LoadCharTilesData add r0, r5, #0 bl FreeToHeap add r0, r4, #0 @@ -727,11 +727,11 @@ MOD85_021D797C: ; 0x021D797C ldr r3, [r3, #8] mov r1, #7 add r2, #0xc - bl FUN_02017DFC + bl BG_LoadScreenTilemapData ldr r0, _021D7B24 ; =0x0000043C mov r1, #7 ldr r0, [r4, r0] - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram add r0, r5, #0 bl FreeToHeap pop {r3, r4, r5, pc} @@ -790,7 +790,7 @@ MOD85_021D7B28: ; 0x021D7B28 ldr r0, [r5, r0] ldr r2, _021D7BB4 ; =0x021DECE4 add r1, #8 - bl FUN_02019150 + bl AddWindow mov r0, #1 lsl r0, r0, #8 mov r1, #0x4f @@ -815,9 +815,9 @@ MOD85_021D7BB8: ; 0x021D7BB8 add r6, r4, #0 add r6, #8 add r0, r6, #0 - bl FUN_02019570 + bl ClearWindowTilemapAndCopyToVram add r0, r6, #0 - bl FUN_02019178 + bl RemoveWindow ldr r0, _021D7BE8 ; =0x00000408 ldr r0, [r5, r0] bl DestroyMsgData @@ -865,7 +865,7 @@ MOD85_021D7BEC: ; 0x021D7BEC bl AddTextPrinterParameterized add r4, #8 add r0, r4, #0 - bl FUN_02019220 + bl ScheduleWindowCopyToVram add sp, #0xc pop {r3, r4, r5, r6, pc} nop @@ -887,7 +887,7 @@ MOD85_021D7C44: ; 0x021D7C44 bl FillWindowPixelBuffer add r0, r5, r4 add r0, #8 - bl FUN_02019220 + bl ScheduleWindowCopyToVram pop {r3, r4, r5, pc} .align 2, 0 _021D7C68: .word 0x00000408 @@ -1462,7 +1462,7 @@ MOD85_021D80DC: ; 0x021D80DC bl FUN_02009F80 ldr r0, _021D80F4 ; =0x0000043C ldr r0, [r4, r0] - bl FUN_0201AB60 + bl DoScheduledBgGpuUpdates pop {r4, pc} nop _021D80F4: .word 0x0000043C @@ -1727,7 +1727,7 @@ _021D82BC: mov r0, #2 str r0, [r4] ldr r0, _021D82F8 ; =0x000005ED - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 @@ -1861,7 +1861,7 @@ _021D8398: mov r0, #4 str r0, [r4] ldr r0, _021D83F8 ; =0x000005EE - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, pc} nop @@ -1920,7 +1920,7 @@ _021D844A: mov r1, #0 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE b _021D84EA _021D8462: add r0, r4, #0 @@ -1951,7 +1951,7 @@ _021D848E: mov r1, #1 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE b _021D84EA _021D84A6: add r0, r4, #0 @@ -1983,7 +1983,7 @@ _021D84D4: mov r1, #2 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE _021D84EA: ldr r0, [r4, #0x7c] cmp r0, #2 @@ -2587,7 +2587,7 @@ _021D8914: mov r0, #0x1b str r0, [r4] ldr r0, _021D8950 ; =0x000005ED - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 @@ -2703,7 +2703,7 @@ _021D89C4: mov r0, #0x1d str r0, [r4] ldr r0, _021D8A2C ; =0x000005EE - bl FUN_020054C8 + bl PlaySE mov r0, #1 pop {r4, pc} nop @@ -2762,7 +2762,7 @@ _021D8A7E: mov r1, #0 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE b _021D8B1E _021D8A96: add r0, r4, #0 @@ -2793,7 +2793,7 @@ _021D8AC2: mov r1, #1 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE b _021D8B1E _021D8ADA: add r0, r4, #0 @@ -2825,7 +2825,7 @@ _021D8B08: mov r1, #2 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 - bl FUN_020054C8 + bl PlaySE _021D8B1E: ldr r0, [r4, #0x7c] cmp r0, #2 @@ -3262,7 +3262,7 @@ _021D8E3C: mov r0, #0x2d str r0, [r4] ldr r0, _021D8E60 ; =0x000005ED - bl FUN_020054C8 + bl PlaySE add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 @@ -3364,7 +3364,7 @@ MOD85_021D8E98: ; 0x021D8E98 mov r0, #0x2f str r0, [r4] ldr r0, _021D8F80 ; =0x000005EE - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #0x24] cmp r0, #0 bne _021D8F4C @@ -3477,7 +3477,7 @@ _021D8FE0: mov r1, #0 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 - bl FUN_020054C8 + bl PlaySE b _021D9084 _021D8FF8: add r0, r4, #0 @@ -3509,7 +3509,7 @@ _021D9026: mov r1, #1 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 - bl FUN_020054C8 + bl PlaySE b _021D9084 _021D903E: add r0, r4, #0 @@ -3542,7 +3542,7 @@ _021D906E: mov r1, #2 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 - bl FUN_020054C8 + bl PlaySE _021D9084: ldr r0, [r4, #0x7c] cmp r0, #2 @@ -7597,7 +7597,7 @@ _021DADC0: bne _021DAE20 _021DADD2: ldr r0, _021DAE60 ; =0x0000062D - bl FUN_020054C8 + bl PlaySE ldr r1, [r4, #0x60] ldr r0, [r4, #0x64] add r1, r1, r0 @@ -7662,7 +7662,7 @@ _021DAE2E: str r0, [r4, #0x60] _021DAE4C: ldr r0, _021DAE60 ; =0x0000062D - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #8] cmp r0, #1 bne _021DAE5E @@ -8830,7 +8830,7 @@ MOD85_021DB69C: ; 0x021DB69C lsr r0, r0, #0x18 mov r2, #0x20 lsr r3, r3, #0x10 - bl FUN_02017FB4 + bl BG_LoadPlttData pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB69C @@ -9517,7 +9517,7 @@ MOD85_021DBB54: ; 0x021DBB54 bl FUN_0200CA44 mov r0, #0x5f lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE pop {r3, r4, r5, pc} .align 2, 0 _021DBB84: .word MOD85_021DBC48 @@ -10243,11 +10243,11 @@ MOD85_021DC050: ; 0x021DC050 mov r1, #1 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, _021DC090 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0xc pop {r4, r5, pc} .align 2, 0 @@ -10278,11 +10278,11 @@ MOD85_021DC094: ; 0x021DC094 mov r1, #1 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, _021DC0D4 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] - bl FUN_0201AC68 + bl ScheduleBgTilemapBufferTransfer add sp, #0xc pop {r4, r5, pc} .align 2, 0 @@ -11027,7 +11027,7 @@ MOD85_021DC5E0: ; 0x021DC5E0 mov r1, #0 bl FUN_02020208 ldr r0, _021DC644 ; =0x00000624 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] @@ -11126,7 +11126,7 @@ MOD85_021DC6CC: ; 0x021DC6CC bl FUN_020200BC mov r0, #0x6d lsl r0, r0, #4 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] @@ -12483,7 +12483,7 @@ MOD85_021DD0F0: ; 0x021DD0F0 mov r1, #0 bl FUN_020200BC ldr r0, _021DD154 ; =0x000006D1 - bl FUN_020054C8 + bl PlaySE ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s index 2bd7d12a..17607453 100644 --- a/arm9/modules/86/asm/module_86.s +++ b/arm9/modules/86/asm/module_86.s @@ -11,7 +11,7 @@ MOD86_021D74E0: ; 0x021D74E0 mov r0, #3 mov r1, #0x54 lsl r2, r2, #0x10 - bl FUN_0201681C + bl CreateHeap add r0, r5, #0 mov r1, #0x44 mov r2, #0x54 @@ -57,7 +57,7 @@ MOD86_021D74E0: ; 0x021D74E0 str r0, [r2] mov r0, #4 mov r1, #8 - bl FUN_0201669C + bl SetKeyRepeatTimers add r0, r4, #0 bl MOD86_021D76EC add r0, r4, #0 @@ -106,22 +106,22 @@ _021D75B8: bl MOD86_021D7B80 add r0, r6, #0 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #1 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #1 str r0, [sp] @@ -233,7 +233,7 @@ MOD86_021D76B0: ; 0x021D76B0 add r0, r5, #0 bl OverlayManager_FreeData add r0, r4, #0 - bl FUN_020168D0 + bl DestroyHeap mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 @@ -245,7 +245,7 @@ MOD86_021D76E0: ; 0x021D76E0 ldr r0, [r0, #0x10] bx r3 nop -_021D76E8: .word FUN_0201AB60 +_021D76E8: .word DoScheduledBgGpuUpdates thumb_func_end MOD86_021D76E0 thumb_func_start MOD86_021D76EC @@ -264,7 +264,7 @@ _021D76F8: add r0, sp, #0x2c bl GX_SetBanks ldr r0, [r4] - bl FUN_02016B94 + bl BgConfig_Alloc add r3, sp, #0x1c ldr r5, _021D7850 ; =0x021D7C90 str r0, [r4, #0x10] @@ -274,7 +274,7 @@ _021D76F8: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 - bl FUN_02016BBC + bl SetBothScreensModesAndDisable ldr r5, _021D7854 ; =0x021D7CA0 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -297,10 +297,10 @@ _021D76F8: strb r3, [r0, #0x10] ldr r0, [r4, #0x10] add r3, r1, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #0 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #2 add r0, sp, #0 strb r2, [r0, #0x12] @@ -312,10 +312,10 @@ _021D76F8: mov r1, #1 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #4 add r0, sp, #0 strb r1, [r0, #0x12] @@ -328,10 +328,10 @@ _021D76F8: mov r1, #3 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #3 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #4 mov r3, #0 add r0, sp, #0 @@ -343,10 +343,10 @@ _021D76F8: strb r2, [r0, #0x10] ldr r0, [r4, #0x10] add r2, sp, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #4 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r2, #2 add r0, sp, #0 strb r2, [r0, #0x12] @@ -358,10 +358,10 @@ _021D76F8: mov r1, #5 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #5 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r1, #4 add r0, sp, #0 strb r1, [r0, #0x12] @@ -374,34 +374,34 @@ _021D76F8: mov r1, #7 add r2, sp, #0 mov r3, #0 - bl FUN_02016C18 + bl InitBgFromTemplate ldr r0, [r4, #0x10] mov r1, #7 - bl FUN_02018744 + bl BgClearTilemapBufferAndCommit mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer add sp, #0x54 pop {r4, r5, pc} .align 2, 0 @@ -416,46 +416,46 @@ MOD86_021D7858: ; 0x021D7858 add r4, r0, #0 mov r0, #0 add r1, r0, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #1 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #2 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #3 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #4 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #5 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #6 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer mov r0, #7 mov r1, #0 - bl FUN_0201797C + bl ToggleBgLayer ldr r0, [r4, #0x10] mov r1, #0 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #3 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #4 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #5 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] mov r1, #7 - bl FUN_020178A0 + bl FreeBgTilemapBuffer ldr r0, [r4, #0x10] bl FreeToHeap pop {r4, pc} @@ -493,7 +493,7 @@ MOD86_021D78D4: ; 0x021D78D4 ldr r0, [r4, #0x10] add r1, #0x14 add r2, sp, #8 - bl FUN_02019150 + bl AddWindow mov r1, #0 mov r0, #1 lsl r0, r0, #8 @@ -512,7 +512,7 @@ MOD86_021D78D4: ; 0x021D78D4 ldr r0, [r4, #0x10] add r1, #0x24 add r2, sp, #8 - bl FUN_02019150 + bl AddWindow mov r1, #0 mov r0, #1 lsl r0, r0, #8 @@ -535,10 +535,10 @@ MOD86_021D7964: ; 0x021D7964 push {r4, lr} add r4, r0, #0 add r0, #0x24 - bl FUN_02019178 + bl RemoveWindow add r0, r4, #0 add r0, #0x14 - bl FUN_02019178 + bl RemoveWindow ldr r0, [r4, #0x38] bl ScrStrBufs_delete ldr r0, [r4, #0x34] @@ -565,27 +565,27 @@ MOD86_021D7990: ; 0x021D7990 ldr r0, [r4, #0x10] mov r1, #1 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x3c ldrsh r3, [r4, r3] ldr r0, [r4, #0x10] mov r1, #5 mov r2, #3 add r3, #0xc0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x3c ldrsh r3, [r4, r3] ldr r0, [r4, #0x10] mov r1, #0 mov r2, #3 - bl FUN_020179E0 + bl BgSetPosTextAndCommit mov r3, #0x3c ldrsh r3, [r4, r3] ldr r0, [r4, #0x10] mov r1, #4 mov r2, #3 add r3, #0xc0 - bl FUN_020179E0 + bl BgSetPosTextAndCommit pop {r4, pc} .align 2, 0 thumb_func_end MOD86_021D7990 @@ -701,10 +701,10 @@ _021D7A06: mov r2, #0 ldr r0, [r5, #0x10] add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r5, #0x10] mov r1, #1 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -745,10 +745,10 @@ _021D7A06: ldr r0, [r5, #0x10] mov r1, #5 add r3, r2, #0 - bl FUN_020186B4 + bl BgTilemapRectChangePalette ldr r0, [r5, #0x10] mov r1, #5 - bl FUN_02017CD0 + bl BgCommitTilemapBufferToVram mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -772,12 +772,12 @@ _021D7A06: ldr r3, [r5] mov r1, #0x20 add r2, r0, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r3, [r5] mov r0, #4 mov r1, #0x20 mov r2, #0 - bl FUN_02017F18 + bl BG_ClearCharDataRange ldr r2, [r5] mov r0, #0 mov r1, #0x40 diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c index f0ac9472..28147dbd 100644 --- a/arm9/src/GX_layers.c +++ b/arm9/src/GX_layers.c @@ -3,19 +3,19 @@ #include "gx.h" #include "main.h" - -struct GX_LayerData layer_data; +static u32 EngineA_DISPCNT_LayerMask; +static u32 EngineB_DISPCNT_LayerMask; THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks) { GX_ResetBankForBG(); GX_ResetBankForBGExtPltt(); GX_ResetBankForSubBG(); - FUN_020C6034(); + GX_ResetBankForSubBGExtPltt(); GX_ResetBankForOBJ(); GX_ResetBankForOBJExtPltt(); - FUN_020C605C(); GX_ResetBankForSubOBJ(); + GX_ResetBankForSubOBJExtPltt(); GX_ResetBankForTex(); GX_ResetBankForTexPltt(); @@ -34,80 +34,79 @@ THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks) THUMB_FUNC void GX_DisableEngineALayers() { - layer_data.EngineA_DISPCNT_LayerMask = 0; + EngineA_DISPCNT_LayerMask = 0; } THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle) { if (layer_toggle == GX_LAYER_TOGGLE_ON) { - if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) != 0) + if ((EngineA_DISPCNT_LayerMask & layer_mask) != 0) { return; } } else { - if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) == 0) + if ((EngineA_DISPCNT_LayerMask & layer_mask) == 0) { return; } } - reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8; + GX_SetVisiblePlane(EngineA_DISPCNT_LayerMask ^= layer_mask); } THUMB_FUNC void GX_SetEngineALayers(u32 layer_mask) { - layer_data.EngineA_DISPCNT_LayerMask = layer_mask; - reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | layer_mask << 8; + EngineA_DISPCNT_LayerMask = layer_mask; + GX_SetVisiblePlane(layer_mask); } THUMB_FUNC void GX_DisableEngineBLayers() { - layer_data.EngineB_DISPCNT_LayerMask = 0; + EngineB_DISPCNT_LayerMask = 0; } THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle) { if (layer_toggle == GX_LAYER_TOGGLE_ON) { - if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) != 0) + if ((EngineB_DISPCNT_LayerMask & layer_mask) != 0) { return; } } else { - if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) == 0) + if ((EngineB_DISPCNT_LayerMask & layer_mask) == 0) { return; } } - reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8; + GXS_SetVisiblePlane(EngineB_DISPCNT_LayerMask ^= layer_mask); } THUMB_FUNC void GX_BothDispOn() { GX_DispOn(); - - reg_GXS_DB_DISPCNT |= 0x10000; + GXS_DispOn(); } THUMB_FUNC void GX_SwapDisplay() { if (gMain.unk65 == 0) { - reg_GX_POWCNT |= 0x8000; //send display A to lower screen + GX_SetDispSelect(GX_DISP_SELECT_MAIN_SUB); } else { - reg_GX_POWCNT &= 0xFFFF7FFF; // sned display A to upper screen + GX_SetDispSelect(GX_DISP_SELECT_SUB_MAIN); } } THUMB_FUNC u32 GX_GetEngineALayers() { - return layer_data.EngineA_DISPCNT_LayerMask; + return EngineA_DISPCNT_LayerMask; } diff --git a/arm9/src/bag.c b/arm9/src/bag.c index 57609a8f..506f3ec1 100644 --- a/arm9/src/bag.c +++ b/arm9/src/bag.c @@ -296,40 +296,37 @@ void SortPocket(struct ItemSlot * slots, u32 count) } } -extern struct BagView * BagView_new(u8 heap_id); -extern void BagView_setitem(struct BagView * view, struct ItemSlot * slot, u8 pocket, u8 idx); - struct BagView * CreateBagView(struct Bag * bag, const u8 * pockets, u32 heap_id) { - struct BagView * view = BagView_new((u8)heap_id); - int i; - for (i = 0; pockets[i] != 0xFF; i++) + struct BagView * view = BagView_New((u8)heap_id); + + for (u32 i = 0; pockets[i] != 0xFF; i++) { switch (pockets[i]) { case POCKET_KEY_ITEMS: - BagView_setitem(view, bag->keyItems, POCKET_KEY_ITEMS, (u8)i); + BagView_SetItem(view, bag->keyItems, POCKET_KEY_ITEMS, (u8)i); break; case POCKET_ITEMS: - BagView_setitem(view, bag->items, POCKET_ITEMS, (u8)i); + BagView_SetItem(view, bag->items, POCKET_ITEMS, (u8)i); break; case POCKET_BERRIES: - BagView_setitem(view, bag->berries, POCKET_BERRIES, (u8)i); + BagView_SetItem(view, bag->berries, POCKET_BERRIES, (u8)i); break; case POCKET_MEDICINE: - BagView_setitem(view, bag->medicine, POCKET_MEDICINE, (u8)i); + BagView_SetItem(view, bag->medicine, POCKET_MEDICINE, (u8)i); break; case POCKET_BALLS: - BagView_setitem(view, bag->balls, POCKET_BALLS, (u8)i); + BagView_SetItem(view, bag->balls, POCKET_BALLS, (u8)i); break; case POCKET_BATTLE_ITEMS: - BagView_setitem(view, bag->battleItems, POCKET_BATTLE_ITEMS, (u8)i); + BagView_SetItem(view, bag->battleItems, POCKET_BATTLE_ITEMS, (u8)i); break; case POCKET_MAIL: - BagView_setitem(view, bag->mail, POCKET_MAIL, (u8)i); + BagView_SetItem(view, bag->mail, POCKET_MAIL, (u8)i); break; case POCKET_TMHMS: - BagView_setitem(view, bag->TMsHMs, POCKET_TMHMS, (u8)i); + BagView_SetItem(view, bag->TMsHMs, POCKET_TMHMS, (u8)i); break; } } diff --git a/arm9/src/bag_view.c b/arm9/src/bag_view.c new file mode 100644 index 00000000..31d53861 --- /dev/null +++ b/arm9/src/bag_view.c @@ -0,0 +1,210 @@ +#include "global.h" +#include "bag_view.h" +#include "coins.h" +#include "constants/items.h" +#include "heap.h" +#include "msgdata.h" +#include "player_data.h" +#include "script_buffers.h" +#include "seal.h" +#include "unk_0202A1E0.h" + +extern u32 *FUN_0202708C(u32 *); +extern u32 FUN_02027168(u32 *); +extern u16 FUN_02027184(u32 *); +extern u32 *FUN_02027E24(struct SaveBlock2 *sav2); +extern u8 FUN_02029E2C(struct SealCase *, u32); + +THUMB_FUNC struct BagView *BagView_New(u8 heap_id) +{ + struct BagView *ptr = AllocFromHeap(heap_id, sizeof(struct BagView)); + + memset(ptr, 0, sizeof(struct BagView)); + + return ptr; +} + +THUMB_FUNC u32 BagView_sizeof() +{ + return sizeof(struct BagView); +} + +THUMB_FUNC void FUN_0206E30C(struct BagView *bag_view, u8 r1) +{ + bag_view->unk65 = r1; +} + +THUMB_FUNC void FUN_0206E314( + struct BagView *bag_view, struct SaveBlock2 *sav2, u8 r2, struct UnkStruct_0206F164 *r3) +{ + FUN_0206E30C(bag_view, r2); + + bag_view->sav2 = sav2; + bag_view->unk6C = r3; + bag_view->unk66 = 0; +} + +THUMB_FUNC void BagView_SetItem(struct BagView *bag_view, struct ItemSlot *slot, u8 pocket, u8 idx) +{ + bag_view->slots[idx].slot = slot; + bag_view->slots[idx].pocket = pocket; +} + +THUMB_FUNC void FUN_0206E340(struct BagView *bag_view) +{ + bag_view->unk76 = 1; +} + +THUMB_FUNC void FUN_0206E354(struct BagView *bag_view, u32 r1) +{ + bag_view->unk70 = r1; +} + +THUMB_FUNC void FUN_0206E358(struct BagView *bag_view, u8 r1) +{ + bag_view->unk74 = r1; +} + +THUMB_FUNC void FUN_0206E360(struct BagView *bag_view, u16 r1) +{ + bag_view->unk76_2 = r1; +} + +THUMB_FUNC u16 FUN_0206E37C(struct BagView *bag_view) +{ + return bag_view->unk66; +} + +THUMB_FUNC u16 FUN_0206E384(struct BagView *bag_view) +{ + return bag_view->unk68; +} + +THUMB_FUNC u8 FUN_0206E38C(struct BagView *bag_view) +{ + return bag_view->unk74; +} + +THUMB_FUNC u8 FUN_0206E394(struct BagView *bag_view) +{ + return bag_view->unk75; +} + +THUMB_FUNC u32 FUN_0206E39C(struct SaveBlock2 *sav2) +{ + return (u32)CheckCoins(Sav2_PlayerData_GetCoinsAddr(sav2)); +} + +THUMB_FUNC u32 FUN_0206E3A8(struct SaveBlock2 *sav2) +{ + struct SealCase *seal_case = Sav2_SealCase_get(sav2); + u32 i; + u32 count = 0; + + for (i = 1; i <= 0x50; ++i) + { + count += FUN_02029E2C(seal_case, i); + } + + return count; +} + +THUMB_FUNC u32 FUN_0206E3C8(struct SaveBlock2 *sav2) +{ + return FUN_02027168(FUN_0202708C(FUN_02027E24(sav2))); +} + +THUMB_FUNC u32 FUN_0206E3D8(struct SaveBlock2 *sav2) +{ + return FUN_02027184(FUN_0202708C(FUN_02027E24(sav2))); +} + +THUMB_FUNC u32 FUN_0206E3E8(struct SaveBlock2 *sav2) +{ + return SaveStruct23_Substruct2_SetField_0x0(SaveStruct23_GetSubstruct2(sav2), 0, DATA_GET); +} + +THUMB_FUNC BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id) +{ + struct MsgData *msgData = NewMsgDataFromNarc(0, NARC_MSGDATA_MSG, 7, heap_id); + struct ScrStrBufs *scrStrBufs = ScrStrBufs_new(heap_id); + struct String *string; + + if (item_id == ITEM_NONE) + { + string = NewString_ReadMsgData(msgData, 0x63); + } + else if (item_id == ITEM_POINT_CARD) + { + string = NewString_ReadMsgData(msgData, 0x61); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3E8(sav2), 4, 0, TRUE); + } + else if (item_id == ITEM_SEAL_CASE) + { + string = NewString_ReadMsgData(msgData, 0x5C); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3A8(sav2), 4, 0, TRUE); + } + else if (item_id == ITEM_FASHION_CASE) + { + string = NewString_ReadMsgData(msgData, 0x5D); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E3C8(sav2), 3, 0, TRUE); + BufferIntegerAsString(scrStrBufs, 1, FUN_0206E3D8(sav2), 2, 0, TRUE); + } + else if (item_id == ITEM_COIN_CASE) + { + string = NewString_ReadMsgData(msgData, 0x39); + + BufferIntegerAsString(scrStrBufs, 0, FUN_0206E39C(sav2), 5, 0, TRUE); + } + else + { + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + + return FALSE; + } + + StringExpandPlaceholders(scrStrBufs, dest, string); + String_dtor(string); + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + + return TRUE; +} + +THUMB_FUNC void FUN_0206E51C( + struct PlayerData *playerData, struct String *dest, u32 r2, u32 r3, u32 heap_id) +{ +#pragma unused(r2) + struct MsgData *msgData; + + switch (r3) + { + case 1: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 7, heap_id); + + ReadMsgDataIntoString(msgData, 0x38, dest); + DestroyMsgData(msgData); + return; + case 2: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 7, heap_id); + + ReadMsgDataIntoString(msgData, 0x6F, dest); + DestroyMsgData(msgData); + return; + default: + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0xC7, heap_id); + struct ScrStrBufs *scrStrBufs = ScrStrBufs_new(heap_id); + struct String *src = NewString_ReadMsgData(msgData, 0x24); + + BufferPlayersName(scrStrBufs, 0, playerData); + StringExpandPlaceholders(scrStrBufs, dest, src); + String_dtor(src); + ScrStrBufs_delete(scrStrBufs); + DestroyMsgData(msgData); + return; + } +} diff --git a/arm9/src/bg_window.c b/arm9/src/bg_window.c new file mode 100644 index 00000000..2986645f --- /dev/null +++ b/arm9/src/bg_window.c @@ -0,0 +1,5456 @@ +#include "global.h" +#include "bg_window.h" +#include "GX_layers.h" +#include "game_init.h" +#include "gx.h" +#include "heap.h" + +const u8 sTilemapWidthByBufferSize[] = { + [GF_BG_SCR_SIZE_128x128] = 0x10, + [GF_BG_SCR_SIZE_256x256] = 0x20, + [GF_BG_SCR_SIZE_256x512] = 0x20, + [GF_BG_SCR_SIZE_512x256] = 0x20, + [GF_BG_SCR_SIZE_512x512] = 0x20, + [GF_BG_SCR_SIZE_1024x1024] = 0x20, +}; + +void (*const sScheduleWindowCopyToVramFuncs[])(struct Window *) = { + ScheduleWindowCopyToVram_TextMode, + ScheduleWindowCopyToVram_AffineMode, + ScheduleWindowCopyToVram_TextMode, +}; + +void (*const sClearWindowTilemapAndCopyToVramFuncs[])(struct Window *) = { + ClearWindowTilemapAndCopyToVram_TextMode, + ClearWindowTilemapAndCopyToVram_AffineMode, + ClearWindowTilemapAndCopyToVram_TextMode, +}; + +void (*const sClearWindowTilemapAndScheduleTransferFuncs[])(struct Window *) = { + ClearWindowTilemapAndScheduleTransfer_TextMode, + ClearWindowTilemapAndScheduleTransfer_AffineMode, + ClearWindowTilemapAndScheduleTransfer_TextMode, +}; + +void (*const sPutWindowTilemapFuncs[])(struct Window *) = { + PutWindowTilemap_TextMode, + PutWindowTilemap_AffineMode, + PutWindowTilemap_TextMode, +}; + +void (*const sCopyWindowToVramFuncs[])(struct Window *) = { + CopyWindowToVram_TextMode, + CopyWindowToVram_AffineMode, + CopyWindowToVram_TextMode, +}; + +void (*const sClearWindowTilemapFuncs[])(struct Window *) = { + ClearWindowTilemapText, + ClearWindowTilemapAffine, + ClearWindowTilemapText, +}; + +THUMB_FUNC struct BgConfig *BgConfig_Alloc(u32 heap_id) +{ + struct BgConfig *ptr = AllocFromHeap(heap_id, sizeof(struct BgConfig)); + memset(ptr, 0, sizeof(struct BgConfig)); + ptr->heap_id = heap_id; + ptr->scrollScheduled = 0; + ptr->bufferTransferScheduled = 0; + + return ptr; +} + +THUMB_FUNC u32 BgConfig_GetHeapId(struct BgConfig *bgConfig) +{ + return bgConfig->heap_id; +} + +THUMB_FUNC void SetBothScreensModesAndDisable(const struct GraphicsModes *modes) +{ + GX_SetGraphicsMode(modes->dispMode, modes->bgMode, modes->_2d3dMode); + GXS_SetGraphicsMode(modes->subMode); + GX_SetBGScrOffset(0); + GX_SetBGCharOffset(0); + + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); +} + +THUMB_FUNC void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, u32 whichScreen) +{ + if (whichScreen == 0) + { + GX_SetGraphicsMode(gfxModes->dispMode, gfxModes->bgMode, gfxModes->_2d3dMode); + GX_DisableEngineALayers(); + } + else + { + GXS_SetGraphicsMode(gfxModes->subMode); + GX_DisableEngineBLayers(); + } +} + +THUMB_FUNC void InitBgFromTemplate( + struct BgConfig *bgConfig, u8 bgId, const struct BgTemplate *template, u8 bgMode) +{ + u8 screenSize = TranslateGFBgModePairToGXScreenSize(template->size, bgMode); + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_0_F, GX_LAYER_TOGGLE_ON); + G2_SetBG0Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt); + G2_SetBG0Priority(template->priority); + G2_BG0Mosaic(template->mosaic); + break; + + case GF_BG_LYR_MAIN_1: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_1_F, GX_LAYER_TOGGLE_ON); + G2_SetBG1Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt); + G2_SetBG1Priority(template->priority); + G2_BG1Mosaic(template->mosaic); + break; + + case GF_BG_LYR_MAIN_2: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_2_F, GX_LAYER_TOGGLE_ON); + switch (bgMode) + { + default: + case GF_BG_TYPE_TEXT: + G2_SetBG2ControlText(screenSize, template->colorMode, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_AFFINE: + G2_SetBG2ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_256x16PLTT: + G2_SetBG2Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + } + G2_SetBG2Priority(template->priority); + G2_BG2Mosaic(template->mosaic); + break; + + case GF_BG_LYR_MAIN_3: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_3_F, GX_LAYER_TOGGLE_ON); + switch (bgMode) + { + default: + case GF_BG_TYPE_TEXT: + G2_SetBG3ControlText(screenSize, template->colorMode, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_AFFINE: + G2_SetBG3ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_256x16PLTT: + G2_SetBG3Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + } + G2_SetBG3Priority(template->priority); + G2_BG3Mosaic(template->mosaic); + break; + + case GF_BG_LYR_SUB_0: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_0_F, GX_LAYER_TOGGLE_ON); + G2S_SetBG0Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt); + G2S_SetBG0Priority(template->priority); + G2S_BG0Mosaic(template->mosaic); + break; + + case GF_BG_LYR_SUB_1: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_1_F, GX_LAYER_TOGGLE_ON); + G2S_SetBG1Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt); + G2S_SetBG1Priority(template->priority); + G2S_BG1Mosaic(template->mosaic); + break; + + case GF_BG_LYR_SUB_2: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_2_F, GX_LAYER_TOGGLE_ON); + switch (bgMode) + { + default: + case GF_BG_TYPE_TEXT: + G2S_SetBG2ControlText(screenSize, template->colorMode, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_AFFINE: + G2S_SetBG2ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_256x16PLTT: + G2S_SetBG2Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + } + G2S_SetBG2Priority(template->priority); + G2S_BG2Mosaic(template->mosaic); + break; + + case GF_BG_LYR_SUB_3: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_3_F, GX_LAYER_TOGGLE_ON); + switch (bgMode) + { + default: + case GF_BG_TYPE_TEXT: + G2S_SetBG3ControlText(screenSize, template->colorMode, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_AFFINE: + G2S_SetBG3ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + case GF_BG_TYPE_256x16PLTT: + G2S_SetBG3Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase); + break; + } + G2S_SetBG3Priority(template->priority); + G2S_BG3Mosaic(template->mosaic); + break; + } + + bgConfig->bgs[bgId].rotation = 0; + bgConfig->bgs[bgId].xScale = FX32_ONE; + bgConfig->bgs[bgId].yScale = FX32_ONE; + bgConfig->bgs[bgId].centerX = 0; + bgConfig->bgs[bgId].centerY = 0; + + if (template->bufferSize != 0) + { + bgConfig->bgs[bgId].tilemapBuffer = AllocFromHeap(bgConfig->heap_id, template->bufferSize); + + MI_CpuClear16(bgConfig->bgs[bgId].tilemapBuffer, template->bufferSize); + + bgConfig->bgs[bgId].bufferSize = template->bufferSize; + bgConfig->bgs[bgId].baseTile = template->baseTile; + } + else + { + bgConfig->bgs[bgId].tilemapBuffer = NULL; + bgConfig->bgs[bgId].bufferSize = 0; + bgConfig->bgs[bgId].baseTile = 0; + } + + bgConfig->bgs[bgId].size = template->size; + bgConfig->bgs[bgId].mode = bgMode; + bgConfig->bgs[bgId].colorMode = template->colorMode; + + if (bgMode == GF_BG_TYPE_TEXT && template->colorMode == GX_BG_COLORMODE_16) + { + bgConfig->bgs[bgId].tileSize = 0x20; + } + else + { + bgConfig->bgs[bgId].tileSize = 0x40; + } + + BgSetPosTextAndCommit(bgConfig, bgId, BG_POS_OP_SET_X, template->x); + BgSetPosTextAndCommit(bgConfig, bgId, BG_POS_OP_SET_Y, template->y); +} + +THUMB_FUNC void SetBgControlParam(struct BgConfig *config, u8 bgId, u32 attr, u8 value) +{ + if (attr == GF_BG_CNT_SET_COLOR_MODE) + { + config->bgs[bgId].colorMode = value; + } + + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + GXBg01Control bg0cnt = G2_GetBG0Control(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg0cnt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg0cnt.charBase = value; + } + + G2_SetBG0Control(bg0cnt.screenSize, config->bgs[bgId].colorMode, bg0cnt.screenBase, bg0cnt.charBase, bg0cnt.bgExtPltt); + break; + case GF_BG_LYR_MAIN_1: + GXBg01Control bg1cnt = G2_GetBG1Control(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg1cnt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg1cnt.charBase = value; + } + + G2_SetBG1Control(bg1cnt.screenSize, config->bgs[bgId].colorMode, bg1cnt.screenBase, bg1cnt.charBase, bg1cnt.bgExtPltt); + break; + case GF_BG_LYR_MAIN_2: + switch (config->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + GXBg23ControlText bg2cnt_tx = G2_GetBG2ControlText(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cnt_tx.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cnt_tx.charBase = value; + } + + G2_SetBG2ControlText(bg2cnt_tx.screenSize, config->bgs[bgId].colorMode, bg2cnt_tx.screenBase, bg2cnt_tx.charBase); + break; + case GF_BG_TYPE_AFFINE: + GXBg23ControlAffine bg2cnt_aff = G2_GetBG2ControlAffine(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cnt_aff.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cnt_aff.charBase = value; + } + + G2_SetBG2ControlAffine(bg2cnt_aff.screenSize, bg2cnt_aff.areaOver, bg2cnt_aff.screenBase, + bg2cnt_aff.charBase); + break; + case GF_BG_TYPE_256x16PLTT: + GXBg23Control256x16Pltt bg2cnt_256x16pltt = G2_GetBG2Control256x16Pltt(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cnt_256x16pltt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cnt_256x16pltt.charBase = value; + } + + G2_SetBG2Control256x16Pltt(bg2cnt_256x16pltt.screenSize, bg2cnt_256x16pltt.areaOver, + bg2cnt_256x16pltt.screenBase, bg2cnt_256x16pltt.charBase); + break; + } + break; + case GF_BG_LYR_MAIN_3: + switch (config->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + GXBg23ControlText bg3cnt_tx = G2_GetBG3ControlText(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cnt_tx.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cnt_tx.charBase = value; + } + + G2_SetBG3ControlText(bg3cnt_tx.screenSize, config->bgs[bgId].colorMode, bg3cnt_tx.screenBase, bg3cnt_tx.charBase); + break; + case GF_BG_TYPE_AFFINE: + GXBg23ControlAffine bg3cnt_aff = G2_GetBG3ControlAffine(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cnt_aff.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cnt_aff.charBase = value; + } + + G2_SetBG3ControlAffine(bg3cnt_aff.screenSize, bg3cnt_aff.areaOver, bg3cnt_aff.screenBase, + bg3cnt_aff.charBase); + break; + case GF_BG_TYPE_256x16PLTT: + GXBg23Control256x16Pltt bg3cnt_256x16pltt = G2_GetBG3Control256x16Pltt(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cnt_256x16pltt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cnt_256x16pltt.charBase = value; + } + + G2_SetBG3Control256x16Pltt(bg3cnt_256x16pltt.screenSize, bg3cnt_256x16pltt.areaOver, + bg3cnt_256x16pltt.screenBase, bg3cnt_256x16pltt.charBase); + break; + } + break; + case GF_BG_LYR_SUB_0: + GXBg01Control bg0cntsub = G2S_GetBG0Control(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg0cntsub.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg0cntsub.charBase = value; + } + + G2S_SetBG0Control(bg0cntsub.screenSize, config->bgs[bgId].colorMode, bg0cntsub.screenBase, bg0cntsub.charBase, bg0cntsub.bgExtPltt); + break; + case GF_BG_LYR_SUB_1: + GXBg01Control bg1cntsub = G2S_GetBG1Control(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg1cntsub.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg1cntsub.charBase = value; + } + + G2S_SetBG1Control(bg1cntsub.screenSize, config->bgs[bgId].colorMode, bg1cntsub.screenBase, bg1cntsub.charBase, bg1cntsub.bgExtPltt); + break; + case GF_BG_LYR_SUB_2: + switch (config->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + GXBg23ControlText bg2cntsub_tx = G2S_GetBG2ControlText(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cntsub_tx.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cntsub_tx.charBase = value; + } + + G2S_SetBG2ControlText(bg2cntsub_tx.screenSize, config->bgs[bgId].colorMode, bg2cntsub_tx.screenBase, bg2cntsub_tx.charBase); + break; + case GF_BG_TYPE_AFFINE: + GXBg23ControlAffine bg2cntsub_aff = G2S_GetBG2ControlAffine(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cntsub_aff.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cntsub_aff.charBase = value; + } + + G2S_SetBG2ControlAffine(bg2cntsub_aff.screenSize, bg2cntsub_aff.areaOver, bg2cntsub_aff.screenBase, + bg2cntsub_aff.charBase); + break; + case GF_BG_TYPE_256x16PLTT: + GXBg23Control256x16Pltt bg2cntsub_256x16pltt = G2S_GetBG2Control256x16Pltt(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg2cntsub_256x16pltt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg2cntsub_256x16pltt.charBase = value; + } + + G2S_SetBG2Control256x16Pltt(bg2cntsub_256x16pltt.screenSize, bg2cntsub_256x16pltt.areaOver, + bg2cntsub_256x16pltt.screenBase, bg2cntsub_256x16pltt.charBase); + break; + } + break; + case GF_BG_LYR_SUB_3: + switch (config->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + GXBg23ControlText bg3cntsub_tx = G2S_GetBG3ControlText(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cntsub_tx.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cntsub_tx.charBase = value; + } + + G2S_SetBG3ControlText(bg3cntsub_tx.screenSize, config->bgs[bgId].colorMode, bg3cntsub_tx.screenBase, bg3cntsub_tx.charBase); + break; + case GF_BG_TYPE_AFFINE: + GXBg23ControlAffine bg3cntsub_aff = G2S_GetBG3ControlAffine(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cntsub_aff.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cntsub_aff.charBase = value; + } + + G2S_SetBG3ControlAffine(bg3cntsub_aff.screenSize, bg3cntsub_aff.areaOver, bg3cntsub_aff.screenBase, + bg3cntsub_aff.charBase); + break; + case GF_BG_TYPE_256x16PLTT: + GXBg23Control256x16Pltt bg3cntsub_256x16pltt = G2S_GetBG3Control256x16Pltt(); + if (attr == GF_BG_CNT_SET_SCREEN_BASE) + { + bg3cntsub_256x16pltt.screenBase = value; + } + else if (attr == GF_BG_CNT_SET_CHAR_BASE) + { + bg3cntsub_256x16pltt.charBase = value; + } + + G2S_SetBG3Control256x16Pltt(bg3cntsub_256x16pltt.screenSize, bg3cntsub_256x16pltt.areaOver, + bg3cntsub_256x16pltt.screenBase, bg3cntsub_256x16pltt.charBase); + break; + } + break; + } +} + +THUMB_FUNC u8 TranslateGFBgModePairToGXScreenSize(u8 size, u32 bgMode) +{ + switch (bgMode) + { + case GF_BG_TYPE_TEXT: + + if (size == GF_BG_SCR_SIZE_256x256) + { + return GX_BG_SCRSIZE_TEXT_256x256; + } + else if (size == GF_BG_SCR_SIZE_256x512) + { + return GX_BG_SCRSIZE_TEXT_256x512; + } + else if (size == GF_BG_SCR_SIZE_512x256) + { + return GX_BG_SCRSIZE_TEXT_512x256; + } + else if (size == GF_BG_SCR_SIZE_512x512) + { + return GX_BG_SCRSIZE_TEXT_512x512; + } + break; + + case GF_BG_TYPE_AFFINE: + + if (size == GF_BG_SCR_SIZE_128x128) + { + return GX_BG_SCRSIZE_AFFINE_128x128; + } + else if (size == GF_BG_SCR_SIZE_256x256) + { + return GX_BG_SCRSIZE_AFFINE_256x256; + } + else if (size == GF_BG_SCR_SIZE_512x512) + { + return GX_BG_SCRSIZE_AFFINE_512x512; + } + else if (size == GF_BG_SCR_SIZE_1024x1024) + { + return GX_BG_SCRSIZE_AFFINE_1024x1024; + } + break; + + case GF_BG_TYPE_256x16PLTT: + + if (size == GF_BG_SCR_SIZE_128x128) + { + return GX_BG_SCRSIZE_256x16PLTT_128x128; + } + else if (size == GF_BG_SCR_SIZE_256x256) + { + return GX_BG_SCRSIZE_256x16PLTT_256x256; + } + else if (size == GF_BG_SCR_SIZE_512x512) + { + return GX_BG_SCRSIZE_256x16PLTT_512x512; + } + else if (size == GF_BG_SCR_SIZE_1024x1024) + { + return GX_BG_SCRSIZE_256x16PLTT_1024x1024; + } + break; + } + + return GX_BG_SCRSIZE_TEXT_256x256; // GX_BG_SCRSIZE_AFFINE_128x128; GX_BG_SCRSIZE_256x16PLTT_128x128; +} + +THUMB_FUNC void GetBgScreenDimensions(u32 screenSize, u8 *width_p, u8 *height_p) +{ + switch (screenSize) + { + case GF_BG_SCR_SIZE_128x128: + *width_p = 0x10; + *height_p = 0x10; + break; + case GF_BG_SCR_SIZE_256x256: + *width_p = 0x20; + *height_p = 0x20; + break; + case GF_BG_SCR_SIZE_256x512: + *width_p = 0x20; + *height_p = 0x40; + break; + case GF_BG_SCR_SIZE_512x256: + *width_p = 0x40; + *height_p = 0x20; + break; + case GF_BG_SCR_SIZE_512x512: + *width_p = 0x40; + *height_p = 0x40; + break; + case GF_BG_SCR_SIZE_1024x1024: + *width_p = 0x80; + *height_p = 0x80; + break; + } +} + +THUMB_FUNC void FreeBgTilemapBuffer(struct BgConfig *bgConfig, u32 bgId) +{ + if (bgConfig->bgs[bgId].tilemapBuffer != NULL) + { + FreeToHeap(bgConfig->bgs[bgId].tilemapBuffer); + bgConfig->bgs[bgId].tilemapBuffer = NULL; + } +} + +THUMB_FUNC void SetBgPriority(u32 bgId, u16 priority) +{ + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + G2_SetBG0Priority(priority); + break; + case GF_BG_LYR_MAIN_1: + G2_SetBG1Priority(priority); + break; + case GF_BG_LYR_MAIN_2: + G2_SetBG2Priority(priority); + break; + case GF_BG_LYR_MAIN_3: + G2_SetBG3Priority(priority); + break; + case GF_BG_LYR_SUB_0: + G2S_SetBG0Priority(priority); + break; + case GF_BG_LYR_SUB_1: + G2S_SetBG1Priority(priority); + break; + case GF_BG_LYR_SUB_2: + G2S_SetBG2Priority(priority); + break; + case GF_BG_LYR_SUB_3: + G2S_SetBG3Priority(priority); + break; + } +} + +THUMB_FUNC void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle) +{ + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_0_F, toggle); + break; + case GF_BG_LYR_MAIN_1: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_1_F, toggle); + break; + case GF_BG_LYR_MAIN_2: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_2_F, toggle); + break; + case GF_BG_LYR_MAIN_3: + GX_EngineAToggleLayers(GF_BG_LYR_MAIN_3_F, toggle); + break; + case GF_BG_LYR_SUB_0: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_0_F, toggle); + break; + case GF_BG_LYR_SUB_1: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_1_F, toggle); + break; + case GF_BG_LYR_SUB_2: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_2_F, toggle); + break; + case GF_BG_LYR_SUB_3: + GX_EngineBToggleLayers(GF_BG_LYR_SUB_3_F, toggle); + break; + } +} + +THUMB_FUNC void BgSetPosTextAndCommit(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 val) +{ + Bg_SetPosText(&bgConfig->bgs[bgId], op, val); + + u32 x = (u32)bgConfig->bgs[bgId].hOffset; + u32 y = (u32)bgConfig->bgs[bgId].vOffset; + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + G2_SetBG0Offset(x, y); + break; + case GF_BG_LYR_MAIN_1: + G2_SetBG1Offset(x, y); + break; + case GF_BG_LYR_MAIN_2: + if (bgConfig->bgs[GF_BG_LYR_MAIN_2].mode == 0) + { + G2_SetBG2Offset(x, y); + } + else + { + BgAffineReset(bgConfig, GF_BG_LYR_MAIN_2); + } + + break; + case GF_BG_LYR_MAIN_3: + if (bgConfig->bgs[GF_BG_LYR_MAIN_3].mode == 0) + { + G2_SetBG3Offset(x, y); + } + else + { + BgAffineReset(bgConfig, GF_BG_LYR_MAIN_3); + } + break; + case GF_BG_LYR_SUB_0: + G2S_SetBG0Offset(x, y); + break; + case GF_BG_LYR_SUB_1: + G2S_SetBG1Offset(x, y); + break; + case GF_BG_LYR_SUB_2: + if (bgConfig->bgs[GF_BG_LYR_SUB_2].mode == 0) + { + G2S_SetBG2Offset(x, y); + } + else + { + BgAffineReset(bgConfig, GF_BG_LYR_SUB_2); + } + break; + case GF_BG_LYR_SUB_3: + if (bgConfig->bgs[GF_BG_LYR_SUB_3].mode == 0) + { + G2S_SetBG3Offset(x, y); + } + else + { + BgAffineReset(bgConfig, GF_BG_LYR_SUB_3); + } + break; + } +} + +THUMB_FUNC fx32 Bg_GetXpos(struct BgConfig *bgConfig, u32 bgId) +{ + return bgConfig->bgs[bgId].hOffset; +} + +THUMB_FUNC fx32 Bg_GetYpos(struct BgConfig *bgConfig, u32 bgId) +{ + return bgConfig->bgs[bgId].vOffset; +} + +THUMB_FUNC void Bg_SetTextDimAndAffineParams(struct BgConfig *bgConfig, + u32 bgId, + u32 txOp, + fx32 txVal, + struct Mtx22 *mtx, + fx32 centerX, + fx32 centerY) +{ + Bg_SetPosText(&bgConfig->bgs[bgId], txOp, txVal); + SetBgAffine(bgConfig, bgId, mtx, centerX, centerY); +} + +THUMB_FUNC void Bg_SetPosText(struct Bg *bg, u32 op, fx32 val) +{ + switch (op) + { + case BG_POS_OP_SET_X: + bg->hOffset = val; + break; + case BG_POS_OP_ADD_X: + bg->hOffset += val; + break; + case BG_POS_OP_SUB_X: + bg->hOffset -= val; + break; + case BG_POS_OP_SET_Y: + bg->vOffset = val; + break; + case BG_POS_OP_ADD_Y: + bg->vOffset += val; + break; + case BG_POS_OP_SUB_Y: + bg->vOffset -= val; + break; + } +} + +THUMB_FUNC void SetBgAffine( + struct BgConfig *bgConfig, u32 bgId, struct Mtx22 *mtx, fx32 centerX, fx32 centerY) +{ + switch (bgId) + { + case GF_BG_LYR_MAIN_2: + G2_SetBG2Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset); + break; + case GF_BG_LYR_MAIN_3: + G2_SetBG3Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset); + break; + case GF_BG_LYR_SUB_2: + G2S_SetBG2Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset); + break; + case GF_BG_LYR_SUB_3: + G2S_SetBG3Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset); + break; + } +} + +THUMB_FUNC void BgAffineReset(struct BgConfig *bgConfig, u32 bgId) +{ + struct Mtx22 mtx; + MTX22_2DAffine(&mtx, 0, FX32_ONE, FX32_ONE, 0); + SetBgAffine(bgConfig, bgId, &mtx, 0, 0); +} + +THUMB_FUNC void CopyOrUncompressTilemapData(const void *src, void *dest, u32 size) +{ + if (size == 0) + { + MI_UncompressLZ8(src, dest); + return; + } + + if (((u32)src % 4) == 0 && ((u32)dest % 4) == 0 && ((u16)size % 4) == 0) + { + MI_CpuCopy32(src, dest, size); + return; + } + + MI_CpuCopy16(src, dest, size); +} + +THUMB_FUNC void BgCommitTilemapBufferToVram(struct BgConfig *bgConfig, u32 bgId) +{ + BgCopyOrUncompressTilemapBufferRangeToVram(bgConfig, + bgId, + bgConfig->bgs[bgId].tilemapBuffer, + bgConfig->bgs[bgId].bufferSize, + bgConfig->bgs[bgId].baseTile); +} + +THUMB_FUNC void BgCopyOrUncompressTilemapBufferRangeToVram( + struct BgConfig *bgConfig, u32 bgId, u32 *src, u32 size, u32 tileOffset) +{ + if (size == 0) + { + void *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer; + if (tilemapBuffer != 0) + { + CopyOrUncompressTilemapData(src, tilemapBuffer, size); + LoadBgVramScr(bgId, tilemapBuffer, bgConfig->bgs[bgId].baseTile * 2, bgConfig->bgs[bgId].bufferSize); + return; + } + + u32 uncompSize = src[0] >> 8; + void *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, uncompSize); + CopyOrUncompressTilemapData(src, ptr, size); + LoadBgVramScr(bgId, ptr, tileOffset * 2, uncompSize); + FreeToHeap(ptr); + return; + } + + LoadBgVramScr(bgId, src, tileOffset * 2, size); +} + +THUMB_FUNC void LoadBgVramScr(u32 bgId, void *buffer_p, u32 offset, u32 size) +{ + DC_FlushRange(buffer_p, size); + + switch (bgId) + { + case 0: + GX_LoadBG0Scr(buffer_p, offset, size); + break; + case 1: + GX_LoadBG1Scr(buffer_p, offset, size); + break; + case 2: + GX_LoadBG2Scr(buffer_p, offset, size); + break; + case 3: + GX_LoadBG3Scr(buffer_p, offset, size); + break; + case 4: + GXS_LoadBG0Scr(buffer_p, offset, size); + break; + case 5: + GXS_LoadBG1Scr(buffer_p, offset, size); + break; + case 6: + GXS_LoadBG2Scr(buffer_p, offset, size); + break; + case 7: + GXS_LoadBG3Scr(buffer_p, offset, size); + break; + } +} + +THUMB_FUNC void BG_LoadScreenTilemapData( + struct BgConfig *bgConfig, u32 bgId, void *src, u32 numTiles) +{ + CopyOrUncompressTilemapData(src, bgConfig->bgs[bgId].tilemapBuffer, numTiles); +} + +THUMB_FUNC void BG_LoadCharTilesData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 offset, u32 numTiles) +{ + if (bgConfig->bgs[bgId].colorMode == GX_BG_COLORMODE_16) + { + BG_LoadCharPixelData(bgConfig, bgId, charData, offset, numTiles << 5); + return; + } + BG_LoadCharPixelData(bgConfig, bgId, charData, offset, numTiles << 6); +} + +THUMB_FUNC void BG_LoadCharPixelData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 size, u32 offset) +{ + if (size == 0) + { + + u32 uncompressedSize = charData[0] >> 8; + void *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, uncompressedSize); + CopyOrUncompressTilemapData(charData, ptr, size); + LoadBgVramChar(bgId, ptr, offset, uncompressedSize); + FreeToHeap(ptr); + return; + } + + LoadBgVramChar(bgId, charData, offset, size); +} + +THUMB_FUNC void LoadBgVramChar(u32 bgId, void *buffer_p, u32 offset, u32 size) +{ + DC_FlushRange(buffer_p, size); + + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + GX_LoadBG0Char(buffer_p, offset, size); + break; + case GF_BG_LYR_MAIN_1: + GX_LoadBG1Char(buffer_p, offset, size); + break; + case GF_BG_LYR_MAIN_2: + GX_LoadBG2Char(buffer_p, offset, size); + break; + case GF_BG_LYR_MAIN_3: + GX_LoadBG3Char(buffer_p, offset, size); + break; + case GF_BG_LYR_SUB_0: + GXS_LoadBG0Char(buffer_p, offset, size); + break; + case GF_BG_LYR_SUB_1: + GXS_LoadBG1Char(buffer_p, offset, size); + break; + case GF_BG_LYR_SUB_2: + GXS_LoadBG2Char(buffer_p, offset, size); + break; + case GF_BG_LYR_SUB_3: + GXS_LoadBG3Char(buffer_p, offset, size); + break; + } +} + +THUMB_FUNC void BG_ClearCharDataRange(u32 bgId, u32 size, u32 offset, u32 heap_id) +{ + void *ptr = AllocFromHeapAtEnd(heap_id, size); + memset(ptr, 0, size); + + LoadBgVramChar(bgId, ptr, offset, size); + FreeToHeapExplicit(heap_id, ptr); +} + +THUMB_FUNC void BG_FillCharDataRange( + struct BgConfig *param0, u32 bgId, u32 fillValue, u32 count, u32 offset) +{ + void *st4; + u32 size = count * param0->bgs[bgId].tileSize; + u32 r5 = fillValue; + st4 = AllocFromHeapAtEnd(param0->heap_id, size); + + if (param0->bgs[bgId].tileSize == 0x20) + { + r5 = (r5 << 0xc | r5 << 0x8 | r5 << 0x4 | r5); + r5 |= r5 << 0x10; + } + else + { + r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5; + } + + MI_CpuFillFast(st4, r5, size); + + LoadBgVramChar((u8)bgId, st4, param0->bgs[bgId].tileSize * offset, size); + FreeToHeap(st4); +} + +THUMB_FUNC void BG_LoadPlttData(u32 bgId, void *plttData, u32 size, u32 offset) +{ + DC_FlushRange(plttData, size); + if (bgId < GF_BG_LYR_MAIN_CNT) + { + GX_LoadBGPltt(plttData, offset, size); + return; + } + + GXS_LoadBGPltt(plttData, offset, size); +} + +THUMB_FUNC void BG_SetMaskColor(u32 bgId, u32 value) +{ + BG_LoadPlttData(bgId, &value, 2, 0); +} + +THUMB_FUNC u16 GetTileMapIndexFromCoords(u8 x, u8 y, u8 screenSize) +{ + switch (screenSize) + { + case GF_BG_SCR_SIZE_128x128: + return (u16)(x + (y << 4)); + case GF_BG_SCR_SIZE_256x256: + case GF_BG_SCR_SIZE_256x512: + return (u16)(x + (y << 5)); + case GF_BG_SCR_SIZE_512x256: + return (u16)((x & 0x1f) + ((y + (x & ~0x1f)) << 5)); + case GF_BG_SCR_SIZE_512x512: + u16 res = (u16)(((u16)((x >> 5) + (y >> 5) * 2)) << 10); + res += (x & 0x1f) + ((y & 0x1f) << 5); + return res; + case GF_BG_SCR_SIZE_1024x1024: + return 0; + } + + return x; +} + +THUMB_FUNC u16 GetSrcTileMapIndexFromCoords(u8 x, u8 y, u8 width, u8 height) +{ + u8 coordType = 0; + u16 r3 = 0; + s16 r4 = (s16)(width - 32); + s16 r5 = (s16)(height - 32); + + if (((u32)x >> 5) != 0) + { + coordType++; + } + + if (((u32)y >> 5) != 0) + { + coordType += 2; + } + + switch (coordType) + { + case 0: + if (r4 >= 0) + { + r3 += x + (y << 5); + } + else + { + r3 += x + y * width; + } + break; + case 1: + if (r5 >= 0) + { + r3 += 0x400; + } + else + { + r3 += (height << 5); + } + + r3 += (x & 0x1f) + y * r4; + break; + case 2: + r3 += width << 5; + if (r4 >= 0) + { + r3 += x + ((y & 0x1f) << 5); + } + else + { + r3 += x + (y & 0x1f) * width; + } + break; + case 3: + r3 += (width + r5) << 5; + r3 += (x & 0x1f) + (y & 0x1f) * r4; + break; + } + + return r3; +} + +THUMB_FUNC void LoadRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + void *src, + u8 dstX, + u8 dstY, + u8 width, + u8 height) +{ + CopyToBgTilemapRect(bgConfig, bgId, dstX, dstY, width, height, src, 0, 0, width, height); +} + +THUMB_FUNC void CopyToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight) +{ + if (bgConfig->bgs[bgId].mode != 1) + { + CopyBgTilemapRectText(&bgConfig->bgs[bgId], + dstX, + dstY, + dstWidth, + dstHeight, + (u16 *) src, + srcX, + srcY, + srcWidth, + srcHeight, + 0); + } + else + { + CopyBgTilemapRectAffine(&bgConfig->bgs[bgId], + dstX, + dstY, + dstWidth, + dstHeight, + (u8 *) src, + srcX, + srcY, + srcWidth, + srcHeight, + 0); + } +} + +THUMB_FUNC void CopyRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight) +{ + if (bgConfig->bgs[bgId].mode != 1) + { + CopyBgTilemapRectText(&bgConfig->bgs[bgId], + dstX, + dstY, + dstWidth, + dstHeight, + (u16 *) src, + srcX, + srcY, + srcWidth, + srcHeight, + TRUE); + } + else + { + CopyBgTilemapRectAffine(&bgConfig->bgs[bgId], + dstX, + dstY, + dstWidth, + dstHeight, + (u8 *) src, + srcX, + srcY, + srcWidth, + srcHeight, + TRUE); + } +} + +THUMB_FUNC void CopyBgTilemapRectText(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u16 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims) +{ + u16 *tilemapBuffer = bg->tilemapBuffer; + + if (tilemapBuffer == 0) + { + return; + } + + u8 screenWidth; + u8 screenHeight; + GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight); + + u8 i; + u8 j; + if (adjustForSrcDims == 0) + { + for (i = 0; i < dstHeight; i++) + { + + if (dstY + i >= screenHeight) + { + break; + } + + if (srcY + i >= srcHeight) + { + break; + } + + for (j = 0; j < dstWidth; j++) + { + + if (dstX + j >= screenWidth) + { + break; + } + + if (srcX + j >= srcWidth) + { + break; + } + + ((u16 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] = + src[srcX + srcWidth * (srcY + i) + j]; + } + } + } + else + { + for (i = 0; i < dstHeight; i++) + { + + if (dstY + i >= screenHeight) + { + break; + } + + if (srcY + i >= srcHeight) + { + break; + } + + for (j = 0; j < dstWidth; j++) + { + + if (dstX + j >= screenWidth) + { + break; + } + + if (srcX + j >= srcWidth) + { + break; + } + + ((u16 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] = + src[GetSrcTileMapIndexFromCoords((u8) (srcX + j), (u8) (srcY + i), srcWidth, srcHeight)]; + } + } + } +} + +THUMB_FUNC void CopyBgTilemapRectAffine(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u8 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims) +{ + void *tilemapBuffer = bg->tilemapBuffer; + + if (tilemapBuffer == 0) + { + return; + } + + u8 screenWidth; + u8 screenHeight; + GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight); + + u8 i; + u8 j; + if (adjustForSrcDims == 0) + { + for (i = 0; i < dstHeight; i++) + { + + if (dstY + i >= screenHeight) + { + break; + } + + if (srcY + i >= srcHeight) + { + break; + } + + for (j = 0; j < dstWidth; j++) + { + + if (dstX + j >= screenWidth) + { + break; + } + + if (srcX + j >= srcWidth) + { + break; + } + + ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] = + src[srcX + srcWidth * (srcY + i) + j]; + } + } + } + else + { + for (i = 0; i < dstHeight; i++) + { + + if (dstY + i >= screenHeight) + { + break; + } + + if (srcY + i >= srcHeight) + { + break; + } + + for (j = 0; j < dstWidth; j++) + { + + if (dstX + j >= screenWidth) + { + break; + } + + if (srcX + j >= srcWidth) + { + break; + } + + ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] = + src[GetSrcTileMapIndexFromCoords((u8) (srcX + j), (u8) (srcY + i), srcWidth, srcHeight)]; + } + } + } +} + +THUMB_FUNC void FillBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum) +{ + if (bgConfig->bgs[bgId].mode != 1) + { + + FillBgTilemapRectText(&bgConfig->bgs[bgId], fillValue, x, y, width, height, paletteNum); + } + else + { + FillBgTilemapRectAffine(&bgConfig->bgs[bgId], (u8) fillValue, x, y, width, height); + } +} + +THUMB_FUNC void FillBgTilemapRectText(struct Bg *bg, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum) +{ + void *tilemapBuffer = bg->tilemapBuffer; + + if (tilemapBuffer != 0) + { + + u8 screenWidth; + u8 screenHeight; + GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight); + + u8 i; + u8 j; + for (i = y; i < y + height; i++) + { + if (i >= screenHeight) + { + break; + } + + for (j = x; j < x + width; j++) + { + if (j >= screenWidth) + { + break; + } + + u16 idx = GetTileMapIndexFromCoords(j, i, bg->size); + + if (paletteNum == 0x11) + { + ((u16 *)tilemapBuffer)[idx] = fillValue; + } + else if (paletteNum == 0x10) + { + ((u16 *)tilemapBuffer)[idx] = (u16)((((u16 *)tilemapBuffer)[idx] & 0xF000) + fillValue); + } + else + { + ((u16 *)tilemapBuffer)[idx] = (u16)((paletteNum << 0xc) + fillValue); + } + } + } + } +} + +THUMB_FUNC void FillBgTilemapRectAffine( + struct Bg *bg, u8 fillValue, u8 x, u8 y, u8 width, u8 height) +{ + void *tilemapBuffer = bg->tilemapBuffer; + + if (tilemapBuffer != 0) + { + + u8 screenWidth; + u8 screenHeight; + GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight); + + u8 i; + u8 j; + for (i = y; i < y + height; i++) + { + if (i >= screenHeight) + { + break; + } + + for (j = x; j < x + width; j++) + { + if (j >= screenWidth) + { + break; + } + + ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords(j, i, bg->size)] = fillValue; + } + } + } +} + +THUMB_FUNC void BgTilemapRectChangePalette(struct BgConfig *bgConfig, + u32 bgId, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum) +{ + void *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer; + + if (tilemapBuffer != NULL) + { + u8 screenWidth; + u8 screenHeight; + GetBgScreenDimensions(bgConfig->bgs[bgId].size, &screenWidth, &screenHeight); + + u8 i; + u8 j; + for (i = y; i < y + height; i++) + { + if (i >= screenHeight) + { + break; + } + + for (j = x; j < x + width; j++) + { + if (j >= screenWidth) + { + break; + } + + u16 idx = GetTileMapIndexFromCoords(j, i, bgConfig->bgs[bgId].size); + ((u16 *)tilemapBuffer)[idx] = (u16)((((u16 *)tilemapBuffer)[idx] & 0xfff) | (paletteNum << 0xc)); + } + } + } +} + +THUMB_FUNC void BgClearTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId) +{ + if (bgConfig->bgs[bgId].tilemapBuffer != NULL) + { + MI_CpuClear16(bgConfig->bgs[bgId].tilemapBuffer, bgConfig->bgs[bgId].bufferSize); + BgCommitTilemapBufferToVram(bgConfig, bgId); + } +} + +THUMB_FUNC void BgFillTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId, u16 fillValue) +{ + if (bgConfig->bgs[bgId].tilemapBuffer != NULL) + { + MI_CpuFill16(bgConfig->bgs[bgId].tilemapBuffer, fillValue, bgConfig->bgs[bgId].bufferSize); + BgCommitTilemapBufferToVram(bgConfig, bgId); + } +} + +THUMB_FUNC void BgFillTilemapBufferAndSchedule(struct BgConfig *bgConfig, u32 bgId, u16 fillValue) +{ + if (bgConfig->bgs[bgId].tilemapBuffer != NULL) + { + MI_CpuFill16(bgConfig->bgs[bgId].tilemapBuffer, fillValue, bgConfig->bgs[bgId].bufferSize); + ScheduleBgTilemapBufferTransfer(bgConfig, bgId); + } +} + +THUMB_FUNC void *BgGetCharPtr(u32 bgId) +{ + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + return G2_GetBG0CharPtr(); + case GF_BG_LYR_MAIN_1: + return G2_GetBG1CharPtr(); + case GF_BG_LYR_MAIN_2: + return G2_GetBG2CharPtr(); + case GF_BG_LYR_MAIN_3: + return G2_GetBG3CharPtr(); + case GF_BG_LYR_SUB_0: + return G2S_GetBG0CharPtr(); + case GF_BG_LYR_SUB_1: + return G2S_GetBG1CharPtr(); + case GF_BG_LYR_SUB_2: + return G2S_GetBG2CharPtr(); + case GF_BG_LYR_SUB_3: + return G2S_GetBG3CharPtr(); + } + + return NULL; +} + +THUMB_FUNC void Convert4bppTo8bppInternal(u8 *src4bpp, u32 size, u8 (*dest8bpp), u8 paletteNum) +{ + paletteNum <<= 4; + for (u32 i = 0; i < size; i++) + { + dest8bpp[i * 2 + 0] = (u8)(src4bpp[i] & 0xf); + if (dest8bpp[i * 2 + 0] != 0) + { + dest8bpp[i * 2 + 0] += paletteNum; + } + + dest8bpp[i * 2 + 1] = (u8)((src4bpp[i] >> 4) & 0xf); + if (dest8bpp[i * 2 + 1] != 0) + { + dest8bpp[i * 2 + 1] += paletteNum; + } + } +} + +THUMB_FUNC u8 *Convert4bppTo8bpp(u8 *src4Bpp, u32 size, u8 paletteNum, u32 heap_id) +{ + u8 *ptr = (u8*)AllocFromHeap(heap_id, size * 2); + + Convert4bppTo8bppInternal(src4Bpp, size, ptr, paletteNum); + + return ptr; +} + +THUMB_FUNC void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId) +{ + return bgConfig->bgs[bgId].tilemapBuffer; +} + +THUMB_FUNC u16 GetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId) +{ + return bgConfig->bgs[bgId].rotation; +} + +THUMB_FUNC u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId) +{ + switch (bgId) + { + case GF_BG_LYR_MAIN_0: + return G2_GetBG0Control().priority; + case GF_BG_LYR_MAIN_1: + return G2_GetBG1Control().priority; + case GF_BG_LYR_MAIN_2: + switch (bgConfig->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + return G2_GetBG2ControlText().priority; + case GF_BG_TYPE_AFFINE: + return G2_GetBG2ControlAffine().priority; + case GF_BG_TYPE_256x16PLTT: + return G2_GetBG2Control256x16Pltt().priority; + } + break; + case GF_BG_LYR_MAIN_3: + switch (bgConfig->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + return G2_GetBG3ControlText().priority; + case GF_BG_TYPE_AFFINE: + return G2_GetBG3ControlAffine().priority; + case GF_BG_TYPE_256x16PLTT: + return G2_GetBG3Control256x16Pltt().priority; + } + break; + + case GF_BG_LYR_SUB_0: + return G2S_GetBG0Control().priority; + case GF_BG_LYR_SUB_1: + return G2S_GetBG1Control().priority; + + case GF_BG_LYR_SUB_2: + switch (bgConfig->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + return G2S_GetBG2ControlText().priority; + case GF_BG_TYPE_AFFINE: + return G2S_GetBG2ControlAffine().priority; + case GF_BG_TYPE_256x16PLTT: + return G2S_GetBG2Control256x16Pltt().priority; + } + break; + case GF_BG_LYR_SUB_3: + switch (bgConfig->bgs[bgId].mode) + { + default: + case GF_BG_TYPE_TEXT: + return G2S_GetBG3ControlText().priority; + case GF_BG_TYPE_AFFINE: + return G2S_GetBG3ControlAffine().priority; + case GF_BG_TYPE_256x16PLTT: + return G2S_GetBG3Control256x16Pltt().priority; + } + break; + } + + return 0; +} + +THUMB_FUNC void BlitBitmapRect4Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey) +{ + int xEnd, yEnd; + int multiplierSrcY, multiplierDstY; + int loopSrcY, loopDstY; + int loopSrcX, loopDstX; + int toOrr, toShift; + u8 * pixelsSrc, * pixelsDst; + + if (dst->width - dstX < width) + xEnd = dst->width - dstX + srcX; + else + xEnd = width + srcX; + if (dst->height - dstY < height) + yEnd = dst->height - dstY + srcY; + else + yEnd = height + srcY; + multiplierSrcY = (src->width + (src->width & 7)) >> 3; + multiplierDstY = (dst->width + (dst->width & 7)) >> 3; + + if (colorKey == 0xFFFF) + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX << 2) & 0x3FE0) + (((loopSrcY << 2) & 0x3FE0) * multiplierSrcY) + (((loopSrcY << 2) & 0x1C))); + pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX << 2) & 0x3FE0) + (((loopDstY << 2) & 0x3FE0) * multiplierDstY) + (((loopDstY << 2) & 0x1C))); + + toOrr = (*pixelsSrc >> ((loopSrcX & 1) * 4)) & 0xF; + toShift = (loopDstX & 1) * 4; + *pixelsDst = ((toOrr << toShift) | (*pixelsDst & (0xF0 >> toShift))); + } + } + } + else + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX << 2) & 0x3FE0) + (((loopSrcY << 2) & 0x3FE0) * multiplierSrcY) + ((u32)((loopSrcY << 2) & 0x1C))); + pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX << 2) & 0x3FE0) + (((loopDstY << 2) & 0x3FE0) * multiplierDstY) + ((u32)((loopDstY << 2) & 0x1C))); + + toOrr = (*pixelsSrc >> ((loopSrcX & 1) * 4)) & 0xF; + if (toOrr != colorKey) + { + toShift = (loopDstX & 1) * 4; + *pixelsDst = (u8) ((toOrr << toShift) | (*pixelsDst & (0xF0 >> toShift))); + } + } + } + } +} + +THUMB_FUNC void BlitBitmapRect8Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey) +{ + int xEnd, yEnd; + int multiplierSrcY, multiplierDstY; + int loopSrcY, loopDstY; + int loopSrcX, loopDstX; + u8 * pixelsSrc, * pixelsDst; + + if (dst->width - dstX < width) + xEnd = dst->width - dstX + srcX; + else + xEnd = width + srcX; + if (dst->height - dstY < height) + yEnd = dst->height - dstY + srcY; + else + yEnd = height + srcY; + multiplierSrcY = (src->width + (src->width & 7)) >> 3; + multiplierDstY = (dst->width + (dst->width & 7)) >> 3; + + if (colorKey == 0xFFFF) + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 0) & 7) + ((loopSrcX << 3) & 0x7FC0) + (((loopSrcY << 3) & 0x7FC0) * multiplierSrcY) + (((loopSrcY << 3) & 0x38))); + pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 0) & 7) + ((loopDstX << 3) & 0x7FC0) + (((loopDstY << 3) & 0x7FC0) * multiplierDstY) + (((loopDstY << 3) & 0x38))); + + *pixelsDst = *pixelsSrc; + } + } + } + else + { + for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++) + { + for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++) + { + pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 0) & 7) + ((loopSrcX << 3) & 0x7FC0) + (((loopSrcY << 3) & 0x7FC0) * multiplierSrcY) + (((loopSrcY << 3) & 0x38))); + pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 0) & 7) + ((loopDstX << 3) & 0x7FC0) + (((loopDstY << 3) & 0x7FC0) * multiplierDstY) + (((loopDstY << 3) & 0x38))); + + if (*pixelsSrc != colorKey) + *pixelsDst = *pixelsSrc; + } + } + } +} + +THUMB_FUNC void FillBitmapRect4Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue) +{ + + int r6 = x + width; + if (r6 > surface->width) + { + r6 = surface->width; + } + + int r12 = y + height; + if (r12 > surface->height) + { + r12 = surface->height; + } + + int lr = (((surface->width) + (surface->width & 7)) >> 3); + + for (int i = y; i < r12; i++) + { + + for (int j = x; j < r6; j++) + { + + u8 *unk = (u8 *)((u8 *)surface->pixels + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + + (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c)); + + if ((j & 1) != 0) + { + *unk &= 0xf; + *unk |= (fillValue << 4); + } + else + { + *unk &= 0xf0; + *unk |= fillValue; + } + } + } +} + +THUMB_FUNC void FillBitmapRect8Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue) +{ + + int r6 = x + width; + if (r6 > surface->width) + { + r6 = surface->width; + } + + int r12 = y + height; + if (r12 > surface->height) + { + r12 = surface->height; + } + + int lr = (((surface->width) + (surface->width & 7)) >> 3); + + for (int i = y; i < r12; i++) + { + + for (int j = x; j < r6; j++) + { + + u8 *unk = (u8 *)((u8 *)surface->pixels + (j & 7) + ((j << 3) & 0x7fc0) + + (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38)); + + *unk = fillValue; + } + } +} + +THUMB_FUNC struct Window *AllocWindows(u32 heap_id, s32 size) +{ + struct Window *ptr = AllocFromHeap(heap_id, (u32)(size << 4)); + + for (u16 i = 0; i < size; i++) + { + InitWindow(&ptr[i]); + } + + return ptr; +} + +THUMB_FUNC void InitWindow(struct Window *window) +{ + window->bgConfig = NULL; + window->bgId = GF_BG_LYR_UNALLOC; + window->tilemapLeft = 0; + window->tilemapTop = 0; + window->width = 0; + window->height = 0; + window->paletteNum = 0; + + window->baseTile = 0; + window->pixelBuffer = NULL; + + window->colorMode = GF_BG_CLR_4BPP; +} + +THUMB_FUNC BOOL WindowIsInUse(struct Window *window) +{ + if (window->bgConfig == NULL || window->bgId == 0xff || window->pixelBuffer == NULL) + { + return FALSE; + } + + return TRUE; +} + +THUMB_FUNC void AddWindowParameterized(struct BgConfig *param0, + struct Window *window, + u8 bgId, + u8 tilemapLeft, + u8 tilemapTop, + u8 width, + u8 height, + u8 paletteNum, + u16 baseTile) +{ + if (param0->bgs[bgId].tilemapBuffer == NULL) + { + return; + } + + void *ptr = AllocFromHeap(param0->heap_id, (u32)(width * height * param0->bgs[bgId].tileSize)); + + if (ptr == NULL) + { + return; + } + window->bgConfig = param0; + window->bgId = bgId; + window->tilemapLeft = tilemapLeft; + window->tilemapTop = tilemapTop; + window->width = width; + window->height = height; + window->paletteNum = paletteNum; + + window->baseTile = baseTile; + window->pixelBuffer = ptr; + + window->colorMode = param0->bgs[bgId].colorMode == GX_BG_COLORMODE_16 ? GF_BG_CLR_4BPP : GF_BG_CLR_8BPP; +} + +THUMB_FUNC void AddTextWindowTopLeftCorner(struct BgConfig *param0, + struct Window *window, + u8 width, + u8 height, + u16 baseTile, + u8 paletteNum) +{ + u32 size = (u32)(width * height * 32); + + void *ptr = AllocFromHeap(param0->heap_id, size); + + paletteNum |= (paletteNum * 16); + memset(ptr, paletteNum, size); + + if (ptr != NULL) + { + window->bgConfig = param0; + window->width = width; + window->height = height; + window->baseTile = baseTile; + window->pixelBuffer = ptr; + window->colorMode = GF_BG_CLR_4BPP; + } +} + +THUMB_FUNC void AddWindow( + struct BgConfig *bgConfig, struct Window *window, const struct WindowTemplate *template) +{ + + AddWindowParameterized(bgConfig, + window, + template->bgId, + template->tilemapLeft, + template->tilemapTop, + template->width, + template->height, + template->paletteNum, + template->baseTile); +} + +THUMB_FUNC void RemoveWindow(struct Window *window) +{ + FreeToHeap(window->pixelBuffer); + + window->bgConfig = NULL; + window->bgId = 0xff; + window->tilemapLeft = 0; + window->tilemapTop = 0; + window->width = 0; + window->height = 0; + window->paletteNum = 0; + window->baseTile = 0; + window->pixelBuffer = NULL; +} + +THUMB_FUNC void WindowArray_dtor(struct Window *windows, int count) +{ + for (u16 i = 0; i < count; i++) + { + if (windows[i].pixelBuffer != NULL) + { + FreeToHeap(windows[i].pixelBuffer); + } + } + + FreeToHeap(windows); +} + +THUMB_FUNC void CopyWindowToVram(struct Window *window) +{ + + GF_ASSERT(window != NULL); + GF_ASSERT(window->bgConfig != NULL); + GF_ASSERT(window->bgId < NELEMS(window->bgConfig->bgs)); + GF_ASSERT(window->bgConfig->bgs[window->bgId].mode < NELEMS(sCopyWindowToVramFuncs)); + + sCopyWindowToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void ScheduleWindowCopyToVram(struct Window *window) +{ + + GF_ASSERT(window); + GF_ASSERT(window->bgConfig); + GF_ASSERT(window->bgId < NELEMS(window->bgConfig->bgs)); + GF_ASSERT(window->bgConfig->bgs[window->bgId].mode < NELEMS(sScheduleWindowCopyToVramFuncs)); + + sScheduleWindowCopyToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void PutWindowTilemap(struct Window *window) +{ + sPutWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void PutWindowTilemapRectAnchoredTopLeft(struct Window *window, u8 width, u8 height) +{ + u8 widthBak = window->width; + u8 heightBak = window->height; + + window->width = width; + window->height = height; + sPutWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window); + + window->width = widthBak; + window->height = heightBak; +} + +THUMB_FUNC void ClearWindowTilemap(struct Window *window) +{ + sClearWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void PutWindowTilemap_TextMode(struct Window *param0) +{ + u32 i, j; + u32 r3; + u32 iCount, jCount; + u16 *st4 = param0->bgConfig->bgs[param0->bgId].tilemapBuffer; + + if (st4 == NULL) + { + return; + } + + r3 = param0->baseTile; + jCount = (u32)(param0->tilemapLeft + param0->width); + iCount = (u32)(param0->tilemapTop + param0->height); + + for (i = param0->tilemapTop; i < iCount; i++) + { + for (j = param0->tilemapLeft; j < jCount; j++) + { + st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] = + (u16)(r3 | (param0->paletteNum << 12)); + + r3++; + } + } +} + +THUMB_FUNC void PutWindowTilemap_AffineMode(struct Window *window) +{ + int j, i; + u8 *dst; + + int tileId; + int tilemapWidth; + + if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL) + { + return; + } + + tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size]; + + dst = window->bgConfig->bgs[window->bgId].tilemapBuffer + window->tilemapTop * tilemapWidth + window->tilemapLeft; + tileId = window->baseTile; + + for (i = 0; i < window->height; i++) + { + for (j = 0; j < window->width; j++) + { + dst[j] = (u8)tileId; + tileId++; + } + dst += tilemapWidth; + } +} + +THUMB_FUNC void ClearWindowTilemapText(struct Window *window) +{ + + u32 i, j; + + u32 yEnd, xEnd; + u32 tilemapWidth; + + u16 *dst; + + if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL) + { + return; + } + dst = window->bgConfig->bgs[window->bgId].tilemapBuffer; + + tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size]; + xEnd = (u32)(window->tilemapLeft + window->width); + yEnd = (u32)(window->tilemapTop + window->height); + + for (i = window->tilemapTop; i < yEnd; i++) + { + for (j = window->tilemapLeft; j < xEnd; j++) + { + dst[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) * tilemapWidth) + (j & 0x1f)] = 0; + } + } +} + +THUMB_FUNC void ClearWindowTilemapAffine(struct Window *window) +{ + + int j, i; + u8 *dstPos; + + int tilemapWidth; + + if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL) + { + return; + } + + tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size]; + dstPos = window->bgConfig->bgs[window->bgId].tilemapBuffer + window->tilemapTop * tilemapWidth + window->tilemapLeft; + + for (i = 0; i < window->height; i++) + { + for (j = 0; j < window->width; j++) + { + dstPos[j] = 0; + } + dstPos += tilemapWidth; + } +} + +THUMB_FUNC void CopyWindowToVram_TextMode(struct Window *window) +{ + PutWindowTilemap_TextMode(window); + CopyWindowPixelsToVram_TextMode(window); + BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig, + window->bgId, + window->bgConfig->bgs[window->bgId].tilemapBuffer, + window->bgConfig->bgs[window->bgId].bufferSize, + window->bgConfig->bgs[window->bgId].baseTile); +} + +THUMB_FUNC void ScheduleWindowCopyToVram_TextMode(struct Window *window) +{ + PutWindowTilemap_TextMode(window); + ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId); + CopyWindowPixelsToVram_TextMode(window); +} + +THUMB_FUNC void CopyWindowToVram_AffineMode(struct Window *window) +{ + PutWindowTilemap_AffineMode(window); + BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig, + window->bgId, + window->bgConfig->bgs[window->bgId].tilemapBuffer, + window->bgConfig->bgs[window->bgId].bufferSize, + window->bgConfig->bgs[window->bgId].baseTile); + + BG_LoadCharTilesData(window->bgConfig, + window->bgId, + window->pixelBuffer, + (u32)(window->width * window->height * 64), + window->baseTile); +} + +THUMB_FUNC void ScheduleWindowCopyToVram_AffineMode(struct Window *window) +{ + PutWindowTilemap_AffineMode(window); + ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId); + BG_LoadCharTilesData(window->bgConfig, + window->bgId, + window->pixelBuffer, + (u32)(window->width * window->height * 64), + window->baseTile); +} + +THUMB_FUNC void CopyWindowPixelsToVram_TextMode(struct Window *window) +{ + BG_LoadCharTilesData(window->bgConfig, + window->bgId, + window->pixelBuffer, + (u32)(window->width * window->height * window->bgConfig->bgs[window->bgId].tileSize), + window->baseTile); +} + +THUMB_FUNC void ClearWindowTilemapAndCopyToVram(struct Window *window) +{ + sClearWindowTilemapAndCopyToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer(struct Window *window) +{ + sClearWindowTilemapAndScheduleTransferFuncs[window->bgConfig->bgs[window->bgId].mode](window); +} + +THUMB_FUNC void ClearWindowTilemapAndCopyToVram_TextMode(struct Window *window) +{ + ClearWindowTilemapText(window); + BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig, + window->bgId, + window->bgConfig->bgs[window->bgId].tilemapBuffer, + window->bgConfig->bgs[window->bgId].bufferSize, + window->bgConfig->bgs[window->bgId].baseTile); +} + +THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer_TextMode(struct Window *window) +{ + ClearWindowTilemapText(window); + ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId); +} + +THUMB_FUNC void ClearWindowTilemapAndCopyToVram_AffineMode(struct Window *window) +{ + ClearWindowTilemapAffine(window); + BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig, + window->bgId, + window->bgConfig->bgs[window->bgId].tilemapBuffer, + window->bgConfig->bgs[window->bgId].bufferSize, + window->bgConfig->bgs[window->bgId].baseTile); +} + +THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer_AffineMode(struct Window *window) +{ + ClearWindowTilemapAffine(window); + ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId); +} + +THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1) +{ + if (window->bgConfig->bgs[window->bgId].tileSize == 0x20) + { + param1 |= param1 << 4; + } + + MI_CpuFillFast( + window->pixelBuffer, + (u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), + (u32)(window->bgConfig->bgs[window->bgId].tileSize * window->width * window->height)); +} + +THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window, + const void *src, + u16 srcX, + u16 srcY, + u16 srcWidth, + u16 srcHeight, + u16 dstX, + u16 dstY, + u16 dstWidth, + u16 dstHeight) +{ + BlitBitmapRect( + window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0); +} + +THUMB_FUNC void BlitBitmapRect(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10) +{ + struct Bitmap st1c = { param1, param4, param5 }; + struct Bitmap st14 = { + window->pixelBuffer, (u16)(window->width << 3), (u16)(window->height << 3) + }; + + if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16) + { + BlitBitmapRect4Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); + } + else + { + BlitBitmapRect8Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); + } +} + +THUMB_FUNC void FillWindowPixelRect( + struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height) +{ + struct Bitmap st8 = { + window->pixelBuffer, (u16)(window->width << 3), (u16)(window->height << 3) + }; + + if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16) + { + FillBitmapRect4Bit(&st8, x, y, width, height, fillValue); + } + else + { + FillBitmapRect8Bit(&st8, x, y, width, height, fillValue); + } +} + +#ifdef NONMATCHING +THUMB_FUNC void CopyGlyphToWindow( + struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6) +{ + u32 str330 = param6; + u32 *st0 = param1; + u16 st5c = param4; + + void *st278 = window->unk0c; + u16 st58 = window->width << 3; + + int st8 = st58 - st5c; + + if (st8 >= param2) + { + st8 = param2; + } + + int st4 = (u16)(window->height << 3) - param5; + u16 st48 = param5; + + if (st4 >= param3) + { + st4 = param3; + } + + u8 r4 = 0; + if (st8 > 8) + { + r4 |= 1; + } + + if (st4 > 8) + { + r4 |= 2; + } + + if (window->unk0b_15 == 0) + { + switch (r4) + { + case 0: + u8 st70 = param6; + for (u32 st274 = 0; st274 < st4; st274++) + { + u32 st6c = (st58 + (st58 & 7)) >> 3; + + u32 st26c = st0[0]; + u8 st270 = (u8)((st70 >> st274) & 1); + u32 r2 = st5c; + + for (u32 r1 = 0; r1 < st8; r1++) + { + u32 r3 = st5c << 2; + u32 st68 = ((st48 << 2) & 0x3fe0) * st6c; + u32 r7 = (st48 << 2) & 0x1c; + u32 st64 = (((st48 + 1) << 2) & 0x3fe0) * st6c; + u32 st60 = ((st48 + 1) << 2) & 0x1c; + u32 r4 = r1; + + void *st27c = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); + u8 *r0 = st27c + st68; + + u8 r5 = (u8)((st26c >> r4) & 0xf); + if (r5 != 0) + { + u32 st280 = (r5 << ((r2 & 1) << 2)); + u32 st284 = r0[r7]; + + u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st284) | st280; + r0[r7] = r5; + + if (st270 != 0) + { + *(u8 *)(st27c + st64 + st60) = r5; + } + } + + r4 += 4; + r3 += 4; + r2 += 1; + } + + if (st270 != 0) + { + st48 += 2; + } + else + { + st48++; + } + + st0++; + } + + break; + + case 1: + u32 *st25c = st0; + u32 st264 = st48; + u8 st54 = param6; + u8 st84 = param6; + + for (u32 st268 = 0; st268 < st4; st268++) + { + u32 st80 = (st58 + (st58 & 7)) >> 3; + + u32 st258 = *st25c; + u32 r2 = st5c; + u8 st260 = (st84 >> st268) & 1; + u32 r3 = st5c << 2; + u32 st7c = ((st264 << 2) & 0x3fe0) * st80; + u32 r7 = (st264 << 2) & 0x1c; + u32 st78 = (((st264 + 1) << 2) & 0x3fe0) * st80; + u32 st74 = ((st264 + 1) << 2) & 0x1c; + u32 r4 = 0; + + for (u32 r1 = 0; r1 < 8; r1++) + { + void *st288 = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); + u8 *r0 = st288 + st7c; + u8 r5 = (st258 >> r4) & 0xf; + if (r5 != 0) + { + u32 st28c = r5 << ((r2 & 1) << 2); + u32 st290 = r0[r7]; + u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st290) | st28c; + r0[r7] = r5; + + if (st260 != 0) + { + *(u8 *)(st288 + st78 + st74) = r5; + } + } + + r4 += 4; + r3 += 4; + r2++; + } + + if (st260 != 0) + { + st264 += 2; + } + else + { + st264++; + } + + st25c++; + } + + st0 += 0x20; + u8 st98 = st54; + + for (u32 st254 = 0; st254 < st4; st254++) + { + st5c += 8; + u32 st94 = (st58 + (st58 & 7)) >> 3; + + //_02019A00 + } + + break; + + case 2: + // TODO + break; + case 3: + // TODO + break; + } + } + else + { + // TODO: _0201A12C + } +} +#else +asm void CopyGlyphToWindow( + struct Window *window, const char *param1, u16 param2, u16 param3, u16 param4, u16 param5, u16 param6) +{ + // clang-format off + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x118 + add r5, r0, #0x0 + ldr r0, [sp, #0x330] + str r1, [sp, #0x0] + str r0, [sp, #0x330] + add r1, sp, #0x318 + ldrh r1, [r1, #0x10] + ldr r0, [r5, #0xc] + str r1, [sp, #0x5c] + ldrb r1, [r5, #0x7] + str r0, [sp, #0x278] + ldrb r0, [r5, #0x8] + lsl r1, r1, #0x13 + lsr r4, r1, #0x10 + ldr r1, [sp, #0x5c] + lsl r0, r0, #0x13 + sub r1, r4, r1 + lsr r0, r0, #0x10 + str r4, [sp, #0x58] + str r1, [sp, #0x8] + cmp r1, r2 + blt _0201977E + str r2, [sp, #0x8] +_0201977E: + add r1, sp, #0x318 + ldrh r1, [r1, #0x14] + sub r0, r0, r1 + str r1, [sp, #0x48] + str r0, [sp, #0x4] + cmp r0, r3 + blt _0201978E + str r3, [sp, #0x4] +_0201978E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + cmp r0, #0x8 + ble _0201979E + mov r0, #0x1 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0201979E: + ldr r0, [sp, #0x4] + cmp r0, #0x8 + ble _020197AC + mov r0, #0x2 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020197AC: + ldrh r0, [r5, #0xa] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + beq _020197B8 + bl _0201A12C +_020197B8: + cmp r4, #0x3 + bls _020197C0 + bl _0201A8BC +_020197C0: + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020197CC: + lsl r6, r0, #0 + lsl r0, r1, #4 + lsl r0, r3, #12 + lsl r0, r7, #20 + // jump table (using 16-bit offset) + // .short _020197D4 - _020197CC - 2; case 0 + // .short _020198D6 - _020197CC - 2; case 1 + // .short _02019AE6 - _020197CC - 2; case 2 + // .short _02019D06 - _020197CC - 2; case 3 +_020197D4: + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x70] + mov r0, #0x0 + str r0, [sp, #0x274] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020197EA + bl _0201A8BC +_020197EA: + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x6c] +_020197F6: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x70] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x26c] + ldr r0, [sp, #0x274] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x270] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _020198AA + ble _020198AA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x6c] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x68] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x6c] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x64] + str r0, [sp, #0x60] +_02019848: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x68] + str r5, [sp, #0x27c] + add r0, r5, r0 + ldr r5, [sp, #0x26c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201989C + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x280] + ldrb r5, [r0, r7] + str r5, [sp, #0x284] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x284] + and r6, r5 + ldr r5, [sp, #0x280] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _0201989C + ldr r6, [sp, #0x27c] + ldr r0, [sp, #0x64] + add r6, r6, r0 + ldr r0, [sp, #0x60] + strb r5, [r0, r6] +_0201989C: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019848 +_020198AA: + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _020198B8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _020198BE +_020198B8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_020198BE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x274] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x274] + cmp r1, r0 + blt _020197F6 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_020198D6: + ldr r0, [sp, #0x0] + str r0, [sp, #0x25c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x264] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x84] + mov r0, #0x0 + str r0, [sp, #0x268] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _020199D2 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x80] +_02019902: + ldr r0, [sp, #0x25c] + ldr r1, [sp, #0x84] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x258] + ldr r0, [sp, #0x268] + ldr r6, [sp, #0x80] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x260] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x264] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x264] + str r6, [sp, #0x7c] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x80] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x78] + str r0, [sp, #0x74] +_0201994C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x7c] + str r5, [sp, #0x288] + add r0, r5, r0 + ldr r5, [sp, #0x258] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _020199A0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x28c] + ldrb r5, [r0, r7] + str r5, [sp, #0x290] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x290] + and r6, r5 + ldr r5, [sp, #0x28c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199A0 + ldr r6, [sp, #0x288] + ldr r0, [sp, #0x78] + add r6, r6, r0 + ldr r0, [sp, #0x74] + strb r5, [r0, r6] +_020199A0: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _0201994C + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199BA + ldr r0, [sp, #0x264] + add r0, r0, #0x2 + str r0, [sp, #0x264] + b _020199C0 +_020199BA: + ldr r0, [sp, #0x264] + add r0, r0, #0x1 + str r0, [sp, #0x264] +_020199C0: + ldr r0, [sp, #0x25c] + add r0, r0, #0x4 + str r0, [sp, #0x25c] + ldr r0, [sp, #0x268] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x268] + cmp r1, r0 + blt _02019902 +_020199D2: + ldr r0, [sp, #0x0] + add r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x98] + mov r0, #0x0 + str r0, [sp, #0x254] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020199EE + bl _0201A8BC +_020199EE: + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x94] +_02019A00: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x98] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x24c] + ldr r0, [sp, #0x254] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x250] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x294] + sub r0, #0x8 + str r0, [sp, #0x294] + cmp r0, #0x0 + ble _02019ABA + ble _02019ABA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x94] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x90] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x94] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x8c] + str r0, [sp, #0x88] +_02019A58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x90] + str r5, [sp, #0x298] + add r0, r5, r0 + ldr r5, [sp, #0x24c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019AAC + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x29c] + ldrb r5, [r0, r7] + str r5, [sp, #0x2a0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2a0] + and r6, r5 + ldr r5, [sp, #0x29c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AAC + ldr r6, [sp, #0x298] + ldr r0, [sp, #0x8c] + add r6, r6, r0 + ldr r0, [sp, #0x88] + strb r5, [r0, r6] +_02019AAC: + ldr r0, [sp, #0x294] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019A58 +_02019ABA: + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AC8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019ACE +_02019AC8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019ACE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x254] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x254] + cmp r1, r0 + blt _02019A00 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019AE6: + ldr r0, [sp, #0x0] + mov r1, #0x7 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x244] + mov r0, #0x0 + str r0, [sp, #0x248] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xa8] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x40] +_02019B06: + ldr r0, [sp, #0x23c] + ldr r1, [sp, #0xa8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x238] + ldr r0, [sp, #0x248] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x240] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019BC2 + ble _02019BC2 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x244] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x244] + str r6, [sp, #0xa4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xa0] + str r0, [sp, #0x9c] +_02019B58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 +// b _02019B6C +// nop +// _02019B68: .word 0x00003FE0 +// _02019B6C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xa4] + str r5, [sp, #0x2a4] + add r0, r5, r0 + ldr r5, [sp, #0x238] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019BB4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2a8] + ldrb r5, [r0, r7] + str r5, [sp, #0x2ac] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2ac] + and r6, r5 + ldr r5, [sp, #0x2a8] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BB4 + ldr r6, [sp, #0x2a4] + ldr r0, [sp, #0xa0] + add r6, r6, r0 + ldr r0, [sp, #0x9c] + strb r5, [r0, r6] +_02019BB4: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019B58 +_02019BC2: + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BD0 + ldr r0, [sp, #0x244] + add r0, r0, #0x2 + str r0, [sp, #0x244] + b _02019BD6 +_02019BD0: + ldr r0, [sp, #0x244] + add r0, r0, #0x1 + str r0, [sp, #0x244] +_02019BD6: + ldr r0, [sp, #0x23c] + add r0, r0, #0x4 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x248] + add r0, r0, #0x1 + str r0, [sp, #0x248] + cmp r0, #0x8 + blt _02019B06 + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x40 + str r0, [sp, #0x0] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] +_02019BF6: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019C04 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019C04: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019BF6 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xb8] + mov r0, #0x0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _02019C24 + bl _0201A8BC +_02019C24: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xb8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x230] + ldr r0, [sp, #0x20] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x234] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019CD8 + ble _02019CD8 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xb4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xb0] + str r0, [sp, #0xac] +_02019C76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xb4] + str r5, [sp, #0x2b0] + add r0, r5, r0 + ldr r5, [sp, #0x230] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019CCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2b4] + ldrb r5, [r0, r7] + str r5, [sp, #0x2b8] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2b8] + and r6, r5 + ldr r5, [sp, #0x2b4] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CCA + ldr r6, [sp, #0x2b0] + ldr r0, [sp, #0xb0] + add r6, r6, r0 + ldr r0, [sp, #0xac] + strb r5, [r0, r6] +_02019CCA: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019C76 +_02019CD8: + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CE6 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019CEC +_02019CE6: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019CEC: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x20] + cmp r0, r1 + blt _02019C24 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019D06: + ldr r0, [sp, #0x0] + str r0, [sp, #0x220] + ldr r0, [sp, #0x48] + str r0, [sp, #0x228] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x22c] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x38] +_02019D2A: + ldr r0, [sp, #0x220] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x21c] + ldr r0, [sp, #0x22c] + ldr r6, [sp, #0x38] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x224] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x228] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x228] + str r6, [sp, #0xc4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + str r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xc0] + str r0, [sp, #0xbc] +_02019D76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xc4] + str r5, [sp, #0x2bc] + add r0, r5, r0 + ldr r5, [sp, #0x21c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019DCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2c0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2c4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2c4] + and r6, r5 + ldr r5, [sp, #0x2c0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DCA + ldr r6, [sp, #0x2bc] + ldr r0, [sp, #0xc0] + add r6, r6, r0 + ldr r0, [sp, #0xbc] + strb r5, [r0, r6] +_02019DCA: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019D76 + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DE4 + ldr r0, [sp, #0x228] + add r0, r0, #0x2 + str r0, [sp, #0x228] + b _02019DEA +_02019DE4: + ldr r0, [sp, #0x228] + add r0, r0, #0x1 + str r0, [sp, #0x228] +_02019DEA: + ldr r0, [sp, #0x220] + add r0, r0, #0x4 + str r0, [sp, #0x220] + ldr r0, [sp, #0x22c] + add r0, r0, #0x1 + str r0, [sp, #0x22c] + cmp r0, #0x8 + blt _02019D2A + ldr r0, [sp, #0x0] + str r0, [sp, #0x20c] + add r0, #0x20 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x214] + mov r0, #0x0 + str r0, [sp, #0x218] + ldr r0, [sp, #0x5c] + str r0, [sp, #0xd4] + add r0, #0x8 + str r0, [sp, #0xd4] +_02019E12: + ldr r0, [sp, #0x20c] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0xd4] + str r0, [sp, #0x208] + ldr r0, [sp, #0x218] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x210] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2c8] + sub r0, #0x8 + str r0, [sp, #0x2c8] + cmp r0, #0x0 + ble _02019ECC + ble _02019ECC + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x214] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x214] + str r6, [sp, #0xd0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xcc] + str r0, [sp, #0xc8] +_02019E6A: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xd0] + str r5, [sp, #0x2cc] + add r0, r5, r0 + ldr r5, [sp, #0x208] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019EBE + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2d0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2d4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2d4] + and r6, r5 + ldr r5, [sp, #0x2d0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EBE + ldr r6, [sp, #0x2cc] + ldr r0, [sp, #0xcc] + add r6, r6, r0 + ldr r0, [sp, #0xc8] + strb r5, [r0, r6] +_02019EBE: + ldr r0, [sp, #0x2c8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019E6A +_02019ECC: + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EDA + ldr r0, [sp, #0x214] + add r0, r0, #0x2 + str r0, [sp, #0x214] + b _02019EE0 +_02019EDA: + ldr r0, [sp, #0x214] + add r0, r0, #0x1 + str r0, [sp, #0x214] +_02019EE0: + ldr r0, [sp, #0x20c] + add r0, r0, #0x4 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x218] + add r0, r0, #0x1 + str r0, [sp, #0x218] + cmp r0, #0x8 + blt _02019E12 + ldr r0, [sp, #0x0] + mov r2, #0x0 + str r0, [sp, #0x1fc] + add r0, #0x40 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] + str r0, [sp, #0x204] +_02019F04: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019F12 + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019F12: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019F04 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xe4] + mov r0, #0x0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A008 +_02019F30: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0xe4] + ldr r0, [r0, #0x0] + ldr r6, [sp, #0x38] + str r0, [sp, #0x1f8] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x200] + ldr r0, [sp, #0x204] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x204] + str r6, [sp, #0xe0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + ldr r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xdc] + str r0, [sp, #0xd8] +_02019F78: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 +// b _02019F8C +// nop +// _02019F88: .word 0x00003FE0 +// _02019F8C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xe0] + str r5, [sp, #0x2d8] + add r0, r5, r0 + ldr r5, [sp, #0x1f8] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019FD4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2dc] + ldrb r5, [r0, r7] + str r5, [sp, #0x2e0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2e0] + and r6, r5 + ldr r5, [sp, #0x2dc] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FD4 + ldr r6, [sp, #0x2d8] + ldr r0, [sp, #0xdc] + add r6, r6, r0 + ldr r0, [sp, #0xd8] + strb r5, [r0, r6] +_02019FD4: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019F78 + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FEE + ldr r0, [sp, #0x204] + add r0, r0, #0x2 + str r0, [sp, #0x204] + b _02019FF4 +_02019FEE: + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019FF4: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x1c] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1c] + cmp r0, r1 + blt _02019F30 +_0201A008: + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x60 + str r0, [sp, #0x0] + mov r1, #0x1 +_0201A012: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A020 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A020: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A012 + ldr r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xf4] + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _0201A03E + bl _0201A8BC +_0201A03E: + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A044: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xf4] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x1f0] + ldr r0, [sp, #0x18] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1f4] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2e4] + sub r0, #0x8 + str r0, [sp, #0x2e4] + cmp r0, #0x0 + ble _0201A0FE + ble _0201A0FE + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xf0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xec] + str r0, [sp, #0xe8] +_0201A09C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xf0] + str r5, [sp, #0x2e8] + add r0, r5, r0 + ldr r5, [sp, #0x1f0] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201A0F0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2ec] + ldrb r5, [r0, r7] + mov r12, r5 + mov r5, #0xf0 + asr r5, r6 + mov r6, r12 + and r6, r5 + ldr r5, [sp, #0x2ec] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A0F0 + ldr r6, [sp, #0x2e8] + ldr r0, [sp, #0xec] + add r6, r6, r0 + ldr r0, [sp, #0xe8] + strb r5, [r0, r6] +_0201A0F0: + ldr r0, [sp, #0x2e4] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _0201A09C +_0201A0FE: + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A10C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A112 +_0201A10C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A112: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x18] + cmp r0, r1 + blt _0201A044 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_0201A12C: // 0x0201A12C + lsl r1, r2, #0x2 + mul r1, r3 + ldr r3, [r5, #0x0] + ldrb r2, [r5, #0x9] + ldr r0, [sp, #0x0] + ldr r3, [r3, #0x0] + lsl r1, r1, #0x3 + bl Convert4bppTo8bpp + str r0, [sp, #0x1ec] + cmp r4, #0x3 + bhi _0201A21E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0201A150: + + lsl r6, r0, #0 + lsl r6, r1, #3 + lsl r0, r7, #9 + lsl r4, r3, #16 + // jump table (using 16-bit offset) + // .short _0201A158 - _0201A150 - 2; case 0 + // .short _0201A220 - _0201A150 - 2; case 1 + // .short _0201A3CA - _0201A150 - 2; case 2 + // .short _0201A56E - _0201A150 - 2; case 3 +_0201A158: + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10c] + mov r0, #0x0 + str r0, [sp, #0x1e8] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A21E + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x108] +_0201A178: + ldr r1, [sp, #0x10c] + ldr r0, [sp, #0x1e8] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x310] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A1FC + ble _0201A1FC + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x108] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x100] + ldr r0, [sp, #0x48] + str r2, [sp, #0x104] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x108] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0xfc] + str r0, [sp, #0xf8] +_0201A1C4: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x104] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0x100] + strb r1, [r2, r0] + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0xfc] + add r2, r3, r0 + ldr r0, [sp, #0xf8] + strb r1, [r0, r2] +_0201A1F0: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A1C4 +_0201A1FC: + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A20A + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A210 +_0201A20A: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A210: + ldr r0, [sp, #0x1e8] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e8] + cmp r1, r0 + blt _0201A178 +_0201A21E: + b _0201A8B6 +_0201A220: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1e0] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x124] + mov r0, #0x0 + str r0, [sp, #0x1e4] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A2E6 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x120] +_0201A24A: + ldr r1, [sp, #0x124] + ldr r0, [sp, #0x1e4] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x30c] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1e0] + ldr r2, [sp, #0x120] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x118] + ldr r0, [sp, #0x1e0] + str r2, [sp, #0x11c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x120] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r2, [sp, #0x114] + str r0, [sp, #0x110] +_0201A28E: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x11c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x118] + strb r1, [r2, r0] + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x114] + add r2, r3, r0 + ldr r0, [sp, #0x110] + strb r1, [r0, r2] +_0201A2BA: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A28E + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2D2 + ldr r0, [sp, #0x1e0] + add r0, r0, #0x2 + str r0, [sp, #0x1e0] + b _0201A2D8 +_0201A2D2: + ldr r0, [sp, #0x1e0] + add r0, r0, #0x1 + str r0, [sp, #0x1e0] +_0201A2D8: + ldr r0, [sp, #0x1e4] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e4] + cmp r1, r0 + blt _0201A24A +_0201A2E6: + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x308] + add r0, #0x40 + str r0, [sp, #0x308] + ldr r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x13c] + mov r0, #0x0 + str r0, [sp, #0x1dc] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A3C8 + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x138] +_0201A312: + ldr r1, [sp, #0x13c] + ldr r0, [sp, #0x1dc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1d8] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A398 + ble _0201A398 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x138] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x130] + ldr r0, [sp, #0x48] + str r2, [sp, #0x134] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x138] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x12c] + str r0, [sp, #0x128] +_0201A360: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x134] + add r2, r3, r0 + ldr r0, [sp, #0x308] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A38E + ldr r0, [sp, #0x130] + strb r1, [r2, r0] + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A38E + ldr r0, [sp, #0x12c] + add r2, r3, r0 + ldr r0, [sp, #0x128] + strb r1, [r0, r2] +_0201A38E: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A360 +_0201A398: + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A3B0 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A3B6 +// nop +// _0201A3A8: .word 0x00003FE0 +// _0201A3AC: .word 0x00007FC0 +_0201A3B0: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A3B6: + ldr r0, [sp, #0x308] + add r0, #0x8 + str r0, [sp, #0x308] + ldr r0, [sp, #0x1dc] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1dc] + cmp r1, r0 + blt _0201A312 +_0201A3C8: + b _0201A8B6 +_0201A3CA: + ldr r0, [sp, #0x48] + mov r1, #0x7 + str r0, [sp, #0x1d0] + mov r0, #0x0 + str r0, [sp, #0x1d4] + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x150] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x30] +_0201A3E8: + ldr r1, [sp, #0x150] + ldr r0, [sp, #0x1d4] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x304] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A46C + ble _0201A46C + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1d0] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x148] + ldr r0, [sp, #0x1d0] + str r2, [sp, #0x14c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x144] + str r0, [sp, #0x140] +_0201A434: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x14c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A460 + ldr r0, [sp, #0x148] + strb r1, [r2, r0] + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A460 + ldr r0, [sp, #0x144] + add r2, r3, r0 + ldr r0, [sp, #0x140] + strb r1, [r0, r2] +_0201A460: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A434 +_0201A46C: + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A47A + ldr r0, [sp, #0x1d0] + add r0, r0, #0x2 + str r0, [sp, #0x1d0] + b _0201A480 +_0201A47A: + ldr r0, [sp, #0x1d0] + add r0, r0, #0x1 + str r0, [sp, #0x1d0] +_0201A480: + ldr r0, [sp, #0x1d4] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1d4] + cmp r0, #0x8 + blt _0201A3E8 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + str r0, [sp, #0x48] + add r7, #0x80 + mov r0, #0x0 + mov r2, #0x1 +_0201A49A: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A4A8 + ldr r1, [sp, #0x48] + add r1, r1, #0x1 + str r1, [sp, #0x48] +_0201A4A8: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A49A + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x164] + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A56C +_0201A4C4: + ldr r1, [sp, #0x164] + ldr r0, [sp, #0x14] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x300] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A548 + ble _0201A548 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x15c] + ldr r0, [sp, #0x48] + str r2, [sp, #0x160] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x158] + str r0, [sp, #0x154] +_0201A510: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x160] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A53C + ldr r0, [sp, #0x15c] + strb r1, [r2, r0] + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A53C + ldr r0, [sp, #0x158] + add r2, r3, r0 + ldr r0, [sp, #0x154] + strb r1, [r0, r2] +_0201A53C: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A510 +_0201A548: + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A556 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A55C +_0201A556: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A55C: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x14] + cmp r0, r1 + blt _0201A4C4 +_0201A56C: + b _0201A8B6 +_0201A56E: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1c8] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x1cc] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x28] +_0201A590: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1cc] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2fc] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c8] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x170] + ldr r0, [sp, #0x1c8] + str r2, [sp, #0x174] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r6, [sp, #0x24] + str r2, [sp, #0x16c] + str r0, [sp, #0x168] +_0201A5D6: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x174] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A602 + ldr r0, [sp, #0x170] + strb r1, [r2, r0] + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A602 + ldr r0, [sp, #0x16c] + add r2, r3, r0 + ldr r0, [sp, #0x168] + strb r1, [r0, r2] +_0201A602: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A5D6 + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A61A + ldr r0, [sp, #0x1c8] + add r0, r0, #0x2 + str r0, [sp, #0x1c8] + b _0201A620 +_0201A61A: + ldr r0, [sp, #0x1c8] + add r0, r0, #0x1 + str r0, [sp, #0x1c8] +_0201A620: + ldr r0, [sp, #0x1cc] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1cc] + cmp r0, #0x8 + blt _0201A590 + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x2f8] + add r0, #0x40 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x48] + str r0, [sp, #0x1c0] + mov r0, #0x0 + str r0, [sp, #0x1c4] + ldr r0, [sp, #0x5c] + str r0, [sp, #0x188] + add r0, #0x8 + str r0, [sp, #0x188] +_0201A644: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1c4] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1bc] + ldr r5, [sp, #0x188] + cmp r7, #0x0 + ble _0201A6CA + ble _0201A6CA + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c0] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x180] + ldr r0, [sp, #0x1c0] + str r2, [sp, #0x184] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x17c] + str r0, [sp, #0x178] +_0201A692: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x184] + add r2, r3, r0 + ldr r0, [sp, #0x2f8] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x180] + strb r1, [r2, r0] + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x17c] + add r2, r3, r0 + ldr r0, [sp, #0x178] + strb r1, [r0, r2] +_0201A6C0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A692 +_0201A6CA: + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6D8 + ldr r0, [sp, #0x1c0] + add r0, r0, #0x2 + str r0, [sp, #0x1c0] + b _0201A6DE +_0201A6D8: + ldr r0, [sp, #0x1c0] + add r0, r0, #0x1 + str r0, [sp, #0x1c0] +_0201A6DE: + ldr r0, [sp, #0x2f8] + add r0, #0x8 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x1c4] + add r0, r0, #0x1 + str r0, [sp, #0x1c4] + cmp r0, #0x8 + blt _0201A644 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + add r7, #0x80 + str r0, [sp, #0x48] + str r0, [sp, #0x1b8] + mov r0, #0x0 + mov r2, #0x1 +_0201A6FE: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A70C + ldr r1, [sp, #0x1b8] + add r1, r1, #0x1 + str r1, [sp, #0x1b8] +_0201A70C: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A6FE + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x19c] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A7CE +_0201A72A: + ldr r1, [sp, #0x19c] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x28] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2f4] + ldr r0, [sp, #0x1b8] + mov r3, #0x38 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 +// b _0201A74C +// nop +// _0201A748: .word 0x00007FC0 +// _0201A74C: + ldr r5, [sp, #0x5c] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x194] + ldr r0, [sp, #0x1b8] + str r2, [sp, #0x198] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + ldr r6, [sp, #0x24] + mov r4, #0x0 + str r2, [sp, #0x190] + str r0, [sp, #0x18c] +_0201A774: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x198] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x194] + strb r1, [r2, r0] + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x190] + add r2, r3, r0 + ldr r0, [sp, #0x18c] + strb r1, [r0, r2] +_0201A7A0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A774 + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7B8 + ldr r0, [sp, #0x1b8] + add r0, r0, #0x2 + str r0, [sp, #0x1b8] + b _0201A7BE +_0201A7B8: + ldr r0, [sp, #0x1b8] + add r0, r0, #0x1 + str r0, [sp, #0x1b8] +_0201A7BE: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x10] + cmp r0, r1 + blt _0201A72A +_0201A7CE: + ldr r0, [sp, #0x1ec] + mov r2, #0x0 + str r0, [sp, #0x2f0] + add r0, #0xc0 + str r0, [sp, #0x2f0] + mov r1, #0x1 +_0201A7DA: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A7E8 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A7E8: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A7DA + ldr r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1b0] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A8B6 + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A808: + ldr r1, [sp, #0x1b0] + ldr r0, [sp, #0xc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1b4] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A88E + ble _0201A88E + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x1a8] + ldr r0, [sp, #0x48] + str r2, [sp, #0x1ac] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x1a4] + str r0, [sp, #0x1a0] +_0201A856: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x1ac] + add r2, r3, r0 + ldr r0, [sp, #0x2f0] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a8] + strb r1, [r2, r0] + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a4] + add r2, r3, r0 + ldr r0, [sp, #0x1a0] + strb r1, [r0, r2] +_0201A884: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A856 +_0201A88E: + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A89C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A8A2 +_0201A89C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A8A2: + ldr r0, [sp, #0x2f0] + ldr r1, [sp, #0x4] + add r0, #0x8 + str r0, [sp, #0x2f0] + ldr r0, [sp, #0xc] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, r1 + blt _0201A808 +_0201A8B6: + ldr r0, [sp, #0x1ec] + bl FreeToHeap +_0201A8BC: // 0x0201A8BC + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3) +{ + if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16) + { + ScrollWindow4bpp(window, param1, param2, param3); + } + else + { + ScrollWindow8bpp(window, param1, param2, param3); + } +} + +THUMB_FUNC void ScrollWindow4bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue) +{ + void *r2; + int r5, r1, r3; + int st4, stc; + u32 st8; + int i, j; + + r2 = window->pixelBuffer; + st4 = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 0x8) | fillValue; + stc = window->height * window->width * 32; + st8 = window->width; + + switch (param1) + { + case 0: + for (i = 0; i < stc; i += 32) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 2); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + + if (r1 < stc) + { + *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); + } + else + { + *(u32 *)(r2 + r5) = (u32)st4; + } + + r3++; + } + } + + break; + case 1: + r2 += stc - 4; + for (i = 0; i < stc; i += 32) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 2); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + + if (r1 < stc) + { + *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); + } + else + { + *(u32 *)(r2 - r5) = (u32)st4; + } + + r3++; + } + } + + break; + case 2: + case 3: + break; + } +} + +THUMB_FUNC void ScrollWindow8bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue) +{ + + void *pixelBuffer; + int dstOffs, srcOffs, r3; + int st4, size; + u32 srcWidth; + int i, j; + + pixelBuffer = (u8 *)window->pixelBuffer; + st4 = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 0x8) | fillValue; + size = window->height * window->width * 64; + srcWidth = window->width; + + switch (param1) + { + case 0: + for (i = 0; i < size; i += 64) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + dstOffs = i + (j << 3); + srcOffs = i + (int)(((srcWidth * (r3 & ~7)) | (r3 & 7)) << 3); + + if (srcOffs < size) + { + *(u32 *)(pixelBuffer + dstOffs) = *(u32 *)(pixelBuffer + srcOffs); + } + else + { + *(u32 *)(pixelBuffer + dstOffs) = (u32)st4; + } + + dstOffs += 4; + srcOffs += 4; + if (srcOffs < size + 4) + { + *(u32 *)(pixelBuffer + dstOffs) = *(u32 *)(pixelBuffer + srcOffs); + } + else + { + *(u32 *)(pixelBuffer + dstOffs) = (u32)st4; + } + + r3++; + } + } + + break; + case 1: + pixelBuffer += size - 8; + for (i = 0; i < size; i += 64) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + dstOffs = i + (j << 3); + srcOffs = i + (int)(((srcWidth * (r3 & ~7)) | (r3 & 7)) << 3); + + if (srcOffs < size) + { + *(u32 *)(pixelBuffer - dstOffs) = *(u32 *)(pixelBuffer - srcOffs); + } + else + { + *(u32 *)(pixelBuffer - dstOffs) = (u32)st4; + } + + dstOffs -= 4; + srcOffs -= 4; + if (srcOffs < size - 4) + { + *(u32 *)(pixelBuffer - dstOffs) = *(u32 *)(pixelBuffer - srcOffs); + } + else + { + *(u32 *)(pixelBuffer - dstOffs) = (u32)st4; + } + + r3++; + } + } + + break; + case 2: + case 3: + break; + } +} + +THUMB_FUNC u8 GetWindowBgId(struct Window *window) +{ + return window->bgId; +} + +THUMB_FUNC u8 GetWindowWidth(struct Window *window) +{ + return window->width; +} +THUMB_FUNC u8 GetWindowHeight(struct Window *window) +{ + return window->height; +} +THUMB_FUNC u8 GetWindowX(struct Window *window) +{ + return window->tilemapLeft; +} +THUMB_FUNC u8 GetWindowY(struct Window *window) +{ + return window->tilemapTop; +} +THUMB_FUNC void MoveWindowX(struct Window *window, u8 x) +{ + window->tilemapLeft = x; +} +THUMB_FUNC void MoveWindowY(struct Window *window, u8 y) +{ + window->tilemapTop = y; +} +THUMB_FUNC void SetWindowPaletteNum(struct Window *window, u8 paletteNum) +{ + window->paletteNum = paletteNum; +} + +THUMB_FUNC NNSG2dCharacterData * LoadCharacterDataFromFile(void **char_ret, u32 heap_id, const char *path) +{ + void *ptr = AllocAndReadFile(heap_id, path); + *char_ret = ptr; + NNSG2dCharacterData *st0; + NNS_G2dGetUnpackedBGCharacterData(ptr, &st0); + + return st0; +} + +THUMB_FUNC NNSG2dPaletteData * LoadPaletteDataFromFile(void **pltt_ret, u32 heap_id, const char *path) +{ + void *ptr = AllocAndReadFile(heap_id, path); + *pltt_ret = ptr; + NNSG2dPaletteData *st0; + NNS_G2dGetUnpackedPaletteData(ptr, &st0); + + return st0; +} + +THUMB_FUNC void DoScheduledBgGpuUpdates(struct BgConfig *bgConfig) +{ + ApplyScheduledBgPosUpdate(bgConfig); + DoScheduledBgTilemapBufferTransfers(bgConfig); + + bgConfig->scrollScheduled = 0; + bgConfig->bufferTransferScheduled = 0; +} + +THUMB_FUNC void DoScheduledBgTilemapBufferTransfers(struct BgConfig *bgConfig) +{ + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_0)) != 0) + { + LoadBgVramScr(GF_BG_LYR_MAIN_0, bgConfig->bgs[GF_BG_LYR_MAIN_0].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_0].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_0].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_1)) != 0) + { + LoadBgVramScr(GF_BG_LYR_MAIN_1, bgConfig->bgs[GF_BG_LYR_MAIN_1].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_1].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_1].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_2)) != 0) + { + LoadBgVramScr(GF_BG_LYR_MAIN_2, bgConfig->bgs[GF_BG_LYR_MAIN_2].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_2].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_2].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_3)) != 0) + { + LoadBgVramScr(GF_BG_LYR_MAIN_3, bgConfig->bgs[GF_BG_LYR_MAIN_3].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_3].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_3].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_0)) != 0) + { + LoadBgVramScr(GF_BG_LYR_SUB_0, bgConfig->bgs[GF_BG_LYR_SUB_0].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_0].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_0].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_1)) != 0) + { + LoadBgVramScr(GF_BG_LYR_SUB_1, bgConfig->bgs[GF_BG_LYR_SUB_1].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_1].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_1].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_2)) != 0) + { + LoadBgVramScr(GF_BG_LYR_SUB_2, bgConfig->bgs[GF_BG_LYR_SUB_2].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_2].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_2].bufferSize); + } + + if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_3)) != 0) + { + LoadBgVramScr(GF_BG_LYR_SUB_3, bgConfig->bgs[GF_BG_LYR_SUB_3].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_3].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_3].bufferSize); + } +} + +THUMB_FUNC void ScheduleBgTilemapBufferTransfer(struct BgConfig *bgConfig, u32 bgId) +{ + bgConfig->bufferTransferScheduled |= 1 << bgId; +} + +THUMB_FUNC void ApplyScheduledBgPosUpdate(struct BgConfig *bgConfig) +{ + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_0)) != 0) + { + G2_SetBG0Offset(bgConfig->bgs[GF_BG_LYR_MAIN_0].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_0].vOffset); + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_1)) != 0) + { + G2_SetBG1Offset(bgConfig->bgs[GF_BG_LYR_MAIN_1].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_1].vOffset); + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_2)) != 0) + { + if (bgConfig->bgs[GF_BG_LYR_MAIN_2].mode == 0) + { + G2_SetBG2Offset(bgConfig->bgs[GF_BG_LYR_MAIN_2].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_2].vOffset); + } + else + { + struct Mtx22 st38; + MTX22_2DAffine( + &st38, bgConfig->bgs[GF_BG_LYR_MAIN_2].rotation, bgConfig->bgs[GF_BG_LYR_MAIN_2].xScale, bgConfig->bgs[GF_BG_LYR_MAIN_2].yScale, 2); + G2_SetBG2Affine( + &st38, + bgConfig->bgs[GF_BG_LYR_MAIN_2].centerX, + bgConfig->bgs[GF_BG_LYR_MAIN_2].centerY, + bgConfig->bgs[GF_BG_LYR_MAIN_2].hOffset, + bgConfig->bgs[GF_BG_LYR_MAIN_2].vOffset); + } + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_3)) != 0) + { + if (bgConfig->bgs[GF_BG_LYR_MAIN_3].mode == 0) + { + G2_SetBG3Offset(bgConfig->bgs[GF_BG_LYR_MAIN_3].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_3].vOffset); + } + else + { + struct Mtx22 st28; + MTX22_2DAffine( + &st28, bgConfig->bgs[GF_BG_LYR_MAIN_3].rotation, bgConfig->bgs[GF_BG_LYR_MAIN_3].xScale, bgConfig->bgs[GF_BG_LYR_MAIN_3].yScale, 2); + G2_SetBG3Affine( + &st28, + bgConfig->bgs[GF_BG_LYR_MAIN_3].centerX, + bgConfig->bgs[GF_BG_LYR_MAIN_3].centerY, + bgConfig->bgs[GF_BG_LYR_MAIN_3].hOffset, + bgConfig->bgs[GF_BG_LYR_MAIN_3].vOffset); + } + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_0)) != 0) + { + G2S_SetBG0Offset(bgConfig->bgs[GF_BG_LYR_SUB_0].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_0].vOffset); + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_1)) != 0) + { + G2S_SetBG1Offset(bgConfig->bgs[GF_BG_LYR_SUB_1].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_1].vOffset); + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_2)) != 0) + { + if (bgConfig->bgs[GF_BG_LYR_SUB_2].mode == 0) + { + G2S_SetBG2Offset(bgConfig->bgs[GF_BG_LYR_SUB_2].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_2].vOffset); + } + else + { + struct Mtx22 st18; + MTX22_2DAffine( + &st18, bgConfig->bgs[GF_BG_LYR_SUB_2].rotation, bgConfig->bgs[GF_BG_LYR_SUB_2].xScale, bgConfig->bgs[GF_BG_LYR_SUB_2].yScale, 2); + G2S_SetBG2Affine( + &st18, + bgConfig->bgs[GF_BG_LYR_SUB_2].centerX, + bgConfig->bgs[GF_BG_LYR_SUB_2].centerY, + bgConfig->bgs[GF_BG_LYR_SUB_2].hOffset, + bgConfig->bgs[GF_BG_LYR_SUB_2].vOffset); + } + } + + if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_3)) != 0) + { + if (bgConfig->bgs[GF_BG_LYR_SUB_3].mode == 0) + { + G2S_SetBG3Offset(bgConfig->bgs[GF_BG_LYR_SUB_3].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_3].vOffset); + } + else + { + struct Mtx22 st08; + MTX22_2DAffine( + &st08, bgConfig->bgs[GF_BG_LYR_SUB_3].rotation, bgConfig->bgs[GF_BG_LYR_SUB_3].xScale, bgConfig->bgs[GF_BG_LYR_SUB_3].yScale, 2); + G2S_SetBG3Affine( + &st08, + bgConfig->bgs[GF_BG_LYR_SUB_3].centerX, + bgConfig->bgs[GF_BG_LYR_SUB_3].centerY, + bgConfig->bgs[GF_BG_LYR_SUB_3].hOffset, + bgConfig->bgs[GF_BG_LYR_SUB_3].vOffset); + } + } +} + +THUMB_FUNC void ScheduleSetBgPosText( + struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value) +{ + Bg_SetPosText(&bgConfig->bgs[bgId], op, value); + bgConfig->scrollScheduled |= 1 << bgId; +} + +THUMB_FUNC void ScheduleSetBgAffineRotation( + struct BgConfig *bgConfig, u32 bgId, u32 op, u16 value) +{ + Bg_SetAffineRotation(&bgConfig->bgs[bgId], op, value); + bgConfig->scrollScheduled |= 1 << bgId; +} + +THUMB_FUNC void Bg_SetAffineRotation(struct Bg *bg, u32 op, u16 val) +{ + switch (op) + { + case BG_POS_OP_SET_ROT: + bg->rotation = val; + break; + case BG_POS_OP_ADD_ROT: + bg->rotation += val; + break; + case BG_POS_OP_SUB_ROT: + bg->rotation -= val; + break; + } +} + +THUMB_FUNC void ScheduleSetBgAffinePos( + struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value) +{ + Bg_SetAffinePos(&bgConfig->bgs[bgId], op, value); + bgConfig->scrollScheduled |= 1 << bgId; +} + +THUMB_FUNC void Bg_SetAffinePos(struct Bg *bg, u32 op, fx32 val) +{ + switch (op) + { + case BG_POS_OP_SET_CENTERX: + bg->centerX = val; + break; + case BG_POS_OP_ADD_CENTERX: + bg->centerX += val; + break; + case BG_POS_OP_SUB_CENTERX: + bg->centerX -= val; + break; + case BG_POS_OP_SET_CENTERY: + bg->centerY = val; + break; + case BG_POS_OP_ADD_CENTERY: + bg->centerY += val; + break; + case BG_POS_OP_SUB_CENTERY: + bg->centerY -= val; + break; + } +} + +THUMB_FUNC u32 DoesPixelAtScreenXYMatchPtrVal( + struct BgConfig *bgConfig, u8 bgId, u8 x, u8 y, u16 *src) +{ + void *bgCharPtr; + u16 tilemapIdx; + u8 xPixOffs; + u8 yPixOffs; + u8 pixelValue; + u8 i; + + if (bgConfig->bgs[bgId].tilemapBuffer == NULL) + { + return 0; + } + + tilemapIdx = GetTileMapIndexFromCoords((u8) (x >> 3), (u8) (y >> 3), bgConfig->bgs[bgId].size); + bgCharPtr = BgGetCharPtr(bgId); + + xPixOffs = (u8)(x & 7); + yPixOffs = (u8)(y & 7); + + if (bgConfig->bgs[bgId].colorMode == GX_BG_COLORMODE_16) + { + u16 *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer; + u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40); + + bgCharPtr += ((tilemapBuffer[tilemapIdx] & 0x3ff) << 5); + for (i = 0; i < 0x20; i++) + { + ptr[(i << 1)] = (u8)(((u8 *)bgCharPtr)[i] & 0xf); + ptr[(i << 1) + 1] = (u8)(((u8 *)bgCharPtr)[i] >> 4); + } + + ApplyFlipFlagsToTile(bgConfig, (u8)((tilemapBuffer[tilemapIdx] >> 0xa) & 3), ptr); + + pixelValue = ptr[xPixOffs + (yPixOffs << 3)]; + FreeToHeap(ptr); + + if ((src[0] & (1 << pixelValue)) != 0) + { + return 1; + } + } + else + { + if (bgConfig->bgs[bgId].mode != GF_BG_TYPE_AFFINE) + { + u16 *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer; + u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40); + + memcpy(ptr, bgCharPtr + ((tilemapBuffer[tilemapIdx] & 0x3ff) << 6), 0x40); + + ApplyFlipFlagsToTile(bgConfig, (u8)((tilemapBuffer[tilemapIdx] >> 0xa) & 3), ptr); + + pixelValue = ptr[xPixOffs + (yPixOffs << 3)]; + FreeToHeap(ptr); + } + else + { + pixelValue = ((u8 *)bgCharPtr)[(((u8 *)bgConfig->bgs[bgId].tilemapBuffer)[tilemapIdx] << 6) + xPixOffs + (yPixOffs << 3)]; + } + + // BUG: Infinite loop + while (TRUE) + { + if (src[0] == 0xffff) + { + break; + } + if (pixelValue == (u8)(src[0])) + { + return 1; + } + } + } + return 0; +} + +THUMB_FUNC void ApplyFlipFlagsToTile(struct BgConfig *bgConfig, u8 flag, u8 *src) +{ + u8 i, j; + if (flag != 0) + { + u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40); + + if ((flag & 1) != 0) + { + for (i = 0; i < 8; i++) + { + for (j = 0; j < 8; j++) + { + ptr[i * 8 + j] = src[i * 8 + (7 - j)]; + } + } + + memcpy(src, ptr, 0x40); + } + + if ((flag & 2) != 0) + { + for (i = 0; i < 8; i++) + { + u8 *r3 = &ptr[i * 8]; + u8 *r2 = &src[(7 - i) * 8]; + for (u32 j = 8; j > 0; j--) + { + *r3++ = *r2++; + } + } + + memcpy(src, ptr, 0x40); + } + + FreeToHeap(ptr); + } +} diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 28627d6b..e0d01bde 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -1,25 +1,48 @@ #include "error_message_reset.h" #include "GX_layers.h" +#include "gx.h" #include "unk_02031734.h" #include "unk_0202F150.h" -#include "unk_02016B94.h" - - - -const struct UnkStruct_02016B94_4 UNK_020FF49C = { 0, 3, 3, 0x1a, 0x12, 1, 0x23 }; - -const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 }; - -const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 }; - -const struct UnkStruct_02016B94_1 UNK_020FF4BC = { 0, 0, 0x800, 0, 1, 0, 0, 6, 0, 1, 0, 0, 0 }; - -const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 }; +#include "bg_window.h" +#include "PAD_pad.h" + + +const struct WindowTemplate UNK_020FF49C = { + .bgId = GF_BG_LYR_MAIN_0, + .tilemapLeft = 3, + .tilemapTop = 3, + .width = 26, + .height = 18, + .paletteNum = 1, + .baseTile = 0x23 +}; + +const struct HeapParam UNK_020FF4A4[] = { + {0x00020000, OS_ARENA_MAIN} +}; + +const struct GraphicsModes UNK_020FF4AC = { .dispMode = GX_DISPMODE_GRAPHICS }; + +const struct BgTemplate UNK_020FF4BC = { + .x = 0, + .y = 0, + .bufferSize = 0x800, + .baseTile = 0, + .size = GF_BG_SCR_SIZE_256x256, + .colorMode = GX_BG_COLORMODE_16, + .screenBase = GX_BG_SCRBASE_0x0000, .charBase = GX_BG_CHARBASE_0x18000, + .bgExtPltt = GX_BG_EXTPLTT_01, + .priority = 1, + .areaOver = 0, + .mosaic = FALSE +}; + +const struct GraphicsBanks UNK_020FF4D8 = { .bg = 3 }; u32 sErrorMessagePrinterLock; extern void FUN_0200E3A0(PMLCDTarget, int); -extern void FUN_0200CB00(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_0200CB00(struct BgConfig *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); @@ -27,15 +50,14 @@ extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); THUMB_FUNC void VBlankHandler() { - *(vu32 *)HW_INTR_CHECK_BUF |= 1; - + OS_SetIrqCheckFlag(OS_IE_V_BLANK); MI_WaitDma(3); } THUMB_FUNC void PrintErrorMessageAndReset() { - struct UnkStruct_02016B94_2 *ptr; + struct BgConfig *ptr; struct Window buf; if (sErrorMessagePrinterLock != 1) @@ -44,13 +66,13 @@ THUMB_FUNC void PrintErrorMessageAndReset() OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN)); OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN)); - FUN_020166C8((u32 *)UNK_020FF4A4, 1, 1, 0); + InitHeapSystem(UNK_020FF4A4, NELEMS(UNK_020FF4A4), 1, 0); FUN_0200E3A0(PM_LCD_TOP, 0); FUN_0200E3A0(PM_LCD_BOTTOM, 0); - OS_DisableIrqMask(1); - OS_SetIrqFunction(1, &VBlankHandler); - OS_EnableIrqMask(1); + OS_DisableIrqMask(OS_IE_V_BLANK); + OS_SetIrqFunction(OS_IE_V_BLANK, &VBlankHandler); + OS_EnableIrqMask(OS_IE_V_BLANK); Main_SetVBlankIntrCB(NULL, NULL); @@ -58,38 +80,39 @@ THUMB_FUNC void PrintErrorMessageAndReset() GX_DisableEngineALayers(); GX_DisableEngineBLayers(); - reg_GX_DISPCNT &= 0xFFFFE0FF; - reg_GXS_DB_DISPCNT &= 0xFFFFE0FF; + GX_SetVisiblePlane(0); + GXS_SetVisiblePlane(0); - FUN_0201669C(4, 8); + SetKeyRepeatTimers(4, 8); gMain.unk65 = 0; GX_SwapDisplay(); - reg_G2_BLDCNT = 0; - reg_G2S_DB_BLDCNT = 0; - reg_GX_DISPCNT &= 0xFFFF1FFF; - reg_GXS_DB_DISPCNT &= 0xFFFF1FFF; + G2_BlendNone(); + G2S_BlendNone(); + + GX_SetVisibleWnd(0); + GXS_SetVisibleWnd(0); GX_SetBanks(&UNK_020FF4D8); - ptr = FUN_02016B94(0); - FUN_02016BBC(&UNK_020FF4AC); + ptr = BgConfig_Alloc(0); + SetBothScreensModesAndDisable(&UNK_020FF4AC); - FUN_02016C18(ptr, 0, &UNK_020FF4BC, 0); - FUN_02018744(ptr, 0); + InitBgFromTemplate(ptr, 0, &UNK_020FF4BC, 0); + BgClearTilemapBufferAndCommit(ptr, 0); FUN_0200CB00(ptr, 0, 503, 2, 0, 0); FUN_02002ED0(0, 0x20, 0); - FUN_02017F18(0, 0x20, 0, 0); - FUN_02017FE4(0, 0x6C21); - FUN_02017FE4(4, 0x6C21); + BG_ClearCharDataRange(0, 0x20, 0, 0); + BG_SetMaskColor(0, 0x6C21); + BG_SetMaskColor(4, 0x6C21); struct MsgData *msg_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0xc8, 0); struct String *str = String_ctor(6 << 6, 0); FUN_0201BD5C(); - FUN_02019150(ptr, &buf, &UNK_020FF49C); + AddWindow(ptr, &buf, &UNK_020FF49C); FillWindowPixelRect(&buf, 15, 0, 0, 0xd0, 0x90); FUN_0200CCA4(&buf, 0, 0x1f7, 2); @@ -104,28 +127,26 @@ THUMB_FUNC void PrintErrorMessageAndReset() FUN_0200A274(0, 0x3f, 3); FUN_02032DAC(); - lid: - HandleDSLidAction(); - FUN_0202FB80(); - if (!FUN_02033678()) + while (1) { - OS_WaitIrq(1, 1); - goto lid; + HandleDSLidAction(); + FUN_0202FB80(); + if (FUN_02033678()) + break; + OS_WaitIrq(TRUE, OS_IE_V_BLANK); } - - lid2: - HandleDSLidAction(); - if (!((u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^ 0x2FFF) & 0x2FFF) & 1)) + while (1) { - OS_WaitIrq(1, 1); - goto lid2; + HandleDSLidAction(); + if ((PAD_Read() & PAD_BUTTON_A)) + break; + OS_WaitIrq(TRUE, OS_IE_V_BLANK); } - FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); - FUN_02019178(&buf); + RemoveWindow(&buf); DestroyMsgData(msg_data); FreeToHeap(ptr); diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c index ed82acb9..37d381a3 100644 --- a/arm9/src/filesystem.c +++ b/arm9/src/filesystem.c @@ -175,8 +175,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3 FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); - if (num_files <= file_idx) - GF_AssertFail(); + GF_ASSERT(num_files > file_idx); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -190,8 +189,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3 chunk_size = file_end - file_start; else chunk_size = size; - if (chunk_size == 0) - GF_AssertFail(); + GF_ASSERT(chunk_size != 0); FS_ReadFile(&file, dest, (s32)chunk_size); FS_CloseFile(&file); } @@ -216,8 +214,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); - if (num_files <= file_idx) - GF_AssertFail(); + GF_ASSERT(num_files > file_idx); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -231,8 +228,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f chunk_size = file_end - file_start; else chunk_size = size; - if (chunk_size == 0) - GF_AssertFail(); + GF_ASSERT(chunk_size != 0); switch (r4) { case 0: @@ -296,8 +292,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx) FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); - if (num_files <= file_idx) - GF_AssertFail(); + GF_ASSERT(num_files > file_idx); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -308,8 +303,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx) chunk_starts[2] = chunk_starts[1] + btnf_size; FS_SeekFile(&file, (s32)(chunk_starts[2] + 8 + file_start + 0), FS_SEEK_SET); chunk_size = file_end - file_start; - if (chunk_size == 0) - GF_AssertFail(); + GF_ASSERT(chunk_size != 0); // Bug: File is never closed return chunk_size; } @@ -348,8 +342,7 @@ THUMB_FUNC void * NARC_AllocAndReadWholeMember(NARC * narc, u32 file_id, u32 hea u32 file_start; u32 file_end; void * dest; - if (narc->num_files <= file_id) - GF_AssertFail(); + GF_ASSERT(narc->num_files > file_id); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -366,8 +359,7 @@ THUMB_FUNC void NARC_ReadWholeMember(NARC * narc, u32 file_id, void * dest) { u32 file_start; u32 file_end; - if (narc->num_files <= file_id) - GF_AssertFail(); + GF_ASSERT(narc->num_files > file_id); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -379,8 +371,7 @@ THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id) { u32 file_start; u32 file_end; - if (narc->num_files <= file_id) - GF_AssertFail(); + GF_ASSERT(narc->num_files > file_id); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -390,8 +381,7 @@ THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id) THUMB_FUNC void NARC_ReadFromMember(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest) { u32 file_start; - if (narc->num_files <= file_id) - GF_AssertFail(); + GF_ASSERT(narc->num_files > file_id); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_SeekFile(&narc->file, (s32)(narc->gmif_start + 8 + file_start + pos), FS_SEEK_SET); diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index 64ea7a54..1c6098ea 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -10,6 +10,7 @@ #include "game_init.h" #include "registers.h" #include "heap.h" +#include "OS_interrupt.h" #pragma thumb on @@ -30,11 +31,11 @@ OS_DTCM; static struct { void * contents; u32 name_hash; -} UNK_021C4928[128]; +} sFileCache[128]; struct Main gMain; -void Main_HBlankIntr(BOOL); +void Main_ToggleHBlankInterrupt(BOOL enableFlag); void FUN_0201B5CC(void *); void FUN_02015EA0(void) @@ -66,7 +67,7 @@ void Main_SetVBlankIntrCB(void (*a0)(void *), void * a1) void FUN_02015F1C(void) { - Main_HBlankIntr(FALSE); + Main_ToggleHBlankInterrupt(FALSE); gMain.hBlankIntr = NULL; gMain.hBlankIntrArg = NULL; } @@ -75,7 +76,7 @@ BOOL FUN_02015F34(void (*a0)(void *), void * a1) { if (a0 == 0) { - Main_HBlankIntr(FALSE); + Main_ToggleHBlankInterrupt(FALSE); gMain.hBlankIntr = NULL; gMain.hBlankIntrArg = NULL; return TRUE; @@ -84,7 +85,7 @@ BOOL FUN_02015F34(void (*a0)(void *), void * a1) { gMain.hBlankIntrArg = a1; gMain.hBlankIntr = a0; - Main_HBlankIntr(TRUE); + Main_ToggleHBlankInterrupt(TRUE); return TRUE; } else @@ -93,36 +94,36 @@ BOOL FUN_02015F34(void (*a0)(void *), void * a1) } } -void FUN_02015F6C(void) +void Main_CallHBlankCallback(void) { if (gMain.hBlankIntr != NULL) gMain.hBlankIntr(gMain.hBlankIntrArg); } -void Main_HBlankIntr(BOOL a0) +void Main_ToggleHBlankInterrupt(BOOL enableFlag) { (void)OS_DisableIrq(); - if (!a0) + if (!enableFlag) { (void)OS_GetIrqMask(); - OS_DisableIrqMask(2); + OS_DisableIrqMask(OS_IE_H_BLANK); GX_HBlankIntr(FALSE); } else { (void)OS_GetIrqMask(); - OS_SetIrqFunction(2, FUN_02015F6C); - OS_EnableIrqMask(2); + OS_SetIrqFunction(OS_IE_H_BLANK, Main_CallHBlankCallback); + OS_EnableIrqMask(OS_IE_H_BLANK); GX_HBlankIntr(TRUE); } (void)OS_EnableIrq(); } -const u32 UNK_020EDB10[][2] = { - { 0x0000D000, 0x00000000 }, - { 0x00021000, 0x00000000 }, - { 0x00001000, 0x00000000 }, - { 0x0010D800, 0x00000000 } +const struct HeapParam UNK_020EDB10[] = { + { 0x00D000, OS_ARENA_MAIN }, + { 0x021000, OS_ARENA_MAIN }, + { 0x001000, OS_ARENA_MAIN }, + { 0x10D800, OS_ARENA_MAIN } }; void FUN_02015FC8(void) @@ -136,12 +137,12 @@ void FUN_02015FC8(void) { csum += digest[i]; } - csum = (csum << 24) >> 24; + csum %= 256; while (csum & 3) { csum++; } - FUN_020166C8((u32 *)UNK_020EDB10, 4, 92, csum); + InitHeapSystem(UNK_020EDB10, NELEMS(UNK_020EDB10), 92, csum); } void InitSystemForTheGame(void) @@ -189,7 +190,7 @@ void InitGraphicMemory(void) MI_CpuClearFast((void *)HW_DB_PLTT, HW_DB_PLTT_SIZE); } -void * FUN_020161A4(u32 heap_id, const char * path) +void * AllocAndReadFile(u32 heap_id, const char * path) { void * ret; @@ -214,7 +215,7 @@ void * FUN_020161A4(u32 heap_id, const char * path) return ret; } -void FUN_020161F8(const char * path, void ** ptr) +void OpenAndReadWholeFile(const char * path, void ** ptr) { FSFile file; FS_InitFile(&file); @@ -227,94 +228,94 @@ void FUN_020161F8(const char * path, void ** ptr) } } -u32 FUN_02016230(const s8 * str) +u32 GetFilenameHash(const s8 * str) { u16 len = (u16)strlen(str); - u16 sp4; + u16 numWords; if ((len % 4) != 0) - sp4 = (u16)((len / 4) + 1); + numWords = (u16)((len / 4) + 1); else - sp4 = (u16)(len / 4); - u32 r7 = 0; + numWords = (u16)(len / 4); + u32 hash = 0; s32 i, j; - for (i = 0; i < sp4; i++) + for (i = 0; i < numWords; i++) { - u32 r1 = 0; + u32 curWord = 0; for (j = 0; j < 4; j++) { - int r5 = str[4 * i + j]; - if (r5 == 0) + int curChar = str[4 * i + j]; + if (curChar == 0) break; - r1 |= r5 << (8 * j); + curWord |= curChar << (8 * j); } - r7 ^= r1; + hash ^= curWord; } - return r7; + return hash; } -int FUN_020162A0(u32 a0) +int GetFileCacheId(u32 hash) { for (int i = 0; i < 128; i++) { - if (UNK_021C4928[i].name_hash == a0 && UNK_021C4928[i].contents != NULL) + if (sFileCache[i].name_hash == hash && sFileCache[i].contents != NULL) return i; } return -1; } -int FUN_020162C8(void * a0, u32 a1) +int AddFileToCache(void * contents, u32 hash) { for (int i = 0; i < 128; i++) { - if (UNK_021C4928[i].contents == NULL) + if (sFileCache[i].contents == NULL) { - UNK_021C4928[i].contents = a0; - UNK_021C4928[i].name_hash = a1; + sFileCache[i].contents = contents; + sFileCache[i].name_hash = hash; return i; } } return -1; } -void FUN_020162FC(void) +void ClearFileCache(void) { for (int i = 127; i > -1; i--) { - if (UNK_021C4928[i].contents != NULL) + if (sFileCache[i].contents != NULL) { - FreeToHeap(UNK_021C4928[i].contents); - UNK_021C4928[i].contents = NULL; - UNK_021C4928[i].name_hash = 0; + FreeToHeap(sFileCache[i].contents); + sFileCache[i].contents = NULL; + sFileCache[i].name_hash = 0; } } } -void * FUN_02016324(const s8 * str, u32 heap_id) +void * OpenFileCached(const s8 * str, u32 heap_id) { - s8 sp0[32]; + s8 filenameBuf[32]; FSFile file; void * ret; - int r5 = 0; + int skipCache = 0; if (str[0] == '!') { - strcpy(sp0, str + 1); - r5 = 1; + strcpy(filenameBuf, str + 1); + skipCache = 1; } else { - strcpy(sp0, str); + strcpy(filenameBuf, str); } - u32 r7 = FUN_02016230(sp0); - s32 r0 = FUN_020162A0(r7); - if (r0 >= 0 && r5 == 0) + u32 hash = GetFilenameHash(filenameBuf); + s32 cacheId = GetFileCacheId(hash); + if (cacheId >= 0 && skipCache == 0) { - ret = UNK_021C4928[r0].contents; + ret = sFileCache[cacheId].contents; } else { FS_InitFile(&file); - if (FS_OpenFile(&file, (const char *)sp0)) + if (FS_OpenFile(&file, (const char *)filenameBuf)) { u32 size = file.prop.file.bottom - file.prop.file.top; ret = AllocFromHeap(heap_id, size); @@ -327,8 +328,8 @@ void * FUN_02016324(const s8 * str, u32 heap_id) } } FS_CloseFile(&file); - if (r5 == 0) - FUN_020162C8(ret, r7); + if (skipCache == 0) + AddFileToCache(ret, hash); } else ret = NULL; @@ -336,24 +337,24 @@ void * FUN_02016324(const s8 * str, u32 heap_id) return ret; } -void FUN_020163BC(void) +void InitKeypadAndTouchpad(void) { TPCalibrateParam tp; - gMain.unk34 = 0; - gMain.unk38 = 0; - gMain.unk3C = 0; - gMain.unk40 = 0; - gMain.unk44 = 0; + gMain.buttonMode = 0; + gMain.heldKeysRaw = 0; + gMain.newKeysRaw = 0; + gMain.newAndRepeatedKeysRaw = 0; + gMain.heldKeys = 0; gMain.newKeys = 0; gMain.newAndRepeatedKeys = 0; - gMain.unk50 = 0; - gMain.unk54 = 8; - gMain.unk58 = 15; - gMain.unk5C = 0; - gMain.unk5E = 0; - gMain.unk60 = 0; - gMain.unk62 = 0; - gMain.unk64 = 0; + gMain.keyRepeatCounter = 0; + gMain.keyRepeatContinueDelay = 8; + gMain.keyRepeatStartDelay = 15; + gMain.touchX = 0; + gMain.touchY = 0; + gMain.touchNew = 0; + gMain.touchHeld = 0; + gMain.touchpadReadAuto = 0; TP_Init(); if (TP_GetUserInfo(&tp) == TRUE) TP_SetCalibrateParam(&tp); @@ -382,38 +383,53 @@ void FUN_02016454(u8 a0) gMain.unk67 &= ~a0; } -void FUN_02016464(void) +void ReadKeypadAndTocuhpad(void) { TPData raw, calib; if (PAD_DetectFold()) { + // Can't press any buttons while the lid is closed. gMain.newKeys = 0; - gMain.unk44 = 0; + gMain.heldKeys = 0; gMain.newAndRepeatedKeys = 0; - gMain.unk60 = 0; - gMain.unk62 = 0; + gMain.touchNew = 0; + gMain.touchHeld = 0; return; } - u32 r0 = PAD_Read(); - gMain.unk40 = gMain.unk3C = (r0 ^ gMain.unk38) & r0; - if (r0 != 0 && gMain.unk38 == r0) + + u32 padRead = PAD_Read(); + + // newKeys is all keys that were pressed on this frame but + // not the last frame. + gMain.newAndRepeatedKeysRaw = gMain.newKeysRaw = (padRead ^ gMain.heldKeysRaw) & padRead; + + // If you are holding down buttons, indicate them "repeated" every few frames + // as defined by .keyRepeatStartDelay and .keyRepeatContinueDelay. + // Same logic as gen3, but fixes the bug where the + // remapped keys are incorrectly used here. + // See also: pokeemerald/src/main.c:ReadKeys + if (padRead != 0 && gMain.heldKeysRaw == padRead) { - if (--gMain.unk50 == 0) + if (--gMain.keyRepeatCounter == 0) { - gMain.unk40 = r0; - gMain.unk50 = gMain.unk54; + gMain.newAndRepeatedKeysRaw = padRead; + gMain.keyRepeatCounter = gMain.keyRepeatContinueDelay; } } else { - gMain.unk50 = gMain.unk58; + gMain.keyRepeatCounter = gMain.keyRepeatStartDelay; } - gMain.unk38 = r0; - gMain.newKeys = gMain.unk3C; - gMain.unk44 = r0; - gMain.newAndRepeatedKeys = gMain.unk40; - FUN_02016568(); - if (gMain.unk64 == 0) + gMain.heldKeysRaw = padRead; + + // Apply the button mode option to the read key input + gMain.newKeys = gMain.newKeysRaw; + gMain.heldKeys = padRead; + gMain.newAndRepeatedKeys = gMain.newAndRepeatedKeysRaw; + ApplyButtonModeToInput(); + + // Read the touchpad. New to gen 4. + if (gMain.touchpadReadAuto == 0) { while (TP_RequestRawSampling(&raw)) ; @@ -421,111 +437,117 @@ void FUN_02016464(void) else TP_GetLatestRawPointInAuto(&raw); TP_GetCalibratedPoint(&calib, &raw); - if (calib.validity == 0) + + // If the touchpad is valid, we gucci. + if (calib.validity == TP_VALIDITY_VALID) { - gMain.unk5C = calib.x; - gMain.unk5E = calib.y; + gMain.touchX = calib.x; + gMain.touchY = calib.y; } - else if (gMain.unk62) + + // If the touchpad was used last frame, salvage what we can. + else if (gMain.touchHeld) { switch (calib.validity) { - case 1: - gMain.unk5E = calib.y; + case TP_VALIDITY_INVALID_X: + gMain.touchY = calib.y; break; - case 2: - gMain.unk5C = calib.x; + case TP_VALIDITY_INVALID_Y: + gMain.touchX = calib.x; break; - case 3: + case TP_VALIDITY_INVALID_XY: break; } } + // What was read from the touchpad was not salvageable. + // Ignore touch input. else calib.touch = 0; - gMain.unk60 = (u16)((gMain.unk62 ^ calib.touch) & calib.touch); - gMain.unk62 = calib.touch; + gMain.touchNew = (u16)((gMain.touchHeld ^ calib.touch) & calib.touch); + gMain.touchHeld = calib.touch; } -void FUN_02016568(void) +void ApplyButtonModeToInput(void) { - switch (gMain.unk34) + switch (gMain.buttonMode) { case 0: // Normal break; case 1: // Start = X if (gMain.newKeys & PAD_BUTTON_START) gMain.newKeys |= PAD_BUTTON_X; - if (gMain.unk44 & PAD_BUTTON_START) - gMain.unk44 |= PAD_BUTTON_X; + if (gMain.heldKeys & PAD_BUTTON_START) + gMain.heldKeys |= PAD_BUTTON_X; if (gMain.newAndRepeatedKeys & PAD_BUTTON_START) gMain.newAndRepeatedKeys |= PAD_BUTTON_X; break; case 2: // Swap X and Y; unused in the retail game { - u32 r1 = 0; + u32 swapMask = 0; if (gMain.newKeys & PAD_BUTTON_X) { - r1 |= PAD_BUTTON_Y; + swapMask |= PAD_BUTTON_Y; } if (gMain.newKeys & PAD_BUTTON_Y) { - r1 |= PAD_BUTTON_X; + swapMask |= PAD_BUTTON_X; } - gMain.newKeys &= 0xF3FF; - gMain.newKeys |= r1; + gMain.newKeys &= ((PAD_BUTTON_X | PAD_BUTTON_Y) ^ 0xFFFF);; + gMain.newKeys |= swapMask; } { - u32 r1 = 0; - if (gMain.unk44 & PAD_BUTTON_X) + u32 swapMask = 0; + if (gMain.heldKeys & PAD_BUTTON_X) { - r1 |= PAD_BUTTON_Y; + swapMask |= PAD_BUTTON_Y; } - if (gMain.unk44 & PAD_BUTTON_Y) + if (gMain.heldKeys & PAD_BUTTON_Y) { - r1 |= PAD_BUTTON_X; + swapMask |= PAD_BUTTON_X; } - gMain.unk44 &= 0xF3FF; - gMain.unk44 |= r1; + gMain.heldKeys &= ((PAD_BUTTON_X | PAD_BUTTON_Y) ^ 0xFFFF); + gMain.heldKeys |= swapMask; } { - u32 r1 = 0; + u32 swapMask = 0; if (gMain.newAndRepeatedKeys & PAD_BUTTON_X) { - r1 |= PAD_BUTTON_Y; + swapMask |= PAD_BUTTON_Y; } if (gMain.newAndRepeatedKeys & PAD_BUTTON_Y) { - r1 |= PAD_BUTTON_X; + swapMask |= PAD_BUTTON_X; } - gMain.newAndRepeatedKeys &= 0xF3FF; - gMain.newAndRepeatedKeys |= r1; + gMain.newAndRepeatedKeys &= ((PAD_BUTTON_X | PAD_BUTTON_Y) ^ 0xFFFF); + gMain.newAndRepeatedKeys |= swapMask; } break; case 3: // L = A if (gMain.newKeys & PAD_BUTTON_L) gMain.newKeys |= PAD_BUTTON_A; - if (gMain.unk44 & PAD_BUTTON_L) - gMain.unk44 |= PAD_BUTTON_A; + if (gMain.heldKeys & PAD_BUTTON_L) + gMain.heldKeys |= PAD_BUTTON_A; if (gMain.newAndRepeatedKeys & PAD_BUTTON_L) gMain.newAndRepeatedKeys |= PAD_BUTTON_A; - gMain.newKeys &= 0xFCFF; - gMain.unk44 &= 0xFCFF; - gMain.newAndRepeatedKeys &= 0xFCFF; + gMain.newKeys &= ((PAD_BUTTON_L | PAD_BUTTON_R) ^ 0xFFFF); + gMain.heldKeys &= ((PAD_BUTTON_L | PAD_BUTTON_R) ^ 0xFFFF); + gMain.newAndRepeatedKeys &= ((PAD_BUTTON_L | PAD_BUTTON_R) ^ 0xFFFF); } } -void FUN_0201669C(int x, int y) +void SetKeyRepeatTimers(int continueDelay, int startDelay) { - gMain.unk54 = x; - gMain.unk58 = y; + gMain.keyRepeatContinueDelay = continueDelay; + gMain.keyRepeatStartDelay = startDelay; } -void FUN_020166A8(u8 a0) +void SetSoftResetDisableMask(u8 a0) { - gMain.unk68 |= a0; + gMain.softResetDisabled |= a0; } -void FUN_020166B8(u8 a0) +void ClearSoftResetDisableMask(u8 a0) { - gMain.unk68 &= ~a0; + gMain.softResetDisabled &= ~a0; } diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index 769c90d9..0c6d593e 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -3,7 +3,7 @@ #include "NNS_g2d.h"
#include "gf_gfx_loader.h"
-THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 numTiles, u32 szByte, BOOL isCompressed, u32 heap_id)
{
NNSG2dCharacterData * pCharData;
void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE);
@@ -13,14 +13,14 @@ THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkS {
if (szByte == 0)
szByte = pCharData->szByte;
- FUN_02017E14(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4);
+ BG_LoadCharTilesData(unkStruct02016B94_2, (u8)layer, pCharData->pRawData, szByte, numTiles);
}
FreeToHeap(pFile);
}
return szByte;
}
-THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 tileOffset, u32 szByte, BOOL isCompressed, u32 heap_id)
{
NNSG2dScreenData * pScreenData;
void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE);
@@ -30,20 +30,20 @@ THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct Unk {
if (szByte == 0)
szByte = pScreenData->szByte;
- if (FUN_0201886C(unkStruct02016B94_2, (u8)a3) != NULL)
- FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte);
- FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4);
+ if (GetBgTilemapBuffer(unkStruct02016B94_2, (u8) layer) != NULL)
+ BG_LoadScreenTilemapData(unkStruct02016B94_2, (u8) layer, pScreenData->rawData, szByte);
+ BgCopyOrUncompressTilemapBufferRangeToVram(unkStruct02016B94_2, (u8) layer, pScreenData->rawData, szByte, tileOffset);
}
FreeToHeap(pFile);
}
}
-THUMB_FUNC void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id)
+THUMB_FUNC void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 layer, u32 baseAddr, u32 szByte, u32 heap_id)
{
- GfGfxLoader_GXLoadPalWithSrcOffset(narcId, memberNo, whichRoutine, 0, baseAddr, szByte, heap_id);
+ GfGfxLoader_GXLoadPalWithSrcOffset(narcId, memberNo, layer, 0, baseAddr, szByte, heap_id);
}
-THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id)
+THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 layer, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id)
{
static void (*const load_funcs[])(void *, u32, u32) = {
GX_LoadBGPltt,
@@ -65,30 +65,30 @@ THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, if (szByte == 0)
szByte = pPltData->szByte - srcOffset;
DC_FlushRange(pPltData->pRawData, szByte);
- switch (whichRoutine)
+ switch (layer)
{
case 2:
GX_BeginLoadBGExtPltt();
- load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pPltData->pRawData, baseAddr, szByte);
GX_EndLoadBGExtPltt();
break;
case 6:
GXS_BeginLoadBGExtPltt();
- load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pPltData->pRawData, baseAddr, szByte);
GXS_EndLoadBGExtPltt();
break;
case 3:
GX_BeginLoadOBJExtPltt();
- load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pPltData->pRawData, baseAddr, szByte);
GX_EndLoadOBJExtPltt();
break;
case 7:
GXS_BeginLoadOBJExtPltt();
- load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pPltData->pRawData, baseAddr, szByte);
GXS_EndLoadOBJExtPltt();
break;
default:
- load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pPltData->pRawData, baseAddr, szByte);
break;
}
}
@@ -96,7 +96,7 @@ THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, }
}
-THUMB_FUNC u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id)
+THUMB_FUNC u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 layer, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id)
{
static void (*const load_funcs[])(void *, u32, u32) = {
GX_LoadOBJ,
@@ -112,7 +112,7 @@ THUMB_FUNC u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whi if (szByte == 0)
szByte = pCharData->szByte;
DC_FlushRange(pCharData->pRawData, szByte);
- load_funcs[whichRoutine](pCharData->pRawData, baseAddr, szByte);
+ load_funcs[layer](pCharData->pRawData, baseAddr, szByte);
}
FreeToHeap(pFile);
}
@@ -142,7 +142,7 @@ THUMB_FUNC void GfGfxLoader_PartiallyLoadPalette(NarcId narcId, s32 memberId, NN }
}
-THUMB_FUNC u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy)
+THUMB_FUNC u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy)
{
static void (*const load_funcs[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = {
NNS_G2dLoadImage1DMapping,
@@ -158,7 +158,7 @@ THUMB_FUNC u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL is {
if (szByte != 0)
pSrcData->szByte = szByte;
- load_funcs[whichRoutine](pSrcData, baseAddr, type, pImgProxy);
+ load_funcs[layer](pSrcData, baseAddr, type, pImgProxy);
retSize = pSrcData->szByte;
}
FreeToHeap(pFile);
@@ -166,7 +166,7 @@ THUMB_FUNC u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL is return retSize;
}
-THUMB_FUNC void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy)
+THUMB_FUNC void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy)
{
static void (*const load_funcs[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = {
NNS_G2dLoadImage1DMapping,
@@ -191,7 +191,7 @@ THUMB_FUNC void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 default:
;
}
- load_funcs[whichRoutine](pCharacterData, baseAddr, type, pImageProxy);
+ load_funcs[layer](pCharacterData, baseAddr, type, pImageProxy);
}
FreeToHeap(pFile);
}
diff --git a/arm9/src/heap.c b/arm9/src/heap.c index 7f35fdcc..842fd33a 100644 --- a/arm9/src/heap.c +++ b/arm9/src/heap.c @@ -1,31 +1,45 @@ #include "heap.h" #include "error_message_reset.h" #include "unk_02031734.h" +#include "NNS_FND_expheap.h" +#include "NNS_FND_allocator.h" +struct HeapInfo +{ + NNSFndHeapHandle *heapHandles; + NNSFndHeapHandle *parentHeapHandles; + void **subHeapRawPtrs; + u16 *numMemBlocks; + u8 *heapIdxs; + u16 totalNumHeaps; + u16 nTemplates; + u16 maxHeaps; + u16 unallocatedHeapId; +}; + +typedef struct MemoryBlock +{ + u8 filler_00[12]; + u32 heapId:8; + u32 filler_0D:24; +} MemoryBlock; -extern void *NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2); -extern void *NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2); -extern void NNS_FndDestroyExpHeap(); -extern void NNS_FndFreeToExpHeap(void *ptr1, void *ptr2); -extern u32 NNS_FndGetTotalFreeSizeForExpHeap(void *param0); -extern void NNS_FndInitAllocatorForExpHeap(u32 param0, void *param1, u32 param2); -extern u32 NNS_FndGetSizeForMBlockExpHeap(void *param0); -extern void NNS_FndResizeForMBlockExpHeap(void *ptr1, void *ptr2, u32 param2); - - -struct UnkStruct_020166C8 UNK_021C4D28; - +struct HeapInfo sHeapInfo; -THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size) +THUMB_FUNC void InitHeapSystem(const struct HeapParam *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size) { - u32 unk_size = param1 + 24; + void * ptr; + u32 unk_size, i; - if (param2 < unk_size) + unk_size = nTemplates + 24; + + if (totalNumHeaps < unk_size) { - param2 = unk_size; + totalNumHeaps = unk_size; } if (pre_size != 0) { + // force align while (pre_size % 4 != 0) { pre_size++; @@ -34,207 +48,196 @@ THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size) OS_AllocFromArenaLo(OS_ARENA_MAIN, pre_size, 4); } - u32 r7 = param2 * 2; - - void *ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, (unk_size * 3 + 1) * sizeof(u32) + r7 + param2, 4); - UNK_021C4D28.unk00 = ptr; - ptr += (unk_size + 1) * 4; - UNK_021C4D28.unk04 = ptr; - ptr += unk_size * 4; - UNK_021C4D28.unk08 = ptr; - ptr += unk_size * 4; - UNK_021C4D28.unk0c = ptr; - ptr += r7; - UNK_021C4D28.unk10 = ptr; - UNK_021C4D28.unk14 = (u16)param2; - UNK_021C4D28.unk16 = (u16)param1; - - r7 = 0; - UNK_021C4D28.unk1a = (u16)unk_size; - UNK_021C4D28.unk18 = (u16)unk_size; - - while (r7 < param1) + sHeapInfo.heapHandles = (NNSFndHeapHandle*) OS_AllocFromArenaLo( + OS_ARENA_MAIN, + (unk_size + 1) * sizeof(NNSFndHeapHandle) + + unk_size * sizeof(NNSFndHeapHandle) + + unk_size * sizeof(void *) + + totalNumHeaps * sizeof(u16) + + totalNumHeaps, + 4 + ); + sHeapInfo.parentHeapHandles = sHeapInfo.heapHandles + (unk_size + 1); + sHeapInfo.subHeapRawPtrs = (void **)(sHeapInfo.parentHeapHandles + unk_size); + sHeapInfo.numMemBlocks = (u16 *)(sHeapInfo.subHeapRawPtrs + unk_size); + sHeapInfo.heapIdxs = (u8 *)(sHeapInfo.numMemBlocks + totalNumHeaps); + sHeapInfo.totalNumHeaps = (u16)totalNumHeaps; + sHeapInfo.nTemplates = (u16)nTemplates; + + sHeapInfo.unallocatedHeapId = (u16)unk_size; + sHeapInfo.maxHeaps = (u16)unk_size; + + for (i = 0; i < nTemplates; i++) { - void *ptr; - if (param0[1] == 0 || param0[1] != 2) + switch (templates[i].arena) { - ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, param0[0], 4); - } - else - { - ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, param0[0], 4); + case OS_ARENA_MAIN: + default: + ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, templates[i].size, 4); + break; + case OS_ARENA_MAINEX: + ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, templates[i].size, 4); + break; } - if (ptr != 0) + if (ptr != NULL) { - UNK_021C4D28.unk00[r7] = NNS_FndCreateExpHeapEx(ptr, param0[0], 0); - UNK_021C4D28.unk10[r7] = (u8)r7; + sHeapInfo.heapHandles[i] = NNS_FndCreateExpHeap(ptr, templates[i].size); + sHeapInfo.heapIdxs[i] = (u8)i; } else { - GF_AssertFail(); + GF_ASSERT(0); } - - param0 += 2; - r7++; } - while (param1 < unk_size + 1) + for (i = nTemplates; i < unk_size + 1; i++) { - UNK_021C4D28.unk00[param1] = 0; - UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a; - - param1++; + sHeapInfo.heapHandles[i] = NULL; + sHeapInfo.heapIdxs[i] = (u8)sHeapInfo.unallocatedHeapId; } - while (param1 < param2) + while (i < totalNumHeaps) { - UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a; + sHeapInfo.heapIdxs[i] = (u8)sHeapInfo.unallocatedHeapId; - param1++; + i++; } - for (param1 = 0; param1 < param2; param1++) + for (i = 0; i < totalNumHeaps; i++) { - UNK_021C4D28.unk0c[param1] = 0; + sHeapInfo.numMemBlocks[i] = 0; } } -THUMB_FUNC s32 FUN_020167F4() +THUMB_FUNC s32 FindFirstAvailableHeapHandle() { - s32 i = UNK_021C4D28.unk16; - s32 j = UNK_021C4D28.unk18; + s32 i; - if (i < j) + for (i = sHeapInfo.nTemplates; i < sHeapInfo.maxHeaps; i++) { - void **ptr = UNK_021C4D28.unk00 + i; - do - { - if (*ptr == 0) - { - return i; - } - i++; - ptr++; - } while (i < j); + if (sHeapInfo.heapHandles[i] == NULL) + return i; } return -1; } -THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 param1, u32 param2) +THUMB_FUNC BOOL CreateHeap(u32 parent, u32 child, u32 size) { - return FUN_02016834(param0, param1, param2, 4); + return CreateHeapInternal(parent, child, size, 4); } -THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2) +THUMB_FUNC BOOL CreateHeapAtEnd(u32 parent, u32 child, u32 size) { - return FUN_02016834(param0, param1, param2, -4); + return CreateHeapInternal(parent, child, size, -4); } -THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3) +THUMB_FUNC BOOL CreateHeapInternal(u32 parent, u32 child, u32 size, s32 alignment) { GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ); - u8 *ptr = UNK_021C4D28.unk10; - if (UNK_021C4D28.unk1a == ptr[param1]) + u8 *ptr = sHeapInfo.heapIdxs; + if (sHeapInfo.unallocatedHeapId == ptr[child]) { - void *ptr2 = UNK_021C4D28.unk00[ptr[param0]]; - if (ptr2 != 0) + NNSFndHeapHandle parentHeap = sHeapInfo.heapHandles[ptr[parent]]; + if (parentHeap != NULL) { - void *ptr3 = NNS_FndAllocFromExpHeapEx(ptr2, param2, param3); - if (ptr3 != 0) + void *newHeapAddr = NNS_FndAllocFromExpHeapEx(parentHeap, size, alignment); + if (newHeapAddr != NULL) { - param3 = FUN_020167F4(); - if (param3 >= 0) + s32 i = FindFirstAvailableHeapHandle(); + if (i >= 0) { - UNK_021C4D28.unk00[param3] = NNS_FndCreateExpHeapEx(ptr3, param2, 0); + sHeapInfo.heapHandles[i] = NNS_FndCreateExpHeap(newHeapAddr, size); - if (UNK_021C4D28.unk00[param3] != 0) + if (sHeapInfo.heapHandles[i] != NULL) { - UNK_021C4D28.unk04[param3] = ptr2; - UNK_021C4D28.unk08[param3] = ptr3; - UNK_021C4D28.unk10[param1] = (u8)param3; + sHeapInfo.parentHeapHandles[i] = parentHeap; + sHeapInfo.subHeapRawPtrs[i] = newHeapAddr; + sHeapInfo.heapIdxs[child] = (u8)i; - return 1; + return TRUE; } else { - GF_AssertFail(); + GF_ASSERT(0); } } else { - GF_AssertFail(); + GF_ASSERT(0); } } else { - GF_AssertFail(); + GF_ASSERT(0); } } else { - GF_AssertFail(); + GF_ASSERT(0); } } else { - GF_AssertFail(); + GF_ASSERT(0); } - return 0; + return FALSE; } -THUMB_FUNC void FUN_020168D0(u32 heap_id) +THUMB_FUNC void DestroyHeap(u32 heap_id) { - GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ); + + NNSFndHeapHandle handle = sHeapInfo.heapHandles[sHeapInfo.heapIdxs[heap_id]]; - if (UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] != 0) + if (handle != NULL) { - NNS_FndDestroyExpHeap(); + NNS_FndDestroyExpHeap(handle); - u8 index = UNK_021C4D28.unk10[heap_id]; - void *ptr1 = UNK_021C4D28.unk04[index]; - void *ptr2 = UNK_021C4D28.unk08[index]; - if (ptr1 != 0 && ptr2 != 0) + u8 index = sHeapInfo.heapIdxs[heap_id]; + NNSFndHeapHandle parentHeap = sHeapInfo.parentHeapHandles[index]; + void *childRaw = sHeapInfo.subHeapRawPtrs[index]; + if (parentHeap != NULL && childRaw != NULL) { - NNS_FndFreeToExpHeap(ptr1, ptr2); + NNS_FndFreeToExpHeap(parentHeap, childRaw); } else { - GF_AssertFail(); + GF_ASSERT(0); } - UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] = 0; - UNK_021C4D28.unk04[UNK_021C4D28.unk10[heap_id]] = 0; - UNK_021C4D28.unk08[UNK_021C4D28.unk10[heap_id]] = 0; + sHeapInfo.heapHandles[sHeapInfo.heapIdxs[heap_id]] = NULL; + sHeapInfo.parentHeapHandles[sHeapInfo.heapIdxs[heap_id]] = NULL; + sHeapInfo.subHeapRawPtrs[sHeapInfo.heapIdxs[heap_id]] = NULL; - UNK_021C4D28.unk10[heap_id] = (u8)UNK_021C4D28.unk1a; + sHeapInfo.heapIdxs[heap_id] = (u8)sHeapInfo.unallocatedHeapId; } } -THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3) +THUMB_FUNC void *AllocFromHeapInternal(NNSFndHeapHandle heap, u32 size, s32 alignment, u32 heap_id) { - GF_ASSERT(param0); + GF_ASSERT(heap); OSIntrMode intr_mode = OS_DisableInterrupts(); - param1 += 16; - u32 *ptr = (u32 *)NNS_FndAllocFromExpHeapEx(param0, param1, param2); + size += sizeof(MemoryBlock); + void *ptr = NNS_FndAllocFromExpHeapEx(heap, size, alignment); OS_RestoreInterrupts(intr_mode); - if (ptr != 0) + if (ptr != NULL) { - ptr[3] = (ptr[3] & ~0xff) | (param3 & 0xff); + ((MemoryBlock *)ptr)->heapId = heap_id; - ptr += 4; + ptr += sizeof(MemoryBlock); } return ptr; } -THUMB_FUNC void FUN_02016988() +THUMB_FUNC void AllocFail() { if (FUN_02031810() != 0) { @@ -244,19 +247,19 @@ THUMB_FUNC void FUN_02016988() void *AllocFromHeap(u32 heap_id, u32 size) { - void *ptr = 0; - if (heap_id < UNK_021C4D28.unk14) + void *ptr = NULL; + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[heap_id]; - ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, 4, heap_id); + u8 index = sHeapInfo.heapIdxs[heap_id]; + ptr = AllocFromHeapInternal(sHeapInfo.heapHandles[index], size, 4, heap_id); } - if (ptr != 0) + if (ptr != NULL) { - UNK_021C4D28.unk0c[heap_id]++; + sHeapInfo.numMemBlocks[heap_id]++; } else { - FUN_02016988(); + AllocFail(); } return ptr; @@ -264,20 +267,20 @@ void *AllocFromHeap(u32 heap_id, u32 size) void *AllocFromHeapAtEnd(u32 heap_id, u32 size) { - void *ptr = 0; - if (heap_id < UNK_021C4D28.unk14) + void *ptr = NULL; + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[heap_id]; - ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, -4, heap_id); + u8 index = sHeapInfo.heapIdxs[heap_id]; + ptr = AllocFromHeapInternal(sHeapInfo.heapHandles[index], size, -4, heap_id); } - if (ptr != 0) + if (ptr != NULL) { - UNK_021C4D28.unk0c[heap_id]++; + sHeapInfo.numMemBlocks[heap_id]++; } else { - FUN_02016988(); + AllocFail(); } return ptr; @@ -285,97 +288,99 @@ void *AllocFromHeapAtEnd(u32 heap_id, u32 size) void FreeToHeap(void *ptr) { - u8 heap_id = (u8)((u32 *)ptr)[-1]; + ptr -= sizeof(MemoryBlock); + u32 heap_id = ((MemoryBlock *)ptr)->heapId; - if ((u16)heap_id < UNK_021C4D28.unk14) + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[heap_id]; - void *ptr2 = UNK_021C4D28.unk00[index]; - GF_ASSERT(ptr2); + u8 index = sHeapInfo.heapIdxs[heap_id]; + NNSFndHeapHandle heap = sHeapInfo.heapHandles[index]; + GF_ASSERT(heap != NULL); - if (UNK_021C4D28.unk0c[heap_id] == 0) + if (sHeapInfo.numMemBlocks[heap_id] == 0) { - FUN_02016B90(heap_id); + GF_heap_c_dummy_return_true(heap_id); } - GF_ASSERT(UNK_021C4D28.unk0c[heap_id]); + GF_ASSERT(sHeapInfo.numMemBlocks[heap_id] != 0); - UNK_021C4D28.unk0c[heap_id]--; + sHeapInfo.numMemBlocks[heap_id]--; OSIntrMode intr_mode = OS_DisableInterrupts(); - NNS_FndFreeToExpHeap(ptr2, ptr - 16); + NNS_FndFreeToExpHeap(heap, ptr); OS_RestoreInterrupts(intr_mode); return; } - GF_AssertFail(); + GF_ASSERT(0); } -void FreeToHeapExplicit(u32 param0, void *param1) +void FreeToHeapExplicit(u32 heap_id, void *ptr) { - GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ); - if (param0 < UNK_021C4D28.unk14) + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[param0]; - void *ptr = UNK_021C4D28.unk00[index]; - GF_ASSERT (ptr ); + u8 index = sHeapInfo.heapIdxs[heap_id]; + NNSFndHeapHandle heap = sHeapInfo.heapHandles[index]; + GF_ASSERT( heap != NULL ); - u8 heap_id = (u8)((u32 *)param1)[-1]; - GF_ASSERT (heap_id == param0); + ptr -= sizeof(MemoryBlock); + GF_ASSERT(((MemoryBlock *)ptr)->heapId == heap_id); - NNS_FndFreeToExpHeap(ptr, param1 - 16); - GF_ASSERT (UNK_021C4D28.unk0c[param0]); + NNS_FndFreeToExpHeap(heap, ptr); + GF_ASSERT(sHeapInfo.numMemBlocks[heap_id] != 0); - UNK_021C4D28.unk0c[param0]--; + sHeapInfo.numMemBlocks[heap_id]--; return; } - GF_AssertFail(); + GF_ASSERT(0); } -THUMB_FUNC u32 FUN_02016AF8(u32 param0) +THUMB_FUNC u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id) { - if (param0 < UNK_021C4D28.unk14) + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[param0]; - return NNS_FndGetTotalFreeSizeForExpHeap(UNK_021C4D28.unk00[index]); + u8 index = sHeapInfo.heapIdxs[heap_id]; + return NNS_FndGetTotalFreeSizeForExpHeap(sHeapInfo.heapHandles[index]); } - GF_AssertFail(); + GF_ASSERT(0); return 0; } -THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2) +THUMB_FUNC void GF_ExpHeap_FndInitAllocator(NNSFndAllocator * pAllocator, u32 heap_id, int alignment) { - if (param1 < UNK_021C4D28.unk14) + if (heap_id < sHeapInfo.totalNumHeaps) { - u8 index = UNK_021C4D28.unk10[param1]; - NNS_FndInitAllocatorForExpHeap(param0, UNK_021C4D28.unk00[index], param2); + u8 index = sHeapInfo.heapIdxs[heap_id]; + NNS_FndInitAllocatorForExpHeap(pAllocator, sHeapInfo.heapHandles[index], alignment); return; } - GF_AssertFail(); + GF_ASSERT(0); } -THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1) +THUMB_FUNC void ReallocFromHeap(void *ptr, u32 newSize) { - GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ); - param1 += 16; - if (NNS_FndGetSizeForMBlockExpHeap(ptr - 16) >= param1) + newSize += sizeof(MemoryBlock); + ptr -= sizeof(MemoryBlock); + if (NNS_FndGetSizeForMBlockExpHeap(ptr) >= newSize) { - u8 heap_id = (u8)((u32 *)ptr)[-1]; + u32 heap_id = ((MemoryBlock *)ptr)->heapId; - u8 index = UNK_021C4D28.unk10[heap_id]; + u8 index = sHeapInfo.heapIdxs[heap_id]; - NNS_FndResizeForMBlockExpHeap(UNK_021C4D28.unk00[index], ptr - 16, param1); + NNS_FndResizeForMBlockExpHeap(sHeapInfo.heapHandles[index], ptr, newSize); return; } - GF_AssertFail(); + GF_ASSERT(0); } -THUMB_FUNC u32 FUN_02016B90(u32 param0) +THUMB_FUNC BOOL GF_heap_c_dummy_return_true(u32 heap_id) { -#pragma unused(param0) - return 1; +#pragma unused(heap_id) + return TRUE; } diff --git a/arm9/src/mail_message.c b/arm9/src/mail_message.c index a5837d89..751a3ff0 100644 --- a/arm9/src/mail_message.c +++ b/arm9/src/mail_message.c @@ -3,6 +3,7 @@ #include "script_buffers.h" #include "unk_0201B8B8.h" #include "mail_message.h" +#include "msgdata/msg.naix" #pragma thumb on @@ -19,11 +20,11 @@ struct UnkStruct_020ED556 extern u16 GetECWordIndexByPair(s16 bank, u16 num); const u16 UNK_020ED54C[] = { - 397, - 399, - 395, - 396, - 398 + NARC_msg_narc_0397_bin, + NARC_msg_narc_0399_bin, + NARC_msg_narc_0395_bin, + NARC_msg_narc_0396_bin, + NARC_msg_narc_0398_bin }; const struct UnkStruct_020ED556 UNK_020ED556[] = { @@ -155,7 +156,7 @@ u16 MailMsg_GetMsgNo(struct MailMessage * mailMsg) return mailMsg->msg_no; } -BOOL MailMsg_compare(struct MailMessage * mailMsg, struct MailMessage * a1) +BOOL MailMsg_compare(const struct MailMessage *mailMsg, const struct MailMessage *a1) { s32 i; if (mailMsg->msg_bank != a1->msg_bank || mailMsg->msg_no != a1->msg_no) diff --git a/arm9/src/main.c b/arm9/src/main.c index 749bec41..979fb7ca 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -53,10 +53,10 @@ THUMB_FUNC void NitroMain(void) { InitSystemForTheGame(); InitGraphicMemory(); - FUN_020163BC(); + InitKeypadAndTouchpad(); FUN_02016438(0); - PM_GetBackLight((PMBackLightSwitch *)SDK_STATIC_BSS_START, NULL); + PM_GetBackLight(&gBacklightTop, NULL); FUN_02022294(); GF_InitRTCWork(); @@ -104,8 +104,8 @@ THUMB_FUNC void NitroMain(void) { FUN_02000EE8(); HandleDSLidAction(); - FUN_02016464(); - if ((gMain.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gMain.unk68) // soft reset? + ReadKeypadAndTocuhpad(); + if ((gMain.heldKeysRaw & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gMain.softResetDisabled) // soft reset? { DoSoftReset(0); // soft reset? } @@ -168,8 +168,7 @@ THUMB_FUNC void Main_RunOverlayManager(void) THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1) { - if (UNK_02016FA8.unkC != NULL) - GF_AssertFail(); + GF_ASSERT(UNK_02016FA8.unkC == NULL); UNK_02016FA8.unk8 = id; UNK_02016FA8.unkC = arg1; } @@ -248,7 +247,7 @@ THUMB_FUNC void FUN_02000F4C(u32 arg0, u32 arg1) while (1) { HandleDSLidAction(); - FUN_02016464(); + ReadKeypadAndTocuhpad(); if (gMain.newKeys & 1) break; FUN_02000E9C(); diff --git a/arm9/src/options.c b/arm9/src/options.c index 296b398a..03b63864 100644 --- a/arm9/src/options.c +++ b/arm9/src/options.c @@ -35,14 +35,14 @@ void Options_SetButtonModeOnMain(struct SaveBlock2 * sav2, u32 buttonMode) { switch (buttonMode) { case 1: - gMain.unk34 = 1; + gMain.buttonMode = 1; break; case 2: - gMain.unk34 = 3; + gMain.buttonMode = 3; break; case 0: default: - gMain.unk34 = 0; + gMain.buttonMode = 0; break; } } diff --git a/arm9/src/player_data.c b/arm9/src/player_data.c index ea5802aa..182e99e8 100644 --- a/arm9/src/player_data.c +++ b/arm9/src/player_data.c @@ -111,12 +111,12 @@ u16 PlayerProfile_GetTrainerID_VisibleHalf(struct PlayerData * data) return (u16)data->playerId; } -void PlayerProfile_SetTrainerGender(struct PlayerData * data, u8 gender) +void PlayerProfile_SetTrainerGender(struct PlayerData * data, GenderEnum gender) { data->gender = gender; } -u32 PlayerProfile_GetTrainerGender(struct PlayerData * data) +GenderEnum PlayerProfile_GetTrainerGender(struct PlayerData * data) { return data->gender; } diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c index e11ecbb6..bb5bb891 100644 --- a/arm9/src/poke_overlay.c +++ b/arm9/src/poke_overlay.c @@ -8,10 +8,8 @@ static struct LoadedOverlay gLoadedOverlays[3][8]; THUMB_FUNC void FreeOverlayAllocation(struct LoadedOverlay * loaded) { - if (loaded->active != TRUE) - GF_AssertFail(); - if (FS_UnloadOverlay(MI_PROCESSOR_ARM9, loaded->id) != TRUE) - GF_AssertFail(); + GF_ASSERT(loaded->active == TRUE); + GF_ASSERT(FS_UnloadOverlay(MI_PROCESSOR_ARM9, loaded->id) == TRUE); loaded->active = FALSE; } @@ -34,8 +32,7 @@ THUMB_FUNC s32 GetOverlayLoadDestination(FSOverlayID id) FSOverlayInfo info; u8 *end; u8 *start; - if (FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id) != TRUE) - GF_AssertFail(); + GF_ASSERT(FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id) == TRUE); start = (u8 *)HW_ITCM_IMAGE; end = (u8 *)HW_ITCM_END; if (info.header.ram_address <= end && info.header.ram_address >= start) @@ -72,7 +69,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) } if (r6 >= 8) { - GF_AssertFail(); + GF_ASSERT(0); return FALSE; } if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM) @@ -91,7 +88,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) result = LoadOverlayNoInitAsync(MI_PROCESSOR_ARM9, id); break; default: - GF_AssertFail(); + GF_ASSERT(0); return FALSE; } if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM) @@ -100,7 +97,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) } if (result == 0) { - GF_AssertFail(); + GF_ASSERT(0); return FALSE; } return TRUE; @@ -120,7 +117,7 @@ THUMB_FUNC BOOL CanOverlayBeLoaded(FSOverlayID id) { if ((start >= start2 && start < end2) || (end > start2 && end <= end2) || (start <= start2 && end >= end2)) { - GF_AssertFail(); + GF_ASSERT(0); return FALSE; } } @@ -146,7 +143,7 @@ THUMB_FUNC BOOL GetOverlayRamBounds(FSOverlayID id, void ** start, void ** end) { FSOverlayInfo info; if (!FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id)) { - GF_AssertFail(); + GF_ASSERT(0); return FALSE; } *start = (void *)info.header.ram_address; diff --git a/arm9/src/render_text.c b/arm9/src/render_text.c new file mode 100644 index 00000000..af0218c8 --- /dev/null +++ b/arm9/src/render_text.c @@ -0,0 +1,502 @@ +#include "global.h" +#include "render_text.h" +#include "game_init.h" +#include "string_util.h" +#include "text.h" +#include "unk_0201B8B8.h" + +u16 unk00; + +TextFlags gTextFlags; + +const u8 UNK_020ECB50[] = { 0, 1, 2, 1 }; + +extern const char *FUN_02002D94(u8, u16); +extern void PlaySE(u16); + +THUMB_FUNC u32 RenderText(struct TextPrinter *printer) +{ + + struct TextPrinterSubStruct *subStruct = + (struct TextPrinterSubStruct *)(&printer->subStructFields); + u16 currentChar; + + switch (printer->state) + { + case 0: + if (((gMain.heldKeys & 3) != 0 && subStruct->hasPrintBeenSpedUp != 0) || + (gMain.touchHeld != 0 && gTextFlags.unk0_4 != 0)) + { + printer->delayCounter = 0; + if (printer->textSpeedBottom != 0) + { + gTextFlags.unk0_6 = 1; + } + } + + if (printer->delayCounter && printer->textSpeedBottom) + { + printer->delayCounter--; + + if (gTextFlags.canABSpeedUpPrint != 0) + { + if ((gMain.newKeys & 3) || (gMain.touchNew != 0 && gTextFlags.unk0_4)) + { + subStruct->hasPrintBeenSpedUp = 1; + printer->delayCounter = 0; + } + } + + return 3; + } + + printer->delayCounter = printer->textSpeedBottom; + currentChar = *printer->printerTemplate.currentChar.raw; + printer->printerTemplate.currentChar.raw++; + + GF_ASSERT(currentChar != 0xF100); + + switch (currentChar) + { + case EOS: + return 1; + case 0xE000: + printer->printerTemplate.currentX = printer->printerTemplate.x; + s32 fontAttribute = GetFontAttribute(printer->printerTemplate.fontId, 1); + + printer->printerTemplate.currentY += + printer->printerTemplate.lineSpacing + fontAttribute; + + return 2; + + case 0xF0FD: + printer->printerTemplate.currentChar.raw++; + return 2; + case 0xFFFE: + printer->printerTemplate.currentChar.raw--; + switch ((u16)MsgArray_GetControlCode(printer->printerTemplate.currentChar.raw)) + { + case 0xFF00: + u16 field = (u16)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + if (field == 0xff) + { + u8 r2 = printer->printerTemplate.unk4; + printer->printerTemplate.unk4 = + (u8)((printer->printerTemplate.fgColor - 1) / 2 + 100); + + if (!(r2 >= 100 && r2 < 107)) + { + break; + } + + field = (u16)(r2 - 100); + } + else + { + if (field >= 0x64) + { + printer->printerTemplate.unk4 = (u8)field; + break; + } + } + + printer->printerTemplate.fgColor = (u8)(field * 2 + 1); + printer->printerTemplate.shadowColor = (u8)(field * 2 + 2); + + GenerateFontHalfRowLookupTable(printer->printerTemplate.fgColor, + printer->printerTemplate.bgColor, + printer->printerTemplate.shadowColor); + + break; + + case 0x200: + field = (u16)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + + FUN_0201C1EC(printer, + printer->printerTemplate.currentX, + printer->printerTemplate.currentY, + field); + if (printer->textSpeedTop != 0) + { + CopyWindowToVram(printer->printerTemplate.window); + } + + break; + case 0x201: + printer->delayCounter = (u8)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + printer->printerTemplate.currentChar.raw = + MsgArray_SkipControlCode(printer->printerTemplate.currentChar.raw); + printer->state = 6; + + return 3; + case 0x202: + printer->Unk2A = (u16)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + printer->printerTemplate.currentChar.raw = + MsgArray_SkipControlCode(printer->printerTemplate.currentChar.raw); + + return 3; + case 0x203: + printer->printerTemplate.currentX = (u8)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + break; + case 0x204: + printer->printerTemplate.currentY = (u8)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + break; + + case 0xFF01: + field = (u16)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + + switch (field) + { + case 100: + printer->printerTemplate.unk2 = 0; + printer->printerTemplate.unk3 = 0; + break; + case 200: + printer->printerTemplate.unk2 = 0xFFFC; + printer->printerTemplate.unk3 = 0; + break; + } + + break; + + case 0xFE06: + field = (u16)MsgArray_ControlCodeGetField( + printer->printerTemplate.currentChar.raw, 0); + if (field != 0xFE00) + { + if (field != 0xFE01) + { + break; + } + + printer->state = 2; + TextPrinterInitDownArrowCounters(printer); + printer->printerTemplate.currentChar.raw = MsgArray_SkipControlCode( + printer->printerTemplate.currentChar.raw); + + return 3; + } + + printer->state = 3; + TextPrinterInitDownArrowCounters(printer); + printer->printerTemplate.currentChar.raw = + MsgArray_SkipControlCode(printer->printerTemplate.currentChar.raw); + + return 3; + } + + printer->printerTemplate.currentChar.raw = + MsgArray_SkipControlCode(printer->printerTemplate.currentChar.raw); + return 2; + + case 0x25BC: + printer->state = 2; + TextPrinterInitDownArrowCounters(printer); + return 3; + + case 0x25BD: + printer->state = 3; + TextPrinterInitDownArrowCounters(printer); + return 3; + } + + const char *r5 = FUN_02002D94(subStruct->glyphId, currentChar); + CopyGlyphToWindow(printer->printerTemplate.window, + r5, + r5[0x80], + r5[0x81], + printer->printerTemplate.currentX, + printer->printerTemplate.currentY, + printer->printerTemplate.unk2); + + printer->printerTemplate.currentX += r5[0x80] + printer->printerTemplate.letterSpacing; + + return 0; + case 1: + if (TextPrinterWait(printer) != 0) + { + TextPrinterClearDownArrow(printer); + + printer->state = 0; + } + + return 3; + case 2: + if (TextPrinterWaitWithDownArrow(printer) != 0) + { + TextPrinterClearDownArrow(printer); + FillWindowPixelBuffer( + printer->printerTemplate.window, printer->printerTemplate.bgColor); + printer->printerTemplate.currentX = printer->printerTemplate.x; + printer->printerTemplate.currentY = printer->printerTemplate.y; + printer->state = 0; + } + + return 3; + case 3: + if (TextPrinterWaitWithDownArrow(printer) != 0) + { + TextPrinterClearDownArrow(printer); + printer->scrollDistance = + (u8)(GetFontAttribute(printer->printerTemplate.fontId, 1) + + printer->printerTemplate.lineSpacing); + printer->printerTemplate.currentX = printer->printerTemplate.x; + printer->state = 4; + } + + return 3; + case 4: + if (printer->scrollDistance != 0) + { + if ((int)printer->scrollDistance < 4) + { + ScrollWindow(printer->printerTemplate.window, + 0, + printer->scrollDistance, + (u8)(printer->printerTemplate.bgColor | + (printer->printerTemplate.bgColor << 4))); + printer->scrollDistance = 0; + } + else + { + ScrollWindow(printer->printerTemplate.window, + 0, + 4, + (u8)(printer->printerTemplate.bgColor | + (printer->printerTemplate.bgColor << 4))); + + printer->scrollDistance -= 4; + } + + CopyWindowToVram(printer->printerTemplate.window); + } + else + { + printer->state = 0; + } + + return 3; + case 5: + printer->state = 0; + return 3; + case 6: + if (printer->delayCounter != 0) + { + printer->delayCounter--; + } + else + { + printer->state = 0; + } + + return 3; + } + + return 1; +} + +THUMB_FUNC void FUN_02002840(u16 flag) +{ + unk00 = flag; +} + +THUMB_FUNC void TextPrinterInitDownArrowCounters(struct TextPrinter *printer) +{ + struct TextPrinterSubStruct *subStruct = + (struct TextPrinterSubStruct *)(&printer->subStructFields); + + if (gTextFlags.autoScroll) + { + subStruct->autoScrollDelay = 0; + return; + } + + subStruct->downArrowYPosIdx = 0; + subStruct->downArrowDelay = 0; +} + +THUMB_FUNC void TextPrinterDrawDownArrow(struct TextPrinter *printer) +{ + struct TextPrinterSubStruct *subStruct = + (struct TextPrinterSubStruct *)(&printer->subStructFields); + + if (gTextFlags.autoScroll) + { + return; + } + + if (subStruct->downArrowDelay != 0) + { + subStruct->downArrowDelay--; + return; + } + + u8 bg_id = GetWindowBgId(printer->printerTemplate.window); + u8 x = GetWindowX(printer->printerTemplate.window); + u8 y = GetWindowY(printer->printerTemplate.window); + u8 width = GetWindowWidth(printer->printerTemplate.window); + u16 r6 = unk00; + + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 18 + UNK_020ECB50[subStruct->downArrowYPosIdx] * 4), + (u8)(x + width + 1), + (u8)(y + 2), + 1, + 1, + 0x10); + + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 19 + UNK_020ECB50[subStruct->downArrowYPosIdx] * 4), + (u8)(x + width + 2), + (u8)(y + 2), + 1, + 1, + 0x10); + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 20 + UNK_020ECB50[subStruct->downArrowYPosIdx] * 4), + (u8)(x + width + 1), + (u8)(y + 3), + 1, + 1, + 0x10); + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 21 + UNK_020ECB50[subStruct->downArrowYPosIdx] * 4), + (u8)(x + width + 2), + (u8)(y + 3), + 1, + 1, + 0x10); + + BgCommitTilemapBufferToVram(printer->printerTemplate.window->bgConfig, bg_id); + subStruct->downArrowDelay = 8; + subStruct->downArrowYPosIdx++; +} + +THUMB_FUNC void TextPrinterClearDownArrow(struct TextPrinter *printer) +{ + u8 bg_id = GetWindowBgId(printer->printerTemplate.window); + u8 x = GetWindowX(printer->printerTemplate.window); + u8 y = GetWindowY(printer->printerTemplate.window); + u8 width = GetWindowWidth(printer->printerTemplate.window); + u16 r6 = unk00; + + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 10), + (u8)(x + width + 1), + (u8)(y + 2), + 1, + 2, + 0x10); + FillBgTilemapRect(printer->printerTemplate.window->bgConfig, + bg_id, + (u16)(r6 + 11), + (u8)(x + width + 2), + (u8)(y + 2), + 1, + 2, + 0x10); + BgCommitTilemapBufferToVram(printer->printerTemplate.window->bgConfig, bg_id); +} + +THUMB_FUNC BOOL TextPrinterContinue(struct TextPrinter *printer) +{ +#pragma unused(printer) + if ((gMain.newKeys & 3) != 0 || (gMain.touchNew != 0 && gTextFlags.unk0_4 != 0)) + { + PlaySE(0x5DC); + + gTextFlags.unk0_7 = 1; + + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC BOOL TextPrinterWaitAutoMode(struct TextPrinter *printer) +{ + struct TextPrinterSubStruct *subStruct = + (struct TextPrinterSubStruct *)(&printer->subStructFields); + + if (subStruct->autoScrollDelay == 100) + { + return TRUE; + } + + subStruct->autoScrollDelay++; + if (gTextFlags.unk0_5) + { + return TextPrinterContinue(printer); + } + + return FALSE; +} + +THUMB_FUNC BOOL TextPrinterWaitWithDownArrow(struct TextPrinter *printer) +{ + if (gTextFlags.autoScroll) + { + return TextPrinterWaitAutoMode(printer); + } + TextPrinterDrawDownArrow(printer); + + return TextPrinterContinue(printer); +} + +THUMB_FUNC u8 TextPrinterWait(struct TextPrinter *printer) +{ + if (gTextFlags.autoScroll) + { + return (u8)TextPrinterWaitAutoMode(printer); + } + + return (u8)TextPrinterContinue(printer); +} + +THUMB_FUNC void TextFlags_SetCanABSpeedUpPrint(BOOL param0) +{ + gTextFlags.canABSpeedUpPrint = param0; +} + +THUMB_FUNC void FUN_02002B7C(s32 param0) +{ + gTextFlags.autoScroll = param0 & 1; + gTextFlags.unk0_5 = (param0 >> 1) & 1; +} + +THUMB_FUNC void FUN_02002BB8(u32 param0) +{ + gTextFlags.unk0_4 = param0; +} + +THUMB_FUNC u8 FUN_02002BD4() +{ + return gTextFlags.unk0_6; +} + +THUMB_FUNC void FUN_02002BE4() +{ + gTextFlags.unk0_6 = 0; +} + +THUMB_FUNC u8 FUN_02002BF4() +{ + return gTextFlags.unk0_7; +} + +THUMB_FUNC void FUN_02002C04() +{ + gTextFlags.unk0_7 = 0; +} diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 7adb1fe8..6287579c 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -4,7 +4,7 @@ #include "options.h" #include "player_data.h" #include "text.h" -#include "unk_02016B94.h" +#include "bg_window.h" extern void *FUN_02039438(struct UnkSavStruct80* arg, u32 id); extern void *CreateScriptContext(struct UnkSavStruct80* arg, u16 id); @@ -779,7 +779,7 @@ THUMB_FUNC BOOL ScrCmd_CloseMessageBox(struct ScriptContext* ctx) struct Window *unk = FUN_02039438(unk80, 0x1); u8 *unk2 = FUN_02039438(unk80, 0x6); FUN_0200D0E0(unk, 0); //clear window? - FUN_02019178(unk); + RemoveWindow(unk); *unk2 = 0; return FALSE; } @@ -789,7 +789,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0035(struct ScriptContext* ctx) struct UnkSavStruct80 *unk80 = ctx->unk80; struct Window *unk = FUN_02039438(unk80, 0x1); u8 *unk2 = FUN_02039438(unk80, 0x6); - FUN_02019178(unk); + RemoveWindow(unk); *unk2 = 0; return FALSE; } @@ -834,11 +834,11 @@ THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx) { if (*xdir == 0) { - FUN_020179E0(unk80->unk08, 3, 1, *xval); + BgSetPosTextAndCommit(unk80->unk08, 3, 1, *xval); } else { - FUN_020179E0(unk80->unk08, 3, 2, *xval); + BgSetPosTextAndCommit(unk80->unk08, 3, 2, *xval); } } @@ -846,11 +846,11 @@ THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx) { if (*ydir == 0) { - FUN_020179E0(unk80->unk08, 3, 4, *yval); + BgSetPosTextAndCommit(unk80->unk08, 3, 4, *yval); } else { - FUN_020179E0(unk80->unk08, 3, 5, *yval); + BgSetPosTextAndCommit(unk80->unk08, 3, 5, *yval); } } diff --git a/arm9/src/scrcmd_18_c.c b/arm9/src/scrcmd_18_c.c deleted file mode 100644 index d4437c5f..00000000 --- a/arm9/src/scrcmd_18_c.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "global.h"
-#include "script.h"
-#include "party.h"
-#include "save_block_2.h"
-#include "unk_0204639C.h"
-#include "map_header.h"
-#include "scrcmd.h"
-
-extern BOOL GiveMon(u32 heap_id, struct SaveBlock2 * sav2, u16 species, u8 level, u16 item, u32 mapSec, u8 encounterType);
-
-THUMB_FUNC BOOL ScrCmd_GiveMon(struct ScriptContext* ctx)
-{
- u32 mapSec = MapHeader_GetMapSec(*(ctx->unk80->mapId));
- struct UnkSavStruct80 *savePtr = ctx->unk80;
- u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
- u16 level = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
- u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
- u16 * varPtr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
- struct PlayerParty * party = SavArray_PlayerParty_get(savePtr->saveBlock2);
- *varPtr = (u16)GiveMon(11, savePtr->saveBlock2, species, (u8)level, item, mapSec, 12);
- return FALSE;
-}
diff --git a/arm9/src/scrcmd_24.c b/arm9/src/scrcmd_24.c index 9c8f8d4b..b38ed05a 100644 --- a/arm9/src/scrcmd_24.c +++ b/arm9/src/scrcmd_24.c @@ -25,11 +25,13 @@ THUMB_FUNC BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx) return TRUE; } -#ifdef NONMATCHING THUMB_FUNC BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) { - u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - struct UnkStruct_02037CF0** unk_ptr = FUN_02039438(ctx->unk80, 19); + struct UnkStruct_02037CF0** unk_ptr; + u16* ret_ptr; + + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + unk_ptr = FUN_02039438(ctx->unk80, 19); GF_ASSERT(*unk_ptr != NULL); *ret_ptr = FUN_02037D5C(*unk_ptr); @@ -42,44 +44,6 @@ THUMB_FUNC BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) *unk_ptr = NULL; return FALSE; } -#else -THUMB_FUNC asm BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) -{ - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02045DFC - bl GF_AssertFail -_02045DFC: - ldr r0, [r4, #0x0] - bl FUN_02037D5C - strh r0, [r5, #0x0] - ldrh r0, [r5, #0x0] - cmp r0, #0x4 - bne _02045E0E - mov r0, #0xff - strh r0, [r5, #0x0] -_02045E0E: - ldr r0, [r4, #0x0] - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r3-r5, pc} -} -#endif THUMB_FUNC BOOL ScrCmd_Unk021E(struct ScriptContext* ctx) { @@ -159,12 +123,15 @@ THUMB_FUNC BOOL ScrCmd_Unk0222(struct ScriptContext* ctx) return FALSE; } -#ifdef NONMATCHING THUMB_FUNC BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) { - u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19); - struct UnkStruct_02037CF0* unk_sub = *unk; + struct UnkStruct_02037CF0** unk; + struct UnkStruct_02037CF0* unk_sub; + u16* ret_ptr; + + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + unk = FUN_02039438(ctx->unk80, 19); + unk_sub = *unk; GF_ASSERT(unk_sub != NULL); @@ -180,49 +147,16 @@ THUMB_FUNC BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) FUN_02088DF0(unk_sub); return FALSE; } -#else -THUMB_FUNC asm BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) -{ - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - ldr r4, [r0, #0x0] - cmp r4, #0x0 - bne _02045FB2 - bl GF_AssertFail -_02045FB2: - ldrb r0, [r4, #0x16] - cmp r0, #0x0 - bne _02045FBC - mov r0, #0x0 - b _02045FBE -_02045FBC: - mov r0, #0xff -_02045FBE: - strh r0, [r5, #0x0] - add r0, r4, #0x0 - bl FUN_02088DF0 - mov r0, #0x0 - pop {r3-r5, pc} -} -#endif -#ifdef NONMATCHING THUMB_FUNC BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) { - u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19); - struct UnkStruct_02037CF0* unk_sub = *unk; + struct UnkStruct_02037CF0** unk; + struct UnkStruct_02037CF0* unk_sub; + u16* ret_ptr; + + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + unk = FUN_02039438(ctx->unk80, 19); + unk_sub = *unk; GF_ASSERT(unk_sub != NULL); @@ -238,39 +172,3 @@ THUMB_FUNC BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) FUN_02088DF0(unk_sub); return FALSE; } -#else -THUMB_FUNC asm BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) -{ - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - ldr r4, [r0, #0x0] - cmp r4, #0x0 - bne _02045FB2 - bl GF_AssertFail -_02045FB2: - ldrb r0, [r4, #0x16] - cmp r0, #0x0 - bne _02045FBC - mov r0, #0x0 - b _02045FBE -_02045FBC: - mov r0, #0xff -_02045FBE: - strh r0, [r5, #0x0] - add r0, r4, #0x0 - bl FUN_02088DF0 - mov r0, #0x0 - pop {r3-r5, pc} -} -#endif diff --git a/arm9/src/scrcmd_party.c b/arm9/src/scrcmd_party.c new file mode 100644 index 00000000..48d558c9 --- /dev/null +++ b/arm9/src/scrcmd_party.c @@ -0,0 +1,815 @@ +#include "scrcmd.h"
+#include "constants/moves.h"
+#include "itemtool.h"
+#include "map_header.h"
+#include "module_05.h"
+#include "party.h"
+#include "save_block_2.h"
+#include "script_pokemon_util.h"
+#include "unk_02015CC0.h"
+#include "unk_02022504.h"
+#include "unk_0204639C.h"
+#include "unk_0207FC5C.h"
+
+extern u16 FUN_02054DEC(struct SaveBlock2* sav2);
+
+THUMB_FUNC BOOL ScrCmd_GiveMon(struct ScriptContext* ctx)
+{
+ u32 mapSec = MapHeader_GetMapSec(*(ctx->unk80->mapId));
+ struct UnkSavStruct80 *savePtr = ctx->unk80;
+ u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 level = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 * varPtr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty * party = SavArray_PlayerParty_get(savePtr->saveBlock2);
+ *varPtr = (u16)GiveMon(11, savePtr->saveBlock2, species, (u8)level, item, mapSec, 12);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonSpecies(struct ScriptContext* ctx)
+{
+ u32 species;
+ u16* ret_ptr;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* mon_slot = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, *mon_slot);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ species = GetMonData(party_mon, MON_DATA_SPECIES, NULL);
+ }
+ else
+ {
+ species = SPECIES_NONE;
+ }
+
+ *ret_ptr = (u16)species;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckPartyMonOTID(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ u16* mon_slot = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, *mon_slot);
+
+ u16 party_mon_otid = (u16)GetMonData(party_mon, MON_DATA_OTID, NULL);
+ u16 player_otid = (u16)PlayerProfile_GetTrainerID(player);
+ if (party_mon_otid == player_otid)
+ {
+ *ret_ptr = 0;
+ }
+ else
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GiveEgg(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav_ptr->saveBlock2);
+ u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ u8 party_count = (u8)GetPartyCount(party);
+
+ if (party_count < PARTY_SIZE)
+ {
+ struct Pokemon* egg = AllocMonZeroed(11);
+ ZeroMonData(egg);
+
+ s32 met_loc = FUN_02015CF8(1, unk);
+ MOD05_SetEggStats(egg, species, 1, player, 3, met_loc);
+
+ AddMonToParty(party, egg);
+ FreeToHeap(egg);
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetPartyMonMove(struct ScriptContext* ctx)
+{
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 move_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 move = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+
+ PartyMonSetMoveInSlot(party, mon_slot, move_slot, move);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_PartyMonHasMove(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 required_move = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = 0;
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ return FALSE;
+ }
+
+ if (required_move == GetMonData(party_mon, MON_DATA_MOVE1, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE2, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE3, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE4, NULL))
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_FindPartyMonWithMove(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 required_move = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 party_count = (u8)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u8 i;
+ for (i = 0, *ret_ptr = PARTY_SIZE; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ if (required_move == GetMonData(party_mon, MON_DATA_MOVE1, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE2, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE3, NULL) ||
+ required_move == GetMonData(party_mon, MON_DATA_MOVE4, NULL))
+ {
+ *ret_ptr = i;
+ break;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SurvivePsn(struct ScriptContext* ctx)
+{
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)SurvivePoisoning(party_mon);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountPartyMonsAtOrBelowLevel(struct ScriptContext* ctx)
+{
+ u8 party_count;
+ u8 i;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 highest_level = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ party_count = (u8)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u8 mons;
+ for (i = 0, mons = 0, *ret_ptr = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ u32 party_mon_level = GetMonData(party_mon, MON_DATA_LEVEL, NULL);
+ if (party_mon_level <= highest_level)
+ {
+ mons++;
+ }
+ }
+ }
+
+ *ret_ptr = mons;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonLevel(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = 0;
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_LEVEL, NULL);
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonNature(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 party_count = (u8)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ if (mon_slot >= party_count)
+ {
+ *ret_ptr = 0;
+ return FALSE;
+ }
+
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ *ret_ptr = 0;
+ return FALSE;
+ }
+
+ *ret_ptr = GetMonNature(party_mon);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_FindPartyMonWithNature(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 required_nature = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 party_count = (u8)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u8 i;
+ for (i = 0, *ret_ptr = 0xFF; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ u8 party_mon_nature = GetMonNature(party_mon);
+ if (required_nature == party_mon_nature)
+ {
+ *ret_ptr = i;
+ break;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonFriendship(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_AddPartyMonFriendship(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16 friendship_to_add = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 map_sec = MapHeader_GetMapSec(*ctx->unk80->mapId);
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ u16 friendship = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL);
+
+ if (friendship_to_add != 0)
+ {
+ u16 party_mon_held_item = (u16)GetMonData(party_mon, MON_DATA_HELD_ITEM, NULL);
+ u32 held_item_hold_effect = GetItemAttr(party_mon_held_item, ITEMATTR_HOLD_EFFECT, 11);
+ if (held_item_hold_effect == HOLD_EFFECT_FRIENDSHIP_UP)
+ {
+ friendship_to_add = (u16)((friendship_to_add * 150) / 100);
+ }
+
+ u32 party_mon_pokeball = GetMonData(party_mon, MON_DATA_POKEBALL, NULL);
+ if (party_mon_pokeball == ITEM_LUXURY_BALL)
+ {
+ friendship_to_add++;
+ }
+
+ u32 party_mon_egg_met_location = GetMonData(party_mon, MON_DATA_EGG_MET_LOCATION, NULL);
+ if (map_sec == party_mon_egg_met_location)
+ {
+ friendship_to_add++;
+ }
+ }
+
+ friendship += friendship_to_add;
+ if (friendship > 0xFF)
+ {
+ friendship = 0xFF;
+ }
+
+ SetMonData(party_mon, MON_DATA_FRIENDSHIP, &friendship);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SubtractPartyMonFriendship(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16 friendship_to_deplete = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ u16 friendship = (u16)GetMonData(party_mon, MON_DATA_FRIENDSHIP, NULL);
+ if (friendship_to_deplete > friendship)
+ {
+ friendship = 0;
+ }
+ else
+ {
+ friendship -= friendship_to_deplete;
+ }
+
+ SetMonData(party_mon, MON_DATA_FRIENDSHIP, &friendship);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonContestCondition(struct ScriptContext* ctx)
+{
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 contest_condition_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_COOL + contest_condition_id, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetLeadingPartyMonSlot(struct ScriptContext* ctx)
+{
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = FUN_02054DEC(ctx->unk80->saveBlock2);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonTypes(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* type1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* type2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *type1 = (u16)GetMonData(party_mon, MON_DATA_TYPE_1, NULL);
+ *type2 = (u16)GetMonData(party_mon, MON_DATA_TYPE_2, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountPartyMons(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+
+ *ret_ptr = (u16)GetPartyCount(party);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountPartyMons_OmitEggs(struct ScriptContext* ctx)
+{
+ u32 non_egg_mons;
+ s32 i;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ s32 party_count = GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ for (i = 0, non_egg_mons = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ non_egg_mons++;
+ }
+
+ }
+
+ *ret_ptr = (u16)non_egg_mons;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountAvailablePartyMons_IgnoreSlot(struct ScriptContext* ctx)
+{
+ u16 slot_to_ignore;
+ s32 party_count;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ slot_to_ignore = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ party_count = GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u32 available_mons;
+ s32 i;
+ for (i = 0, available_mons = 0; i < party_count; i++)
+ {
+ if (i != slot_to_ignore)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ u32 party_mon_hp = GetMonData(party_mon, MON_DATA_HP, NULL);
+ if (party_mon_hp != 0)
+ {
+ available_mons++;
+ }
+ }
+ }
+ }
+
+ *ret_ptr = (u16)available_mons;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountAvailablePartyAndPCMons(struct ScriptContext* ctx)
+{
+ s32 party_count;
+ struct PCStorage* pc;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ pc = GetStoragePCPointer(sav_ptr->saveBlock2);
+ party_count = GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u32 mons;
+ s32 i;
+ for (i = 0, mons = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ u32 party_mon_hp = GetMonData(party_mon, MON_DATA_HP, NULL);
+ if (party_mon_hp != 0)
+ {
+ mons++;
+ }
+ }
+ }
+
+ *ret_ptr = (u16)(mons + PCStorage_CountMonsInAllBoxes(pc));
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyEggCount(struct ScriptContext* ctx)
+{
+ s32 party_count;
+ u32 eggs_in_party;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ party_count = GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ s32 i;
+ for (i = 0, eggs_in_party = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ eggs_in_party++;
+ }
+ }
+
+ *ret_ptr = (u16)eggs_in_party;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckPartyForPokerus(struct ScriptContext* ctx)
+{
+ u16 party_count;
+ u16 i;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ party_count = (u16)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ for (i = 0, *ret_ptr = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_has_pokerus = (BOOL)GetMonData(party_mon, MON_DATA_POKERUS, NULL);
+ if (party_mon_has_pokerus)
+ {
+ *ret_ptr = 1;
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonGender(struct ScriptContext* ctx)
+{
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_GENDER, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountPartyMonMoves(struct ScriptContext* ctx)
+{
+ struct Pokemon* party_mon;
+ u8 moves;
+
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ *ret_ptr = 0;
+ return FALSE;
+ }
+
+ moves = 0;
+
+ u32 move1 = GetMonData(party_mon, MON_DATA_MOVE1, NULL);
+ if (move1 != MOVE_NONE)
+ {
+ moves++;
+ }
+
+ u32 move2 = GetMonData(party_mon, MON_DATA_MOVE2, NULL);
+ if (move2 != MOVE_NONE)
+ {
+ moves++;
+ }
+
+ u32 move3 = GetMonData(party_mon, MON_DATA_MOVE3, NULL);
+ if (move3 != MOVE_NONE)
+ {
+ moves++;
+ }
+
+ u32 move4 = GetMonData(party_mon, MON_DATA_MOVE4, NULL);
+ if (move4 != MOVE_NONE)
+ {
+ moves++;
+ }
+
+ *ret_ptr = moves;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ForgetPartyMonMove(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 move_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ FUN_020699A4(party_mon, move_slot);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonMove(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 move_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_MOVE1 + move_slot, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPartyMonHeldItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, MON_DATA_HELD_ITEM, NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ResetPartyMonHeldItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ u16 party_mon_held_item = ITEM_NONE;
+ SetMonData(party_mon, MON_DATA_HELD_ITEM, &party_mon_held_item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckPartyForSpecies(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 party_count = (u8)GetPartyCount(SavArray_PlayerParty_get(sav_ptr->saveBlock2));
+
+ u8 i;
+ for (i = 0, *ret_ptr = 0; i < party_count; i++)
+ {
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg == FALSE)
+ {
+ u16 party_mon_species = (u16)GetMonData(party_mon, MON_DATA_SPECIES, NULL);
+ if (species == party_mon_species)
+ {
+ *ret_ptr = 1;
+ break;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountPartyMonRibbons(struct ScriptContext* ctx)
+{
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ u16 ribbon_idx;
+ u16 ribbons;
+ for (ribbon_idx = 0, ribbons = 0; ribbon_idx < 80; ribbon_idx++)
+ {
+ BOOL party_mon_has_ribbon = (BOOL)GetMonData(party_mon, FUN_0207FC5C((u8)ribbon_idx, 0), NULL);
+ if (party_mon_has_ribbon)
+ {
+ ribbons++;
+ }
+ }
+
+ *ret_ptr = ribbons;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CountTotalPartyRibbons(struct ScriptContext* ctx)
+{
+ struct PlayerParty* party;
+ u16 ribbon_idx;
+ u16 ribbons;
+
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 party_count = (u16)GetPartyCount(SavArray_PlayerParty_get(ctx->unk80->saveBlock2));
+ party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+
+ for (ribbon_idx = 0, ribbons = 0; ribbon_idx < 80; ribbon_idx++)
+ {
+ for (u16 i = 0; i < party_count; i++)
+ {
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ // BUG: This `break` should be a `continue`, as any party mons after a detected
+ // egg would have their ribbons ignored.
+ break;
+ }
+
+ BOOL party_mon_has_ribbon = (BOOL)GetMonData(party_mon, FUN_0207FC5C((u8)ribbon_idx, 0), NULL);
+ if (party_mon_has_ribbon)
+ {
+ ribbons++;
+ break;
+ }
+ }
+ }
+
+ *ret_ptr = ribbons;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_PartyMonHasRibbon(struct ScriptContext* ctx)
+{
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 ribbon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ *ret_ptr = (u16)GetMonData(party_mon, FUN_0207FC5C((u8)ribbon_idx, 0), NULL);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GivePartyMonRibbon(struct ScriptContext* ctx)
+{
+ u16 mon_slot = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 ribbon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 mon_has_ribbon = TRUE;
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, mon_slot);
+
+ SetMonData(party_mon, (s32)FUN_0207FC5C((u8)ribbon_idx, 0), &mon_has_ribbon);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckPartyForBadEgg(struct ScriptContext* ctx)
+{
+ u16 ribbon_idx;
+
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 party_count = (u16)GetPartyCount(SavArray_PlayerParty_get(ctx->unk80->saveBlock2));
+ struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2);
+
+ // BUG: Probably a copy-paste fail. Checks if your party has a Bad Egg in it,
+ // 80 times.
+ for (ribbon_idx = 0; ribbon_idx < 80; ribbon_idx++)
+ {
+ for (u16 i = 0; i < party_count; i++)
+ {
+ struct Pokemon* party_mon = GetPartyMonByIndex(party, i);
+ BOOL party_mon_is_egg = (BOOL)GetMonData(party_mon, MON_DATA_IS_EGG, NULL);
+ if (party_mon_is_egg)
+ {
+ BOOL party_mon_is_bad_egg = (BOOL)GetMonData(party_mon, MON_DATA_CHECKSUM_FAILED, NULL);
+ if (party_mon_is_bad_egg)
+ {
+ *ret_ptr = 1;
+ return FALSE;
+ }
+ }
+ }
+ }
+
+ *ret_ptr = 0;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00A0(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index ec5ab7f8..1251c612 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -18,7 +18,7 @@ extern void FUN_0200538C(u32, u16, u32); extern void FUN_020053CC(u16, u16); extern BOOL FUN_02005404(void); extern u16 FUN_02005410(u16); -extern void FUN_020054C8(u16); +extern void PlaySE(u16); extern void FUN_020054F0(u16, u32); extern void FUN_020047C8(u8, u8); extern void FUN_020040F4(u8); @@ -123,7 +123,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0058(struct ScriptContext* ctx) THUMB_FUNC BOOL ScrCmd_PlayFanfare(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); - FUN_020054C8(unk); + PlaySE(unk); return FALSE; } @@ -263,4 +263,3 @@ THUMB_FUNC BOOL ScrCmd_SetVolume(struct ScriptContext* ctx) return FALSE; } - diff --git a/arm9/src/script.c b/arm9/src/script.c index 3de2ee73..3e8cca58 100644 --- a/arm9/src/script.c +++ b/arm9/src/script.c @@ -76,7 +76,7 @@ THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx) cmdCode = ScriptReadHalfword(ctx);
if (cmdCode >= ctx->cmdCount)
{
- GF_AssertFail();
+ GF_ASSERT(0);
ctx->mode = 0;
return FALSE;
}
diff --git a/arm9/src/script_pokemon_util.c b/arm9/src/script_pokemon_util.c index 55519ca3..de78ae28 100644 --- a/arm9/src/script_pokemon_util.c +++ b/arm9/src/script_pokemon_util.c @@ -109,7 +109,7 @@ struct Pokemon * GetFirstAliveMonInParty_CrashIfNone(struct PlayerParty * party) if(MonNotFaintedOrEgg(mon))
return mon;
}
- GF_AssertFail();
+ GF_ASSERT(0);
return 0;
}
diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index dcbad024..f5527257 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -1,20 +1,17 @@ #include "text_02054590.h" #include "text.h" -#include "unk_02016B94.h" +#include "bg_window.h" +#include "render_text.h" extern void FUN_0201BD5C(void); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_02002EEC(u32 param0, u32 param1, u32 param2); extern void FUN_0200CD68( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); + struct BgConfig *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_0200D0BC(struct Window *param0, u32 param1, u32 param2, u32 param3); -extern void FUN_02002B60(u8 param0); -extern void FUN_02002B7C(u32 param0); -extern void FUN_02002BB8(u32 param0); - -extern void FUN_0200D300(struct UnkStruct_02016B94_2 *param0, +extern void FUN_0200D300(struct BgConfig *param0, u32 param1, u32 param2, u32 param3, @@ -33,21 +30,21 @@ THUMB_FUNC void FUN_02054590(u32 param0, u32 param1) FUN_02002EEC(param0, 384, 4); } -THUMB_FUNC void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2) +THUMB_FUNC void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2) { if (param2 == 3) { - FUN_02019064(param0, param1, 3, 2, 19, 27, 4, 12, 813); + AddWindowParameterized(param0, param1, 3, 2, 19, 27, 4, 12, 813); } else { - FUN_02019064(param0, param1, 7, 2, 19, 27, 4, 12, 404); + AddWindowParameterized(param0, param1, 7, 2, 19, 27, 4, 12, 404); } } THUMB_FUNC void FUN_02054608(struct Window *param0, struct Options *options) { - FUN_0200CD68(param0->unk00, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4); + FUN_0200CD68(param0->bgConfig, GetWindowBgId(param0), 994, 10, (u8)Options_GetFrame(options), 4); FUN_0205464C(param0); FUN_0200D0BC(param0, 0, 994, 10); } @@ -59,15 +56,15 @@ THUMB_FUNC void FUN_0205464C(struct Window *param0) THUMB_FUNC u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3) { - FUN_02002B60(param3); + TextFlags_SetCanABSpeedUpPrint(param3); FUN_02002B7C(0); FUN_02002BB8(0); return AddTextPrinterParameterized(window, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); } -THUMB_FUNC u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5) +THUMB_FUNC u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, s32 a5) { - FUN_02002B60(a4); + TextFlags_SetCanABSpeedUpPrint(a4); FUN_02002B7C(a5); FUN_02002BB8(0); return AddTextPrinterParameterized(window, fontId, str, 0, 0, speed, NULL); @@ -79,7 +76,7 @@ THUMB_FUNC u8 FUN_020546C8(u32 param0) // bool8? } THUMB_FUNC void FUN_020546E0( - struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3) + struct BgConfig *param0, struct Window *param1, u32 param2, u32 param3) { u32 r4 = 0; u32 r5 = 0; @@ -95,17 +92,17 @@ THUMB_FUNC void FUN_020546E0( } if (param3 == 3) { - FUN_02019064(param0, param1, 3, (u8)r4, 19, (u8)r5, 4, 9, 813); + AddWindowParameterized(param0, param1, 3, (u8) r4, 19, (u8) r5, 4, 9, 813); } else { - FUN_02019064(param0, param1, 7, (u8)r4, 19, (u8)r5, 4, 9, 404); + AddWindowParameterized(param0, param1, 7, (u8) r4, 19, (u8) r5, 4, 9, 404); } } THUMB_FUNC void FUN_02054744(struct Window *param0, u32 param1, u32 param2) { - FUN_0200D300(param0->unk00, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); + FUN_0200D300(param0->bgConfig, GetWindowBgId(param0), 0x399, 9, (u8)param1, param2, 4); FillWindowPixelBuffer(param0, 15); FUN_0200D6F8(param0, 0, 0x399, 9, (u8)param1); } diff --git a/arm9/src/timer3.c b/arm9/src/timer3.c index 1799fd24..d4e8f8a1 100644 --- a/arm9/src/timer3.c +++ b/arm9/src/timer3.c @@ -1,37 +1,37 @@ #include "timer3.h" -struct Timer3Data timer3_data; +static BOOL timer3_needReset; +static vu64 timer3_counter; THUMB_FUNC void Init_Timer3() { - timer3_data.Timer3Counter = 0; - timer3_data.NeedReset = FALSE; + timer3_counter = 0; + timer3_needReset = FALSE; - reg_OS_TM3CNT_H = 0; - reg_OS_TM3CNT_L = 0; - reg_OS_TM3CNT_H = 0xc1; // start timer3 with f/64 and irq enable + OS_SetTimerControl(OS_TIMER_3, 0); + OS_SetTimerCount(OS_TIMER_3, 0); + OS_SetTimerControl(OS_TIMER_3, REG_OS_TM3CNT_H_E_MASK | REG_OS_TM3CNT_H_I_MASK | OS_TIMER_PRESCALER_64); // start timer3 with f/64 and irq enable - OS_SetIrqFunction(0x40, &CountUpTimer3); - OS_EnableIrqMask(0x40); // irq on timer3 overflow + OS_SetIrqFunction(OS_IE_TIMER3, &CountUpTimer3); + OS_EnableIrqMask(OS_IE_TIMER3); // irq on timer3 overflow } THUMB_FUNC void CountUpTimer3() { - timer3_data.Timer3Counter++; + timer3_counter++; - if (timer3_data.NeedReset) + if (timer3_needReset) { - reg_OS_TM3CNT_H = 0; - reg_OS_TM3CNT_L = 0; - reg_OS_TM3CNT_H = 0xc1; - timer3_data.NeedReset = FALSE; + OS_SetTimerControl(OS_TIMER_3, 0); + OS_SetTimerCount(OS_TIMER_3, 0); + OS_SetTimerControl(OS_TIMER_3, REG_OS_TM3CNT_H_E_MASK | REG_OS_TM3CNT_H_I_MASK | OS_TIMER_PRESCALER_64); + timer3_needReset = FALSE; } - *(vu32 *)HW_INTR_CHECK_BUF |= 0x40; - - OS_SetIrqFunction(0x40, &CountUpTimer3); + OS_SetIrqCheckFlag(OS_IE_TIMER3); + OS_SetIrqFunction(OS_IE_TIMER3, &CountUpTimer3); } THUMB_FUNC u64 internal_GetTimer3Count() @@ -39,15 +39,15 @@ THUMB_FUNC u64 internal_GetTimer3Count() OSIntrMode intr_mode = OS_DisableInterrupts(); vu16 timer3 = reg_OS_TM3CNT_L; - vu64 timer3_counter = timer3_data.Timer3Counter & 0x0000ffffffffffff; + vu64 counter = timer3_counter & 0x0000ffffffffffff; - if (reg_OS_IF & 0x40 && !(timer3 & 0x8000)) + if (reg_OS_IF & OS_IE_TIMER3 && !(timer3 & 0x8000)) { - timer3_counter++; + counter++; } OS_RestoreInterrupts(intr_mode); - return (timer3_counter << 16) | timer3; + return (counter << 16) | timer3; } THUMB_FUNC u64 GetTimer3Count() @@ -57,10 +57,10 @@ THUMB_FUNC u64 GetTimer3Count() THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count) { - return (count *64) / 33514; + return (count * 64) / (HW_SYSTEM_CLOCK / 1000); } THUMB_FUNC u64 Timer3CountToSeconds(u64 count) { - return (count *64) / HW_SYSTEM_CLOCK; + return (count * 64) / HW_SYSTEM_CLOCK; } diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 45850885..4ed957d6 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -323,7 +323,7 @@ THUMB_FUNC BOOL FUN_0200BD20( for (s32 i = 0; i < st14; i++) { u32 st18 = FUN_02009660(param1->unk08, i); - void *st1c = FUN_020161A4(param0->unk000, st10[i]); + void *st1c = AllocAndReadFile(param0->unk000, st10[i]); FUN_02009668(st1c, st18, param0->unk000); FreeToHeap(st1c); @@ -344,7 +344,7 @@ THUMB_FUNC BOOL FUN_0200BD20( FUN_02009A90(param1->unk24[0]); FUN_02009D34(param1->unk24[1]); - void *r6 = FUN_020161A4(param0->unk000, st10[6]); + void *r6 = AllocAndReadFile(param0->unk000, st10[6]); param1->unk04 = FUN_02008BE0(r6, param0->unk000, param1->unk0c[0], @@ -517,13 +517,8 @@ THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, return TRUE; } - GF_AssertFail(); - if (r5 != 0) - { - return TRUE; - } - - return FALSE; + GF_ASSERT(0); + return r5 != 0 ? TRUE : FALSE; } THUMB_FUNC s32 FUN_0200C06C(u32 *param0, @@ -549,7 +544,7 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0, return (s8)FUN_02009E88(r5, param6); } - GF_AssertFail(); + GF_ASSERT(0); return -1; } @@ -721,7 +716,7 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( } else { - GF_AssertFail(); + GF_ASSERT(0); } return ptr; @@ -805,13 +800,8 @@ THUMB_FUNC BOOL FUN_0200C404(u32 *param0, GF_ASSERT(r4 == 1); return r4; } - GF_AssertFail(); - if (r5 != 0) - { - return TRUE; - } - - return FALSE; + GF_ASSERT(0); + return r5 != 0 ? TRUE : FALSE; } THUMB_FUNC BOOL FUN_0200C474(u32 *param0, u32 param1) @@ -1259,13 +1249,8 @@ THUMB_FUNC BOOL FUN_0200C918(u32 *param0, return TRUE; } - GF_AssertFail(); - if (r5 != 0) - { - return TRUE; - } - - return FALSE; + GF_ASSERT(0); + return r5 != 0 ? TRUE : FALSE; } THUMB_FUNC BOOL FUN_0200C978(u32 *param0, @@ -1290,13 +1275,8 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0, return TRUE; } - GF_AssertFail(); - if (r5 != 0) - { - return TRUE; - } - - return FALSE; + GF_ASSERT(0); + return r5 != 0 ? TRUE : FALSE; } THUMB_FUNC void FUN_0200C9D8( diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c deleted file mode 100644 index 6a9dd194..00000000 --- a/arm9/src/unk_02016B94.c +++ /dev/null @@ -1,8110 +0,0 @@ -#include "global.h" -#include "unk_02016B94.h" -#include "GX_layers.h" -#include "game_init.h" -#include "gx.h" -#include "heap.h" - -extern void NNS_G2dGetUnpackedBGCharacterData(void *param0, u32 *param1); -extern void NNS_G2dGetUnpackedPaletteData(void *param0, u32 *param1); - -const u8 UNK_020EDB30[8] = { - 0x10, - 0x20, - 0x20, - 0x20, - 0x20, - 0x20, - 0x00, - 0x00, -}; - -void (*const UNK_020EDB5C[])(struct Window *) = { - FUN_020194C8, - FUN_0201951C, - FUN_020194C8, -}; - -void (*const UNK_020EDB50[])(struct Window *) = { - FUN_020195A8, - FUN_020195E4, - FUN_020195A8, -}; - -void (*const UNK_020EDB44[])(struct Window *) = { - FUN_020195D0, - FUN_0201960C, - FUN_020195D0, -}; - -void (*const UNK_020EDB38[])(struct Window *) = { - FUN_020192D4, - FUN_02019358, - FUN_020192D4, -}; - -void (*const UNK_020EDB68[])(struct Window *) = { - FUN_0201949C, - FUN_020194E0, - FUN_0201949C, -}; - -void (*const UNK_020EDB74[])(struct Window *) = { - FUN_020193B4, - FUN_02019444, - FUN_020193B4, -}; - -THUMB_FUNC struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id) -{ - struct UnkStruct_02016B94_2 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02016B94_2)); - memset(ptr, 0, sizeof(struct UnkStruct_02016B94_2)); - ptr->unk00 = heap_id; - ptr->unk04 = 0; - ptr->unk06 = 0; - - return ptr; -} - -THUMB_FUNC u32 FUN_02016BB8(u32 *param0) -{ - return *param0; -} - -THUMB_FUNC void FUN_02016BBC(const struct GraphicsModes *modes) -{ - GX_SetGraphicsMode(modes->mode1, modes->mode2, modes->mode4); - GXS_SetGraphicsMode(modes->mode3); - reg_GX_DISPCNT &= 0xC7FFFFFF; - reg_GX_DISPCNT &= 0xF8FFFFFF; - - GX_DisableEngineALayers(); - GX_DisableEngineBLayers(); -} - -THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1) -{ - if (param1 == 0) - { - GX_SetGraphicsMode(param0[0], param0[1], param0[3]); - GX_DisableEngineALayers(); - } - else - { - GXS_SetGraphicsMode(param0[2]); - GX_DisableEngineBLayers(); - } -} - -#ifdef NONMATCHING -THUMB_FUNC void FUN_02016C18( - struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3) -{ - u8 res = FUN_020177DC(param2->unk10, param3); - switch (param1) - { - case 0: - GX_EngineAToggleLayers(1, GX_LAYER_TOGGLE_ON); - - reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); - reg_G2_BG0CNT = (reg_G2_BG0CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2_BG0CNT |= 0x40; - } - else - { - reg_G2_BG0CNT &= ~0x40; - } - - break; - - case 1: - GX_EngineAToggleLayers(2, GX_LAYER_TOGGLE_ON); - reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); - reg_G2_BG1CNT = (reg_G2_BG1CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2_BG1CNT |= 0x40; - } - else - { - reg_G2_BG1CNT &= ~0x40; - } - - break; - - case 2: - GX_EngineAToggleLayers(4, GX_LAYER_TOGGLE_ON); - switch (param3) - { - default: - case 0: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk13 << 2); - break; - case 1: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - case 2: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - } - - reg_G2_BG2CNT = (reg_G2_BG2CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2_BG2CNT |= 0x40; - } - else - { - reg_G2_BG2CNT &= ~0x40; - } - - break; - - case 3: - GX_EngineAToggleLayers(8, GX_LAYER_TOGGLE_ON); - - switch (param3) - { - default: - case 0: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk13 << 2); - break; - case 1: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - case 2: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - } - - reg_G2_BG3CNT = (reg_G2_BG3CNT & ~3) | (param2->unk15); - if (param2->unk18 != 0) - { - reg_G2_BG3CNT |= 0x40; - } - else - { - reg_G2_BG3CNT &= ~0x40; - } - break; - - case 4: - GX_EngineBToggleLayers(1, GX_LAYER_TOGGLE_ON); - - reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); - - reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2S_DB_BG0CNT |= 0x40; - } - else - { - reg_G2S_DB_BG0CNT &= ~0x40; - } - - break; - - case 5: - GX_EngineBToggleLayers(2, GX_LAYER_TOGGLE_ON); - - reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); - - reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2S_DB_BG1CNT |= 0x40; - } - else - { - reg_G2S_DB_BG1CNT &= ~0x40; - } - - break; - - case 6: - GX_EngineBToggleLayers(4, GX_LAYER_TOGGLE_ON); - - switch (param3) - { - default: - case 0: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk13 << 2); - break; - case 1: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - case 2: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - } - - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & ~3) | (param2->unk15); - - if (param2->unk18 != 0) - { - reg_G2S_DB_BG2CNT |= 0x40; - } - else - { - reg_G2S_DB_BG2CNT &= ~0x40; - } - - break; - case 7: - GX_EngineBToggleLayers(8, GX_LAYER_TOGGLE_ON); - switch (param3) - { - default: - case 0: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk11 << 7) | (param2->unk13 << 2); - break; - case 1: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - case 2: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | - (param2->unk16 << 13) | (param2->unk13 << 2); - break; - } - - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & ~3) | (param2->unk15); - if (param2->unk18 != 0) - { - reg_G2S_DB_BG3CNT |= 0x40; - } - else - { - reg_G2S_DB_BG3CNT &= ~0x40; - } - break; - } - - param0->unk08[param1].unk20 = 0; - param0->unk08[param1].unk24 = 0x1000; - param0->unk08[param1].unk28 = 0x1000; - param0->unk08[param1].unk2c = 0; - param0->unk08[param1].unk30 = 0; - - if (param2->unk08 != 0) - { - param0->unk08[param1].unk08 = AllocFromHeap(param0->unk00, param2->unk08); - - MI_CpuClear16(param0->unk08[param1].unk08, param2->unk08); - - param0->unk08[param1].unk0c = param2->unk08; - param0->unk08[param1].unk10 = param2->unk0c; - } - else - { - param0->unk08[param1].unk08 = 0; - param0->unk08[param1].unk0c = 0; - param0->unk08[param1].unk10 = 0; - } - - param0->unk08[param1].unk1d = param2->unk10; - param0->unk08[param1].unk1c = param3; - param0->unk08[param1].unk1e = param2->unk11; - - if (param3 == 0 && param2->unk11 == 0) - { - param0->unk08[param1].unk1f = 0x20; - } - else - { - param0->unk08[param1].unk1f = 0x40; - } - - FUN_020179E0(param0, param1, 0, param2->unk00); - FUN_020179E0(param0, param1, 3, param2->unk04); -} -#else -THUMB_FUNC asm void FUN_02016C18( - struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3) -{ - // clang-format off - push {r3-r7, lr} - sub sp, #0x18 - str r1, [sp, #0x4] - str r3, [sp, #0x8] - add r4, r2, #0x0 - str r0, [sp, #0x0] - ldrb r0, [r4, #0x10] - ldr r1, [sp, #0x8] - bl FUN_020177DC - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r0, #0x7 - bls _02016C36 - b _0201705A -_02016C36: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02016C42: - // jump table (using 16-bit offset) - // .short _02016C52 - _02016C42 - 2; case 0 - // .short _02016CAA - _02016C42 - 2; case 1 - // .short _02016D02 - _02016C42 - 2; case 2 - // .short _02016DA4 - _02016C42 - 2; case 3 - // .short _02016E46 - _02016C42 - 2; case 4 - // .short _02016E9E - _02016C42 - 2; case 5 - // .short _02016EF6 - _02016C42 - 2; case 6 - // .short _02016F98 - _02016C42 - 2; case 7 - - lsl r6, r1, #0 - lsl r6, r4, #1 - lsl r6, r7, #2 - lsl r0, r4, #5 - lsl r2, r0, #8 - lsl r2, r3, #9 - lsl r2, r6, #10 - lsl r4, r2, #13 -_02016C52: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0xc] - ldr r2, =0x04000008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0xc] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CA0 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CA0: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016CAA: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x10] - ldr r2, =0x0400000A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x10] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CF8 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CF8: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016D02: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016D18 - cmp r0, #0x1 - beq _02016D3A - cmp r0, #0x2 - beq _02016D5C -_02016D18: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400000C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D3A: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, =0x0400000C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D5C: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400000C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016D7C: - ldr r0, =0x0400000C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016D9A - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016D9A: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016DA4: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016DBA - cmp r0, #0x1 - beq _02016DDC - cmp r0, #0x2 - beq _02016DFE -_02016DBA: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400000E - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DDC: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, =0x0400000E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DFE: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400000E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016E1E: - ldr r0, =0x0400000E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016E3C - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016E3C: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016E46: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineBToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x14] - ldr r2, =0x04001008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x14] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016E94 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016E94: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016E9E: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrb r3, [r4, #0x14] - lsl r0, r0, #0x7 - mov r12, r0 - ldr r2, =0x0400100A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - lsl r3, r3, #0xd - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - mov r1, r12 - orr r0, r1 - orr r0, r7 - orr r0, r6 - orr r0, r3 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016EEC - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016EEC: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016EF6: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016F0C - cmp r0, #0x1 - beq _02016F2E - cmp r0, #0x2 - beq _02016F50 -_02016F0C: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400100C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F2E: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, =0x0400100C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F50: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400100C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016F70: - ldr r0, =0x0400100C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016F8E - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016F8E: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016F98: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016FAE - cmp r0, #0x1 - beq _02016FF2 - cmp r0, #0x2 - beq _02017014 -_02016FAE: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400100E - b _02016FD4 -_02016FD4: - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02016FF2: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, =0x0400100E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02017014: - ldrb r1, [r4, #0x12] - ldr r7, =0x0400100E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02017034: - ldr r0, =0x0400100E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02017052 - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02017052: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] -_0201705A: - ldr r0, [sp, #0x4] - mov r1, #0x2c - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mul r5, r1 - add r2, r0, r5 - mov r3, #0x0 - mov r0, #0x1 - strh r3, [r2, #0x20] - lsl r0, r0, #0xc - str r0, [r2, #0x24] - str r0, [r2, #0x28] - str r3, [r2, #0x2c] - str r3, [r2, #0x30] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020170A2 - ldr r0, [sp, #0x0] - ldr r6, [sp, #0x0] - ldr r0, [r0, #0x0] - add r6, #0x8 - bl AllocFromHeap - str r0, [r6, r5] - ldr r1, [r6, r5] - ldr r2, [r4, #0x8] - mov r0, #0x0 - bl MIi_CpuClear16 - ldr r0, [sp, #0x0] - ldr r2, [r4, #0x8] - add r1, r0, r5 - str r2, [r1, #0xc] - ldr r0, [r4, #0xc] - str r0, [r1, #0x10] - b _020170A8 -_020170A2: - str r3, [r2, #0x8] - str r3, [r2, #0xc] - str r3, [r2, #0x10] -_020170A8: - ldr r0, [sp, #0x0] - ldrb r1, [r4, #0x10] - add r0, r0, r5 - strb r1, [r0, #0x1d] - ldr r1, [sp, #0x8] - strb r1, [r0, #0x1c] - ldrb r1, [r4, #0x11] - strb r1, [r0, #0x1e] - ldr r1, [sp, #0x8] - cmp r1, #0x0 - bne _020170CA - ldrb r1, [r4, #0x11] - cmp r1, #0x0 - bne _020170CA - mov r1, #0x20 - strb r1, [r0, #0x1f] - b _020170D2 -_020170CA: - ldr r0, [sp, #0x0] - mov r1, #0x40 - add r0, r0, r5 - strb r1, [r0, #0x1f] -_020170D2: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x0] - mov r2, #0x0 - bl FUN_020179E0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x4] - mov r2, #0x3 - bl FUN_020179E0 - add sp, #0x18 - pop {r3-r7, pc} - // clang-format on -} -#endif - -#ifdef NONMATCHING -THUMB_FUNC void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) -{ - if (param2 == 0) - { - param0->unk08[param1].unk1e = param3; - } - - switch (param1) - { - case 0: - u16 bg0cnt = reg_G2_BG0CNT; - if (param2 == 1) - { - bg0cnt = bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg0cnt = bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | ((u32)(bg0cnt << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(bg0cnt << 0x13) >> 0x1b) << 8 | - ((u32)(bg0cnt << 0x1a) >> 0x1c) << 2 | - ((u32)(bg0cnt << 0x12) >> 0x1f) << 0xd; - - break; - case 1: - u16 bg1cnt = reg_G2_BG1CNT; - if (param2 == 1) - { - bg1cnt = bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg1cnt = bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (((u32)bg1cnt << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(bg1cnt << 0x13) >> 0x1b) << 8 | - ((u32)(bg1cnt << 0x1a) >> 0x1c) << 2 | - ((u32)(bg1cnt << 0x12) >> 0x1f) << 0xd; - - break; - case 2: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - u16 bg2cnt_0 = reg_G2_BG2CNT; - if (param2 == 1) - { - bg2cnt_0 = bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg2cnt_0 = bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_0 << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | - ((u32)(bg2cnt_0 << 0x13) >> 0x1b) << 8 | - ((u32)(bg2cnt_0 << 0x1a) >> 0x1c) << 2; - - break; - case 1: - u16 bg2cnt_1 = reg_G2_BG2CNT; - if (param2 == 1) - { - bg2cnt_1 = bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg2cnt_1 = bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_1 << 0x10) >> 0x1e) << 0xe | - ((u32)(bg2cnt_1 << 0x13) >> 0x1b) << 8 | - ((u32)(bg2cnt_1 << 0x1a) >> 0x1c) << 2 | - ((u32)(bg2cnt_1 << 0x12) >> 0x1f) << 0xd; - break; - case 2: - u16 bg2cnt_2 = reg_G2_BG2CNT; - if (param2 == 1) - { - bg2cnt_2 = bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg2cnt_2 = bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); - } - - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_2 << 0x10) >> 0x1e) << 0xe | - ((u32)(bg2cnt_2 << 0x13) >> 0x1b) << 8 | - ((u32)(bg2cnt_2 << 0x1a) >> 0x1d) << 2 | - ((u32)(bg2cnt_2 << 0x12) >> 0x1f) << 0xd; - break; - } - break; - case 3: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - u16 bg3cnt_0 = reg_G2_BG3CNT; - if (param2 == 1) - { - bg3cnt_0 = bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg3cnt_0 = bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_0 << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | - ((u32)(bg3cnt_0 << 0x13) >> 0x1b) << 8 | - ((u32)(bg3cnt_0 << 0x1a) >> 0x1c) << 2; - - break; - case 1: - u16 bg3cnt_1 = reg_G2_BG3CNT; - if (param2 == 1) - { - bg3cnt_1 = bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg3cnt_1 = bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_1 << 0x10) >> 0x1e) << 0xe | - ((u32)(bg3cnt_1 << 0x13) >> 0x1b) << 8 | - ((u32)(bg3cnt_1 << 0x1a) >> 0x1c) << 2 | - ((u32)(bg3cnt_1 << 0x12) >> 0x1f) << 0xd; - break; - case 2: - u16 bg3cnt_2 = reg_G2_BG3CNT; - if (param2 == 1) - { - bg3cnt_2 = bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - bg3cnt_2 = bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); - } - - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_2 << 0x10) >> 0x1e) << 0xe | - ((u32)(bg3cnt_2 << 0x13) >> 0x1b) << 8 | - ((u32)(bg3cnt_2 << 0x1a) >> 0x1d) << 2 | - ((u32)(bg3cnt_2 << 0x12) >> 0x1f) << 0xd; - break; - } - break; - case 4: - u16 db_bg0cnt = reg_G2S_DB_BG0CNT; - if (param2 == 1) - { - db_bg0cnt = db_bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg0cnt = db_bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG0CNT = - (reg_G2S_DB_BG0CNT & 0x43) | ((u32)(db_bg0cnt << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(db_bg0cnt << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg0cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg0cnt << 0x12) >> 0x1f) << 0xd; - - break; - case 5: - u16 db_bg1cnt = reg_G2S_DB_BG1CNT; - if (param2 == 1) - { - db_bg1cnt = db_bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg1cnt = db_bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG1CNT = - (reg_G2S_DB_BG1CNT & 0x43) | ((u32)(db_bg1cnt << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(db_bg1cnt << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg1cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg1cnt << 0x12) >> 0x1f) << 0xd; - - break; - case 6: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - u16 db_bg2cnt_0 = reg_G2S_DB_BG2CNT; - if (param2 == 1) - { - db_bg2cnt_0 = db_bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg2cnt_0 = db_bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG2CNT = - (reg_G2S_DB_BG2CNT & 0x43) | ((u32)(db_bg2cnt_0 << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(db_bg2cnt_0 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg2cnt_0 << 0x1a) >> 0x1c) << 2; - - break; - case 1: - u16 db_bg2cnt_1 = reg_G2S_DB_BG2CNT; - if (param2 == 1) - { - db_bg2cnt_1 = db_bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg2cnt_1 = db_bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | - ((u32)(db_bg2cnt_1 << 0x10) >> 0x1e) << 0xe | - ((u32)(db_bg2cnt_1 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg2cnt_1 << 0x1a) >> 0x1c) << 2 | - ((u32)(db_bg2cnt_1 << 0x12) >> 0x1f) << 0xd; - break; - case 2: - u16 db_bg2cnt_2 = reg_G2S_DB_BG2CNT; - if (param2 == 1) - { - db_bg2cnt_2 = db_bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg2cnt_2 = db_bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); - } - - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | - ((u32)(db_bg2cnt_2 << 0x10) >> 0x1e) << 0xe | - ((u32)(db_bg2cnt_2 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg2cnt_2 << 0x1a) >> 0x1d) << 2 | - ((u32)(db_bg2cnt_2 << 0x12) >> 0x1f) << 0xd; - break; - } - break; - case 7: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - u16 db_bg3cnt_0 = reg_G2S_DB_BG3CNT; - if (param2 == 1) - { - db_bg3cnt_0 = db_bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg3cnt_0 = db_bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG3CNT = - (reg_G2S_DB_BG3CNT & 0x43) | ((u32)(db_bg3cnt_0 << 0x10) >> 0x1e) << 0xe | - param0->unk08[param1].unk1e << 7 | ((u32)(db_bg3cnt_0 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg3cnt_0 << 0x1a) >> 0x1c) << 2; - - break; - case 1: - u16 db_bg3cnt_1 = reg_G2S_DB_BG3CNT; - if (param2 == 1) - { - db_bg3cnt_1 = db_bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg3cnt_1 = db_bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); - } - - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | - ((u32)(db_bg3cnt_1 << 0x10) >> 0x1e) << 0xe | - ((u32)(db_bg3cnt_1 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg3cnt_1 << 0x1a) >> 0x1c) << 2 | - ((u32)(db_bg3cnt_1 << 0x12) >> 0x1f) << 0xd; - break; - case 2: - u16 db_bg3cnt_2 = reg_G2S_DB_BG3CNT; - if (param2 == 1) - { - db_bg3cnt_2 = db_bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); - } - else if (param2 == 2) - { - db_bg3cnt_2 = db_bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); - } - - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | - ((u32)(db_bg3cnt_2 << 0x10) >> 0x1e) << 0xe | - ((u32)(db_bg3cnt_2 << 0x13) >> 0x1b) << 8 | - ((u32)(db_bg3cnt_2 << 0x1a) >> 0x1d) << 2 | - ((u32)(db_bg3cnt_2 << 0x12) >> 0x1f) << 0xd; - break; - } - break; - } -} -#else -THUMB_FUNC asm void FUN_020170F4( - struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) -{ - // clang-format off - push {r3-r7, lr} - sub sp, #0x20 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 - add r0, r3, #0x0 - cmp r1, #0x0 - bne _0201710C - mov r2, #0x2c - mul r2, r4 - add r2, r5, r2 - strb r0, [r2, #0x1e] -_0201710C: - cmp r4, #0x7 - bls _02017112 - b _020177C4 -_02017112: - add r2, r4, r4 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0201711E: //; jump table (using 16-bit offset) - // .short _0201712E - _0201711E - 2; case 0 - // .short _0201719A - _0201711E - 2; case 1 - // .short _02017206 - _0201711E - 2; case 2 - // .short _0201733A - _0201711E - 2; case 3 - // .short _0201746E - _0201711E - 2; case 4 - // .short _020174F4 - _0201711E - 2; case 5 - // .short _02017560 - _0201711E - 2; case 6 - // .short _02017694 - _0201711E - 2; case 7 - - lsl r6, r1, #0 - lsl r2, r7, #1 - lsl r6, r4, #3 - lsl r2, r3, #8 - lsl r6, r1, #13 - lsl r4, r2, #15 - lsl r0, r0, #17 - lsl r4, r6, #21 -_0201712E: - ldr r2, =0x04000008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1e] - bne _0201714A - ldrh r3, [r2, #0x1e] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1e] - b _0201715C -_0201714A: - cmp r1, #0x2 - bne _0201715C - ldrh r3, [r2, #0x1e] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1e] -_0201715C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1e] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, =0x04000008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_0201719A: - ldr r2, =0x0400000A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1c] - bne _020171B6 - ldrh r3, [r2, #0x1c] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1c] - b _020171C8 -_020171B6: - cmp r1, #0x2 - bne _020171C8 - ldrh r3, [r2, #0x1c] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1c] -_020171C8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1c] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, =0x0400000A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017206: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201721A - cmp r3, #0x1 - beq _0201727A - cmp r3, #0x2 - beq _020172DA -_0201721A: - ldr r3, =0x0400000C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x1a] - bne _02017236 - ldrh r4, [r3, #0x1a] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x1a] - b _02017248 -_02017236: - cmp r1, #0x2 - bne _02017248 - ldrh r4, [r3, #0x1a] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x1a] -_02017248: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1a] - add r2, r5, r2 - ldr r6, =0x0400000C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201727A: - ldr r2, =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x18] - bne _02017296 - ldrh r3, [r2, #0x18] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x18] - b _020172A8 -_02017296: - cmp r1, #0x2 - bne _020172A8 - ldrh r3, [r2, #0x18] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x18] -_020172A8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x18] - ldr r6, =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020172DA: - ldr r2, =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x16] - bne _020172F6 - ldrh r3, [r2, #0x16] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x16] - b _02017308 -_020172F6: - cmp r1, #0x2 - bne _02017308 - ldrh r3, [r2, #0x16] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x16] -_02017308: - add r0, sp, #0x0 - ldrh r3, [r0, #0x16] - ldr r6, =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201733A: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201734E - cmp r3, #0x1 - beq _020173AE - cmp r3, #0x2 - beq _0201740E -_0201734E: - ldr r3, =0x0400000E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x14] - bne _0201736A - ldrh r4, [r3, #0x14] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x14] - b _0201737C -_0201736A: - cmp r1, #0x2 - bne _0201737C - ldrh r4, [r3, #0x14] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x14] -_0201737C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x14] - add r2, r5, r2 - ldr r6, =0x0400000E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020173AE: - ldr r2, =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x12] - bne _020173CA - ldrh r3, [r2, #0x12] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x12] - b _020173DC -_020173CA: - cmp r1, #0x2 - bne _020173DC - ldrh r3, [r2, #0x12] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x12] -_020173DC: - add r0, sp, #0x0 - ldrh r3, [r0, #0x12] - ldr r6, =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201740E: - ldr r2, =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x10] - bne _0201742A - ldrh r3, [r2, #0x10] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x10] - b _0201743C -_0201742A: - cmp r1, #0x2 - bne _0201743C - ldrh r3, [r2, #0x10] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x10] -_0201743C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x10] - ldr r6, =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201746E: - ldr r2, =0x04001008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xe] - bne _020174A4 - ldrh r3, [r2, #0xe] - ldr r1, =0xFFFFE0FF - b _02017498 -_02017498: - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xe] - b _020174B6 -_020174A4: - cmp r1, #0x2 - bne _020174B6 - ldrh r3, [r2, #0xe] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xe] -_020174B6: - add r0, sp, #0x0 - ldrh r3, [r0, #0xe] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, =0x04001008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_020174F4: - ldr r2, =0x0400100A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xc] - bne _02017510 - ldrh r3, [r2, #0xc] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xc] - b _02017522 -_02017510: - cmp r1, #0x2 - bne _02017522 - ldrh r3, [r2, #0xc] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xc] -_02017522: - add r0, sp, #0x0 - ldrh r3, [r0, #0xc] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, =0x0400100A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017560: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _02017574 - cmp r3, #0x1 - beq _020175D4 - cmp r3, #0x2 - beq _02017634 -_02017574: - ldr r3, =0x0400100C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0xa] - bne _02017590 - ldrh r4, [r3, #0xa] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0xa] - b _020175A2 -_02017590: - cmp r1, #0x2 - bne _020175A2 - ldrh r4, [r3, #0xa] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0xa] -_020175A2: - add r0, sp, #0x0 - ldrh r3, [r0, #0xa] - add r2, r5, r2 - ldr r6, =0x0400100C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020175D4: - ldr r2, =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x8] - bne _020175F0 - ldrh r3, [r2, #0x8] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x8] - b _02017602 -_020175F0: - cmp r1, #0x2 - bne _02017602 - ldrh r3, [r2, #0x8] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x8] -_02017602: - add r0, sp, #0x0 - ldrh r3, [r0, #0x8] - ldr r6, =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017634: - ldr r2, =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x6] - bne _02017650 - ldrh r3, [r2, #0x6] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x6] - b _02017662 -_02017650: - cmp r1, #0x2 - bne _02017662 - ldrh r3, [r2, #0x6] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x6] -_02017662: - add r0, sp, #0x0 - ldrh r3, [r0, #0x6] - ldr r6, =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017694: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _020176A8 - cmp r3, #0x1 - beq _02017708 - cmp r3, #0x2 - beq _02017768 -_020176A8: - ldr r3, =0x0400100E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x4] - bne _020176C4 - ldrh r4, [r3, #0x4] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x4] - b _020176D6 -_020176C4: - cmp r1, #0x2 - bne _020176D6 - ldrh r4, [r3, #0x4] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x4] -_020176D6: - add r0, sp, #0x0 - ldrh r3, [r0, #0x4] - add r2, r5, r2 - ldr r6, =0x0400100E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017708: - ldr r2, =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x2] - bne _02017724 - ldrh r3, [r2, #0x2] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x2] - b _02017736 -_02017724: - cmp r1, #0x2 - bne _02017736 - ldrh r3, [r2, #0x2] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x2] -_02017736: - add r0, sp, #0x0 - ldrh r3, [r0, #0x2] - ldr r6, =0x0400100E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017768: - ldr r2, =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x0] - bne _02017784 - ldrh r3, [r2, #0x0] - ldr r1, =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x0] - b _02017796 -_02017784: - cmp r1, #0x2 - bne _02017796 - ldrh r3, [r2, #0x0] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x0] -_02017796: - add r0, sp, #0x0 - ldrh r3, [r0, #0x0] - ldr r6, =0x0400100E - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] -_020177C4: - add sp, #0x20 - pop {r3-r7, pc} - // clang-format on -} -#endif - -THUMB_FUNC u8 FUN_020177DC(u8 param0, u32 param1) -{ - switch (param1) - { - case 0: - - if (param0 == 1) - { - return 0; - } - else if (param0 == 2) - { - return 2; - } - else if (param0 == 3) - { - return 1; - } - else if (param0 == 4) - { - return 3; - } - break; - - case 1: - - if (param0 == 0) - { - return 0; - } - else if (param0 == 1) - { - return 1; - } - else if (param0 == 4) - { - return 2; - } - else if (param0 == 5) - { - return 3; - } - break; - - case 2: - - if (param0 == 0) - { - return 0; - } - else if (param0 == 1) - { - return 1; - } - else if (param0 == 4) - { - return 2; - } - else if (param0 == 5) - { - return 3; - } - break; - } - - return 0; -} - -THUMB_FUNC void FUN_02017850(u32 param0, u8 *param1, u8 *param2) -{ - switch (param0) - { - case 0: - *param1 = 0x10; - *param2 = 0x10; - break; - case 1: - *param1 = 0x20; - *param2 = 0x20; - break; - case 2: - *param1 = 0x20; - *param2 = 0x40; - break; - case 3: - *param1 = 0x40; - *param2 = 0x20; - break; - case 4: - *param1 = 0x40; - *param2 = 0x40; - break; - case 5: - *param1 = 0x80; - *param2 = 0x80; - break; - } -} - -THUMB_FUNC void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - if (param0->unk08[param1].unk08 != NULL) - { - FreeToHeap(param0->unk08[param1].unk08); - param0->unk08[param1].unk08 = NULL; - } -} - -THUMB_FUNC void FUN_020178BC(u32 param0, u16 param1) -{ - switch (param0) - { - case 0: - reg_G2_BG0CNT = (u16)(reg_G2_BG0CNT & ~3 | param1); - break; - case 1: - reg_G2_BG1CNT = (u16)(reg_G2_BG1CNT & ~3 | param1); - break; - case 2: - reg_G2_BG2CNT = (u16)(reg_G2_BG2CNT & ~3 | param1); - break; - case 3: - reg_G2_BG3CNT = (u16)(reg_G2_BG3CNT & ~3 | param1); - break; - case 4: - reg_G2S_DB_BG0CNT = (u16)(reg_G2S_DB_BG0CNT & ~3 | param1); - break; - case 5: - reg_G2S_DB_BG1CNT = (u16)(reg_G2S_DB_BG1CNT & ~3 | param1); - break; - case 6: - reg_G2S_DB_BG2CNT = (u16)(reg_G2S_DB_BG2CNT & ~3 | param1); - break; - case 7: - reg_G2S_DB_BG3CNT = (u16)(reg_G2S_DB_BG3CNT & ~3 | param1); - break; - } -} - -THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle) -{ - switch (param0) - { - case 0: - GX_EngineAToggleLayers(1, toggle); - break; - case 1: - GX_EngineAToggleLayers(2, toggle); - break; - case 2: - GX_EngineAToggleLayers(4, toggle); - break; - case 3: - GX_EngineAToggleLayers(8, toggle); - break; - case 4: - GX_EngineBToggleLayers(1, toggle); - break; - case 5: - GX_EngineBToggleLayers(2, toggle); - break; - case 6: - GX_EngineBToggleLayers(4, toggle); - break; - case 7: - GX_EngineBToggleLayers(8, toggle); - break; - } -} - -THUMB_FUNC void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val) -{ - FUN_02017B8C(¶m0->unk08[param1], param2, val); - - u32 r1 = (u32)param0->unk08[param1].unk14; - u32 r0 = (u32)param0->unk08[param1].unk18; - switch (param1) - { - case 0: - - reg_G2_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - break; - case 1: - - reg_G2_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - break; - - case 2: - if (param0->unk08[2].unk1c == 0) - { - reg_G2_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - } - else - { - FUN_02017C6C(param0, 2); - } - - break; - - case 3: - if (param0->unk08[3].unk1c == 0) - { - reg_G2_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - } - else - { - FUN_02017C6C(param0, 3); - } - - break; - - case 4: - - reg_G2S_DB_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - break; - case 5: - - reg_G2S_DB_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - break; - - case 6: - if (param0->unk08[6].unk1c == 0) - { - reg_G2S_DB_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - } - else - { - FUN_02017C6C(param0, 6); - } - - break; - - case 7: - if (param0->unk08[7].unk1c == 0) - { - reg_G2S_DB_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); - } - else - { - FUN_02017C6C(param0, 7); - } - - break; - } -} - -THUMB_FUNC fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - return param0->unk08[param1].unk14; -} - -THUMB_FUNC fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - return param0->unk08[param1].unk18; -} - -THUMB_FUNC void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u32 param2, - fx32 param3, - struct Mtx22 *param4, - fx32 param5, - fx32 param6) -{ - FUN_02017B8C(¶m0->unk08[param1], param2, param3); - FUN_02017BD0(param0, param1, param4, param5, param6); -} - -THUMB_FUNC void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val) -{ - switch (param1) - { - case 0: - param0->unk14 = val; - break; - case 1: - param0->unk14 += val; - break; - case 2: - param0->unk14 -= val; - break; - case 3: - param0->unk18 = val; - break; - case 4: - param0->unk18 += val; - break; - case 5: - param0->unk18 -= val; - break; - } -} - -THUMB_FUNC void FUN_02017BD0( - struct UnkStruct_02016B94_2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4) -{ - switch (param1) - { - case 2: - G2x_SetBGyAffine_(reg_G2_BG2P, - param2, - param3, - param4, - param0->unk08[param1].unk14, - param0->unk08[param1].unk18); - break; - case 3: - G2x_SetBGyAffine_(reg_G2_BG3P, - param2, - param3, - param4, - param0->unk08[param1].unk14, - param0->unk08[param1].unk18); - break; - case 6: - G2x_SetBGyAffine_(reg_G2S_DB_BG2P, - param2, - param3, - param4, - param0->unk08[param1].unk14, - param0->unk08[param1].unk18); - break; - case 7: - G2x_SetBGyAffine_(reg_G2S_DB_BG3P, - param2, - param3, - param4, - param0->unk08[param1].unk14, - param0->unk08[param1].unk18); - break; - } -} - -THUMB_FUNC void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - struct Mtx22 mtx; - MTX22_2DAffine(&mtx, 0, 0x1000, 0x1000, 0); - FUN_02017BD0(param0, param1, &mtx, 0, 0); -} - -THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2) -{ - if (param2 == 0) - { - MI_UncompressLZ8(param0, param1); - return; - } - - if (((u32)param0 % 4) == 0 && ((u32)param1 % 4) == 0 && ((u16)param2 % 4) == 0) - { - MI_CpuCopy32(param0, param1, param2); - return; - } - - MI_CpuCopy16(param0, param1, param2); -} - -THUMB_FUNC void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - FUN_02017CE8(param0, - param1, - param0->unk08[param1].unk08, - param0->unk08[param1].unk0c, - param0->unk08[param1].unk10); -} - -THUMB_FUNC void FUN_02017CE8( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) -{ - u32 st0 = param3; - if (param3 == 0) - { - void *st4 = param0->unk08[param1].unk08; - if (st4 != 0) - { - FUN_02017C98(param2, st4, param3); - FUN_02017D68(param1, st4, param0->unk08[param1].unk10 * 2, param0->unk08[param1].unk0c); - return; - } - - u32 r7 = param2[0] >> 8; - void *ptr = AllocFromHeapAtEnd(param0->unk00, r7); - FUN_02017C98(param2, ptr, st0); - FUN_02017D68(param1, ptr, param4 * 2, r7); - FreeToHeap(ptr); - return; - } - - FUN_02017D68(param1, param2, param4 * 2, param3); -} - -THUMB_FUNC void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size) -{ - DC_FlushRange(param1, size); - - switch (param0) - { - case 0: - GX_LoadBG0Scr(param1, offset, size); - break; - case 1: - GX_LoadBG1Scr(param1, offset, size); - break; - case 2: - GX_LoadBG2Scr(param1, offset, size); - break; - case 3: - GX_LoadBG3Scr(param1, offset, size); - break; - case 4: - GXS_LoadBG0Scr(param1, offset, size); - break; - case 5: - GXS_LoadBG1Scr(param1, offset, size); - break; - case 6: - GXS_LoadBG2Scr(param1, offset, size); - break; - case 7: - GXS_LoadBG3Scr(param1, offset, size); - break; - } -} - -THUMB_FUNC void FUN_02017DFC( - struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3) -{ - FUN_02017C98(param2, param0->unk08[param1].unk08, param3); -} - -THUMB_FUNC void FUN_02017E14( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) -{ - if (param0->unk08[param1].unk1e == 0) - { - FUN_02017E40(param0, param1, param2, param3, param4 << 5); - return; - } - FUN_02017E40(param0, param1, param2, param3, param4 << 6); -} - -THUMB_FUNC void FUN_02017E40( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) -{ - u32 st0 = param3; - if (param3 == 0) - { - - u32 r4 = param2[0] >> 8; - void *ptr = AllocFromHeapAtEnd(param0->unk00, r4); - FUN_02017C98(param2, ptr, st0); - FUN_02017E84(param1, ptr, param4, r4); - FreeToHeap(ptr); - return; - } - - FUN_02017E84(param1, param2, param4, param3); -} - -THUMB_FUNC void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size) -{ - DC_FlushRange(param1, size); - - switch (param0) - { - case 0: - GX_LoadBG0Char(param1, offset, size); - break; - case 1: - GX_LoadBG1Char(param1, offset, size); - break; - case 2: - GX_LoadBG2Char(param1, offset, size); - break; - case 3: - GX_LoadBG3Char(param1, offset, size); - break; - case 4: - GXS_LoadBG0Char(param1, offset, size); - break; - case 5: - GXS_LoadBG1Char(param1, offset, size); - break; - case 6: - GXS_LoadBG2Char(param1, offset, size); - break; - case 7: - GXS_LoadBG3Char(param1, offset, size); - break; - } -} - -THUMB_FUNC void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id) -{ - void *ptr = AllocFromHeapAtEnd(heap_id, size); - memset(ptr, 0, size); - - FUN_02017E84(param0, ptr, offset, size); - FreeToHeapExplicit(heap_id, ptr); -} - -THUMB_FUNC void FUN_02017F48( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) -{ - void *st4; - u32 st0 = param3 * param0->unk08[param1].unk1f; - u32 r5 = param2; - st4 = AllocFromHeapAtEnd(param0->unk00, st0); - - if (param0->unk08[param1].unk1f == 0x20) - { - r5 = (r5 << 0xc | r5 << 0x8 | r5 << 0x4 | r5); - r5 |= r5 << 0x10; - } - else - { - r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5; - } - - MI_CpuFillFast(st4, r5, st0); - - FUN_02017E84((u8)param1, st4, param0->unk08[param1].unk1f * param4, st0); - FreeToHeap(st4); -} - -THUMB_FUNC void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size) -{ - DC_FlushRange(param1, offset); - if (param0 < 4) - { - GX_LoadBGPltt(param1, size, offset); - return; - } - - GXS_LoadBGPltt(param1, size, offset); -} - -THUMB_FUNC void FUN_02017FE4(u32 param0, u32 param1) -{ - FUN_02017FB4(param0, ¶m1, 2, 0); -} - -THUMB_FUNC u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2) -{ - switch (param2) - { - case 0: - return (u16)(param0 + (param1 << 4)); - case 1: - case 2: - return (u16)(param0 + (param1 << 5)); - case 3: - return (u16)((param0 & 0x1f) + ((param1 + (param0 & ~0x1f)) << 5)); - case 4: - u16 res = (u16)(((u16)((param0 >> 5) + (param1 >> 5) * 2)) << 10); - res += (param0 & 0x1f) + ((param1 & 0x1f) << 5); - return res; - case 5: - return 0; - } - - return param0; -} - -THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) -{ - u8 r2 = 0; - u16 r3 = 0; - s16 r4 = (s16)(param2 - 32); - s16 r5 = (s16)(param3 - 32); - - if (((u32)param0 >> 5) != 0) - { - r2++; - } - - if (((u32)param1 >> 5) != 0) - { - r2 += 2; - } - - switch (r2) - { - case 0: - if (r4 >= 0) - { - r3 += param0 + (param1 << 5); - } - else - { - r3 += param0 + param1 * param2; - } - break; - case 1: - if (r5 >= 0) - { - r3 += 0x400; - } - else - { - r3 += (param3 << 5); - } - - r3 += (param0 & 0x1f) + param1 * r4; - break; - case 2: - r3 += param2 << 5; - if (r4 >= 0) - { - r3 += param0 + ((param1 & 0x1f) << 5); - } - else - { - r3 += param0 + (param1 & 0x1f) * param2; - } - break; - case 3: - r3 += (param2 + r5) << 5; - r3 += (param0 & 0x1f) + (param1 & 0x1f) * r4; - break; - } - - return r3; -} - -THUMB_FUNC void FUN_02018148(struct UnkStruct_02016B94_2 *param0, - u32 param1, - void *param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6) -{ - FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); -} - -THUMB_FUNC void FUN_02018170(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10) -{ - if (param0->unk08[param1].unk1c != 1) - { - FUN_02018268(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u16 *)param6, - param7, - param8, - param9, - param10, - 0); - } - else - { - FUN_020183DC(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u8 *)param6, - param7, - param8, - param9, - param10, - 0); - } -} - -THUMB_FUNC void FUN_020181EC(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10) -{ - if (param0->unk08[param1].unk1c != 1) - { - FUN_02018268(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u16 *)param6, - param7, - param8, - param9, - param10, - 1); - } - else - { - FUN_020183DC(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u8 *)param6, - param7, - param8, - param9, - param10, - 1); - } -} - -THUMB_FUNC void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u16 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10) -{ - void *st2c = param0->unk08; - - if (st2c == 0) - { - return; - } - - u8 st41; - u8 st40; - FUN_02017850(param0->unk1d, &st41, &st40); - - u8 i; - u8 j; - if (param10 == 0) - { - for (i = 0; i < param4; i++) - { - - if (param2 + i >= st40) - { - break; - } - - if (param7 + i >= param9) - { - break; - } - - for (j = 0; j < param3; j++) - { - - if (param1 + j >= st41) - { - break; - } - - if (param6 + j >= param8) - { - break; - } - - ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = - param5[param6 + param8 * (param7 + i) + j]; - } - } - } - else - { - for (i = 0; i < param4; i++) - { - - if (param2 + i >= st40) - { - break; - } - - if (param7 + i >= param9) - { - break; - } - - for (j = 0; j < param3; j++) - { - - if (param1 + j >= st41) - { - break; - } - - if (param6 + j >= param8) - { - break; - } - - ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = - param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)]; - } - } - } -} - -THUMB_FUNC void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u8 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10) -{ - void *st2c = param0->unk08; - - if (st2c == 0) - { - return; - } - - u8 st41; - u8 st40; - FUN_02017850(param0->unk1d, &st41, &st40); - - u8 i; - u8 j; - if (param10 == 0) - { - for (i = 0; i < param4; i++) - { - - if (param2 + i >= st40) - { - break; - } - - if (param7 + i >= param9) - { - break; - } - - for (j = 0; j < param3; j++) - { - - if (param1 + j >= st41) - { - break; - } - - if (param6 + j >= param8) - { - break; - } - - ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = - param5[param6 + param8 * (param7 + i) + j]; - } - } - } - else - { - for (i = 0; i < param4; i++) - { - - if (param2 + i >= st40) - { - break; - } - - if (param7 + i >= param9) - { - break; - } - - for (j = 0; j < param3; j++) - { - - if (param1 + j >= st41) - { - break; - } - - if (param6 + j >= param8) - { - break; - } - - ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = - param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)]; - } - } - } -} - -THUMB_FUNC void FUN_02018540(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u16 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7) -{ - if (param0->unk08[param1].unk1c != 1) - { - - FUN_02018590(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7); - } - else - { - FUN_02018640(¶m0->unk08[param1], (u8)param2, param3, param4, param5, param6); - } -} - -THUMB_FUNC void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0, - u16 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6) -{ - void *r4 = param0->unk08; - - if (r4 != 0) - { - - u8 st19; - u8 st18; - FUN_02017850(param0->unk1d, &st19, &st18); - - u8 i; - u8 j; - for (i = param3; i < param3 + param5; i++) - { - if (i >= st18) - { - break; - } - - for (j = param2; j < param2 + param4; j++) - { - if (j >= st19) - { - break; - } - - u16 idx = FUN_02017FFC(j, i, param0->unk1d); - - if (param6 == 0x11) - { - ((u16 *)r4)[idx] = param1; - } - else if (param6 == 0x10) - { - ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xF000) + param1); - } - else - { - ((u16 *)r4)[idx] = (u16)((param6 << 0xc) + param1); - } - } - } - } -} - -THUMB_FUNC void FUN_02018640( - struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5) -{ - void *r4 = param0->unk08; - - if (r4 != 0) - { - - u8 st19; - u8 st18; - FUN_02017850(param0->unk1d, &st19, &st18); - - u8 i; - u8 j; - for (i = param3; i < param3 + param5; i++) - { - if (i >= st18) - { - break; - } - - for (j = param2; j < param2 + param4; j++) - { - if (j >= st19) - { - break; - } - - ((u8 *)r4)[FUN_02017FFC(j, i, param0->unk1d)] = param1; - } - } - } -} - -THUMB_FUNC void FUN_020186B4(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6) -{ - void *r4 = param0->unk08[param1].unk08; - - if (r4 != NULL) - { - u8 st11; - u8 st10; - FUN_02017850(param0->unk08[param1].unk1d, &st11, &st10); - - u8 i; - u8 j; - for (i = param3; i < param3 + param5; i++) - { - if (i >= st10) - { - break; - } - - for (j = param2; j < param2 + param4; j++) - { - if (j >= st11) - { - break; - } - - u16 idx = FUN_02017FFC(j, i, param0->unk08[param1].unk1d); - ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xfff) | (param6 << 0xc)); - } - } - } -} - -THUMB_FUNC void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - if (param0->unk08[param1].unk08 != NULL) - { - MI_CpuClear16(param0->unk08[param1].unk08, param0->unk08[param1].unk0c); - FUN_02017CD0(param0, param1); - } -} - -THUMB_FUNC void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2) -{ - if (param0->unk08[param1].unk08 != NULL) - { - MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c); - FUN_02017CD0(param0, param1); - } -} - -THUMB_FUNC void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2) -{ - if (param0->unk08[param1].unk08 != NULL) - { - MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c); - FUN_0201AC68(param0, param1); - } -} - -THUMB_FUNC void *FUN_020187B0(u32 param0) -{ - switch (param0) - { - case 0: - return G2_GetBG0CharPtr(); - case 1: - return G2_GetBG1CharPtr(); - case 2: - return G2_GetBG2CharPtr(); - case 3: - return G2_GetBG3CharPtr(); - case 4: - return G2S_GetBG0CharPtr(); - case 5: - return G2S_GetBG1CharPtr(); - case 6: - return G2S_GetBG2CharPtr(); - case 7: - return G2S_GetBG3CharPtr(); - } - - return NULL; -} - -THUMB_FUNC void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3) -{ - param3 <<= 4; - for (int i = 0; i < param1; i++) - { - param2[i][0] = (u8)(param0[i] & 0xf); - if (param2[i][0] != 0) - { - param2[i][0] += param3; - } - - param2[i][1] = (u8)((param0[i] >> 4) & 0xf); - if (param2[i][1] != 0) - { - param2[i][1] += param3; - } - } -} - -THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2] -{ - u8(*ptr)[2] = (u8(*)[2])AllocFromHeap(heap_id, param1 * 2); - - FUN_02018808(param0, param1, ptr, param2); - - return ptr; -} - -THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1) -{ - return param0->unk08[param1].unk08; -} - -THUMB_FUNC u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - return param0->unk08[param1].unk20; -} - -#ifdef NONMATCHING -THUMB_FUNC u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - - // the compiler keeps optimizing the stack away :( - u16 st0[16]; - switch (param1) - { - case 0: - st0[15] = reg_G2_BG0CNT; - return (u32)(st0[15] << 0x1e) >> 0x1e; - case 1: - st0[14] = reg_G2_BG1CNT; - return (u32)(st0[14] << 0x1e) >> 0x1e; - - case 2: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - st0[13] = reg_G2_BG2CNT; - return (u32)(st0[13] << 0x1e) >> 0x1e; - case 1: - st0[12] = reg_G2_BG2CNT; - return (u32)(st0[12] << 0x1e) >> 0x1e; - case 2: - st0[11] = reg_G2_BG2CNT; - return (u32)(st0[11] << 0x1e) >> 0x1e; - } - break; - case 3: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - st0[10] = reg_G2_BG3CNT; - return (u32)(st0[10] << 0x1e) >> 0x1e; - case 1: - st0[9] = reg_G2_BG3CNT; - return (u32)(st0[9] << 0x1e) >> 0x1e; - case 2: - st0[8] = reg_G2_BG3CNT; - return (u32)(st0[8] << 0x1e) >> 0x1e; - } - break; - - case 4: - st0[7] = reg_G2S_DB_BG0CNT; - return (u32)(st0[7] << 0x1e) >> 0x1e; - case 5: - st0[6] = reg_G2S_DB_BG1CNT; - return (u32)(st0[6] << 0x1e) >> 0x1e; - - case 6: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - st0[5] = reg_G2S_DB_BG2CNT; - return (u32)(st0[5] << 0x1e) >> 0x1e; - case 1: - st0[4] = reg_G2S_DB_BG2CNT; - return (u32)(st0[4] << 0x1e) >> 0x1e; - case 2: - st0[3] = reg_G2S_DB_BG2CNT; - return (u32)(st0[3] << 0x1e) >> 0x1e; - } - break; - case 7: - switch (param0->unk08[param1].unk1c) - { - default: - case 0: - st0[2] = reg_G2S_DB_BG3CNT; - return (u32)(st0[2] << 0x1e) >> 0x1e; - case 1: - st0[1] = reg_G2S_DB_BG3CNT; - return (u32)(st0[1] << 0x1e) >> 0x1e; - case 2: - st0[0] = reg_G2S_DB_BG3CNT; - return (u32)(st0[0] << 0x1e) >> 0x1e; - } - break; - } - - return 0; -} -#else -THUMB_FUNC asm u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - // clang-format off - sub sp, #0x20 - cmp r1, #0x7 - bls _0201888C - b _02018A38 -_0201888C: - add r2, r1, r1 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02018898: - // jump table (using 16-bit offset) - // .short _020188A8 - _02018898 - 2; case 0 - // .short _020188BC - _02018898 - 2; case 1 - // .short _020188D0 - _02018898 - 2; case 2 - // .short _02018920 - _02018898 - 2; case 3 - // .short _02018970 - _02018898 - 2; case 4 - // .short _02018984 - _02018898 - 2; case 5 - // .short _02018998 - _02018898 - 2; case 6 - // .short _020189E8 - _02018898 - 2; case 7 - - lsl r6, r1, #0 - lsl r2, r4, #0 - lsl r6, r6, #0 - lsl r6, r0, #2 - lsl r6, r2, #3 - lsl r2, r5, #3 - lsl r6, r7, #3 - lsl r6, r1, #5 -_020188A8: - ldr r0, =0x04000008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1e] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188BC: - ldr r0, =0x0400000A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1c] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188D0: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020188E4 - cmp r0, #0x1 - beq _020188F8 - cmp r0, #0x2 - beq _0201890C -_020188E4: - ldr r0, =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1a] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188F8: - ldr r0, =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x18] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201890C: - ldr r0, =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x16] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018920: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _02018934 - cmp r0, #0x1 - beq _02018948 - cmp r0, #0x2 - beq _0201895C -_02018934: - ldr r0, =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x14] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018948: - ldr r0, =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x12] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201895C: - ldr r0, =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x10] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018970: - ldr r0, =0x04001008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xe] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018984: - ldr r0, =0x0400100A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xc] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018998: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189AC - cmp r0, #0x1 - beq _020189C0 - cmp r0, #0x2 - beq _020189D4 -_020189AC: - ldr r0, =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xa] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189C0: - ldr r0, =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x8] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189D4: - ldr r0, =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x6] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189E8: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189FC - cmp r0, #0x1 - beq _02018A10 - cmp r0, #0x2 - beq _02018A24 -_020189FC: - ldr r0, =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x4] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A10: - ldr r0, =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x2] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A24: - ldr r0, =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x0] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A38: - mov r0, #0x0 - add sp, #0x20 - bx lr - // clang-format on -} -#endif - -#ifdef NONMATCHING -THUMB_FUNC void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8) -{ - - u8 *unk1; - u8 *unk2; - - int st50; - if (param1->unk04 - param4 < param6) - { - st50 = param2 + param1->unk04 - param4; - } - else - { - st50 = param2 + param6; - } - - int st4c; - if (param1->unk06 - param5 < param7) - { - st4c = param3 + param1->unk06 - param5; - } - else - { - st4c = param3 + param7; - } - - int st48 = (param0->unk04 + (param0->unk04 & 7)) >> 3; - - int st44 = (param1->unk04 + (param1->unk04 & 7)) >> 3; - - u32 i, i1; - u32 j, j1; - if (param8 == 0xFFFF) - { - i1 = param5; - for (i = param3; i < st4c; i++) - { - j1 = param4; - for (j = param2; j < st50; j++) - { - - unk1 = - (u32)(param1->unk00) + (j1 >> 1) & - 0x3 + ((j1 << 2) & 0x3fe0) + st44 * ((i1 << 2) & 0x3fe0) + ((i1 << 2) & 0x1c); - unk2 = (u32)(param0->unk00) + (j >> 1) & - 0x3 + ((j << 2) & 0x3fe0) + st48 * ((i << 2) & 0x3FE0) + ((i << 2) & 0x1c); - - u8 r1 = *unk2; - - u32 r2 = (j1 << 0x1f) >> 0x1d; - u32 r7 = ((r1 >> ((j << 0x1f) >> 0x1d)) & 0xf) << r2; - - *unk1 = r7 | (*unk1 & (0xf0 >> r2)); - - j1++; - } - i1++; - } - } - else - { - - i1 = param5; - for (i = param3; i < st4c; i++) - { - j1 = param4; - for (j = param2; j < st50; j++) - { - - unk1 = (u32)param1->unk00 + ((j1 >> 1) & 3) + ((j1 << 2) & 0x3fe0) + - st44 * ((i1 << 2) & 0x3fe0) + (i1 << 2) & - 0x1c; - unk2 = (u32)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + - st48 * ((i << 2) & 0x3fe0) + ((i << 2) & 0x1c); - u8 r0 = ((*unk2) >> ((j << 0x1f) >> 0x1d)) & 0xf; - - if (r0 != param8) - { - u32 r7 = ((j1 << 0x1f) >> 0x1d); - *unk1 = (r0 << r7) | (*unk1 & (0xf0 >> r7)); - } - - j1++; - } - i1++; - } - } -} -#else -THUMB_FUNC asm void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8) -{ - // clang-format off - push {r3-r7, lr} - sub sp, #0x68 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x70 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018A88 - ldr r0, [sp, #0x8] - add r0, r0, r3 - str r0, [sp, #0x50] - b _02018A8E -_02018A88: - ldr r0, [sp, #0x8] - add r0, r2, r0 - str r0, [sp, #0x50] -_02018A8E: - ldr r2, [sp, #0x4] - add r3, sp, #0x70 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018AA6 - ldr r2, [sp, #0xc] - add r2, r2, r4 - str r2, [sp, #0x4c] - b _02018AAC -_02018AA6: - ldr r2, [sp, #0xc] - add r2, r3, r2 - str r2, [sp, #0x4c] -_02018AAC: - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x48] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x44] - add r1, sp, #0x70 - ldrh r1, [r1, #0x20] - ldr r2, =0x0000FFFF - str r1, [sp, #0x38] - cmp r1, r2 - bne _02018BB4 - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018ADE - cmp r2, r1 - blt _02018AE0 -_02018ADE: - b _02018C92 -_02018AE0: - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018AEA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018B96 - cmp r1, r0 - bge _02018B96 - add r0, r3, #0x0 - lsl r5, r0, #0x2 - add r0, r4, #0x0 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x48] - and r1, r0 - mul r2, r1 - str r2, [sp, #0x20] - ldr r2, [sp, #0x28] - mov r1, #0x1c - and r2, r1 - str r2, [sp, #0x1c] - ldr r2, [sp, #0x24] - and r0, r2 - ldr r2, [sp, #0x44] - mul r2, r0 - ldr r0, [sp, #0x24] - str r2, [sp, #0x18] - and r0, r1 - str r0, [sp, #0x14] -_02018B26: - ldr r0, [sp, #0x4] - asr r2, r4, #0x1 - mov r1, #0x3 - ldr r0, [r0, #0x0] - and r1, r2 - add r1, r0, r1 - ldr r0, =0x00003FE0 - and r0, r6 - add r1, r1, r0 - ldr r0, [sp, #0x18] - add r6, r6, #0x4 - add r0, r1, r0 - str r0, [sp, #0x64] - lsl r0, r4, #0x1f - lsr r2, r0, #0x1d - ldr r0, [sp, #0x0] - asr r1, r3, #0x1 - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r1 - ldr r1, =0x00003FE0 - add r4, r4, #0x1 - and r1, r5 - str r1, [sp, #0x54] - add r1, r7, r0 - ldr r0, [sp, #0x54] - add r5, r5, #0x4 - add r1, r0, r1 - ldr r0, [sp, #0x20] - add r1, r0, r1 - ldr r0, [sp, #0x1c] - ldrb r1, [r0, r1] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r1, r0 - mov r0, #0xf - and r0, r1 - add r7, r0, #0x0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - lsl r7, r2 - ldrb r0, [r0, r1] - add r3, r3, #0x1 - str r0, [sp, #0x58] - mov r0, #0xf0 - asr r0, r2 - ldr r1, [sp, #0x58] - add r2, r7, #0x0 - and r0, r1 - orr r2, r0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - strb r2, [r0, r1] - ldr r0, [sp, #0x50] - cmp r3, r0 - blt _02018B26 -_02018B96: - ldr r0, [sp, #0x28] - add r0, r0, #0x4 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x24] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018AEA - add sp, #0x68 - pop {r3-r7, pc} -_02018BB4: - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018C92 - cmp r2, r1 - bge _02018C92 - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x40] - str r0, [sp, #0x3c] -_02018BCA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018C78 - cmp r1, r0 - bge _02018C78 - add r0, r3, #0x0 - lsl r1, r0, #0x2 - add r0, r4, #0x0 - lsl r2, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x40] - ldr r6, [sp, #0x48] - and r5, r0 - mul r6, r5 - str r6, [sp, #0x34] - ldr r6, [sp, #0x40] - mov r5, #0x1c - and r6, r5 - str r6, [sp, #0x30] - ldr r6, [sp, #0x3c] - and r0, r6 - ldr r6, [sp, #0x44] - mul r6, r0 - ldr r0, [sp, #0x3c] - str r6, [sp, #0x2c] - and r0, r5 - str r0, [sp, #0x60] -_02018C06: - ldr r0, [sp, #0x4] - asr r6, r4, #0x1 - mov r5, #0x3 - and r5, r6 - ldr r0, [r0, #0x0] - asr r6, r3, #0x1 - add r5, r0, r5 - ldr r0, =0x00003FE0 - and r0, r2 - add r5, r5, r0 - ldr r0, [sp, #0x2c] - add r5, r5, r0 - ldr r0, [sp, #0x0] - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r6 - ldr r6, =0x00003FE0 - and r6, r1 - str r6, [sp, #0x5c] - add r6, r7, r0 - ldr r0, [sp, #0x5c] - add r6, r0, r6 - ldr r0, [sp, #0x34] - add r6, r0, r6 - ldr r0, [sp, #0x30] - ldrb r6, [r0, r6] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r6, r0 - mov r0, #0xf - and r0, r6 - ldr r6, [sp, #0x38] - cmp r0, r6 - beq _02018C6A - lsl r6, r4, #0x1f - lsr r7, r6, #0x1d - lsl r0, r7 - mov lr, r0 - ldr r0, [sp, #0x60] - ldrb r0, [r5, r0] - mov r12, r0 - mov r0, #0xf0 - add r6, r0, #0x0 - asr r6, r7 - mov r0, r12 - and r0, r6 - mov r6, lr - orr r6, r0 - ldr r0, [sp, #0x60] - strb r6, [r5, r0] -_02018C6A: - ldr r0, [sp, #0x50] - add r3, r3, #0x1 - add r1, r1, #0x4 - add r2, r2, #0x4 - add r4, r4, #0x1 - cmp r3, r0 - blt _02018C06 -_02018C78: - ldr r0, [sp, #0x40] - add r0, r0, #0x4 - str r0, [sp, #0x40] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018BCA -_02018C92: - add sp, #0x68 - pop {r3-r7, pc} - // clang-format on -} -#endif - -#ifdef NONMATCHING -THUMB_FUNC void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8) -{ - // horrible for loops like the one above -} -#else -THUMB_FUNC asm void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8) -{ - // clang-format off - push {r3-r7, lr} - sub sp, #0x50 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x58 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018CC6 - ldr r0, [sp, #0x8] - add r0, r0, r3 - b _02018CCA -_02018CC6: - ldr r0, [sp, #0x8] - add r0, r2, r0 -_02018CCA: - ldr r2, [sp, #0x4] - add r3, sp, #0x58 - mov r12, r0 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018CE2 - ldr r2, [sp, #0xc] - add r2, r2, r4 - b _02018CE6 -_02018CE2: - ldr r2, [sp, #0xc] - add r2, r3, r2 -_02018CE6: - mov lr, r2 - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x4c] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x48] - add r1, sp, #0x58 - ldrh r1, [r1, #0x20] - ldr r2, =0x0000FFFF - str r1, [sp, #0x3c] - cmp r1, r2 - bne _02018DC6 - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018D1C - mov r1, lr - cmp r2, r1 - blt _02018D1E -_02018D1C: - b _02018E7C -_02018D1E: - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018D28: - ldr r1, [sp, #0x8] - mov r0, r12 - add r2, r1, #0x0 - ldr r7, [sp, #0x10] - cmp r2, r0 - bge _02018DA8 - mov r0, r12 - cmp r2, r0 - bge _02018DA8 - add r0, r1, #0x0 - lsl r2, r0, #0x3 - add r0, r7, #0x0 - lsl r3, r0, #0x3 - ldr r6, =0x00007FC0 - ldr r0, [sp, #0x28] - ldr r4, [sp, #0x4c] - and r0, r6 - mul r4, r0 - str r4, [sp, #0x20] - ldr r0, [sp, #0x28] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x48] - and r0, r6 - mul r4, r0 - ldr r0, [sp, #0x24] - str r4, [sp, #0x18] - and r0, r5 - str r0, [sp, #0x14] -_02018D66: - ldr r0, [sp, #0x0] - add r5, r1, #0x0 - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, =0x00007FC0 - add r0, r0, r5 - and r4, r2 - add r4, r4, r0 - ldr r0, [sp, #0x20] - add r5, r7, #0x0 - add r4, r0, r4 - ldr r0, [sp, #0x1c] - add r1, r1, #0x1 - ldrb r6, [r0, r4] - ldr r0, [sp, #0x4] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, =0x00007FC0 - add r0, r0, r5 - and r4, r3 - add r4, r4, r0 - ldr r0, [sp, #0x18] - add r2, #0x8 - add r4, r0, r4 - ldr r0, [sp, #0x14] - add r3, #0x8 - strb r6, [r0, r4] - mov r0, r12 - add r7, r7, #0x1 - cmp r1, r0 - blt _02018D66 -_02018DA8: - ldr r0, [sp, #0x28] - add r0, #0x8 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x24] - mov r0, lr - cmp r1, r0 - blt _02018D28 - add sp, #0x50 - pop {r3-r7, pc} -_02018DC6: - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018E7C - mov r1, lr - cmp r2, r1 - bge _02018E7C - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x44] - str r0, [sp, #0x40] -_02018DDE: - ldr r2, [sp, #0x8] - mov r0, r12 - add r1, r2, #0x0 - ldr r3, [sp, #0x10] - cmp r1, r0 - bge _02018E62 - mov r0, r12 - cmp r1, r0 - bge _02018E62 - add r0, r2, #0x0 - lsl r6, r0, #0x3 - add r0, r3, #0x0 - lsl r1, r0, #0x3 - ldr r7, =0x00007FC0 - ldr r0, [sp, #0x44] - ldr r4, [sp, #0x4c] - and r0, r7 - mul r4, r0 - str r4, [sp, #0x38] - ldr r0, [sp, #0x44] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x34] - ldr r0, [sp, #0x40] - ldr r4, [sp, #0x48] - and r0, r7 - mul r4, r0 - ldr r0, [sp, #0x40] - str r4, [sp, #0x30] - and r0, r5 - str r0, [sp, #0x2c] -_02018E1C: - ldr r0, [sp, #0x4] - mov r4, #0x7 - ldr r0, [r0, #0x0] - and r4, r3 - add r0, r0, r4 - ldr r4, =0x00007FC0 - add r5, r2, #0x0 - and r4, r1 - add r4, r0, r4 - ldr r0, [sp, #0x30] - add r7, r4, r0 - ldr r0, [sp, #0x0] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, =0x00007FC0 - add r0, r0, r5 - and r4, r6 - add r4, r4, r0 - ldr r0, [sp, #0x38] - add r4, r0, r4 - ldr r0, [sp, #0x34] - ldrb r0, [r0, r4] - ldr r4, [sp, #0x3c] - cmp r0, r4 - beq _02018E54 - ldr r4, [sp, #0x2c] - strb r0, [r7, r4] -_02018E54: - add r2, r2, #0x1 - mov r0, r12 - add r6, #0x8 - add r1, #0x8 - add r3, r3, #0x1 - cmp r2, r0 - blt _02018E1C -_02018E62: - ldr r0, [sp, #0x44] - add r0, #0x8 - str r0, [sp, #0x44] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x40] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x40] - mov r0, lr - cmp r1, r0 - blt _02018DDE -_02018E7C: - add sp, #0x50 - pop {r3-r7, pc} - // clang-format on -} -#endif - -THUMB_FUNC void FUN_02018E88( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) -{ - - int r6 = param1 + param3; - if (r6 > param0->unk04) - { - r6 = param0->unk04; - } - - int r12 = param2 + param4; - if (r12 > param0->unk06) - { - r12 = param0->unk06; - } - - int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3); - - for (int i = param2; i < r12; i++) - { - - for (int j = param1; j < r6; j++) - { - - u8 *unk = (u8 *)((u8 *)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + - (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c)); - - if ((j & 1) != 0) - { - *unk &= 0xf; - *unk |= (param5 << 4); - } - else - { - *unk &= 0xf0; - *unk |= param5; - } - } - } -} - -THUMB_FUNC void FUN_02018F4C( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) -{ - - int r6 = param1 + param3; - if (r6 > param0->unk04) - { - r6 = param0->unk04; - } - - int r12 = param2 + param4; - if (r12 > param0->unk06) - { - r12 = param0->unk06; - } - - int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3); - - for (int i = param2; i < r12; i++) - { - - for (int j = param1; j < r6; j++) - { - - u8 *unk = (u8 *)((u8 *)param0->unk00 + (j & 7) + ((j << 3) & 0x7fc0) + - (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38)); - - *unk = param5; - } - } -} - -THUMB_FUNC void *AllocWindows(u32 heap_id, s32 size) -{ - struct Window *ptr = AllocFromHeap(heap_id, (u32)(size << 4)); - - for (u16 i = 0; i < size; i++) - { - InitWindow(&ptr[i]); - } - - return ptr; -} - -THUMB_FUNC void InitWindow(struct Window *param0) -{ - param0->unk00 = 0; - param0->unk04 = 0xff; - param0->unk05 = 0; - param0->unk06 = 0; - param0->width = 0; - param0->height = 0; - param0->unk09 = 0; - - param0->unk0a_0 = 0; - param0->unk0c = 0; - - param0->unk0b_15 = 0; -} - -THUMB_FUNC BOOL FUN_02019048(struct Window *param0) -{ - if (param0->unk00 == 0 || param0->unk04 == 0xff || param0->unk0c == 0) - { - return FALSE; - } - - return TRUE; -} - -enum UnkEnum1 -{ - UnkEnum1_0 = 0, - UnkEnum1_1 = 1 -}; - -THUMB_FUNC void FUN_02019064(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7, - u16 param8) -{ - if (param0->unk08[param2].unk08 == NULL) - { - return; - } - - void *ptr = AllocFromHeap(param0->unk00, (u32)(param5 * param6 * param0->unk08[param2].unk1f)); - - if (ptr == NULL) - { - return; - } - param1->unk00 = param0; - param1->unk04 = param2; - param1->unk05 = param3; - param1->unk06 = param4; - param1->width = param5; - param1->height = param6; - param1->unk09 = param7; - - param1->unk0a_0 = param8; - param1->unk0c = ptr; - - enum UnkEnum1 r2; - if (param0->unk08[param2].unk1e == 0) - { - r2 = UnkEnum1_0; - } - else - { - r2 = UnkEnum1_1; - } - - param1->unk0b_15 = r2; -} - -THUMB_FUNC void FUN_020190EC(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u16 param4, - u8 param5) -{ - u32 size = (u32)(param2 * param3 * 32); - - void *ptr = AllocFromHeap(param0->unk00, size); - - param5 |= (param5 * 16); - memset(ptr, param5, size); - - if (ptr != NULL) - { - param1->unk00 = param0; - param1->width = param2; - param1->height = param3; - param1->unk0a_0 = param4; - param1->unk0c = ptr; - param1->unk0b_15 = 0; - } -} - -THUMB_FUNC void FUN_02019150( - struct UnkStruct_02016B94_2 *param0, struct Window *param1, struct UnkStruct_02016B94_4 *param2) -{ - - FUN_02019064(param0, - param1, - param2->unk0, - param2->unk1, - param2->unk2, - param2->unk3, - param2->unk4, - param2->unk5, - param2->unk6); -} - -THUMB_FUNC void FUN_02019178(struct Window *param0) -{ - FreeToHeap(param0->unk0c); - - param0->unk00 = 0; - param0->unk04 = 0xff; - param0->unk05 = 0; - param0->unk06 = 0; - param0->width = 0; - param0->height = 0; - param0->unk09 = 0; - param0->unk0a_0 = 0; - param0->unk0c = 0; -} - -THUMB_FUNC void FUN_020191A4(struct Window *param0, int param1) -{ - for (u16 i = 0; i < param1; i++) - { - if (param0[i].unk0c != NULL) - { - FreeToHeap(param0[i].unk0c); - } - } - - FreeToHeap(param0); -} - -THUMB_FUNC void CopyWindowToVram(struct Window *param0) -{ - - GF_ASSERT(param0); - GF_ASSERT(param0->unk00); - GF_ASSERT(param0->unk04 < 8); - GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3); - - UNK_020EDB68[param0->unk00->unk08[param0->unk04].unk1c](param0); -} - -THUMB_FUNC void FUN_02019220(struct Window *param0) -{ - - GF_ASSERT(param0); - GF_ASSERT(param0->unk00); - GF_ASSERT(param0->unk04 < 8); - GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3); - - UNK_020EDB5C[param0->unk00->unk08[param0->unk04].unk1c](param0); -} - -THUMB_FUNC void FUN_02019270(struct Window *param0) -{ - UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0); -} - -THUMB_FUNC void FUN_0201928C(struct Window *param0, u8 param1, u8 param2) -{ - u8 unk07 = param0->width; - u8 unk08 = param0->height; - - param0->width = param1; - param0->height = param2; - UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0); - - param0->width = unk07; - param0->height = unk08; -} - -THUMB_FUNC void FUN_020192B8(struct Window *param0) -{ - UNK_020EDB74[param0->unk00->unk08[param0->unk04].unk1c](param0); -} - -THUMB_FUNC void FUN_020192D4(struct Window *param0) -{ - u32 i, j; - u32 r3; - u32 iCount, jCount; - u16 *st4 = param0->unk00->unk08[param0->unk04].unk08; - - if (st4 == NULL) - { - return; - } - - r3 = param0->unk0a_0; - jCount = (u32)(param0->unk05 + param0->width); - iCount = (u32)(param0->unk06 + param0->height); - - for (i = param0->unk06; i < iCount; i++) - { - for (j = param0->unk05; j < jCount; j++) - { - st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] = - (u16)(r3 | (param0->unk09 << 12)); - - r3++; - } - } -} - -THUMB_FUNC void FUN_02019358(struct Window *param0) -{ - int j, i; - u8 *r4; - - int r5; - int r6; - - if (param0->unk00->unk08[param0->unk04].unk08 == NULL) - { - return; - } - - r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - - r4 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - r5 = param0->unk0a_0; - - for (i = 0; i < param0->height; i++) - { - for (j = 0; j < param0->width; j++) - { - r4[j] = (u8)r5; - r5++; - } - r4 += r6; - } -} - -THUMB_FUNC void FUN_020193B4(struct Window *param0) -{ - - u32 i, j; - - u32 iCount, jCount; - u32 st8; - - u16 *st4; - - if (param0->unk00->unk08[param0->unk04].unk08 == NULL) - { - return; - } - st4 = param0->unk00->unk08[param0->unk04].unk08; - - st8 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - jCount = (u32)(param0->unk05 + param0->width); - iCount = (u32)(param0->unk06 + param0->height); - - for (i = param0->unk06; i < iCount; i++) - { - for (j = param0->unk05; j < jCount; j++) - { - st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) * st8) + (j & 0x1f)] = 0; - } - } -} - -THUMB_FUNC void FUN_02019444(struct Window *param0) -{ - - int j, i; - u8 *r5; - - int r6; - - if (param0->unk00->unk08[param0->unk04].unk08 == NULL) - { - return; - } - - r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - - for (i = 0; i < param0->height; i++) - { - for (j = 0; j < param0->width; j++) - { - r5[j] = 0; - } - r5 += r6; - } -} - -THUMB_FUNC void FUN_0201949C(struct Window *window) -{ - FUN_020192D4(window); - FUN_02019548(window); - FUN_02017CE8(window->unk00, - window->unk04, - window->unk00->unk08[window->unk04].unk08, - window->unk00->unk08[window->unk04].unk0c, - window->unk00->unk08[window->unk04].unk10); -} - -THUMB_FUNC void FUN_020194C8(struct Window *window) -{ - FUN_020192D4(window); - FUN_0201AC68(window->unk00, window->unk04); - FUN_02019548(window); -} - -THUMB_FUNC void FUN_020194E0(struct Window *window) -{ - FUN_02019358(window); - FUN_02017CE8(window->unk00, - window->unk04, - window->unk00->unk08[window->unk04].unk08, - window->unk00->unk08[window->unk04].unk0c, - window->unk00->unk08[window->unk04].unk10); - - FUN_02017E14(window->unk00, - window->unk04, - window->unk0c, - (u32)(window->width * window->height * 64), - window->unk0a_0); -} - -THUMB_FUNC void FUN_0201951C(struct Window *window) -{ - FUN_02019358(window); - FUN_0201AC68(window->unk00, window->unk04); - FUN_02017E14(window->unk00, - window->unk04, - window->unk0c, - (u32)(window->width * window->height * 64), - window->unk0a_0); -} - -THUMB_FUNC void FUN_02019548(struct Window *window) -{ - FUN_02017E14(window->unk00, - window->unk04, - window->unk0c, - (u32)(window->width * window->height * window->unk00->unk08[window->unk04].unk1f), - window->unk0a_0); -} - -THUMB_FUNC void FUN_02019570(struct Window *window) -{ - UNK_020EDB50[window->unk00->unk08[window->unk04].unk1c](window); -} - -THUMB_FUNC void FUN_0201958C(struct Window *window) -{ - UNK_020EDB44[window->unk00->unk08[window->unk04].unk1c](window); -} - -THUMB_FUNC void FUN_020195A8(struct Window *window) -{ - FUN_020193B4(window); - FUN_02017CE8(window->unk00, - window->unk04, - window->unk00->unk08[window->unk04].unk08, - window->unk00->unk08[window->unk04].unk0c, - window->unk00->unk08[window->unk04].unk10); -} - -THUMB_FUNC void FUN_020195D0(struct Window *window) -{ - FUN_020193B4(window); - FUN_0201AC68(window->unk00, window->unk04); -} - -THUMB_FUNC void FUN_020195E4(struct Window *window) -{ - FUN_02019444(window); - FUN_02017CE8(window->unk00, - window->unk04, - window->unk00->unk08[window->unk04].unk08, - window->unk00->unk08[window->unk04].unk0c, - window->unk00->unk08[window->unk04].unk10); -} - -THUMB_FUNC void FUN_0201960C(struct Window *window) -{ - FUN_02019444(window); - FUN_0201AC68(window->unk00, window->unk04); -} - -THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1) -{ - if (window->unk00->unk08[window->unk04].unk1f == 0x20) - { - param1 |= param1 << 4; - } - - MI_CpuFillFast( - window->unk0c, - (u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), - (u32)(window->unk00->unk08[window->unk04].unk1f * window->width * window->height)); -} - -THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window, - const void *src, - u16 srcX, - u16 srcY, - u16 srcWidth, - u16 srcHeight, - u16 dstX, - u16 dstY, - u16 dstWidth, - u16 dstHeight) -{ - BlitBitmapRect( - window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0); -} - -THUMB_FUNC void BlitBitmapRect(struct Window *window, - void *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8, - u16 param9, - u16 param10) -{ - struct UnkStruct_02016B94_3 st1c = { param1, param4, param5 }; - struct UnkStruct_02016B94_3 st14 = { - window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3) - }; - - if (window->unk00->unk08[window->unk04].unk1e == 0) - { - BlitBitmapRect4Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); - } - else - { - BlitBitmapRect8Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); - } -} - -THUMB_FUNC void FillWindowPixelRect( - struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height) -{ - struct UnkStruct_02016B94_3 st8 = { - window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3) - }; - - if (window->unk00->unk08[window->unk04].unk1e == 0) - { - FUN_02018E88(&st8, x, y, width, height, fillValue); - } - else - { - FUN_02018F4C(&st8, x, y, width, height, fillValue); - } -} - -#ifdef NONMATCHING -THUMB_FUNC void FUN_0201974C( - struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6) -{ - u32 str330 = param6; - u32 *st0 = param1; - u16 st5c = param4; - - void *st278 = window->unk0c; - u16 st58 = window->width << 3; - - int st8 = st58 - st5c; - - if (st8 >= param2) - { - st8 = param2; - } - - int st4 = (u16)(window->height << 3) - param5; - u16 st48 = param5; - - if (st4 >= param3) - { - st4 = param3; - } - - u8 r4 = 0; - if (st8 > 8) - { - r4 |= 1; - } - - if (st4 > 8) - { - r4 |= 2; - } - - if (window->unk0b_15 == 0) - { - switch (r4) - { - case 0: - u8 st70 = param6; - for (u32 st274 = 0; st274 < st4; st274++) - { - u32 st6c = (st58 + (st58 & 7)) >> 3; - - u32 st26c = st0[0]; - u8 st270 = (u8)((st70 >> st274) & 1); - u32 r2 = st5c; - - for (u32 r1 = 0; r1 < st8; r1++) - { - u32 r3 = st5c << 2; - u32 st68 = ((st48 << 2) & 0x3fe0) * st6c; - u32 r7 = (st48 << 2) & 0x1c; - u32 st64 = (((st48 + 1) << 2) & 0x3fe0) * st6c; - u32 st60 = ((st48 + 1) << 2) & 0x1c; - u32 r4 = r1; - - void *st27c = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); - u8 *r0 = st27c + st68; - - u8 r5 = (u8)((st26c >> r4) & 0xf); - if (r5 != 0) - { - u32 st280 = (r5 << ((r2 & 1) << 2)); - u32 st284 = r0[r7]; - - u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st284) | st280; - r0[r7] = r5; - - if (st270 != 0) - { - *(u8 *)(st27c + st64 + st60) = r5; - } - } - - r4 += 4; - r3 += 4; - r2 += 1; - } - - if (st270 != 0) - { - st48 += 2; - } - else - { - st48++; - } - - st0++; - } - - break; - - case 1: - u32 *st25c = st0; - u32 st264 = st48; - u8 st54 = param6; - u8 st84 = param6; - - for (u32 st268 = 0; st268 < st4; st268++) - { - u32 st80 = (st58 + (st58 & 7)) >> 3; - - u32 st258 = *st25c; - u32 r2 = st5c; - u8 st260 = (st84 >> st268) & 1; - u32 r3 = st5c << 2; - u32 st7c = ((st264 << 2) & 0x3fe0) * st80; - u32 r7 = (st264 << 2) & 0x1c; - u32 st78 = (((st264 + 1) << 2) & 0x3fe0) * st80; - u32 st74 = ((st264 + 1) << 2) & 0x1c; - u32 r4 = 0; - - for (u32 r1 = 0; r1 < 8; r1++) - { - void *st288 = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); - u8 *r0 = st288 + st7c; - u8 r5 = (st258 >> r4) & 0xf; - if (r5 != 0) - { - u32 st28c = r5 << ((r2 & 1) << 2); - u32 st290 = r0[r7]; - u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st290) | st28c; - r0[r7] = r5; - - if (st260 != 0) - { - *(u8 *)(st288 + st78 + st74) = r5; - } - } - - r4 += 4; - r3 += 4; - r2++; - } - - if (st260 != 0) - { - st264 += 2; - } - else - { - st264++; - } - - st25c++; - } - - st0 += 0x20; - u8 st98 = st54; - - for (u32 st254 = 0; st254 < st4; st254++) - { - st5c += 8; - u32 st94 = (st58 + (st58 & 7)) >> 3; - - //_02019A00 - } - - break; - - case 2: - // TODO - break; - case 3: - // TODO - break; - } - } - else - { - // TODO: FUN_0201A12C - } -} -#else -asm void FUN_0201974C( - struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6) -{ - // clang-format off - push {r4-r7, lr} - sub sp, #0x1fc - sub sp, #0x118 - add r5, r0, #0x0 - ldr r0, [sp, #0x330] - str r1, [sp, #0x0] - str r0, [sp, #0x330] - add r1, sp, #0x318 - ldrh r1, [r1, #0x10] - ldr r0, [r5, #0xc] - str r1, [sp, #0x5c] - ldrb r1, [r5, #0x7] - str r0, [sp, #0x278] - ldrb r0, [r5, #0x8] - lsl r1, r1, #0x13 - lsr r4, r1, #0x10 - ldr r1, [sp, #0x5c] - lsl r0, r0, #0x13 - sub r1, r4, r1 - lsr r0, r0, #0x10 - str r4, [sp, #0x58] - str r1, [sp, #0x8] - cmp r1, r2 - blt _0201977E - str r2, [sp, #0x8] -_0201977E: - add r1, sp, #0x318 - ldrh r1, [r1, #0x14] - sub r0, r0, r1 - str r1, [sp, #0x48] - str r0, [sp, #0x4] - cmp r0, r3 - blt _0201978E - str r3, [sp, #0x4] -_0201978E: - ldr r0, [sp, #0x8] - mov r4, #0x0 - cmp r0, #0x8 - ble _0201979E - mov r0, #0x1 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_0201979E: - ldr r0, [sp, #0x4] - cmp r0, #0x8 - ble _020197AC - mov r0, #0x2 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_020197AC: - ldrh r0, [r5, #0xa] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - beq _020197B8 - bl FUN_0201A12C -_020197B8: - cmp r4, #0x3 - bls _020197C0 - bl FUN_0201A8BC -_020197C0: - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020197CC: - lsl r6, r0, #0 - lsl r0, r1, #4 - lsl r0, r3, #12 - lsl r0, r7, #20 - // jump table (using 16-bit offset) - // .short _020197D4 - _020197CC - 2; case 0 - // .short _020198D6 - _020197CC - 2; case 1 - // .short _02019AE6 - _020197CC - 2; case 2 - // .short _02019D06 - _020197CC - 2; case 3 -_020197D4: - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x70] - mov r0, #0x0 - str r0, [sp, #0x274] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020197EA - bl FUN_0201A8BC -_020197EA: - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x6c] -_020197F6: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x70] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x26c] - ldr r0, [sp, #0x274] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x270] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _020198AA - ble _020198AA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x6c] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x68] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x6c] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x64] - str r0, [sp, #0x60] -_02019848: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x68] - str r5, [sp, #0x27c] - add r0, r5, r0 - ldr r5, [sp, #0x26c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201989C - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x280] - ldrb r5, [r0, r7] - str r5, [sp, #0x284] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x284] - and r6, r5 - ldr r5, [sp, #0x280] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _0201989C - ldr r6, [sp, #0x27c] - ldr r0, [sp, #0x64] - add r6, r6, r0 - ldr r0, [sp, #0x60] - strb r5, [r0, r6] -_0201989C: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019848 -_020198AA: - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _020198B8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _020198BE -_020198B8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_020198BE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x274] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x274] - cmp r1, r0 - blt _020197F6 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_020198D6: - ldr r0, [sp, #0x0] - str r0, [sp, #0x25c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x264] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x84] - mov r0, #0x0 - str r0, [sp, #0x268] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _020199D2 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x80] -_02019902: - ldr r0, [sp, #0x25c] - ldr r1, [sp, #0x84] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x258] - ldr r0, [sp, #0x268] - ldr r6, [sp, #0x80] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x260] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x264] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x264] - str r6, [sp, #0x7c] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x80] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x78] - str r0, [sp, #0x74] -_0201994C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x7c] - str r5, [sp, #0x288] - add r0, r5, r0 - ldr r5, [sp, #0x258] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _020199A0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x28c] - ldrb r5, [r0, r7] - str r5, [sp, #0x290] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x290] - and r6, r5 - ldr r5, [sp, #0x28c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199A0 - ldr r6, [sp, #0x288] - ldr r0, [sp, #0x78] - add r6, r6, r0 - ldr r0, [sp, #0x74] - strb r5, [r0, r6] -_020199A0: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _0201994C - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199BA - ldr r0, [sp, #0x264] - add r0, r0, #0x2 - str r0, [sp, #0x264] - b _020199C0 -_020199BA: - ldr r0, [sp, #0x264] - add r0, r0, #0x1 - str r0, [sp, #0x264] -_020199C0: - ldr r0, [sp, #0x25c] - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r0, [sp, #0x268] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x268] - cmp r1, r0 - blt _02019902 -_020199D2: - ldr r0, [sp, #0x0] - add r0, #0x20 - str r0, [sp, #0x0] - ldr r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x98] - mov r0, #0x0 - str r0, [sp, #0x254] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020199EE - bl FUN_0201A8BC -_020199EE: - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x94] -_02019A00: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x98] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x24c] - ldr r0, [sp, #0x254] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x250] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x294] - sub r0, #0x8 - str r0, [sp, #0x294] - cmp r0, #0x0 - ble _02019ABA - ble _02019ABA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x94] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x90] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x94] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x8c] - str r0, [sp, #0x88] -_02019A58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x90] - str r5, [sp, #0x298] - add r0, r5, r0 - ldr r5, [sp, #0x24c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019AAC - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x29c] - ldrb r5, [r0, r7] - str r5, [sp, #0x2a0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2a0] - and r6, r5 - ldr r5, [sp, #0x29c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AAC - ldr r6, [sp, #0x298] - ldr r0, [sp, #0x8c] - add r6, r6, r0 - ldr r0, [sp, #0x88] - strb r5, [r0, r6] -_02019AAC: - ldr r0, [sp, #0x294] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019A58 -_02019ABA: - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AC8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019ACE -_02019AC8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019ACE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x254] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x254] - cmp r1, r0 - blt _02019A00 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019AE6: - ldr r0, [sp, #0x0] - mov r1, #0x7 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x244] - mov r0, #0x0 - str r0, [sp, #0x248] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xa8] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x40] -_02019B06: - ldr r0, [sp, #0x23c] - ldr r1, [sp, #0xa8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x238] - ldr r0, [sp, #0x248] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x240] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019BC2 - ble _02019BC2 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x244] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x244] - str r6, [sp, #0xa4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xa0] - str r0, [sp, #0x9c] -_02019B58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 -// b _02019B6C -// nop -// _02019B68: .word 0x00003FE0 -// _02019B6C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xa4] - str r5, [sp, #0x2a4] - add r0, r5, r0 - ldr r5, [sp, #0x238] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019BB4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2a8] - ldrb r5, [r0, r7] - str r5, [sp, #0x2ac] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2ac] - and r6, r5 - ldr r5, [sp, #0x2a8] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BB4 - ldr r6, [sp, #0x2a4] - ldr r0, [sp, #0xa0] - add r6, r6, r0 - ldr r0, [sp, #0x9c] - strb r5, [r0, r6] -_02019BB4: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019B58 -_02019BC2: - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BD0 - ldr r0, [sp, #0x244] - add r0, r0, #0x2 - str r0, [sp, #0x244] - b _02019BD6 -_02019BD0: - ldr r0, [sp, #0x244] - add r0, r0, #0x1 - str r0, [sp, #0x244] -_02019BD6: - ldr r0, [sp, #0x23c] - add r0, r0, #0x4 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x248] - add r0, r0, #0x1 - str r0, [sp, #0x248] - cmp r0, #0x8 - blt _02019B06 - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x40 - str r0, [sp, #0x0] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] -_02019BF6: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019C04 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019C04: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019BF6 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xb8] - mov r0, #0x0 - str r0, [sp, #0x20] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _02019C24 - bl FUN_0201A8BC -_02019C24: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xb8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x230] - ldr r0, [sp, #0x20] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x234] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019CD8 - ble _02019CD8 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xb4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xb0] - str r0, [sp, #0xac] -_02019C76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xb4] - str r5, [sp, #0x2b0] - add r0, r5, r0 - ldr r5, [sp, #0x230] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019CCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2b4] - ldrb r5, [r0, r7] - str r5, [sp, #0x2b8] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2b8] - and r6, r5 - ldr r5, [sp, #0x2b4] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CCA - ldr r6, [sp, #0x2b0] - ldr r0, [sp, #0xb0] - add r6, r6, r0 - ldr r0, [sp, #0xac] - strb r5, [r0, r6] -_02019CCA: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019C76 -_02019CD8: - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CE6 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019CEC -_02019CE6: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019CEC: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x20] - cmp r0, r1 - blt _02019C24 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019D06: - ldr r0, [sp, #0x0] - str r0, [sp, #0x220] - ldr r0, [sp, #0x48] - str r0, [sp, #0x228] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x22c] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x38] -_02019D2A: - ldr r0, [sp, #0x220] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x21c] - ldr r0, [sp, #0x22c] - ldr r6, [sp, #0x38] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x224] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x228] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x228] - str r6, [sp, #0xc4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - str r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xc0] - str r0, [sp, #0xbc] -_02019D76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xc4] - str r5, [sp, #0x2bc] - add r0, r5, r0 - ldr r5, [sp, #0x21c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019DCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2c0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2c4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2c4] - and r6, r5 - ldr r5, [sp, #0x2c0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DCA - ldr r6, [sp, #0x2bc] - ldr r0, [sp, #0xc0] - add r6, r6, r0 - ldr r0, [sp, #0xbc] - strb r5, [r0, r6] -_02019DCA: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019D76 - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DE4 - ldr r0, [sp, #0x228] - add r0, r0, #0x2 - str r0, [sp, #0x228] - b _02019DEA -_02019DE4: - ldr r0, [sp, #0x228] - add r0, r0, #0x1 - str r0, [sp, #0x228] -_02019DEA: - ldr r0, [sp, #0x220] - add r0, r0, #0x4 - str r0, [sp, #0x220] - ldr r0, [sp, #0x22c] - add r0, r0, #0x1 - str r0, [sp, #0x22c] - cmp r0, #0x8 - blt _02019D2A - ldr r0, [sp, #0x0] - str r0, [sp, #0x20c] - add r0, #0x20 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x214] - mov r0, #0x0 - str r0, [sp, #0x218] - ldr r0, [sp, #0x5c] - str r0, [sp, #0xd4] - add r0, #0x8 - str r0, [sp, #0xd4] -_02019E12: - ldr r0, [sp, #0x20c] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0xd4] - str r0, [sp, #0x208] - ldr r0, [sp, #0x218] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x210] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2c8] - sub r0, #0x8 - str r0, [sp, #0x2c8] - cmp r0, #0x0 - ble _02019ECC - ble _02019ECC - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x214] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x214] - str r6, [sp, #0xd0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xcc] - str r0, [sp, #0xc8] -_02019E6A: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xd0] - str r5, [sp, #0x2cc] - add r0, r5, r0 - ldr r5, [sp, #0x208] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019EBE - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2d0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2d4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2d4] - and r6, r5 - ldr r5, [sp, #0x2d0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EBE - ldr r6, [sp, #0x2cc] - ldr r0, [sp, #0xcc] - add r6, r6, r0 - ldr r0, [sp, #0xc8] - strb r5, [r0, r6] -_02019EBE: - ldr r0, [sp, #0x2c8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019E6A -_02019ECC: - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EDA - ldr r0, [sp, #0x214] - add r0, r0, #0x2 - str r0, [sp, #0x214] - b _02019EE0 -_02019EDA: - ldr r0, [sp, #0x214] - add r0, r0, #0x1 - str r0, [sp, #0x214] -_02019EE0: - ldr r0, [sp, #0x20c] - add r0, r0, #0x4 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x218] - add r0, r0, #0x1 - str r0, [sp, #0x218] - cmp r0, #0x8 - blt _02019E12 - ldr r0, [sp, #0x0] - mov r2, #0x0 - str r0, [sp, #0x1fc] - add r0, #0x40 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] - str r0, [sp, #0x204] -_02019F04: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019F12 - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019F12: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019F04 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xe4] - mov r0, #0x0 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A008 -_02019F30: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0xe4] - ldr r0, [r0, #0x0] - ldr r6, [sp, #0x38] - str r0, [sp, #0x1f8] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x200] - ldr r0, [sp, #0x204] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x204] - str r6, [sp, #0xe0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - ldr r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xdc] - str r0, [sp, #0xd8] -_02019F78: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 -// b _02019F8C -// nop -// _02019F88: .word 0x00003FE0 -// _02019F8C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xe0] - str r5, [sp, #0x2d8] - add r0, r5, r0 - ldr r5, [sp, #0x1f8] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019FD4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2dc] - ldrb r5, [r0, r7] - str r5, [sp, #0x2e0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2e0] - and r6, r5 - ldr r5, [sp, #0x2dc] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FD4 - ldr r6, [sp, #0x2d8] - ldr r0, [sp, #0xdc] - add r6, r6, r0 - ldr r0, [sp, #0xd8] - strb r5, [r0, r6] -_02019FD4: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019F78 - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FEE - ldr r0, [sp, #0x204] - add r0, r0, #0x2 - str r0, [sp, #0x204] - b _02019FF4 -_02019FEE: - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019FF4: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x1c] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1c] - cmp r0, r1 - blt _02019F30 -_0201A008: - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x60 - str r0, [sp, #0x0] - mov r1, #0x1 -_0201A012: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A020 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A020: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A012 - ldr r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xf4] - mov r0, #0x0 - str r0, [sp, #0x18] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _0201A03E - bl FUN_0201A8BC -_0201A03E: - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A044: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xf4] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x1f0] - ldr r0, [sp, #0x18] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1f4] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2e4] - sub r0, #0x8 - str r0, [sp, #0x2e4] - cmp r0, #0x0 - ble _0201A0FE - ble _0201A0FE - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xf0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xec] - str r0, [sp, #0xe8] -_0201A09C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xf0] - str r5, [sp, #0x2e8] - add r0, r5, r0 - ldr r5, [sp, #0x1f0] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201A0F0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2ec] - ldrb r5, [r0, r7] - mov r12, r5 - mov r5, #0xf0 - asr r5, r6 - mov r6, r12 - and r6, r5 - ldr r5, [sp, #0x2ec] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A0F0 - ldr r6, [sp, #0x2e8] - ldr r0, [sp, #0xec] - add r6, r6, r0 - ldr r0, [sp, #0xe8] - strb r5, [r0, r6] -_0201A0F0: - ldr r0, [sp, #0x2e4] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _0201A09C -_0201A0FE: - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A10C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A112 -_0201A10C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A112: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x18] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x18] - cmp r0, r1 - blt _0201A044 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - -FUN_0201A12C: // 0x0201A12C - lsl r1, r2, #0x2 - mul r1, r3 - ldr r3, [r5, #0x0] - ldrb r2, [r5, #0x9] - ldr r0, [sp, #0x0] - ldr r3, [r3, #0x0] - lsl r1, r1, #0x3 - bl FUN_02018848 - str r0, [sp, #0x1ec] - cmp r4, #0x3 - bhi _0201A21E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201A150: - - lsl r6, r0, #0 - lsl r6, r1, #3 - lsl r0, r7, #9 - lsl r4, r3, #16 - // jump table (using 16-bit offset) - // .short _0201A158 - _0201A150 - 2; case 0 - // .short _0201A220 - _0201A150 - 2; case 1 - // .short _0201A3CA - _0201A150 - 2; case 2 - // .short _0201A56E - _0201A150 - 2; case 3 -_0201A158: - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x10c] - mov r0, #0x0 - str r0, [sp, #0x1e8] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A21E - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x108] -_0201A178: - ldr r1, [sp, #0x10c] - ldr r0, [sp, #0x1e8] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x310] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A1FC - ble _0201A1FC - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x108] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x100] - ldr r0, [sp, #0x48] - str r2, [sp, #0x104] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x108] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0xfc] - str r0, [sp, #0xf8] -_0201A1C4: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x104] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0x100] - strb r1, [r2, r0] - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0xfc] - add r2, r3, r0 - ldr r0, [sp, #0xf8] - strb r1, [r0, r2] -_0201A1F0: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A1C4 -_0201A1FC: - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A20A - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A210 -_0201A20A: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A210: - ldr r0, [sp, #0x1e8] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e8] - cmp r1, r0 - blt _0201A178 -_0201A21E: - b _0201A8B6 -_0201A220: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1e0] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x124] - mov r0, #0x0 - str r0, [sp, #0x1e4] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A2E6 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x120] -_0201A24A: - ldr r1, [sp, #0x124] - ldr r0, [sp, #0x1e4] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x30c] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1e0] - ldr r2, [sp, #0x120] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x118] - ldr r0, [sp, #0x1e0] - str r2, [sp, #0x11c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x120] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r2, [sp, #0x114] - str r0, [sp, #0x110] -_0201A28E: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x11c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x118] - strb r1, [r2, r0] - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x114] - add r2, r3, r0 - ldr r0, [sp, #0x110] - strb r1, [r0, r2] -_0201A2BA: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A28E - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2D2 - ldr r0, [sp, #0x1e0] - add r0, r0, #0x2 - str r0, [sp, #0x1e0] - b _0201A2D8 -_0201A2D2: - ldr r0, [sp, #0x1e0] - add r0, r0, #0x1 - str r0, [sp, #0x1e0] -_0201A2D8: - ldr r0, [sp, #0x1e4] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e4] - cmp r1, r0 - blt _0201A24A -_0201A2E6: - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x308] - add r0, #0x40 - str r0, [sp, #0x308] - ldr r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x13c] - mov r0, #0x0 - str r0, [sp, #0x1dc] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A3C8 - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x138] -_0201A312: - ldr r1, [sp, #0x13c] - ldr r0, [sp, #0x1dc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1d8] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A398 - ble _0201A398 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x138] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x130] - ldr r0, [sp, #0x48] - str r2, [sp, #0x134] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x138] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x12c] - str r0, [sp, #0x128] -_0201A360: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x134] - add r2, r3, r0 - ldr r0, [sp, #0x308] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A38E - ldr r0, [sp, #0x130] - strb r1, [r2, r0] - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A38E - ldr r0, [sp, #0x12c] - add r2, r3, r0 - ldr r0, [sp, #0x128] - strb r1, [r0, r2] -_0201A38E: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A360 -_0201A398: - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A3B0 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A3B6 -// nop -// _0201A3A8: .word 0x00003FE0 -// _0201A3AC: .word 0x00007FC0 -_0201A3B0: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A3B6: - ldr r0, [sp, #0x308] - add r0, #0x8 - str r0, [sp, #0x308] - ldr r0, [sp, #0x1dc] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1dc] - cmp r1, r0 - blt _0201A312 -_0201A3C8: - b _0201A8B6 -_0201A3CA: - ldr r0, [sp, #0x48] - mov r1, #0x7 - str r0, [sp, #0x1d0] - mov r0, #0x0 - str r0, [sp, #0x1d4] - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x150] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x30] -_0201A3E8: - ldr r1, [sp, #0x150] - ldr r0, [sp, #0x1d4] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x304] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A46C - ble _0201A46C - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1d0] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x148] - ldr r0, [sp, #0x1d0] - str r2, [sp, #0x14c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x144] - str r0, [sp, #0x140] -_0201A434: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x14c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A460 - ldr r0, [sp, #0x148] - strb r1, [r2, r0] - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A460 - ldr r0, [sp, #0x144] - add r2, r3, r0 - ldr r0, [sp, #0x140] - strb r1, [r0, r2] -_0201A460: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A434 -_0201A46C: - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A47A - ldr r0, [sp, #0x1d0] - add r0, r0, #0x2 - str r0, [sp, #0x1d0] - b _0201A480 -_0201A47A: - ldr r0, [sp, #0x1d0] - add r0, r0, #0x1 - str r0, [sp, #0x1d0] -_0201A480: - ldr r0, [sp, #0x1d4] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1d4] - cmp r0, #0x8 - blt _0201A3E8 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - str r0, [sp, #0x48] - add r7, #0x80 - mov r0, #0x0 - mov r2, #0x1 -_0201A49A: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A4A8 - ldr r1, [sp, #0x48] - add r1, r1, #0x1 - str r1, [sp, #0x48] -_0201A4A8: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A49A - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x164] - mov r0, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A56C -_0201A4C4: - ldr r1, [sp, #0x164] - ldr r0, [sp, #0x14] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x300] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A548 - ble _0201A548 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x15c] - ldr r0, [sp, #0x48] - str r2, [sp, #0x160] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x158] - str r0, [sp, #0x154] -_0201A510: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x160] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A53C - ldr r0, [sp, #0x15c] - strb r1, [r2, r0] - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A53C - ldr r0, [sp, #0x158] - add r2, r3, r0 - ldr r0, [sp, #0x154] - strb r1, [r0, r2] -_0201A53C: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A510 -_0201A548: - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A556 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A55C -_0201A556: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A55C: - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x14] - cmp r0, r1 - blt _0201A4C4 -_0201A56C: - b _0201A8B6 -_0201A56E: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1c8] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x1cc] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x28] -_0201A590: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1cc] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2fc] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c8] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x170] - ldr r0, [sp, #0x1c8] - str r2, [sp, #0x174] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r6, [sp, #0x24] - str r2, [sp, #0x16c] - str r0, [sp, #0x168] -_0201A5D6: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x174] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A602 - ldr r0, [sp, #0x170] - strb r1, [r2, r0] - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A602 - ldr r0, [sp, #0x16c] - add r2, r3, r0 - ldr r0, [sp, #0x168] - strb r1, [r0, r2] -_0201A602: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A5D6 - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A61A - ldr r0, [sp, #0x1c8] - add r0, r0, #0x2 - str r0, [sp, #0x1c8] - b _0201A620 -_0201A61A: - ldr r0, [sp, #0x1c8] - add r0, r0, #0x1 - str r0, [sp, #0x1c8] -_0201A620: - ldr r0, [sp, #0x1cc] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1cc] - cmp r0, #0x8 - blt _0201A590 - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x2f8] - add r0, #0x40 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x48] - str r0, [sp, #0x1c0] - mov r0, #0x0 - str r0, [sp, #0x1c4] - ldr r0, [sp, #0x5c] - str r0, [sp, #0x188] - add r0, #0x8 - str r0, [sp, #0x188] -_0201A644: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1c4] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1bc] - ldr r5, [sp, #0x188] - cmp r7, #0x0 - ble _0201A6CA - ble _0201A6CA - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c0] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x180] - ldr r0, [sp, #0x1c0] - str r2, [sp, #0x184] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x17c] - str r0, [sp, #0x178] -_0201A692: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x184] - add r2, r3, r0 - ldr r0, [sp, #0x2f8] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x180] - strb r1, [r2, r0] - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x17c] - add r2, r3, r0 - ldr r0, [sp, #0x178] - strb r1, [r0, r2] -_0201A6C0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A692 -_0201A6CA: - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6D8 - ldr r0, [sp, #0x1c0] - add r0, r0, #0x2 - str r0, [sp, #0x1c0] - b _0201A6DE -_0201A6D8: - ldr r0, [sp, #0x1c0] - add r0, r0, #0x1 - str r0, [sp, #0x1c0] -_0201A6DE: - ldr r0, [sp, #0x2f8] - add r0, #0x8 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x1c4] - add r0, r0, #0x1 - str r0, [sp, #0x1c4] - cmp r0, #0x8 - blt _0201A644 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - add r7, #0x80 - str r0, [sp, #0x48] - str r0, [sp, #0x1b8] - mov r0, #0x0 - mov r2, #0x1 -_0201A6FE: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A70C - ldr r1, [sp, #0x1b8] - add r1, r1, #0x1 - str r1, [sp, #0x1b8] -_0201A70C: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A6FE - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x19c] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A7CE -_0201A72A: - ldr r1, [sp, #0x19c] - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x28] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2f4] - ldr r0, [sp, #0x1b8] - mov r3, #0x38 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 -// b _0201A74C -// nop -// _0201A748: .word 0x00007FC0 -// _0201A74C: - ldr r5, [sp, #0x5c] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x194] - ldr r0, [sp, #0x1b8] - str r2, [sp, #0x198] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - ldr r6, [sp, #0x24] - mov r4, #0x0 - str r2, [sp, #0x190] - str r0, [sp, #0x18c] -_0201A774: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x198] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x194] - strb r1, [r2, r0] - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x190] - add r2, r3, r0 - ldr r0, [sp, #0x18c] - strb r1, [r0, r2] -_0201A7A0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A774 - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7B8 - ldr r0, [sp, #0x1b8] - add r0, r0, #0x2 - str r0, [sp, #0x1b8] - b _0201A7BE -_0201A7B8: - ldr r0, [sp, #0x1b8] - add r0, r0, #0x1 - str r0, [sp, #0x1b8] -_0201A7BE: - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x10] - cmp r0, r1 - blt _0201A72A -_0201A7CE: - ldr r0, [sp, #0x1ec] - mov r2, #0x0 - str r0, [sp, #0x2f0] - add r0, #0xc0 - str r0, [sp, #0x2f0] - mov r1, #0x1 -_0201A7DA: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A7E8 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A7E8: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A7DA - ldr r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1b0] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A8B6 - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A808: - ldr r1, [sp, #0x1b0] - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1b4] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A88E - ble _0201A88E - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x1a8] - ldr r0, [sp, #0x48] - str r2, [sp, #0x1ac] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x1a4] - str r0, [sp, #0x1a0] -_0201A856: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x1ac] - add r2, r3, r0 - ldr r0, [sp, #0x2f0] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a8] - strb r1, [r2, r0] - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a4] - add r2, r3, r0 - ldr r0, [sp, #0x1a0] - strb r1, [r0, r2] -_0201A884: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A856 -_0201A88E: - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A89C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A8A2 -_0201A89C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A8A2: - ldr r0, [sp, #0x2f0] - ldr r1, [sp, #0x4] - add r0, #0x8 - str r0, [sp, #0x2f0] - ldr r0, [sp, #0xc] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, r1 - blt _0201A808 -_0201A8B6: - ldr r0, [sp, #0x1ec] - bl FreeToHeap - -FUN_0201A8BC: // 0x0201A8BC - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - // clang-format on -} -#endif - -THUMB_FUNC void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3) -{ - if (window->unk00->unk08[window->unk04].unk1e == 0) - { - FUN_0201A8E8(window, param1, param2, param3); - } - else - { - FUN_0201A9D4(window, param1, param2, param3); - } -} - -THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3) -{ - void *r2; - int r5, r1, r3; - int st4, stc; - u32 st8; - int i, j; - - r2 = window->unk0c; - st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; - stc = window->height * window->width * 32; - st8 = window->width; - - switch (param1) - { - case 0: - for (i = 0; i < stc; i += 32) - { - r3 = param2; - for (j = 0; j < 8; j++) - { - r5 = i + (j << 2); - r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); - - if (r1 < stc) - { - *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); - } - else - { - *(u32 *)(r2 + r5) = (u32)st4; - } - - r3++; - } - } - - break; - case 1: - r2 += stc - 4; - for (i = 0; i < stc; i += 32) - { - r3 = param2; - for (j = 0; j < 8; j++) - { - r5 = i + (j << 2); - r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); - - if (r1 < stc) - { - *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); - } - else - { - *(u32 *)(r2 - r5) = (u32)st4; - } - - r3++; - } - } - - break; - case 2: - case 3: - break; - } -} - -THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3) -{ - - void *r2; - int r5, r1, r3; - int st4, stc; - u32 st8; - int i, j; - - r2 = (u8 *)window->unk0c; - st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; - stc = window->height * window->width * 64; - st8 = window->width; - - switch (param1) - { - case 0: - for (i = 0; i < stc; i += 64) - { - r3 = param2; - for (j = 0; j < 8; j++) - { - r5 = i + (j << 3); - r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3); - - if (r1 < stc) - { - *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); - } - else - { - *(u32 *)(r2 + r5) = (u32)st4; - } - - r5 += 4; - r1 += 4; - if (r1 < stc + 4) - { - *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); - } - else - { - *(u32 *)(r2 + r5) = (u32)st4; - } - - r3++; - } - } - - break; - case 1: - r2 += stc - 8; - for (i = 0; i < stc; i += 64) - { - r3 = param2; - for (j = 0; j < 8; j++) - { - r5 = i + (j << 3); - r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3); - - if (r1 < stc) - { - *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); - } - else - { - *(u32 *)(r2 - r5) = (u32)st4; - } - - r5 -= 4; - r1 -= 4; - if (r1 < stc - 4) - { - *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); - } - else - { - *(u32 *)(r2 - r5) = (u32)st4; - } - - r3++; - } - } - - break; - case 2: - case 3: - break; - } -} - -THUMB_FUNC u8 FUN_0201AB08(struct Window *window) -{ - return window->unk04; -} - -THUMB_FUNC u8 GetWindowWidth(struct Window *window) -{ - return window->width; -} -THUMB_FUNC u8 GetWindowHeight(struct Window *window) -{ - return window->height; -} -THUMB_FUNC u8 FUN_0201AB14(struct Window *window) -{ - return window->unk05; -} -THUMB_FUNC u8 FUN_0201AB18(struct Window *window) -{ - return window->unk06; -} -THUMB_FUNC void FUN_0201AB1C(struct Window *window, u8 param1) -{ - window->unk05 = param1; -} -THUMB_FUNC void FUN_0201AB20(struct Window *window, u8 param1) -{ - window->unk06 = param1; -} -THUMB_FUNC void FUN_0201AB24(struct Window *window, u8 param1) -{ - window->unk09 = param1; -} - -THUMB_FUNC u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path) -{ - void *ptr = FUN_020161A4(heap_id, path); - window->unk00 = ptr; - u32 st0; - NNS_G2dGetUnpackedBGCharacterData(ptr, &st0); - - return st0; -} - -THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path) -{ - void *ptr = FUN_020161A4(heap_id, path); - window->unk00 = ptr; - u32 st0; - NNS_G2dGetUnpackedPaletteData(ptr, &st0); - - return st0; -} - -THUMB_FUNC void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0) -{ - FUN_0201AC78(param0); - FUN_0201AB78(param0); - - param0->unk04 = 0; - param0->unk06 = 0; -} - -THUMB_FUNC void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0) -{ - if ((param0->unk06 & 1) != 0) - { - FUN_02017D68(0, param0->unk08[0].unk08, param0->unk08[0].unk10 * 2, param0->unk08[0].unk0c); - } - - if ((param0->unk06 & 2) != 0) - { - FUN_02017D68(1, param0->unk08[1].unk08, param0->unk08[1].unk10 * 2, param0->unk08[1].unk0c); - } - - if ((param0->unk06 & 4) != 0) - { - FUN_02017D68(2, param0->unk08[2].unk08, param0->unk08[2].unk10 * 2, param0->unk08[2].unk0c); - } - - if ((param0->unk06 & 8) != 0) - { - FUN_02017D68(3, param0->unk08[3].unk08, param0->unk08[3].unk10 * 2, param0->unk08[3].unk0c); - } - - if ((param0->unk06 & 0x10) != 0) - { - FUN_02017D68(4, param0->unk08[4].unk08, param0->unk08[4].unk10 * 2, param0->unk08[4].unk0c); - } - - if ((param0->unk06 & 0x20) != 0) - { - FUN_02017D68(5, param0->unk08[5].unk08, param0->unk08[5].unk10 * 2, param0->unk08[5].unk0c); - } - - if ((param0->unk06 & 0x40) != 0) - { - FUN_02017D68(6, param0->unk08[6].unk08, param0->unk08[6].unk10 * 2, param0->unk08[6].unk0c); - } - - if ((param0->unk06 & 0x80) != 0) - { - FUN_02017D68(7, param0->unk08[7].unk08, param0->unk08[7].unk10 * 2, param0->unk08[7].unk0c); - } -} - -THUMB_FUNC void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1) -{ - param0->unk06 |= 1 << param1; -} - -THUMB_FUNC void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0) -{ - if ((param0->unk04 & 1) != 0) - { - reg_G2_BG0OFS = (u32)( - (param0->unk08[0].unk14 & 0x1ff) | ((param0->unk08[0].unk18 << 0x10) & 0x1ff0000)); - } - - if ((param0->unk04 & 2) != 0) - { - reg_G2_BG1OFS = (u32)( - (param0->unk08[1].unk14 & 0x1ff) | ((param0->unk08[1].unk18 << 0x10) & 0x1ff0000)); - } - - if ((param0->unk04 & 4) != 0) - { - if (param0->unk08[2].unk1c == 0) - { - reg_G2_BG2OFS = (u32)( - (param0->unk08[2].unk14 & 0x1ff) | ((param0->unk08[2].unk18 << 0x10) & 0x1ff0000)); - } - else - { - struct Mtx22 st38; - MTX22_2DAffine( - &st38, param0->unk08[2].unk20, param0->unk08[2].unk24, param0->unk08[2].unk28, 2); - G2x_SetBGyAffine_(reg_G2_BG2P, - &st38, - param0->unk08[2].unk2c, - param0->unk08[2].unk30, - param0->unk08[2].unk14, - param0->unk08[2].unk18); - } - } - - if ((param0->unk04 & 8) != 0) - { - if (param0->unk08[3].unk1c == 0) - { - reg_G2_BG3OFS = (u32)( - (param0->unk08[3].unk14 & 0x1ff) | ((param0->unk08[3].unk18 << 0x10) & 0x1ff0000)); - } - else - { - struct Mtx22 st28; - MTX22_2DAffine( - &st28, param0->unk08[3].unk20, param0->unk08[3].unk24, param0->unk08[3].unk28, 2); - G2x_SetBGyAffine_(reg_G2_BG3P, - &st28, - param0->unk08[3].unk2c, - param0->unk08[3].unk30, - param0->unk08[3].unk14, - param0->unk08[3].unk18); - } - } - - if ((param0->unk04 & 0x10) != 0) - { - reg_G2S_DB_BG0OFS = (u32)( - (param0->unk08[4].unk14 & 0x1ff) | ((param0->unk08[4].unk18 << 0x10) & 0x1ff0000)); - } - - if ((param0->unk04 & 0x20) != 0) - { - reg_G2S_DB_BG1OFS = (u32)( - (param0->unk08[5].unk14 & 0x1ff) | ((param0->unk08[5].unk18 << 0x10) & 0x1ff0000)); - } - - if ((param0->unk04 & 0x40) != 0) - { - if (param0->unk08[6].unk1c == 0) - { - reg_G2S_DB_BG2OFS = (u32)( - (param0->unk08[6].unk14 & 0x1ff) | ((param0->unk08[6].unk18 << 0x10) & 0x1ff0000)); - } - else - { - struct Mtx22 st18; - MTX22_2DAffine( - &st18, param0->unk08[6].unk20, param0->unk08[6].unk24, param0->unk08[6].unk28, 2); - G2x_SetBGyAffine_(reg_G2S_DB_BG2P, - &st18, - param0->unk08[6].unk2c, - param0->unk08[6].unk30, - param0->unk08[6].unk14, - param0->unk08[6].unk18); - } - } - - if ((param0->unk04 & 0x80) != 0) - { - if (param0->unk08[7].unk1c == 0) - { - reg_G2S_DB_BG3OFS = (u32)( - (param0->unk08[7].unk14 & 0x1ff) | ((param0->unk08[7].unk18 << 0x10) & 0x1ff0000)); - } - else - { - struct Mtx22 st08; - MTX22_2DAffine( - &st08, param0->unk08[7].unk20, param0->unk08[7].unk24, param0->unk08[7].unk28, 2); - G2x_SetBGyAffine_(reg_G2S_DB_BG3P, - &st08, - param0->unk08[7].unk2c, - param0->unk08[7].unk30, - param0->unk08[7].unk14, - param0->unk08[7].unk18); - } - } -} - -THUMB_FUNC void FUN_0201AEE4( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) -{ - FUN_02017B8C(¶m0->unk08[param1], param2, param3); - param0->unk04 |= 1 << param1; -} - -THUMB_FUNC void FUN_0201AF08( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3) -{ - FUN_0201AF2C(¶m0->unk08[param1], param2, param3); - param0->unk04 |= 1 << param1; -} - -THUMB_FUNC void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val) -{ - switch (param1) - { - case 0: - param0->unk20 = val; - break; - case 1: - param0->unk20 += val; - break; - case 2: - param0->unk20 -= val; - break; - } -} - -THUMB_FUNC void FUN_0201AF50( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) -{ - FUN_0201AF74(¶m0->unk08[param1], param2, param3); - param0->unk04 |= 1 << param1; -} - -THUMB_FUNC void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val) -{ - switch (param1 - 9) - { - case 0: - param0->unk2c = val; - break; - case 1: - param0->unk2c += val; - break; - case 2: - param0->unk2c -= val; - break; - case 3: - param0->unk30 = val; - break; - case 4: - param0->unk30 += val; - break; - case 5: - param0->unk30 -= val; - break; - } -} - -THUMB_FUNC u32 FUN_0201AFBC( - struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) -{ - void *st18; - u16 r6; - u8 st14; - u8 st10; - u8 r5; - u8 i; - - if (param0->unk08[param1].unk08 == NULL) - { - return 0; - } - - r6 = FUN_02017FFC((u8)(param2 >> 3), (u8)(param3 >> 3), param0->unk08[param1].unk1d); - st18 = FUN_020187B0(param1); - - st14 = (u8)(param2 & 7); - st10 = (u8)(param3 & 7); - - if (param0->unk08[param1].unk1e == 0) - { - u16 *stc = param0->unk08[param1].unk08; - u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); - - st18 += ((stc[r6] & 0x3ff) << 5); - for (i = 0; i < 0x20; i++) - { - ptr[(i << 1)] = (u8)(((u8 *)st18)[i] & 0xf); - ptr[(i << 1) + 1] = (u8)(((u8 *)st18)[i] >> 4); - } - - FUN_0201B118(param0, (u8)((stc[r6] >> 0xa) & 3), ptr); - - r5 = ptr[st14 + (st10 << 3)]; - FreeToHeap(ptr); - - if ((param4[0] & (1 << r5)) != 0) - { - return 1; - } - } - else - { - if (param0->unk08[param1].unk1c != 1) - { - u16 *r4 = param0->unk08[param1].unk08; - u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); - - memcpy(ptr, st18 + ((r4[r6] & 0x3ff) << 6), 0x40); - - FUN_0201B118(param0, (u8)((r4[r6] >> 0xa) & 3), ptr); - - r5 = ptr[st14 + (st10 << 3)]; - FreeToHeap(ptr); - } - else - { - r5 = ((u8 *)st18)[(((u8 *)param0->unk08[param1].unk08)[r6] << 6) + st14 + (st10 << 3)]; - } - - while (TRUE) - { - if (param4[0] == 0xffff) - { - break; - } - if (r5 == (u8)(param4[0])) - { - return 1; - } - } - } - return 0; -} - -THUMB_FUNC void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2) -{ - u8 i, j; - if (param1 != 0) - { - u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); - - if ((param1 & 1) != 0) - { - for (i = 0; i < 8; i++) - { - for (j = 0; j < 8; j++) - { - ptr[i * 8 + j] = param2[i * 8 + (7 - j)]; - } - } - - memcpy(param2, ptr, 0x40); - } - - if ((param1 & 2) != 0) - { - for (i = 0; i < 8; i++) - { - u8 *r3 = &ptr[i * 8]; - u8 *r2 = ¶m2[(7 - i) * 8]; - for (u32 j = 8; j > 0; j--) - { - *r3++ = *r2++; - } - } - - memcpy(param2, ptr, 0x40); - } - - FreeToHeap(ptr); - } -} diff --git a/arm9/src/unk_0201B8B8.c b/arm9/src/unk_0201B8B8.c index c7f77f87..b8e978f2 100644 --- a/arm9/src/unk_0201B8B8.c +++ b/arm9/src/unk_0201B8B8.c @@ -14,7 +14,7 @@ const u16 * MsgArray_SkipControlCode(const u16 * r4) return r4; } -u16 MsgArray_GetControlCode(const u16 * r4) +u32 MsgArray_GetControlCode(const u16 * r4) { GF_ASSERT(*r4 == 0xFFFE); return r4[1]; @@ -25,7 +25,7 @@ BOOL MsgArray_ControlCodeIsStrVar(const u16 * r4) return (MsgArray_GetControlCode(r4) & 0xFF00) == 0x100; } -u16 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4) +u32 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4) { GF_ASSERT(*r5 == 0xFFFE); GF_ASSERT(r4 < r5[2]); diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index 2b088d6f..52ee3143 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -432,7 +432,7 @@ THUMB_FUNC s32 FUN_0202E844(u32 param0) count++; } - GF_AssertFail(); + GF_ASSERT(0); return 0; } diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index 09b5b56f..e5188db2 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -93,10 +93,7 @@ THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1) { r4 = 1; - if (UNK_021C59F4.unk04 == 0) - { - GF_AssertFail(); - } + GF_ASSERT(UNK_021C59F4.unk04 != 0); } UNK_021C59F4.unk04->unk65C = 0; @@ -535,7 +532,7 @@ THUMB_FUNC BOOL FUN_0202FB80() { UNK_021C59F4.unk00 = 0; FUN_0202F984(); - UNK_021C59F4.unk04->unk628 |= gMain.unk44 & 0x7FFF; + UNK_021C59F4.unk04->unk628 |= gMain.heldKeys & 0x7FFF; FUN_02030674(); FUN_0202FCCC(); @@ -1191,7 +1188,7 @@ THUMB_FUNC void FUN_020304D4(u32 param0) return; } - GF_AssertFail(); + GF_ASSERT(0); } THUMB_FUNC void FUN_020304F0(u32 param0) @@ -1202,7 +1199,7 @@ THUMB_FUNC void FUN_020304F0(u32 param0) return; } - GF_AssertFail(); + GF_ASSERT(0); } THUMB_FUNC void FUN_0203050C() @@ -1741,7 +1738,7 @@ THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2) { if (FUN_02031190() != 0) { - GF_AssertFail(); + GF_ASSERT(0); return 0; } diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 57764b82..7d3b4c03 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -97,14 +97,14 @@ THUMB_FUNC void FUN_020317C0() if (UNK_021C5A00->unk3F >= 0x13) { - FUN_020168D0(0x31); + DestroyHeap(0x31); } FUN_02033ED0(); FUN_0202E4F0(); FreeToHeap(UNK_021C5A00); - FUN_020168D0(0xf); + DestroyHeap(0xf); UNK_021C5A00 = NULL; } @@ -123,7 +123,7 @@ THUMB_FUNC void FUN_02031824(struct SaveBlock2 *sav2) { if (UNK_021C5A00 == NULL) { - FUN_02016828(3, 0xf, 0xe000); + CreateHeapAtEnd(3, 0xf, 0xe000); FUN_02031734(sav2, 0xa); UNK_021C5A00->unk40 = 0; @@ -201,7 +201,7 @@ THUMB_FUNC void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7080); + CreateHeapAtEnd(3, 0xf, 0x7080); FUN_02031734(sav2, param1); UNK_021C5A00->unk40 = param2; UNK_021C5A00->unk30 = param3; @@ -213,7 +213,7 @@ THUMB_FUNC void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7080); + CreateHeapAtEnd(3, 0xf, 0x7080); FUN_02031734(sav2, param1); UNK_021C5A00->unk40 = param2; UNK_021C5A00->unk30 = param3; @@ -273,7 +273,7 @@ THUMB_FUNC void FUN_02031A7C(struct SaveBlock2 *sav2) { if (UNK_021C5A00 == NULL) { - if (FUN_02016828(3, 0xf, 0x7080) == 0) + if (CreateHeapAtEnd(3, 0xf, 0x7080) == 0) { FUN_020335E0(); } @@ -406,7 +406,7 @@ THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1) { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7080); + CreateHeapAtEnd(3, 0xf, 0x7080); FUN_02031734(sav2, param1); FUN_02031D20(FUN_02032E00, 0); } @@ -416,7 +416,7 @@ THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1) { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7080); + CreateHeapAtEnd(3, 0xf, 0x7080); FUN_02031734(sav2, param1); FUN_02031D20(FUN_02032E48, 0); } @@ -1393,7 +1393,7 @@ THUMB_FUNC void FUN_02032BD0(struct SaveBlock2 *sav2) { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7000); + CreateHeapAtEnd(3, 0xf, 0x7000); FUN_02031734(sav2, 0xe); UNK_021C5A00->unk40 = 0; FUN_02031D20(FUN_02032B8C, 0); @@ -1479,7 +1479,7 @@ THUMB_FUNC void FUN_02032D44(struct SaveBlock2 *sav2) { if (FUN_02030F40() == 0) { - FUN_02016828(3, 0xf, 0x7000); + CreateHeapAtEnd(3, 0xf, 0x7000); FUN_02031734(sav2, 0x11); UNK_021C5A00->unk40 = 0; FUN_02031D20(FUN_02032CF4, 0); @@ -1807,7 +1807,7 @@ THUMB_FUNC void FUN_020331C4() { if (UNK_021C5A00 != NULL) { - FUN_020166B8(1); + ClearSoftResetDisableMask(1); FUN_02031D20(FUN_02032440, 5); } } @@ -1866,7 +1866,7 @@ THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2) { if (UNK_021C5A00 == NULL) { - FUN_02016828(3, 0xf, 0x100); + CreateHeapAtEnd(3, 0xf, 0x100); UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); @@ -1875,7 +1875,7 @@ THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2) UNK_021C5A00->unk46 = 1; UNK_021C5A00->unk28 = sav2; FUN_020334E8(0, 1); - FUN_020166A8(1); + SetSoftResetDisableMask(1); } } @@ -1883,11 +1883,11 @@ THUMB_FUNC void FUN_020332DC() { if (UNK_021C5A00 != 0) { - FUN_020166B8(1); + ClearSoftResetDisableMask(1); FUN_020334E8(0, 0); FreeToHeap(UNK_021C5A00); UNK_021C5A00 = NULL; - FUN_020168D0(0xf); + DestroyHeap(0xf); } } @@ -1895,7 +1895,7 @@ THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2) { if (UNK_021C5A00 == NULL) { - FUN_02016828(3, 0xf, 0x100); + CreateHeapAtEnd(3, 0xf, 0x100); UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); @@ -1903,7 +1903,7 @@ THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2) UNK_021C5A00->unk46 = 1; UNK_021C5A00->unk28 = sav2; FUN_020334E8(0, 1); - FUN_020166A8(1); + SetSoftResetDisableMask(1); } } @@ -1911,11 +1911,11 @@ THUMB_FUNC void FUN_02033364() { if (UNK_021C5A00 != 0) { - FUN_020166B8(1); + ClearSoftResetDisableMask(1); FUN_020334E8(0, 0); FreeToHeap(UNK_021C5A00); UNK_021C5A00 = NULL; - FUN_020168D0(0xf); + DestroyHeap(0xf); } } @@ -1966,7 +1966,7 @@ THUMB_FUNC void FUN_0203341C() { if (FUN_0202E4C8()) { - FUN_02016828(3, 0x31, 0x31000); + CreateHeapAtEnd(3, 0x31, 0x31000); if (FUN_0202F918(1, 1, 0x200, 1) != 0) { MOD05_021D74E0(UNK_021C5A00->unk28, 0x31); @@ -1985,8 +1985,8 @@ THUMB_FUNC void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1) return 0; } - FUN_020166A8(1); - FUN_02016828(3, 0xf, 0x7080); + SetSoftResetDisableMask(1); + CreateHeapAtEnd(3, 0xf, 0x7080); FUN_02031734(sav2, 0x17); UNK_021C5A00->unk00 = AllocFromHeap(0xf, param1); MI_CpuFill8(UNK_021C5A00->unk00, 0, param1); @@ -2127,7 +2127,7 @@ THUMB_FUNC void FUN_020335F4() FUN_0200541C(); FUN_0202287C(UNK_021C5A00->unk28); - gMain.unk64 = 1; + gMain.touchpadReadAuto = 1; if (UNK_021C5A00->unk4E == 3) { FUN_020335A4(3); diff --git a/arm9/src/unk_0205EC84.c b/arm9/src/unk_0205EC84.c new file mode 100644 index 00000000..a7e4531f --- /dev/null +++ b/arm9/src/unk_0205EC84.c @@ -0,0 +1,436 @@ +#include "global.h"
+#include "proto.h"
+#include "unk_0205EC84.h"
+
+static THUMB_FUNC void _flag_set(struct ScriptState * state, u16 flag_id)
+{
+ SetFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC void _flag_clear(struct ScriptState * state, u16 flag_id)
+{
+ ClearFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC BOOL _flag_check(struct ScriptState * state, u16 flag_id)
+{
+ return CheckFlagInArray(state, flag_id);
+}
+
+static THUMB_FUNC BOOL _flag_op(struct ScriptState * state, u32 op, u32 flag_id)
+{
+ switch (op)
+ {
+ case 1:
+ _flag_set(state, (u16)flag_id);
+ break;
+ case 0:
+ _flag_clear(state, (u16)flag_id);
+ break;
+ case 2:
+ return _flag_check(state, (u16)flag_id);
+ default:
+ GF_ASSERT(0);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0205ECD4(struct ScriptState * state)
+{
+ _flag_set(state, 0x960);
+}
+
+THUMB_FUNC BOOL FUN_0205ECE0(struct ScriptState * state)
+{
+ return _flag_check(state, 0x960);
+}
+
+THUMB_FUNC BOOL FUN_0205ECEC(struct ScriptState * state)
+{
+ return _flag_check(state, 0x98D);
+}
+
+THUMB_FUNC void FUN_0205ECFC(struct ScriptState * state)
+{
+ _flag_set(state, 0x964);
+}
+
+THUMB_FUNC BOOL FUN_0205ED0C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x964);
+}
+
+THUMB_FUNC void FUN_0205ED1C(struct ScriptState * state)
+{
+ _flag_set(state, 0x961);
+}
+
+THUMB_FUNC void FUN_0205ED2C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x961);
+}
+
+THUMB_FUNC BOOL FUN_0205ED3C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x961);
+}
+
+THUMB_FUNC void FUN_0205ED4C(struct ScriptState * state)
+{
+ _flag_set(state, 0x965);
+}
+
+THUMB_FUNC void FUN_0205ED5C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x965);
+}
+
+THUMB_FUNC BOOL FUN_0205ED6C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x965);
+}
+
+THUMB_FUNC void FUN_0205ED7C(struct ScriptState * state)
+{
+ _flag_set(state, 0x96D);
+}
+
+THUMB_FUNC void FUN_0205ED8C(struct ScriptState * state)
+{
+ _flag_clear(state, 0x96D);
+}
+
+THUMB_FUNC BOOL FUN_0205ED9C(struct ScriptState * state)
+{
+ return _flag_check(state, 0x96D);
+}
+
+THUMB_FUNC void FUN_0205EDAC(struct ScriptState * state)
+{
+ _flag_set(state, 0x96E);
+}
+
+THUMB_FUNC void FUN_0205EDBC(struct ScriptState * state)
+{
+ _flag_set(state, 0x96F);
+}
+
+THUMB_FUNC void FUN_0205EDCC(struct ScriptState * state)
+{
+ _flag_set(state, 0x970);
+}
+
+THUMB_FUNC void FUN_0205EDD8(struct ScriptState * state)
+{
+ _flag_set(state, 0x971);
+}
+
+THUMB_FUNC void FUN_0205EDE8(struct ScriptState * state)
+{
+ _flag_set(state, 0x972);
+}
+
+THUMB_FUNC void FUN_0205EDF8(struct ScriptState * state)
+{
+ _flag_set(state, 0x973);
+}
+
+THUMB_FUNC void FUN_0205EE08(struct ScriptState * state, u32 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ _flag_set(state, 0x968);
+ break;
+ case 1:
+ _flag_set(state, 0x969);
+ break;
+ case 2:
+ _flag_set(state, 0x96A);
+ break;
+ case 3:
+ _flag_set(state, 0x96B);
+ break;
+ case 4:
+ _flag_set(state, 0x96C);
+ break;
+ }
+}
+
+THUMB_FUNC BOOL FUN_0205EE60(struct ScriptState * state, u32 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ return _flag_check(state, 0x968);
+ case 1:
+ return _flag_check(state, 0x969);
+ case 2:
+ return _flag_check(state, 0x96A);
+ case 3:
+ return _flag_check(state, 0x96B);
+ case 4:
+ return _flag_check(state, 0x96C);
+ }
+ // UB: No return value
+}
+
+THUMB_FUNC BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1)
+{
+ BOOL ret = FALSE;
+ switch (a1)
+ {
+ case 0:
+ break;
+ case 1:
+ ret = _flag_check(state, 0x97F);
+ break;
+ case 2:
+ ret = _flag_check(state, 0x980);
+ break;
+ case 3:
+ ret = _flag_check(state, 0x981);
+ break;
+ case 4:
+ ret = _flag_check(state, 0x982);
+ break;
+ case 5:
+ ret = _flag_check(state, 0x983);
+ break;
+ }
+ return ret;
+}
+
+THUMB_FUNC s32 FUN_0205EF20(struct ScriptState * state, s32 a1)
+{
+ s32 ret = 0;
+ switch (a1)
+ {
+ case 314:
+ if (_flag_check(state, 0x984) == TRUE)
+ ret = 1070;
+ break;
+ case 316:
+ if (_flag_check(state, 0x984) == TRUE)
+ ret = 1065;
+ break;
+ case 312:
+ if (_flag_check(state, 0x98E) == TRUE)
+ ret = 1070;
+ break;
+ case 318:
+ if (_flag_check(state, 0x98F) == TRUE)
+ ret = 1070;
+ break;
+ case 251:
+ if (_flag_check(state, 0x995) == TRUE)
+ ret = 1069;
+ break;
+ case 422:
+ if (_flag_check(state, 0x993) == TRUE)
+ ret = 1098;
+ break;
+ case 305:
+ case 306:
+ case 307:
+ case 308:
+ case 309:
+ case 310:
+ case 494:
+ case 497:
+ if (_flag_check(state, 0x985) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1016;
+ else
+ ret = 1045;
+ }
+ else if (a1 == 305)
+ {
+ if (_flag_check(state, 0x986) == TRUE)
+ ret = 1067;
+ }
+ break;
+ case 72:
+ case 73:
+ case 74:
+ case 75:
+ if (_flag_check(state, 0x987) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1013;
+ else
+ ret = 1042;
+ }
+ break;
+ case 201:
+ if (_flag_check(state, 0x988) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1023;
+ else
+ ret = 1052;
+ }
+ break;
+ case 256:
+ if (_flag_check(state, 0x989) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1006;
+ else
+ ret = 1035;
+ }
+ break;
+ case 399:
+ if (_flag_check(state, 0x98A) == TRUE)
+ {
+ if (!IsNighttime())
+ ret = 1006;
+ else
+ ret = 1035;
+ }
+ break;
+ case 185:
+ if (_flag_check(state, 0x98B) == TRUE)
+ ret = 1001;
+ break;
+ }
+ return ret;
+}
+
+
+THUMB_FUNC void FUN_0205F154(struct ScriptState * state)
+{
+ _flag_set(state, 0x966);
+}
+
+THUMB_FUNC void FUN_0205F164(struct ScriptState * state)
+{
+ _flag_clear(state, 0x966);
+}
+
+THUMB_FUNC BOOL FUN_0205F174(struct ScriptState * state)
+{
+ return _flag_check(state, 0x966);
+}
+
+THUMB_FUNC BOOL FUN_0205F184(struct ScriptState * state)
+{
+ return _flag_check(state, 0x978);
+}
+
+THUMB_FUNC BOOL FUN_0205F194(struct ScriptState * state)
+{
+ return _flag_check(state, 0x992);
+}
+
+THUMB_FUNC BOOL FUN_0205F1A4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97D);
+}
+
+THUMB_FUNC BOOL FUN_0205F1B4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97E);
+}
+
+THUMB_FUNC void FUN_0205F1C4(struct ScriptState * state)
+{
+ _flag_set(state, 0x97C);
+}
+
+THUMB_FUNC void FUN_0205F1D4(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97C);
+}
+
+THUMB_FUNC BOOL FUN_0205F1E4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97C);
+}
+
+THUMB_FUNC void FUN_0205F1F4(struct ScriptState * state)
+{
+ _flag_set(state, 0x967);
+}
+
+THUMB_FUNC void FUN_0205F204(struct ScriptState * state)
+{
+ _flag_clear(state, 0x967);
+}
+
+THUMB_FUNC BOOL FUN_0205F214(struct ScriptState * state)
+{
+ return _flag_check(state, 0x967);
+}
+
+THUMB_FUNC void FUN_0205F224(struct ScriptState * state)
+{
+ _flag_set(state, 0x979);
+}
+
+THUMB_FUNC void FUN_0205F234(struct ScriptState * state)
+{
+ _flag_clear(state, 0x979);
+}
+
+THUMB_FUNC BOOL FUN_0205F244(struct ScriptState * state)
+{
+ return _flag_check(state, 0x979);
+}
+
+THUMB_FUNC void FUN_0205F254(struct ScriptState * state)
+{
+ _flag_clear(state, 0x994);
+}
+
+THUMB_FUNC BOOL FUN_0205F264(struct ScriptState * state, u32 op)
+{
+ return _flag_op(state, op, 0x962);
+}
+
+THUMB_FUNC void FUN_0205F274(struct ScriptState * state)
+{
+ _flag_set(state, 0x97A);
+}
+
+THUMB_FUNC void FUN_0205F284(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97A);
+}
+
+THUMB_FUNC BOOL FUN_0205F294(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97A);
+}
+
+THUMB_FUNC void FUN_0205F2A4(struct ScriptState * state)
+{
+ _flag_set(state, 0x97B);
+}
+
+THUMB_FUNC void FUN_0205F2B4(struct ScriptState * state)
+{
+ _flag_clear(state, 0x97B);
+}
+
+THUMB_FUNC BOOL FUN_0205F2C4(struct ScriptState * state)
+{
+ return _flag_check(state, 0x97B);
+}
+
+THUMB_FUNC BOOL FUN_0205F2D4(struct ScriptState * state, u32 op)
+{
+ return _flag_op(state, op, 0x963);
+}
+
+THUMB_FUNC BOOL FUN_0205F2E4(struct ScriptState * state, u32 op, u16 flag_id)
+{
+ GF_ASSERT(flag_id < 69);
+ return _flag_op(state, op, 0x9B0 + flag_id);
+}
+
+THUMB_FUNC void FUN_0205F304(struct ScriptState * state)
+{
+ _flag_set(state, 0x98C);
+}
diff --git a/arm9/src/unk_0206015C.c b/arm9/src/unk_0206015C.c index a217f52c..0bf3a15a 100644 --- a/arm9/src/unk_0206015C.c +++ b/arm9/src/unk_0206015C.c @@ -21,7 +21,7 @@ extern THUMB_FUNC void MOD06_02245190(u32); extern THUMB_FUNC void MOD06_02245198(u8, u32); extern THUMB_FUNC u32 MOD06_022451F0(u32); -extern THUMB_FUNC void FUN_020054C8(u32); +extern THUMB_FUNC void PlaySE(u32); extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32); extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*); extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *); @@ -97,7 +97,7 @@ THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C *unkStruct0) MOD06_02244DC4(unkStruct1->unk0, unkAddr); MOD06_02244EF8(unkStruct1->unk0); unkStruct1->unkE = 0; - FUN_020054C8(1657); + PlaySE(1657); FUN_0204C1B4(unkStruct0, 0x3, 0x11, 0x0000FFFF, 0, 6, 1, 0xb); unkStruct1->action = 5; } @@ -117,7 +117,7 @@ THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C *unkStruct0) MOD06_02245198(unkStruct1->unkD, unkStruct1->unk4); unkStruct1->unk8 = MOD06_022451F0(unkStruct1->unk4); - FUN_020054C8(1657); + PlaySE(1657); FUN_0204C1B4(unkStruct0, 0x3, 0x10, 0x0000FFFF, 0, 6, 1, 0xb); unkStruct1->action = 6; break; diff --git a/arm9/src/unk_020851B8.c b/arm9/src/unk_020851B8.c new file mode 100644 index 00000000..922ca2e4 --- /dev/null +++ b/arm9/src/unk_020851B8.c @@ -0,0 +1,45 @@ +#include "global.h" +#include "unk_020851B8.h" +#include "constants/items.h" +#include "heap.h" + +THUMB_FUNC struct UnkStruct_020851B8 *FUN_020851B8(u32 heap_id) +{ + struct UnkStruct_020851B8 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_020851B8)); + __builtin__clear(ptr, sizeof(struct UnkStruct_020851B8)); + return ptr; +} + +THUMB_FUNC void FUN_020851DC(struct UnkStruct_020851B8 *param0, u16 item_id, BOOL param2) +{ + u16 berry_id = item_id - FIRST_BERRY_IDX; + FUN_02085200(param0, berry_id); + + if (param2 == TRUE) + { + param0->unk_8 = berry_id; + } +} + +THUMB_FUNC void FUN_020851F8(struct UnkStruct_020851B8 *param0, u8 param1, u8 param2, u8 param3) +{ + param0->unk_9 = param1; + param0->unk_A = param2; + param0->unk_B = param3; +} + +THUMB_FUNC void FUN_02085200(struct UnkStruct_020851B8 *param0, u16 berry_id) +{ + param0->flags[berry_id / 32] |= 1 << (berry_id % 32); +} + +THUMB_FUNC u8 FUN_02085224(struct UnkStruct_020851B8 *param0, u16 berry_id) +{ + return param0->flags[berry_id / 32] & (1 << (berry_id % 32)) ? 1 : 0; +} + +THUMB_FUNC void FUN_0208524C(struct UnkStruct_020851B8 *param0, u8 *param1, u8 *param2) +{ + *param1 = param0->unk_9; + *param2 = param0->unk_A; +} diff --git a/arm9/src/unk_02085338.c b/arm9/src/unk_02085338.c new file mode 100644 index 00000000..b22b3974 --- /dev/null +++ b/arm9/src/unk_02085338.c @@ -0,0 +1,165 @@ +#include "global.h"
+#include "heap.h"
+#include "event_data.h"
+#include "unk_02085338.h"
+
+extern BOOL FUN_0205ED0C(struct ScriptState * state);
+
+THUMB_FUNC struct UnkStruct_02085338 * FUN_02085338(u8 r5, u8 r7, struct SaveBlock2 * sav2, u32 heap_id)
+{
+ struct UnkStruct_02085338 * ret = (struct UnkStruct_02085338 *) AllocFromHeap(heap_id, sizeof(struct UnkStruct_02085338));
+ ret->unk_00 = r5;
+ ret->unk_01 = r7;
+ ret->unk_0c = Sav2_Pokedex_get(sav2);
+ ret->unk_10 = FUN_02013B5C(sav2);
+ ret->unk_04 = (u8)FUN_0205ED0C(SavArray_Flags_get(sav2));
+ ret->unk_05 = 0;
+ ret->unk_02 = 1;
+ ret->unk_03 = 0;
+ ret->unk_08 = Options_GetFrame(Sav2_PlayerData_GetOptionsAddr(sav2));
+ if (r5 == 2)
+ {
+ MailMsg_init_withBank(&ret->unk_14, 3);
+ }
+ else
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ ret->unk_1c[i] = 0xFFFF;
+ }
+ }
+ return ret;
+}
+
+THUMB_FUNC void FUN_020853A8(struct UnkStruct_02085338 * ptr)
+{
+ FreeToHeap(ptr);
+}
+
+THUMB_FUNC void FUN_020853B0(struct UnkStruct_02085338 * ptr, u16 a1)
+{
+ ptr->unk_1c[0] = a1;
+}
+
+THUMB_FUNC void FUN_020853B4(struct UnkStruct_02085338 * ptr, u16 a1, u16 a2)
+{
+ ptr->unk_1c[0] = a1;
+ ptr->unk_1c[1] = a2;
+}
+
+THUMB_FUNC void FUN_020853BC(struct UnkStruct_02085338 * ptr, const struct MailMessage * a1)
+{
+ ptr->unk_14 = *a1;
+}
+
+THUMB_FUNC void FUN_020853D0(struct UnkStruct_02085338 * ptr)
+{
+ ptr->unk_02 = 1;
+ ptr->unk_03 = 0;
+}
+
+THUMB_FUNC void FUN_020853DC(struct UnkStruct_02085338 * ptr)
+{
+ ptr->unk_05 = 1;
+}
+
+THUMB_FUNC u8 FUN_020853E4(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_02;
+}
+
+THUMB_FUNC u8 FUN_020853E8(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_03;
+}
+
+THUMB_FUNC u16 FUN_020853EC(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_1c[0];
+}
+
+THUMB_FUNC void FUN_020853F0(struct UnkStruct_02085338 * ptr, u16 * a1)
+{
+ a1[0] = ptr->unk_1c[0];
+ a1[1] = ptr->unk_1c[1];
+}
+
+THUMB_FUNC void FUN_020853FC(struct UnkStruct_02085338 * ptr, struct MailMessage * a1)
+{
+ return MailMsg_copy(a1, &ptr->unk_14);
+}
+
+THUMB_FUNC u8 FUN_0208540C(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_00;
+}
+
+THUMB_FUNC u8 FUN_02085410(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_01;
+}
+
+THUMB_FUNC u32 FUN_02085414(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_08;
+}
+
+THUMB_FUNC struct Pokedex * FUN_02085418(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_0c;
+}
+
+THUMB_FUNC struct UnkStruct_02013B28 * FUN_0208541C(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_10;
+}
+
+THUMB_FUNC u8 FUN_02085420(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_04;
+}
+
+THUMB_FUNC u8 FUN_02085424(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_05;
+}
+
+THUMB_FUNC void FUN_02085428(struct UnkStruct_02085338 * ptr, u16 * a1, struct MailMessage * a2)
+{
+ switch (ptr->unk_00)
+ {
+ case 0:
+ a1[0] = ptr->unk_1c[0];
+ break;
+ case 1:
+ a1[0] = ptr->unk_1c[0];
+ a1[1] = ptr->unk_1c[1];
+ break;
+ case 2:
+ *a2 = ptr->unk_14;
+ break;
+ }
+}
+
+THUMB_FUNC BOOL FUN_0208545C(struct UnkStruct_02085338 * ptr, const u16 * a1, const struct MailMessage * a2)
+{
+ switch (ptr->unk_00)
+ {
+ case 0:
+ return a1[0] == ptr->unk_1c[0];
+ case 1:
+ return a1[0] == ptr->unk_1c[0] && a1[1] == ptr->unk_1c[1];
+ case 2:
+ default:
+ return MailMsg_compare(&ptr->unk_14, a2);
+ }
+}
+
+THUMB_FUNC void FUN_020854A0(struct UnkStruct_02085338 * r5, u16 * r4, struct MailMessage * r6)
+{
+ r5->unk_03 = (u8)(!FUN_0208545C(r5, r4, r6) ? 1 : 0);
+ r5->unk_02 = 0;
+ for (int i = 0; i < 2; i++)
+ r5->unk_1c[i] = r4[i];
+ r5->unk_14 = *r6;
+}
diff --git a/arm9/src/unk_02088AAC.c b/arm9/src/unk_02088AAC.c new file mode 100644 index 00000000..c0419e09 --- /dev/null +++ b/arm9/src/unk_02088AAC.c @@ -0,0 +1,185 @@ +#include "global.h" +#include "unk_02088AAC.h" +#include "heap.h" +#include "overlay_manager.h" +#include "unk_020851B8.h" + +extern BOOL MOD68_021D74E0(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD68_021D75D8(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD68_021D762C(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD73_021D74F0(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD73_021D758C(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD73_021D7640(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD75_021E6BA0(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD75_021E6D6C(struct UnkStruct_02006234 *, u32 *); +extern BOOL MOD75_021E6F00(struct UnkStruct_02006234 *, u32 *); + +extern BOOL FUN_0208898C(struct UnkStruct_02006234 **r0); + +THUMB_FUNC u32 FUN_02088AAC(struct UnkStruct_02088AAC *r0, u32 *r1) +{ + switch (*r1) + { + case 0: + *r1 = FUN_02088B4C(r0); + break; + case 1: + *r1 = FUN_02088BA8(r0); + break; + case 2: + *r1 = FUN_02088C3C(r0); + break; + case 3: + *r1 = FUN_02088CDC(r0); + break; + case 4: + return 1; + case 5: + return 4; + } + + return 0; +} + +THUMB_FUNC u32 FUN_02088AFC(struct UnkStruct_02088AAC *r0) +{ + FS_EXTERN_OVERLAY(MODULE_73); + + const struct Unk21DBE18 OVERLAY_73_MANAGER = { .unk0 = MOD73_021D74F0, + .unk4 = MOD73_021D758C, + .unk8 = MOD73_021D7640, + .ovly = FS_OVERLAY_ID(MODULE_73) }; + r0->ovly_data = OverlayManager_new(&OVERLAY_73_MANAGER, (s32 *)r0, r0->heap_id); + + return 2; +} + +THUMB_FUNC u32 FUN_02088B28(struct UnkStruct_02088AAC *r0) +{ + if (!FUN_0208898C(&r0->ovly_data)) + { + return 2; + } + + if (r0->unk20 == TRUE) + { + return 0; + } + + return 3; +} + +THUMB_FUNC u32 FUN_02088B48() +{ + return 4; +} + +THUMB_FUNC u32 FUN_02088B4C(struct UnkStruct_02088AAC *r0) +{ + FS_EXTERN_OVERLAY(MODULE_75); + + static const u8 UNK_020FD6F4[] = { 0x04, 0xFF }; + const struct Unk21DBE18 OVERLAY_75_MANAGER = { .unk0 = MOD75_021E6BA0, + .unk4 = MOD75_021E6D6C, + .unk8 = MOD75_021E6F00, + .ovly = FS_OVERLAY_ID(MODULE_75) }; + struct BagView *bag_view = CreateBagView(r0->unk10->bag, UNK_020FD6F4, r0->heap_id); + + FUN_0206E314(bag_view, r0->unk10->sav2, (u8)((u8)r0->unk06 == 1 ? 5 : 4), r0->unk0C); + + r0->ovly_data = OverlayManager_new(&OVERLAY_75_MANAGER, (s32 *)bag_view, r0->heap_id); + r0->ovly_param = bag_view; + + return 1; +} + +THUMB_FUNC u32 FUN_02088BA8(struct UnkStruct_02088AAC *r0) +{ + if (!FUN_0208898C(&r0->ovly_data)) + { + return 1; + } + + struct BagView *bag_view = BagView_New((u8)r0->heap_id); + + memcpy(bag_view, r0->ovly_param, BagView_sizeof()); + FreeToHeap(r0->ovly_param); + + r0->ovly_param = NULL; + r0->item = FUN_0206E37C(bag_view); + + FreeToHeap(bag_view); + + switch (FUN_0206E384(bag_view)) + { + case 1: + return 2; + case 5: + return 5; + default: + GF_AssertFail(); + r0->item = FIRST_BERRY_IDX; + case 0: + case 2: + case 3: + case 4: + GF_ASSERT(Bag_TakeItem(r0->unk10->bag, (u16)r0->item, 1, r0->heap_id)); + return 4; + } +} + +THUMB_FUNC u32 FUN_02088C3C(struct UnkStruct_02088AAC *r0) +{ + FS_EXTERN_OVERLAY(MODULE_68); + + struct Bag *bag = r0->unk10->bag; + const struct Unk21DBE18 OVERLAY_68_MANAGER = { .unk0 = MOD68_021D74E0, + .unk4 = MOD68_021D75D8, + .unk8 = MOD68_021D762C, + .ovly = FS_OVERLAY_ID(MODULE_68) }; + + r0->ovly_param = FUN_020851B8((u8)r0->heap_id); + + FUN_020851DC(r0->ovly_param, (u16)r0->item, TRUE); + + u8 berry_count = 0; + for (u8 berry_id = 0; berry_id < (u8)NUM_BERRIES; berry_id++) + { + u8 item_id = (u8)BerryToItemId(berry_id); + if (Bag_HasItem(bag, item_id, 1, r0->heap_id) == TRUE) + { + FUN_020851DC(r0->ovly_param, item_id, 0); + + berry_count++; + } + } + + u8 sp5; + u8 sp6; + + FUN_0206F17C(r0->unk0C, 4, &sp6, &sp5); + FUN_020851F8(r0->ovly_param, sp5, sp6, (u8)(berry_count + 2)); + + r0->ovly_data = OverlayManager_new(&OVERLAY_68_MANAGER, (s32 *)r0->ovly_param, r0->heap_id); + + return 3; +} + +THUMB_FUNC u32 FUN_02088CDC(struct UnkStruct_02088AAC *r0) +{ + if (!FUN_0208898C(&r0->ovly_data)) + { + return 3; + } + + u8 sp0; + u8 sp1; + + FUN_0208524C(r0->ovly_param, &sp0, &sp1); + FUN_0206F190(r0->unk0C, 4, sp1, sp0); + FreeToHeap(r0->ovly_param); + + r0->ovly_param = NULL; + + return 0; +} diff --git a/files/data/mmodel/fldeff/narc_0012.bin b/files/data/mmodel/fldeff/narc_0012.NSBTX Binary files differindex 274610d1..274610d1 100644 --- a/files/data/mmodel/fldeff/narc_0012.bin +++ b/files/data/mmodel/fldeff/narc_0012.NSBTX diff --git a/files/data/mmodel/fldeff/narc_0013.bin b/files/data/mmodel/fldeff/narc_0013.NSBTX Binary files differindex 719146e3..719146e3 100644 --- a/files/data/mmodel/fldeff/narc_0013.bin +++ b/files/data/mmodel/fldeff/narc_0013.NSBTX diff --git a/files/data/mmodel/fldeff/narc_0014.bin b/files/data/mmodel/fldeff/narc_0014.NSBTX Binary files differindex 472bdcb2..472bdcb2 100644 --- a/files/data/mmodel/fldeff/narc_0014.bin +++ b/files/data/mmodel/fldeff/narc_0014.NSBTX diff --git a/files/data/mmodel/fldeff/narc_0015.bin b/files/data/mmodel/fldeff/narc_0015.NSBMD Binary files differindex 410bf936..410bf936 100644 --- a/files/data/mmodel/fldeff/narc_0015.bin +++ b/files/data/mmodel/fldeff/narc_0015.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0016.bin b/files/data/mmodel/fldeff/narc_0016.NSBMD Binary files differindex a395e353..a395e353 100644 --- a/files/data/mmodel/fldeff/narc_0016.bin +++ b/files/data/mmodel/fldeff/narc_0016.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0017.bin b/files/data/mmodel/fldeff/narc_0017.NSBMD Binary files differindex e06c315f..e06c315f 100644 --- a/files/data/mmodel/fldeff/narc_0017.bin +++ b/files/data/mmodel/fldeff/narc_0017.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0018.bin b/files/data/mmodel/fldeff/narc_0018.NSBMD Binary files differindex 382c5a96..382c5a96 100644 --- a/files/data/mmodel/fldeff/narc_0018.bin +++ b/files/data/mmodel/fldeff/narc_0018.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0019.bin b/files/data/mmodel/fldeff/narc_0019.NSBMD Binary files differindex 81a72937..81a72937 100644 --- a/files/data/mmodel/fldeff/narc_0019.bin +++ b/files/data/mmodel/fldeff/narc_0019.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0020.bin b/files/data/mmodel/fldeff/narc_0020.NSBMD Binary files differindex b9ef2f24..b9ef2f24 100644 --- a/files/data/mmodel/fldeff/narc_0020.bin +++ b/files/data/mmodel/fldeff/narc_0020.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0021.bin b/files/data/mmodel/fldeff/narc_0021.NSBMD Binary files differindex 9e979e30..9e979e30 100644 --- a/files/data/mmodel/fldeff/narc_0021.bin +++ b/files/data/mmodel/fldeff/narc_0021.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0022.bin b/files/data/mmodel/fldeff/narc_0022.NSBMD Binary files differindex 12a95c6d..12a95c6d 100644 --- a/files/data/mmodel/fldeff/narc_0022.bin +++ b/files/data/mmodel/fldeff/narc_0022.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0023.bin b/files/data/mmodel/fldeff/narc_0023.NSBMD Binary files differindex d885b2a7..d885b2a7 100644 --- a/files/data/mmodel/fldeff/narc_0023.bin +++ b/files/data/mmodel/fldeff/narc_0023.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0024.bin b/files/data/mmodel/fldeff/narc_0024.NSBMD Binary files differindex a3b10045..a3b10045 100644 --- a/files/data/mmodel/fldeff/narc_0024.bin +++ b/files/data/mmodel/fldeff/narc_0024.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0025.bin b/files/data/mmodel/fldeff/narc_0025.NSBMD Binary files differindex 617c7861..617c7861 100644 --- a/files/data/mmodel/fldeff/narc_0025.bin +++ b/files/data/mmodel/fldeff/narc_0025.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0026.bin b/files/data/mmodel/fldeff/narc_0026.NSBMD Binary files differindex 878344a4..878344a4 100644 --- a/files/data/mmodel/fldeff/narc_0026.bin +++ b/files/data/mmodel/fldeff/narc_0026.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0027.bin b/files/data/mmodel/fldeff/narc_0027.NSBMD Binary files differindex 1d63ab7b..1d63ab7b 100644 --- a/files/data/mmodel/fldeff/narc_0027.bin +++ b/files/data/mmodel/fldeff/narc_0027.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0028.bin b/files/data/mmodel/fldeff/narc_0028.NSBMD Binary files differindex babf5b3e..babf5b3e 100644 --- a/files/data/mmodel/fldeff/narc_0028.bin +++ b/files/data/mmodel/fldeff/narc_0028.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0029.bin b/files/data/mmodel/fldeff/narc_0029.NSBMD Binary files differindex 8928ada6..8928ada6 100644 --- a/files/data/mmodel/fldeff/narc_0029.bin +++ b/files/data/mmodel/fldeff/narc_0029.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0030.bin b/files/data/mmodel/fldeff/narc_0030.NSBMD Binary files differindex c4a501e1..c4a501e1 100644 --- a/files/data/mmodel/fldeff/narc_0030.bin +++ b/files/data/mmodel/fldeff/narc_0030.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0031.bin b/files/data/mmodel/fldeff/narc_0031.NSBMD Binary files differindex e69da023..e69da023 100644 --- a/files/data/mmodel/fldeff/narc_0031.bin +++ b/files/data/mmodel/fldeff/narc_0031.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0032.bin b/files/data/mmodel/fldeff/narc_0032.NSBMD Binary files differindex 5119f07f..5119f07f 100644 --- a/files/data/mmodel/fldeff/narc_0032.bin +++ b/files/data/mmodel/fldeff/narc_0032.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0033.bin b/files/data/mmodel/fldeff/narc_0033.NSBMD Binary files differindex 0669c9d9..0669c9d9 100644 --- a/files/data/mmodel/fldeff/narc_0033.bin +++ b/files/data/mmodel/fldeff/narc_0033.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0034.bin b/files/data/mmodel/fldeff/narc_0034.NSBMD Binary files differindex 008feee3..008feee3 100644 --- a/files/data/mmodel/fldeff/narc_0034.bin +++ b/files/data/mmodel/fldeff/narc_0034.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0035.bin b/files/data/mmodel/fldeff/narc_0035.NSBMD Binary files differindex ffd79f3a..ffd79f3a 100644 --- a/files/data/mmodel/fldeff/narc_0035.bin +++ b/files/data/mmodel/fldeff/narc_0035.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0036.bin b/files/data/mmodel/fldeff/narc_0036.NSBMD Binary files differindex 9834ab90..9834ab90 100644 --- a/files/data/mmodel/fldeff/narc_0036.bin +++ b/files/data/mmodel/fldeff/narc_0036.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0037.bin b/files/data/mmodel/fldeff/narc_0037.NSBMD Binary files differindex 919c2265..919c2265 100644 --- a/files/data/mmodel/fldeff/narc_0037.bin +++ b/files/data/mmodel/fldeff/narc_0037.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0038.bin b/files/data/mmodel/fldeff/narc_0038.NSBMD Binary files differindex 8f8e7b00..8f8e7b00 100644 --- a/files/data/mmodel/fldeff/narc_0038.bin +++ b/files/data/mmodel/fldeff/narc_0038.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0039.bin b/files/data/mmodel/fldeff/narc_0039.NSBMD Binary files differindex dc42dd00..dc42dd00 100644 --- a/files/data/mmodel/fldeff/narc_0039.bin +++ b/files/data/mmodel/fldeff/narc_0039.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0040.bin b/files/data/mmodel/fldeff/narc_0040.NSBMD Binary files differindex f9ac63f3..f9ac63f3 100644 --- a/files/data/mmodel/fldeff/narc_0040.bin +++ b/files/data/mmodel/fldeff/narc_0040.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0041.bin b/files/data/mmodel/fldeff/narc_0041.NSBMD Binary files differindex 2fba5304..2fba5304 100644 --- a/files/data/mmodel/fldeff/narc_0041.bin +++ b/files/data/mmodel/fldeff/narc_0041.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0042.bin b/files/data/mmodel/fldeff/narc_0042.NSBMD Binary files differindex fe6c1ce0..fe6c1ce0 100644 --- a/files/data/mmodel/fldeff/narc_0042.bin +++ b/files/data/mmodel/fldeff/narc_0042.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0043.bin b/files/data/mmodel/fldeff/narc_0043.NSBMD Binary files differindex c0277fd5..c0277fd5 100644 --- a/files/data/mmodel/fldeff/narc_0043.bin +++ b/files/data/mmodel/fldeff/narc_0043.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0044.bin b/files/data/mmodel/fldeff/narc_0044.NSBMD Binary files differindex 0e5cdf8e..0e5cdf8e 100644 --- a/files/data/mmodel/fldeff/narc_0044.bin +++ b/files/data/mmodel/fldeff/narc_0044.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0045.bin b/files/data/mmodel/fldeff/narc_0045.NSBMD Binary files differindex d6462c76..d6462c76 100644 --- a/files/data/mmodel/fldeff/narc_0045.bin +++ b/files/data/mmodel/fldeff/narc_0045.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0046.bin b/files/data/mmodel/fldeff/narc_0046.NSBMD Binary files differindex 6bbda15e..6bbda15e 100644 --- a/files/data/mmodel/fldeff/narc_0046.bin +++ b/files/data/mmodel/fldeff/narc_0046.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0047.bin b/files/data/mmodel/fldeff/narc_0047.NSBMD Binary files differindex e0324eed..e0324eed 100644 --- a/files/data/mmodel/fldeff/narc_0047.bin +++ b/files/data/mmodel/fldeff/narc_0047.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0048.bin b/files/data/mmodel/fldeff/narc_0048.NSBMD Binary files differindex 65ee3fda..65ee3fda 100644 --- a/files/data/mmodel/fldeff/narc_0048.bin +++ b/files/data/mmodel/fldeff/narc_0048.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0049.bin b/files/data/mmodel/fldeff/narc_0049.NSBMD Binary files differindex 4e09879c..4e09879c 100644 --- a/files/data/mmodel/fldeff/narc_0049.bin +++ b/files/data/mmodel/fldeff/narc_0049.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0050.bin b/files/data/mmodel/fldeff/narc_0050.NSBMD Binary files differindex 629eb1b4..629eb1b4 100644 --- a/files/data/mmodel/fldeff/narc_0050.bin +++ b/files/data/mmodel/fldeff/narc_0050.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0051.bin b/files/data/mmodel/fldeff/narc_0051.NSBMD Binary files differindex 360941fc..360941fc 100644 --- a/files/data/mmodel/fldeff/narc_0051.bin +++ b/files/data/mmodel/fldeff/narc_0051.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0052.bin b/files/data/mmodel/fldeff/narc_0052.NSBMD Binary files differindex 8e0d0fb8..8e0d0fb8 100644 --- a/files/data/mmodel/fldeff/narc_0052.bin +++ b/files/data/mmodel/fldeff/narc_0052.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0053.bin b/files/data/mmodel/fldeff/narc_0053.NSBMD Binary files differindex c0141f83..c0141f83 100644 --- a/files/data/mmodel/fldeff/narc_0053.bin +++ b/files/data/mmodel/fldeff/narc_0053.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0054.bin b/files/data/mmodel/fldeff/narc_0054.NSBMD Binary files differindex 18a6ab39..18a6ab39 100644 --- a/files/data/mmodel/fldeff/narc_0054.bin +++ b/files/data/mmodel/fldeff/narc_0054.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0055.bin b/files/data/mmodel/fldeff/narc_0055.NSBMD Binary files differindex 3406b440..3406b440 100644 --- a/files/data/mmodel/fldeff/narc_0055.bin +++ b/files/data/mmodel/fldeff/narc_0055.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0056.bin b/files/data/mmodel/fldeff/narc_0056.NSBMD Binary files differindex e2ab3c0b..e2ab3c0b 100644 --- a/files/data/mmodel/fldeff/narc_0056.bin +++ b/files/data/mmodel/fldeff/narc_0056.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0057.bin b/files/data/mmodel/fldeff/narc_0057.NSBMD Binary files differindex c8ce8fda..c8ce8fda 100644 --- a/files/data/mmodel/fldeff/narc_0057.bin +++ b/files/data/mmodel/fldeff/narc_0057.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0058.bin b/files/data/mmodel/fldeff/narc_0058.NSBMD Binary files differindex 594e0e82..594e0e82 100644 --- a/files/data/mmodel/fldeff/narc_0058.bin +++ b/files/data/mmodel/fldeff/narc_0058.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0059.bin b/files/data/mmodel/fldeff/narc_0059.NSBMD Binary files differindex c4e2cf3b..c4e2cf3b 100644 --- a/files/data/mmodel/fldeff/narc_0059.bin +++ b/files/data/mmodel/fldeff/narc_0059.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0103.bin b/files/data/mmodel/fldeff/narc_0103.NSBMD Binary files differindex a47d56ba..a47d56ba 100644 --- a/files/data/mmodel/fldeff/narc_0103.bin +++ b/files/data/mmodel/fldeff/narc_0103.NSBMD diff --git a/files/data/mmodel/fldeff/narc_0104.bin b/files/data/mmodel/fldeff/narc_0104.NSBMD Binary files differindex b0f3dafb..b0f3dafb 100644 --- a/files/data/mmodel/fldeff/narc_0104.bin +++ b/files/data/mmodel/fldeff/narc_0104.NSBMD diff --git a/files/data/mmodel/mmodel/narc_0001.bin b/files/data/mmodel/mmodel/narc_0001.NSBTX Binary files differindex 4558d46b..4558d46b 100644 --- a/files/data/mmodel/mmodel/narc_0001.bin +++ b/files/data/mmodel/mmodel/narc_0001.NSBTX diff --git a/files/data/mmodel/mmodel/narc_0002.bin b/files/data/mmodel/mmodel/narc_0002.NSBTX Binary files differindex c9d4ea6d..c9d4ea6d 100644 --- a/files/data/mmodel/mmodel/narc_0002.bin +++ b/files/data/mmodel/mmodel/narc_0002.NSBTX diff --git a/files/data/mmodel/mmodel/narc_0003.bin b/files/data/mmodel/mmodel/narc_0003.NSBTX Binary files differindex b419b265..b419b265 100644 --- a/files/data/mmodel/mmodel/narc_0003.bin +++ b/files/data/mmodel/mmodel/narc_0003.NSBTX diff --git a/files/data/mmodel/mmodel/narc_0004.bin b/files/data/mmodel/mmodel/narc_0004.NSBTX Binary files differindex 340e7cf7..340e7cf7 100644 --- a/files/data/mmodel/mmodel/narc_0004.bin +++ b/files/data/mmodel/mmodel/narc_0004.NSBTX diff --git a/files/data/mmodel/mmodel/narc_0005.bin b/files/data/mmodel/mmodel/narc_0005.NSBTX Binary files differindex 92d5ffbd..92d5ffbd 100644 --- a/files/data/mmodel/mmodel/narc_0005.bin +++ b/files/data/mmodel/mmodel/narc_0005.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0000.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0000.NSBTX Binary files differindex 6089ee48..6089ee48 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0000.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0000.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0001.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0001.NSBTX Binary files differindex becb97b7..becb97b7 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0001.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0001.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0002.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0002.NSBTX Binary files differindex 7868c199..7868c199 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0002.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0002.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0003.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0003.NSBTX Binary files differindex d5d1028f..d5d1028f 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0003.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0003.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0004.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0004.NSBTX Binary files differindex d8598e1a..d8598e1a 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0004.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0004.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0005.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0005.NSBTX Binary files differindex ef603e0f..ef603e0f 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0005.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0005.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0006.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0006.NSBTX Binary files differindex 90cab132..90cab132 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0006.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0006.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0007.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0007.NSBTX Binary files differindex 36c988fc..36c988fc 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0007.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0007.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0008.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0008.NSBTX Binary files differindex a46fff6c..a46fff6c 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0008.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0008.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0009.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0009.NSBTX Binary files differindex 6bb10353..6bb10353 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0009.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0009.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0010.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0010.NSBTX Binary files differindex 3ec999d3..3ec999d3 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0010.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0010.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0011.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0011.NSBTX Binary files differindex 19e7a9e9..19e7a9e9 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0011.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0011.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0012.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0012.NSBTX Binary files differindex 70354f04..70354f04 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0012.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0012.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0013.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0013.NSBTX Binary files differindex 2790f7a6..2790f7a6 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0013.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0013.NSBTX diff --git a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0014.bin b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0014.NSBTX Binary files differindex 314da651..314da651 100644 --- a/files/fielddata/areadata/area_build_model/areabm_texset/narc_0014.bin +++ b/files/fielddata/areadata/area_build_model/areabm_texset/narc_0014.NSBTX diff --git a/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0000.bin b/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0000.NSBTX Binary files differindex ac02e25b..ac02e25b 100644 --- a/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0000.bin +++ b/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0000.NSBTX diff --git a/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0001.bin b/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0001.NSBTX Binary files differindex a848c8f1..a848c8f1 100644 --- a/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0001.bin +++ b/files/fielddata/areadata/area_map_tex/map_tex_set/narc_0001.NSBTX diff --git a/files/fielddata/build_model/build_model/narc_0000.bin b/files/fielddata/build_model/build_model/narc_0000.NSBMD Binary files differindex df429436..df429436 100644 --- a/files/fielddata/build_model/build_model/narc_0000.bin +++ b/files/fielddata/build_model/build_model/narc_0000.NSBMD diff --git a/files/fielddata/build_model/build_model/narc_0001.bin b/files/fielddata/build_model/build_model/narc_0001.NSMBD Binary files differindex fed4005f..fed4005f 100644 --- a/files/fielddata/build_model/build_model/narc_0001.bin +++ b/files/fielddata/build_model/build_model/narc_0001.NSMBD diff --git a/files/fielddata/build_model/build_model/narc_0002.bin b/files/fielddata/build_model/build_model/narc_0002.NSBMD Binary files differindex 69993312..69993312 100644 --- a/files/fielddata/build_model/build_model/narc_0002.bin +++ b/files/fielddata/build_model/build_model/narc_0002.NSBMD diff --git a/files/fielddata/build_model/build_model/narc_0003.bin b/files/fielddata/build_model/build_model/narc_0003.NSBMD Binary files differindex e908385d..e908385d 100644 --- a/files/fielddata/build_model/build_model/narc_0003.bin +++ b/files/fielddata/build_model/build_model/narc_0003.NSBMD diff --git a/files/fielddata/build_model/build_model/narc_0004.bin b/files/fielddata/build_model/build_model/narc_0004.NSBMD Binary files differindex 147bf45b..147bf45b 100644 --- a/files/fielddata/build_model/build_model/narc_0004.bin +++ b/files/fielddata/build_model/build_model/narc_0004.NSBMD diff --git a/files/fielddata/build_model/build_model/narc_0005.bin b/files/fielddata/build_model/build_model/narc_0005.NSBMD Binary files differindex 944dc2bd..944dc2bd 100644 --- a/files/fielddata/build_model/build_model/narc_0005.bin +++ b/files/fielddata/build_model/build_model/narc_0005.NSBMD diff --git a/files/fielddata/build_model/build_model/narc_0006.bin b/files/fielddata/build_model/build_model/narc_0006.NSBMD Binary files differindex 933c5d1d..933c5d1d 100644 --- a/files/fielddata/build_model/build_model/narc_0006.bin +++ b/files/fielddata/build_model/build_model/narc_0006.NSBMD diff --git a/files/graphic/demo_trade/narc_0027.bin b/files/graphic/demo_trade/narc_0027.NSBMD Binary files differindex 3de52aa4..3de52aa4 100644 --- a/files/graphic/demo_trade/narc_0027.bin +++ b/files/graphic/demo_trade/narc_0027.NSBMD diff --git a/files/graphic/ending/narc_0000.bin b/files/graphic/ending/narc_0000.NSBMD Binary files differindex 19bc6489..19bc6489 100644 --- a/files/graphic/ending/narc_0000.bin +++ b/files/graphic/ending/narc_0000.NSBMD diff --git a/files/graphic/ending/narc_0001.bin b/files/graphic/ending/narc_0001.NSBMD Binary files differindex beb0ec8b..beb0ec8b 100644 --- a/files/graphic/ending/narc_0001.bin +++ b/files/graphic/ending/narc_0001.NSBMD diff --git a/files/graphic/ending/narc_0002.bin b/files/graphic/ending/narc_0002.NSBMD Binary files differindex 093d1a9d..093d1a9d 100644 --- a/files/graphic/ending/narc_0002.bin +++ b/files/graphic/ending/narc_0002.NSBMD diff --git a/files/graphic/ending/narc_0003.bin b/files/graphic/ending/narc_0003.NSBTA Binary files differindex bc2ec208..bc2ec208 100644 --- a/files/graphic/ending/narc_0003.bin +++ b/files/graphic/ending/narc_0003.NSBTA diff --git a/files/graphic/ev_pokeselect/narc_0000.bin b/files/graphic/ev_pokeselect/narc_0000.NSBCA Binary files differindex 4d53e5bf..4d53e5bf 100644 --- a/files/graphic/ev_pokeselect/narc_0000.bin +++ b/files/graphic/ev_pokeselect/narc_0000.NSBCA diff --git a/files/graphic/ev_pokeselect/narc_0001.bin b/files/graphic/ev_pokeselect/narc_0001.NSBMD Binary files differindex be54bee3..be54bee3 100644 --- a/files/graphic/ev_pokeselect/narc_0001.bin +++ b/files/graphic/ev_pokeselect/narc_0001.NSBMD diff --git a/files/graphic/ev_pokeselect/narc_0002.bin b/files/graphic/ev_pokeselect/narc_0002.NSBCA Binary files differindex 16adb461..16adb461 100644 --- a/files/graphic/ev_pokeselect/narc_0002.bin +++ b/files/graphic/ev_pokeselect/narc_0002.NSBCA diff --git a/files/graphic/ev_pokeselect/narc_0003.bin b/files/graphic/ev_pokeselect/narc_0003.NSBMD Binary files differindex 3d515b2d..3d515b2d 100644 --- a/files/graphic/ev_pokeselect/narc_0003.bin +++ b/files/graphic/ev_pokeselect/narc_0003.NSBMD diff --git a/files/graphic/ev_pokeselect/narc_0004.bin b/files/graphic/ev_pokeselect/narc_0004.NSBCA Binary files differindex 785d6908..785d6908 100644 --- a/files/graphic/ev_pokeselect/narc_0004.bin +++ b/files/graphic/ev_pokeselect/narc_0004.NSBCA diff --git a/files/graphic/ev_pokeselect/narc_0005.bin b/files/graphic/ev_pokeselect/narc_0005.NSBMD Binary files differindex 748dc501..748dc501 100644 --- a/files/graphic/ev_pokeselect/narc_0005.bin +++ b/files/graphic/ev_pokeselect/narc_0005.NSBMD diff --git a/files/graphic/ev_pokeselect/narc_0006.bin b/files/graphic/ev_pokeselect/narc_0006.NSBCA Binary files differindex 94bca388..94bca388 100644 --- a/files/graphic/ev_pokeselect/narc_0006.bin +++ b/files/graphic/ev_pokeselect/narc_0006.NSBCA diff --git a/files/graphic/ev_pokeselect/narc_0007.bin b/files/graphic/ev_pokeselect/narc_0007.NSBMD Binary files differindex 10d233c8..10d233c8 100644 --- a/files/graphic/ev_pokeselect/narc_0007.bin +++ b/files/graphic/ev_pokeselect/narc_0007.NSBMD diff --git a/files/graphic/ev_pokeselect/narc_0008.bin b/files/graphic/ev_pokeselect/narc_0008.NSBMD Binary files differindex 80725591..80725591 100644 --- a/files/graphic/ev_pokeselect/narc_0008.bin +++ b/files/graphic/ev_pokeselect/narc_0008.NSBMD diff --git a/files/graphic/ev_pokeselect/narc_0009.bin b/files/graphic/ev_pokeselect/narc_0009.NSBMD Binary files differindex 23c5d394..23c5d394 100644 --- a/files/graphic/ev_pokeselect/narc_0009.bin +++ b/files/graphic/ev_pokeselect/narc_0009.NSBMD diff --git a/files/graphic/hiden_effect/narc_0000.bin b/files/graphic/hiden_effect/narc_0000.NSBCA Binary files differindex c12ead76..c12ead76 100644 --- a/files/graphic/hiden_effect/narc_0000.bin +++ b/files/graphic/hiden_effect/narc_0000.NSBCA diff --git a/files/graphic/hiden_effect/narc_0001.bin b/files/graphic/hiden_effect/narc_0001.NSBMA Binary files differindex 70263d42..70263d42 100644 --- a/files/graphic/hiden_effect/narc_0001.bin +++ b/files/graphic/hiden_effect/narc_0001.NSBMA diff --git a/files/graphic/hiden_effect/narc_0002.bin b/files/graphic/hiden_effect/narc_0002.NSBTA Binary files differindex d4066c4e..d4066c4e 100644 --- a/files/graphic/hiden_effect/narc_0002.bin +++ b/files/graphic/hiden_effect/narc_0002.NSBTA diff --git a/files/graphic/hiden_effect/narc_0003.bin b/files/graphic/hiden_effect/narc_0003.NSBMD Binary files differindex adec36ef..adec36ef 100644 --- a/files/graphic/hiden_effect/narc_0003.bin +++ b/files/graphic/hiden_effect/narc_0003.NSBMD diff --git a/files/graphic/poketch/.knarcignore b/files/graphic/poketch/.knarcignore index 2856080a..25285fc7 100644 --- a/files/graphic/poketch/.knarcignore +++ b/files/graphic/poketch/.knarcignore @@ -1,2 +1,4 @@ *.png *.pal +narc_0010.NCGR +narc_0011.NSCR diff --git a/files/graphic/poketch/narc_0010.bin b/files/graphic/poketch/narc_0010.bin Binary files differdeleted file mode 100644 index 75d87f58..00000000 --- a/files/graphic/poketch/narc_0010.bin +++ /dev/null diff --git a/files/graphic/poketch/narc_0010.png b/files/graphic/poketch/narc_0010.png Binary files differnew file mode 100644 index 00000000..0945423d --- /dev/null +++ b/files/graphic/poketch/narc_0010.png diff --git a/files/graphic/poketch/narc_0011.NSCR b/files/graphic/poketch/narc_0011.NSCR Binary files differindex 97830501..d2f5f9df 100644 --- a/files/graphic/poketch/narc_0011.NSCR +++ b/files/graphic/poketch/narc_0011.NSCR diff --git a/filesystem.mk b/filesystem.mk index 387231bf..ce072c9c 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -3262,6 +3262,10 @@ files/msgdata/msg.narc: \ files/msgdata/msg/narc_0622.bin \ files/msgdata/msg/narc_0623.bin +files/graphic/poketch.narc: \ + files/graphic/poketch/narc_0010.NCGR.lz \ + files/graphic/poketch/narc_0011.NSCR.lz + ## Trainer names files/msgdata/msg/narc_0559.txt: files/poketool/trainer/trdata.json (echo " -"; $(GREP) -w '"name":' $< | cut -d'"' -f4) | $(SED) 's/^(.+)$$/{TRNAME}\1\r/g' > $@ diff --git a/graphics_rules.mk b/graphics_rules.mk index 691a81f4..d36fa0c3 100644 --- a/graphics_rules.mk +++ b/graphics_rules.mk @@ -156,7 +156,8 @@ VERSION101_SOPC_8BPP_NCGR_FILES := files/demo/title/titledemo/narc_0001.NCGR \ VERSION101_SOPC_NCGR_FILES := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/demo/title/titledemo/narc_0007.NCGR \ files/demo/title/titledemo/narc_0011.NCGR \ - files/demo/title/titledemo/narc_0015.NCGR + files/demo/title/titledemo/narc_0015.NCGR \ + files/graphic/poketch/narc_0010.NCGR 8BPP_COMP10_NOPAD_NCLR_PNG_FILES := files/poketool/trgra/trbgra/narc_0000.NCLR \ files/poketool/trgra/trbgra/narc_0002.NCLR \ diff --git a/include/GX_layers.h b/include/GX_layers.h index 3943d582..03c20df6 100644 --- a/include/GX_layers.h +++ b/include/GX_layers.h @@ -3,12 +3,7 @@ #include "global.h" - -struct GX_LayerData -{ - u32 EngineB_DISPCNT_LayerMask; - u32 EngineA_DISPCNT_LayerMask; -}; +#include "gx.h" typedef enum { @@ -33,10 +28,10 @@ struct GraphicsBanks struct GraphicsModes { - u32 mode1; - u32 mode2; - u32 mode3; - u32 mode4; + GXDispMode dispMode; + GXBGMode bgMode; + GXBGMode subMode; + GXBG0As _2d3dMode; }; diff --git a/include/bag.h b/include/bag.h index 14735443..a785afc6 100644 --- a/include/bag.h +++ b/include/bag.h @@ -1,6 +1,7 @@ #ifndef POKEDIAMOND_BAG_H #define POKEDIAMOND_BAG_H +#include "bag_view.h" #include "itemtool.h" #include "save_block_2.h" @@ -17,13 +18,6 @@ struct Bag u32 registeredItem; }; -struct BagView -{ - struct ItemSlot * slots; - u32 count; - u8 pocket; -}; - struct UnkStruct_0206F164 { u8 unk_00[8]; diff --git a/include/bag_view.h b/include/bag_view.h new file mode 100644 index 00000000..423d2677 --- /dev/null +++ b/include/bag_view.h @@ -0,0 +1,56 @@ +#ifndef POKEDIAMOND_BAG_VIEW_H +#define POKEDIAMOND_BAG_VIEW_H + +#include "player_data.h" +#include "save_block_2.h" + +struct UnkStruct_0206F164; + +struct BagView_UnkSub +{ + struct ItemSlot *slot; + u8 padding[0x4]; + u8 pocket; + u8 padding2[0x3]; +}; // total size = 0xC + +struct BagView +{ + struct SaveBlock2 *sav2; + struct BagView_UnkSub slots[8]; + u8 padding; + u8 unk65; + u16 unk66; + u16 unk68; + u8 padding2[0x2]; + struct UnkStruct_0206F164 *unk6C; + u32 unk70; + u8 unk74; + u8 unk75; + u16 unk76 : 1; + u16 unk76_2 : 15; +}; // total size = 0x78 + +struct BagView *BagView_New(u8 heap_id); +u32 BagView_sizeof(); +void FUN_0206E30C(struct BagView *bag_view, u8 r1); +void FUN_0206E314( + struct BagView *bag_view, struct SaveBlock2 *sav2, u8 r2, struct UnkStruct_0206F164 *r3); +void BagView_SetItem(struct BagView *bag_view, struct ItemSlot *slot, u8 pocket, u8 idx); +void FUN_0206E340(struct BagView *bag_view); +void FUN_0206E354(struct BagView *bag_view, u32 r1); +void FUN_0206E358(struct BagView *bag_view, u8 r1); +void FUN_0206E360(struct BagView *bag_view, u16 r1); +u16 FUN_0206E37C(struct BagView *bag_view); +u16 FUN_0206E384(struct BagView *bag_view); +u8 FUN_0206E38C(struct BagView *bag_view); +u8 FUN_0206E394(struct BagView *bag_view); +u32 FUN_0206E39C(struct SaveBlock2 *sav2); +u32 FUN_0206E3A8(struct SaveBlock2 *sav2); +u32 FUN_0206E3C8(struct SaveBlock2 *sav2); +u32 FUN_0206E3D8(struct SaveBlock2 *sav2); +u32 FUN_0206E3E8(struct SaveBlock2 *sav2); +BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id); +void FUN_0206E51C(struct PlayerData *playerData, struct String *dest, u32 r2, u32 r3, u32 heap_id); + +#endif // POKEDIAMOND_BAG_VIEW_H diff --git a/include/bg_window.h b/include/bg_window.h new file mode 100644 index 00000000..24ed152b --- /dev/null +++ b/include/bg_window.h @@ -0,0 +1,424 @@ +#ifndef POKEDIAMOND_UNK_02016B94_H +#define POKEDIAMOND_UNK_02016B94_H + +#include "NNS_g2d.h" +#include "global.h" +#include "GX_layers.h" +#include "MI_uncompress.h" +#include "OS_cache.h" +#include "gx.h" +#include "heap.h" +#include "math_util.h" + +struct BgTemplate +{ + u32 x; + u32 y; + u32 bufferSize; + u32 baseTile; + + u8 size; + u8 colorMode; + u8 screenBase; + u8 charBase; + u8 bgExtPltt; + u8 priority; + u8 areaOver; + u8 unk17; // probably paddding + u32 mosaic; +}; + +struct Bg +{ + void *tilemapBuffer; + u32 bufferSize; + u32 baseTile; + + fx32 hOffset; + fx32 vOffset; + + u8 mode; + u8 size; + u8 colorMode; + u8 tileSize; + u16 rotation; + u16 unk22; // probably padding + fx32 xScale; + fx32 yScale; + fx32 centerX; + fx32 centerY; +}; + +struct BgConfig +{ + u32 heap_id; + u16 scrollScheduled; + u16 bufferTransferScheduled; + struct Bg bgs[8]; +}; + +struct Bitmap +{ + const u8 *pixels; + u16 width; + u16 height; +}; + +struct WindowTemplate +{ + u8 bgId; + u8 tilemapLeft; + u8 tilemapTop; + u8 width; + u8 height; + u8 paletteNum; + u16 baseTile; +}; + +struct Window +{ + struct BgConfig *bgConfig; + u8 bgId; + u8 tilemapLeft; + u8 tilemapTop; + u8 width; + u8 height; + u8 paletteNum; + u16 baseTile : 15; + u16 colorMode : 1; + void *pixelBuffer; +}; + +enum GFBppMode +{ + GF_BG_CLR_4BPP = 0, + GF_BG_CLR_8BPP, +}; + +enum GFBgLayer +{ + GF_BG_LYR_MAIN_0 = 0, + GF_BG_LYR_MAIN_1, + GF_BG_LYR_MAIN_2, + GF_BG_LYR_MAIN_3, + GF_BG_LYR_SUB_0, + GF_BG_LYR_SUB_1, + GF_BG_LYR_SUB_2, + GF_BG_LYR_SUB_3, + GF_BG_LYR_MAIN_CNT = 4, + GF_BG_LYR_SUB_CNT = 4, + GF_BG_LYR_MAIN_FIRST = GF_BG_LYR_MAIN_0, + GF_BG_LYR_SUB_FIRST = GF_BG_LYR_SUB_0, + + GF_BG_LYR_MAIN_0_F = 1 << (GF_BG_LYR_MAIN_0 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_1_F = 1 << (GF_BG_LYR_MAIN_1 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_2_F = 1 << (GF_BG_LYR_MAIN_2 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_3_F = 1 << (GF_BG_LYR_MAIN_3 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_SUB_0_F = 1 << (GF_BG_LYR_SUB_0 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_1_F = 1 << (GF_BG_LYR_SUB_1 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_2_F = 1 << (GF_BG_LYR_SUB_2 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_3_F = 1 << (GF_BG_LYR_SUB_3 - GF_BG_LYR_SUB_FIRST), + + GF_BG_LYR_UNALLOC = 0xFF, +}; + +enum GFBgType +{ + GF_BG_TYPE_TEXT = 0, + GF_BG_TYPE_AFFINE, + GF_BG_TYPE_256x16PLTT, +}; + +enum GFBgCntSet +{ + GF_BG_CNT_SET_COLOR_MODE = 0, + GF_BG_CNT_SET_SCREEN_BASE, + GF_BG_CNT_SET_CHAR_BASE, +}; + +enum GFBgScreenSize +{ + GF_BG_SCR_SIZE_128x128 = 0, + GF_BG_SCR_SIZE_256x256, + GF_BG_SCR_SIZE_256x512, + GF_BG_SCR_SIZE_512x256, + GF_BG_SCR_SIZE_512x512, + GF_BG_SCR_SIZE_1024x1024 +}; + +enum BgPosAdjustOp +{ + // Text layers + BG_POS_OP_SET_X = 0, + BG_POS_OP_ADD_X, + BG_POS_OP_SUB_X, + BG_POS_OP_SET_Y, + BG_POS_OP_ADD_Y, + BG_POS_OP_SUB_Y, + + // Affine layers + BG_POS_OP_SET_ROT = 0, + BG_POS_OP_ADD_ROT, + BG_POS_OP_SUB_ROT, + BG_POS_OP_SET_CENTERX = 9, + BG_POS_OP_ADD_CENTERX, + BG_POS_OP_SUB_CENTERX, + BG_POS_OP_SET_CENTERY, + BG_POS_OP_ADD_CENTERY, + BG_POS_OP_SUB_CENTERY, +}; + +struct BgConfig *BgConfig_Alloc(u32 heap_id); +u32 BgConfig_GetHeapId(struct BgConfig *bgConfig); +void SetBothScreensModesAndDisable(const struct GraphicsModes *modes); +void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, u32 whichScreen); +void InitBgFromTemplate( + struct BgConfig *bgConfig, u8 bgId, const struct BgTemplate *template, u8 bgMode); +void SetBgControlParam(struct BgConfig *config, u8 bgId, u32 attr, u8 value); +u8 TranslateGFBgModePairToGXScreenSize(u8 size, u32 bgMode); +void GetBgScreenDimensions(u32 screenSize, u8 *width_p, u8 *height_p); +void FreeBgTilemapBuffer(struct BgConfig *bgConfig, u32 bgId); +void SetBgPriority(u32 bgId, u16 priority); +void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle); +void BgSetPosTextAndCommit(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 val); +fx32 Bg_GetXpos(struct BgConfig *bgConfig, u32 bgId); +fx32 Bg_GetYpos(struct BgConfig *bgConfig, u32 bgId); +void Bg_SetTextDimAndAffineParams(struct BgConfig *bgConfig, + u32 bgId, + u32 txOp, + fx32 txVal, + struct Mtx22 *mtx, + fx32 centerX, + fx32 centerY); +void Bg_SetPosText(struct Bg *bg, u32 op, fx32 val); +void SetBgAffine(struct BgConfig *bgConfig, + u32 bgId, + struct Mtx22 *mtx, + fx32 centerX, + fx32 centerY); +void BgAffineReset(struct BgConfig *bgConfig, u32 bgId); +void CopyOrUncompressTilemapData(const void *src, void *dest, u32 size); +void BgCommitTilemapBufferToVram(struct BgConfig *bgConfig, u32 bgId); +void BgCopyOrUncompressTilemapBufferRangeToVram( + struct BgConfig *bgConfig, u32 bgId, u32 *src, u32 size, u32 tileOffset); +void LoadBgVramScr(u32 bgId, void *buffer_p, u32 offset, u32 size); +void BG_LoadScreenTilemapData(struct BgConfig *bgConfig, u32 bgId, void *src, u32 numTiles); +void BG_LoadCharTilesData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 offset, u32 numTiles); +void BG_LoadCharPixelData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 size, u32 offset); +void LoadBgVramChar(u32 bgId, void *buffer_p, u32 offset, u32 size); +void BG_ClearCharDataRange(u32 bgId, u32 size, u32 offset, u32 heap_id); +void BG_FillCharDataRange( + struct BgConfig *param0, u32 bgId, u32 fillValue, u32 count, u32 offset); +void BG_LoadPlttData(u32 bgId, void *plttData, u32 size, u32 offset); +void BG_SetMaskColor(u32 bgId, u32 value); +u16 GetTileMapIndexFromCoords(u8 x, u8 y, u8 screenSize); +u16 GetSrcTileMapIndexFromCoords(u8 x, u8 y, u8 width, u8 height); +void LoadRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + void *src, + u8 dstX, + u8 dstY, + u8 width, + u8 height); +void CopyToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight); +void CopyRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight); +void CopyBgTilemapRectText(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u16 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims); +void CopyBgTilemapRectAffine(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u8 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims); +void FillBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void FillBgTilemapRectText(struct Bg *bg, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void FillBgTilemapRectAffine( + struct Bg *bg, u8 fillValue, u8 x, u8 y, u8 width, u8 height); +void BgTilemapRectChangePalette(struct BgConfig *bgConfig, + u32 bgId, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void BgClearTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId); +void BgFillTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId, u16 fillValue); +void BgFillTilemapBufferAndSchedule(struct BgConfig *bgConfig, u32 bgId, u16 fillValue); +void *BgGetCharPtr(u32 bgId); +void Convert4bppTo8bppInternal(u8 *src4bpp, u32 size, u8 (*dest8bpp), u8 paletteNum); +u8 *Convert4bppTo8bpp(u8 *src4Bpp, u32 size, u8 paletteNum, u32 heap_id); +void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId); +u16 GetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId); +u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId); +void BlitBitmapRect4Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey); +void BlitBitmapRect8Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey); +void FillBitmapRect4Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +void FillBitmapRect8Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +struct Window *AllocWindows(u32 heap_id, s32 size); +void InitWindow(struct Window *window); +BOOL WindowIsInUse(struct Window *window); +void AddWindowParameterized(struct BgConfig *param0, + struct Window *window, + u8 bgId, + u8 tilemapLeft, + u8 tilemapTop, + u8 width, + u8 height, + u8 paletteNum, + u16 baseTile); +void AddTextWindowTopLeftCorner(struct BgConfig *param0, + struct Window *window, + u8 width, + u8 height, + u16 baseTile, + u8 paletteNum); +void AddWindow(struct BgConfig *bgConfig, + struct Window *window, + const struct WindowTemplate *template); +void RemoveWindow(struct Window *window); +void WindowArray_dtor(struct Window *windows, int count); +void CopyWindowToVram(struct Window *window); +void ScheduleWindowCopyToVram(struct Window *window); +void PutWindowTilemap(struct Window *window); +void PutWindowTilemapRectAnchoredTopLeft(struct Window *window, u8 width, u8 height); +void ClearWindowTilemap(struct Window *window); +void PutWindowTilemap_TextMode(struct Window *param0); +void PutWindowTilemap_AffineMode(struct Window *window); +void ClearWindowTilemapText(struct Window *window); +void ClearWindowTilemapAffine(struct Window *window); +void CopyWindowToVram_TextMode(struct Window *window); +void ScheduleWindowCopyToVram_TextMode(struct Window *window); +void CopyWindowToVram_AffineMode(struct Window *window); +void ScheduleWindowCopyToVram_AffineMode(struct Window *window); +void CopyWindowPixelsToVram_TextMode(struct Window *window); +void ClearWindowTilemapAndCopyToVram(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer(struct Window *window); +void ClearWindowTilemapAndCopyToVram_TextMode(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer_TextMode(struct Window *window); +void ClearWindowTilemapAndCopyToVram_AffineMode(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer_AffineMode(struct Window *window); +void FillWindowPixelBuffer(struct Window *window, u8 param1); +void BlitBitmapRectToWindow(struct Window *window, + const void *src, + u16 srcX, + u16 srcY, + u16 srcWidth, + u16 srcHeight, + u16 dstX, + u16 dstY, + u16 dstWidth, + u16 dstHeight); +void BlitBitmapRect(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10); +void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height); +void CopyGlyphToWindow( + struct Window * window, + const char * src, + u16 srcWidth, + u16 srcHeight, + u16 width, + u16 height, + u16 glyph +); +void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3); +void ScrollWindow4bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue); +void ScrollWindow8bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue); +u8 GetWindowBgId(struct Window *window); +u8 GetWindowWidth(struct Window *window); +u8 GetWindowHeight(struct Window *window); +u8 GetWindowX(struct Window *window); +u8 GetWindowY(struct Window *window); +void MoveWindowX(struct Window *window, u8 x); +void MoveWindowY(struct Window *window, u8 y); +void SetWindowPaletteNum(struct Window *window, u8 paletteNum); +NNSG2dCharacterData * LoadCharacterDataFromFile(void **char_ret, u32 heap_id, const char *path); +NNSG2dPaletteData * LoadPaletteDataFromFile(void **pltt_ret, u32 heap_id, const char *path); +void DoScheduledBgGpuUpdates(struct BgConfig *bgConfig); +void DoScheduledBgTilemapBufferTransfers(struct BgConfig *bgConfig); +void ScheduleBgTilemapBufferTransfer(struct BgConfig *bgConfig, u32 bgId); +void ApplyScheduledBgPosUpdate(struct BgConfig *bgConfig); +void ScheduleSetBgPosText(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value); +void ScheduleSetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId, u32 op, u16 value); +void Bg_SetAffineRotation(struct Bg *bg, u32 op, u16 val); +void ScheduleSetBgAffinePos(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value); +void Bg_SetAffinePos(struct Bg *bg, u32 op, fx32 val); +u32 DoesPixelAtScreenXYMatchPtrVal(struct BgConfig *bgConfig, u8 bgId, u8 x, u8 y, u16 *src); +void ApplyFlipFlagsToTile(struct BgConfig *bgConfig, u8 flag, u8 *src); + +#endif // POKEDIAMOND_UNK_02016B94_H diff --git a/include/game_init.h b/include/game_init.h index 7a6e34fb..bf6569c4 100644 --- a/include/game_init.h +++ b/include/game_init.h @@ -9,26 +9,26 @@ void FUN_02015EF4(void); void Main_SetVBlankIntrCB(void (*a0)(void *), void * a1); void FUN_02015F1C(void); BOOL FUN_02015F34(void (*a0)(void *), void * a1); -void FUN_02015F6C(void); -void Main_HBlankIntr(BOOL a0); +void Main_CallHBlankCallback(void); +void Main_ToggleHBlankInterrupt(BOOL enableFlag); void FUN_02015FC8(void); void InitSystemForTheGame(void); void InitGraphicMemory(void); -void * FUN_020161A4(u32 heap_id, const char * path); -void FUN_020161F8(const char * path, void ** ptr); -u32 FUN_02016230(const s8 * str); -int FUN_020162A0(u32 a0); -int FUN_020162C8(void * a0, u32 a1); -void FUN_020162FC(void); -void * FUN_02016324(const s8 * str, u32 heap_id); -void FUN_020163BC(void); +void * AllocAndReadFile(u32 heap_id, const char * path); +void OpenAndReadWholeFile(const char * path, void ** ptr); +u32 GetFilenameHash(const s8 * str); +int GetFileCacheId(u32 hash); +int AddFileToCache(void * contents, u32 hash); +void ClearFileCache(void); +void * OpenFileCached(const s8 * str, u32 heap_id); +void InitKeypadAndTouchpad(void); void FUN_02016438(u8 a0); void FUN_02016444(u8 a0); void FUN_02016454(u8 a0); -void FUN_02016464(void); -void FUN_02016568(void); -void FUN_0201669C(int x, int y); -void FUN_020166A8(u8 a0); -void FUN_020166B8(u8 a0); +void ReadKeypadAndTocuhpad(void); +void ApplyButtonModeToInput(void); +void SetKeyRepeatTimers(int continueDelay, int startDelay); +void SetSoftResetDisableMask(u8 a0); +void ClearSoftResetDisableMask(u8 a0); #endif //POKEDIAMOND_GAME_INIT_H diff --git a/include/gf_gfx_loader.h b/include/gf_gfx_loader.h index b95075dc..32d63449 100644 --- a/include/gf_gfx_loader.h +++ b/include/gf_gfx_loader.h @@ -1,16 +1,17 @@ #ifndef POKEDIAMOND_GF_GFX_LOADER_H
#define POKEDIAMOND_GF_GFX_LOADER_H
-#include "unk_02016B94.h"
+#include "bg_window.h"
+#include "filesystem.h"
-u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
-void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
-void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id);
-void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id);
-u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id);
+u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 numTiles, u32 szByte, BOOL isCompressed, u32 heap_id);
+void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 tileOffset, u32 szByte, BOOL isCompressed, u32 heap_id);
+void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 layer, u32 baseAddr, u32 szByte, u32 heap_id);
+void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 layer, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id);
+u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 layer, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id);
void GfGfxLoader_PartiallyLoadPalette(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE vramType, u32 baseAddr, u32 heap_id, NNSG2dImagePaletteProxy * pPltProxy);
-u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy);
-void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy);
+u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy);
+void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy);
void * GfGfxLoader_GetCharData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** ppCharData, u32 heap_id);
void * GfGfxLoader_GetScrnData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** ppScrData, u32 heap_id);
void * GfGfxLoader_GetPlttData(NarcId narcId, s32 memberId, NNSG2dPaletteData ** ppPltData, u32 heap_id);
diff --git a/include/heap.h b/include/heap.h index de1f5f18..36c747a7 100644 --- a/include/heap.h +++ b/include/heap.h @@ -2,36 +2,30 @@ #define POKEDIAMOND_HEAP_H #include "global.h" +#include "NNS_FND_expheap.h" +#include "NNS_FND_allocator.h" -struct UnkStruct_020166C8 +struct HeapParam { - void **unk00; - void **unk04; - void **unk08; - u16 *unk0c; - u8 *unk10; - u16 unk14; - u16 unk16; - u16 unk18; - u16 unk1a; + u32 size; + OSArenaId arena; }; - -void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size); -s32 FUN_020167F4(); -u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2); -u32 FUN_02016828(u32 param0, u32 param1, u32 param2); -u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3); -void FUN_020168D0(u32 heap_id); -u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3); -void FUN_02016988(); +void InitHeapSystem(const struct HeapParam *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size); +s32 FindFirstAvailableHeapHandle(); +BOOL CreateHeap(u32 parent, u32 child, u32 size); +BOOL CreateHeapAtEnd(u32 parent, u32 child, u32 size); +BOOL CreateHeapInternal(u32 parent, u32 child, u32 size, s32 alignment); +void DestroyHeap(u32 heap_id); +void *AllocFromHeapInternal(NNSFndHeapHandle heap, u32 size, s32 alignment, u32 heap_id); +void AllocFail(); void *AllocFromHeap(u32 heap_id, u32 size); void *AllocFromHeapAtEnd(u32 heap_id, u32 size); void FreeToHeap(void *ptr); void FreeToHeapExplicit(u32 heap_id, void * ptr); -u32 FUN_02016AF8(u32 param0); -void FUN_02016B20(u32 param0, u32 param1, u32 param2); -void FUN_02016B44(void *ptr, u32 param1); -u32 FUN_02016B90(u32 param0); +u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id); +void GF_ExpHeap_FndInitAllocator(NNSFndAllocator * pAllocator, u32 heap_id, int alignment); +void ReallocFromHeap(void *ptr, u32 newSize); +BOOL GF_heap_c_dummy_return_true(u32 heap_id); #endif //POKEDIAMOND_HEAP_H diff --git a/include/list_menu_cursor.h b/include/list_menu_cursor.h index e4a4b6b9..a2337e9a 100644 --- a/include/list_menu_cursor.h +++ b/include/list_menu_cursor.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_LIST_MENU_CURSOR_H #define POKEDIAMOND_LIST_MENU_CURSOR_H -#include "unk_02016B94.h" +#include "bg_window.h" // TODO: Move to its own header, and fill it out struct ListMenuCursor diff --git a/include/mail_message.h b/include/mail_message.h index 5772fdd3..c0ea2039 100644 --- a/include/mail_message.h +++ b/include/mail_message.h @@ -20,7 +20,7 @@ u32 MailMsg_NumFields(u16 bank, u16 num); u16 MailMsg_GetFieldI(struct MailMessage * mailMsg, u32 a1); u16 MailMsg_GetMsgBank(struct MailMessage * mailMsg); u16 MailMsg_GetMsgNo(struct MailMessage * mailMsg); -BOOL MailMsg_compare(struct MailMessage * mailMsg, struct MailMessage * a1); +BOOL MailMsg_compare(const struct MailMessage *mailMsg, const struct MailMessage *a1); void MailMsg_copy(struct MailMessage * mailMsg, const struct MailMessage * a1); u32 MailMsg_NumMsgsInBank(u16 bank); void MailMsg_SetMsgBankAndNum(struct MailMessage * mailMsg, u16 bank, u16 num); diff --git a/include/main.h b/include/main.h index 9227d9a8..ba4d7bc2 100644 --- a/include/main.h +++ b/include/main.h @@ -79,26 +79,26 @@ struct Main s32 unk28; u32 unk2C; s32 unk30; - u32 unk34; - u32 unk38; - u32 unk3C; - u32 unk40; - u32 unk44; + u32 buttonMode; + u32 heldKeysRaw; + u32 newKeysRaw; + u32 newAndRepeatedKeysRaw; + u32 heldKeys; u32 newKeys; u32 newAndRepeatedKeys; - s32 unk50; - s32 unk54; - s32 unk58; - u16 unk5C; - u16 unk5E; - u16 unk60; - u16 unk62; - u8 unk64; + s32 keyRepeatCounter; + s32 keyRepeatContinueDelay; + s32 keyRepeatStartDelay; + u16 touchX; + u16 touchY; + u16 touchNew; + u16 touchHeld; + u8 touchpadReadAuto; u8 unk65; u8 unk66; u8 unk67; - u8 unk68; - u8 padding_69[3]; + u8 softResetDisabled; + u8 padding_69[3]; // nice s32 unk6C; }; diff --git a/include/player_data.h b/include/player_data.h index 5095ea61..132eb6ae 100644 --- a/include/player_data.h +++ b/include/player_data.h @@ -7,6 +7,12 @@ struct SaveBlock2; +typedef enum +{ + Male = 0, + Female = 1 +} GenderEnum; + struct PlayerData { /* 0x00 */ u16 playerName[OT_NAME_LENGTH + 1]; @@ -51,8 +57,8 @@ struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData * data, void PlayerProfile_SetTrainerID(struct PlayerData * data, u32 otid); u32 PlayerProfile_GetTrainerID(struct PlayerData * data); u16 PlayerProfile_GetTrainerID_VisibleHalf(struct PlayerData * data); -void PlayerProfile_SetTrainerGender(struct PlayerData * data, u8 gender); -u32 PlayerProfile_GetTrainerGender(struct PlayerData * data); +void PlayerProfile_SetTrainerGender(struct PlayerData * data, GenderEnum gender); +GenderEnum PlayerProfile_GetTrainerGender(struct PlayerData * data); BOOL PlayerProfile_TestBadgeFlag(struct PlayerData * data, u32 badgeno); void PlayerProfile_SetBadgeFlag(struct PlayerData * data, u32 badgeno); u32 PlayerProfile_CountBadges(struct PlayerData * data); diff --git a/include/render_text.h b/include/render_text.h new file mode 100644 index 00000000..e3e0f4c8 --- /dev/null +++ b/include/render_text.h @@ -0,0 +1,48 @@ +#ifndef POKEDIAMOND_RENDER_TEXT_H +#define POKEDIAMOND_RENDER_TEXT_H + +#include "global.h" +#include "text.h" + +typedef struct +{ + u8 canABSpeedUpPrint : 1; + u8 useAlternateDownArrow : 1; + u8 autoScroll : 1; + u8 forceMidTextSpeed : 1; + u8 unk0_4 : 1; + u8 unk0_5 : 1; + u8 unk0_6 : 1; + u8 unk0_7 : 1; + u8 unk1; +} TextFlags; + +struct TextPrinterSubStruct +{ + u8 glyphId : 4; // 0x14 + u8 hasPrintBeenSpedUp : 1; + u8 unk : 3; + u8 downArrowDelay : 5; + u8 downArrowYPosIdx : 2; + u8 hasGlyphIdBeenSet : 1; + u8 autoScrollDelay : 8; +}; + +u32 RenderText(struct TextPrinter *printer); +void FUN_02002840(u16 flag); +void TextPrinterInitDownArrowCounters(struct TextPrinter *printer); +void TextPrinterDrawDownArrow(struct TextPrinter *printer); +void TextPrinterClearDownArrow(struct TextPrinter *printer); +BOOL TextPrinterContinue(struct TextPrinter *printer); +BOOL TextPrinterWaitAutoMode(struct TextPrinter *printer); +BOOL TextPrinterWaitWithDownArrow(struct TextPrinter *printer); +u8 TextPrinterWait(struct TextPrinter *printer); +void TextFlags_SetCanABSpeedUpPrint(BOOL param0); +void FUN_02002B7C(s32 param0); +void FUN_02002BB8(u32 param0); +u8 FUN_02002BD4(); +void FUN_02002BE4(); +u8 FUN_02002BF4(); +void FUN_02002C04(); + +#endif // POKEDIAMOND_RENDER_TEXT_H diff --git a/include/scrcmd.h b/include/scrcmd.h index 91cb306c..826b74d3 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -249,6 +249,42 @@ BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonSpecies(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyMonOTID(struct ScriptContext* ctx); +BOOL ScrCmd_GiveEgg(struct ScriptContext* ctx); +BOOL ScrCmd_SetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_PartyMonHasMove(struct ScriptContext* ctx); +BOOL ScrCmd_FindPartyMonWithMove(struct ScriptContext* ctx); +BOOL ScrCmd_SurvivePsn(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonsAtOrBelowLevel(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonLevel(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonNature(struct ScriptContext* ctx); +BOOL ScrCmd_FindPartyMonWithNature(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_AddPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_SubtractPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonContestCondition(struct ScriptContext* ctx); +BOOL ScrCmd_GetLeadingPartyMonSlot(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonTypes(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMons(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMons_OmitEggs(struct ScriptContext* ctx); +BOOL ScrCmd_CountAvailablePartyMons_IgnoreSlot(struct ScriptContext* ctx); +BOOL ScrCmd_CountAvailablePartyAndPCMons(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyEggCount(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForPokerus(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonGender(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonMoves(struct ScriptContext* ctx); +BOOL ScrCmd_ForgetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonHeldItem(struct ScriptContext* ctx); +BOOL ScrCmd_ResetPartyMonHeldItem(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForSpecies(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonRibbons(struct ScriptContext* ctx); +BOOL ScrCmd_CountTotalPartyRibbons(struct ScriptContext* ctx); +BOOL ScrCmd_PartyMonHasRibbon(struct ScriptContext* ctx); +BOOL ScrCmd_GivePartyMonRibbon(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForBadEgg(struct ScriptContext* ctx); +BOOL ScrCmd_Unk00A0(struct ScriptContext* ctx); //scrcmd_fossils.c BOOL ScrCmd_CountFossils(struct ScriptContext* ctx); diff --git a/include/script.h b/include/script.h index 01bba305..75b65f90 100644 --- a/include/script.h +++ b/include/script.h @@ -4,7 +4,7 @@ #include "global.h"
#include "msgdata.h"
#include "save_block_2.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
struct ScriptContext;
@@ -28,7 +28,7 @@ struct UnkStruct_02046444 struct UnkSavStruct80
{
u8 padding[0x8];
- struct UnkStruct_02016B94_2 *unk08;
+ struct BgConfig *unk08;
struct SaveBlock2 *saveBlock2; //0xC
struct UnkStruct_0204639C *unk10;
u8 padding2[0x8];
diff --git a/include/script_buffers.h b/include/script_buffers.h index 9a742545..b9f0e268 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -4,7 +4,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" #include "trainer_data.h" -#include "unk_02016B94.h" +#include "bg_window.h" struct UnkStruct_0200AA80_sub_sub { diff --git a/include/text.h b/include/text.h index c9984d75..034447c7 100644 --- a/include/text.h +++ b/include/text.h @@ -3,7 +3,7 @@ #include "global.h" #include "font.h" -#include "unk_02016B94.h" +#include "bg_window.h" #define CHAR_0 0x00A2 diff --git a/include/text_02054590.h b/include/text_02054590.h index 77170e70..4d05260a 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -3,18 +3,18 @@ #include "global.h" #include "options.h" -#include "unk_02016B94.h" +#include "bg_window.h" #include "string16.h" void FUN_02054590(u32 param0, u32 param1); -void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2); +void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2); void FUN_02054608(struct Window *param0, struct Options *options); void FUN_0205464C(struct Window *param0); u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3); -u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5); +u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, s32 a5); u8 FUN_020546C8(u32 param0); -void FUN_020546E0(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3); +void FUN_020546E0(struct BgConfig *param0, struct Window *param1, u32 param2, u32 param3); void FUN_02054744(struct Window *param0, u32 param1, u32 param2); #endif // POKEDIAMOND_UNK_02054590_H diff --git a/include/timer3.h b/include/timer3.h index 3220c7a3..a49cf3e6 100644 --- a/include/timer3.h +++ b/include/timer3.h @@ -4,12 +4,6 @@ #include "global.h" -struct Timer3Data -{ - BOOL NeedReset; - vu64 Timer3Counter; -}; - void Init_Timer3(); void CountUpTimer3(); u64 internal_GetTimer3Count(); diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h deleted file mode 100644 index fec45cd8..00000000 --- a/include/unk_02016B94.h +++ /dev/null @@ -1,340 +0,0 @@ -#ifndef POKEDIAMOND_UNK_02016B94_H -#define POKEDIAMOND_UNK_02016B94_H - -#include "global.h" -#include "GX_layers.h" -#include "MI_uncompress.h" -#include "OS_cache.h" -#include "gx.h" -#include "heap.h" -#include "math_util.h" - -#define reg_G2_BG2P (u32 *)0x4000020 -#define reg_G2_BG3P (u32 *)0x4000030 -#define reg_G2S_DB_BG2P (u32 *)0x4001020 -#define reg_G2S_DB_BG3P (u32 *)0x4001030 -struct UnkStruct_02016B94_1 -{ - u32 unk00; - u32 unk04; - u32 unk08; - u32 unk0c; - - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; - u8 unk14; - u8 unk15; - u8 unk16; - u8 unk17; // probably paddding - u32 unk18; -}; - -struct UnkStruct_02016B94_2 -{ - u32 unk00; - u16 unk04; - u16 unk06; - - struct UnkStruct_02016B94_2_sub - { - void *unk08; - u32 unk0c; - u32 unk10; - - fx32 unk14; - fx32 unk18; - - u8 unk1c; - u8 unk1d; - u8 unk1e; - u8 unk1f; - u16 unk20; - u16 unk22; // probably padding - fx32 unk24; - fx32 unk28; - fx32 unk2c; - fx32 unk30; - } unk08[8]; -}; - -struct UnkStruct_02016B94_3 -{ - void *unk00; - u16 unk04; - u16 unk06; -}; - -struct UnkStruct_02016B94_4 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u16 unk6; -}; - -struct Window -{ - struct UnkStruct_02016B94_2 *unk00; - u8 unk04; - u8 unk05; - u8 unk06; - u8 width; - u8 height; - u8 unk09; - u16 unk0a_0 : 15; - u16 unk0b_15 : 1; - void *unk0c; -}; - -struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id); -u32 FUN_02016BB8(u32 *param0); -void FUN_02016BBC(const struct GraphicsModes *modes); -void FUN_02016BF4(u32 *param0, u32 param1); -void FUN_02016C18( - struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3); -void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3); -u8 FUN_020177DC(u8 param0, u32 param1); -void FUN_02017850(u32 param0, u8 *param1, u8 *param2); -void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_020178BC(u32 param0, u16 param1); -void FUN_0201797C(u32 param0, GX_LayerToggle toggle); -void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val); -fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1); -fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u32 param2, - fx32 param3, - struct Mtx22 *param4, - fx32 param5, - fx32 param6); -void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); -void FUN_02017BD0(struct UnkStruct_02016B94_2 *param0, - u32 param1, - struct Mtx22 *param2, - fx32 param3, - fx32 param4); -void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017C98(const void *param0, void *param1, u32 param2); -void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017CE8( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3); -void FUN_02017E14( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E40( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); -void FUN_02017F48( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); -void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017FE4(u32 param0, u32 param1); -u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); -u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3); -void FUN_02018148(struct UnkStruct_02016B94_2 *param0, - u32 param1, - void *param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018170(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_020181EC(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u16 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u8 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_02018540(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u16 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7); -void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0, - u16 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018640( - struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); -void FUN_020186B4(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); -void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); -void *FUN_020187B0(u32 param0); -void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3); -u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]; -void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1); -u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1); -u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1); -void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8); -void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8); -void FUN_02018E88( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); -void FUN_02018F4C( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); -void *AllocWindows(u32 heap_id, s32 size); -void InitWindow(struct Window *param0); -BOOL FUN_02019048(struct Window *param0); -void FUN_02019064(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7, - u16 param8); -void FUN_020190EC(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u16 param4, - u8 param5); -void FUN_02019150(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - struct UnkStruct_02016B94_4 *param2); -void FUN_02019178(struct Window *param0); -void FUN_020191A4(struct Window *param0, int param1); -void CopyWindowToVram(struct Window *param0); -void FUN_02019220(struct Window *param0); -void FUN_02019270(struct Window *param0); -void FUN_0201928C(struct Window *param0, u8 param1, u8 param2); -void FUN_020192B8(struct Window *param0); -void FUN_020192D4(struct Window *param0); -void FUN_02019358(struct Window *param0); -void FUN_020193B4(struct Window *param0); -void FUN_02019444(struct Window *param0); -void FUN_0201949C(struct Window *window); -void FUN_020194C8(struct Window *window); -void FUN_020194E0(struct Window *window); -void FUN_0201951C(struct Window *window); -void FUN_02019548(struct Window *window); -void FUN_02019570(struct Window *window); -void FUN_0201958C(struct Window *window); -void FUN_020195A8(struct Window *window); -void FUN_020195D0(struct Window *window); -void FUN_020195E4(struct Window *window); -void FUN_0201960C(struct Window *window); -void FillWindowPixelBuffer(struct Window *window, u8 param1); -void BlitBitmapRectToWindow(struct Window *window, - const void *src, - u16 srcX, - u16 srcY, - u16 srcWidth, - u16 srcHeight, - u16 dstX, - u16 dstY, - u16 dstWidth, - u16 dstHeight); -void BlitBitmapRect(struct Window *window, - void *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8, - u16 param9, - u16 param10); -void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height); -void FUN_0201974C( - struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6); -void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3); -void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3); -void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3); -u8 FUN_0201AB08(struct Window *window); -u8 GetWindowWidth(struct Window *window); -u8 GetWindowHeight(struct Window *window); -u8 FUN_0201AB14(struct Window *window); -u8 FUN_0201AB18(struct Window *window); -void FUN_0201AB1C(struct Window *window, u8 param1); -void FUN_0201AB20(struct Window *window, u8 param1); -void FUN_0201AB24(struct Window *window, u8 param1); -u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path); -u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path); -void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3); -void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val); -void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); -u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); -void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2); - -#endif // POKEDIAMOND_UNK_02016B94_H diff --git a/include/unk_0201B8B8.h b/include/unk_0201B8B8.h index 13bc217b..26dd8017 100644 --- a/include/unk_0201B8B8.h +++ b/include/unk_0201B8B8.h @@ -2,8 +2,8 @@ #define POKEDIAMOND_UNK_0201B8B88_H const u16 * MsgArray_SkipControlCode(const u16 * r4); -u16 MsgArray_GetControlCode(const u16 * r4); +u32 MsgArray_GetControlCode(const u16 * r4); BOOL MsgArray_ControlCodeIsStrVar(const u16 * r4); -u16 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4); +u32 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4); #endif //POKEDIAMOND_UNK_0201B8B88_H diff --git a/include/unk_0205EC84.h b/include/unk_0205EC84.h new file mode 100644 index 00000000..0cbf6f77 --- /dev/null +++ b/include/unk_0205EC84.h @@ -0,0 +1,58 @@ +#ifndef POKEDIAMOND_UNK_0205EC84_H
+#define POKEDIAMOND_UNK_0205EC84_H
+
+#include "event_data.h"
+
+void FUN_0205ECD4(struct ScriptState * state);
+BOOL FUN_0205ECE0(struct ScriptState * state);
+BOOL FUN_0205ECEC(struct ScriptState * state);
+void FUN_0205ECFC(struct ScriptState * state);
+BOOL FUN_0205ED0C(struct ScriptState * state);
+void FUN_0205ED1C(struct ScriptState * state);
+void FUN_0205ED2C(struct ScriptState * state);
+BOOL FUN_0205ED3C(struct ScriptState * state);
+void FUN_0205ED4C(struct ScriptState * state);
+void FUN_0205ED5C(struct ScriptState * state);
+BOOL FUN_0205ED6C(struct ScriptState * state);
+void FUN_0205ED7C(struct ScriptState * state);
+void FUN_0205ED8C(struct ScriptState * state);
+BOOL FUN_0205ED9C(struct ScriptState * state);
+void FUN_0205EDAC(struct ScriptState * state);
+void FUN_0205EDBC(struct ScriptState * state);
+void FUN_0205EDCC(struct ScriptState * state);
+void FUN_0205EDD8(struct ScriptState * state);
+void FUN_0205EDE8(struct ScriptState * state);
+void FUN_0205EDF8(struct ScriptState * state);
+void FUN_0205EE08(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EE60(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1);
+s32 FUN_0205EF20(struct ScriptState * state, s32 a1);
+void FUN_0205F154(struct ScriptState * state);
+void FUN_0205F164(struct ScriptState * state);
+BOOL FUN_0205F174(struct ScriptState * state);
+BOOL FUN_0205F184(struct ScriptState * state);
+BOOL FUN_0205F194(struct ScriptState * state);
+BOOL FUN_0205F1A4(struct ScriptState * state);
+BOOL FUN_0205F1B4(struct ScriptState * state);
+void FUN_0205F1C4(struct ScriptState * state);
+void FUN_0205F1D4(struct ScriptState * state);
+BOOL FUN_0205F1E4(struct ScriptState * state);
+void FUN_0205F1F4(struct ScriptState * state);
+void FUN_0205F204(struct ScriptState * state);
+BOOL FUN_0205F214(struct ScriptState * state);
+void FUN_0205F224(struct ScriptState * state);
+void FUN_0205F234(struct ScriptState * state);
+BOOL FUN_0205F244(struct ScriptState * state);
+void FUN_0205F254(struct ScriptState * state);
+BOOL FUN_0205F264(struct ScriptState * state, u32 op);
+void FUN_0205F274(struct ScriptState * state);
+void FUN_0205F284(struct ScriptState * state);
+BOOL FUN_0205F294(struct ScriptState * state);
+void FUN_0205F2A4(struct ScriptState * state);
+void FUN_0205F2B4(struct ScriptState * state);
+BOOL FUN_0205F2C4(struct ScriptState * state);
+BOOL FUN_0205F2D4(struct ScriptState * state, u32 op);
+BOOL FUN_0205F2E4(struct ScriptState * state, u32 op, u16 flag_id);
+void FUN_0205F304(struct ScriptState * state);
+
+#endif //POKEDIAMOND_UNK_0205EC84_H
diff --git a/include/unk_020851B8.h b/include/unk_020851B8.h new file mode 100644 index 00000000..334ba4c8 --- /dev/null +++ b/include/unk_020851B8.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_UNK_020851B8_H +#define POKEDIAMOND_UNK_020851B8_H + +struct UnkStruct_020851B8 { + u32 flags[2]; + u8 unk_8; + u8 unk_9; + u8 unk_A; + u8 unk_B; +}; + +struct UnkStruct_020851B8 *FUN_020851B8(u32 heap_id); +void FUN_020851DC(struct UnkStruct_020851B8 *param0, u16 param1, BOOL param2); +void FUN_020851F8(struct UnkStruct_020851B8 *param0, u8 param1, u8 param2, u8 param3); +void FUN_02085200(struct UnkStruct_020851B8 *param0, u16 param1); +u8 FUN_02085224(struct UnkStruct_020851B8 *param0, u16 param1); +void FUN_0208524C(struct UnkStruct_020851B8 *param0, u8 *param1, u8 *param2); + +#endif // POKEDIAMOND_UNK_020851B8_H diff --git a/include/unk_02085338.h b/include/unk_02085338.h new file mode 100644 index 00000000..0517bf26 --- /dev/null +++ b/include/unk_02085338.h @@ -0,0 +1,47 @@ +#ifndef POKEDIAMOND_UNK_02085338_H
+#define POKEDIAMOND_UNK_02085338_H
+
+#include "save_block_2.h"
+#include "pokedex.h"
+#include "unk_020139D8.h"
+
+struct UnkStruct_02085338
+{
+ u8 unk_00;
+ u8 unk_01;
+ u8 unk_02;
+ u8 unk_03;
+ u8 unk_04;
+ u8 unk_05;
+ u32 unk_08;
+ struct Pokedex * unk_0c;
+ struct UnkStruct_02013B28 * unk_10;
+ struct MailMessage unk_14;
+ u16 unk_1c[2];
+ u8 padding_20[4];
+};
+
+struct UnkStruct_02085338 * FUN_02085338(u8 r5, u8 r7, struct SaveBlock2 * sav2, u32 heap_id);
+void FUN_020853A8(struct UnkStruct_02085338 * ptr);
+void FUN_020853B0(struct UnkStruct_02085338 * ptr, u16 a1);
+void FUN_020853B4(struct UnkStruct_02085338 * ptr, u16 a1, u16 a2);
+void FUN_020853BC(struct UnkStruct_02085338 * ptr, const struct MailMessage * a1);
+void FUN_020853D0(struct UnkStruct_02085338 * ptr);
+void FUN_020853DC(struct UnkStruct_02085338 * ptr);
+u8 FUN_020853E4(struct UnkStruct_02085338 * ptr);
+u8 FUN_020853E8(struct UnkStruct_02085338 * ptr);
+u16 FUN_020853EC(struct UnkStruct_02085338 * ptr);
+void FUN_020853F0(struct UnkStruct_02085338 * ptr, u16 * a1);
+void FUN_020853FC(struct UnkStruct_02085338 * ptr, struct MailMessage * a1);
+u8 FUN_0208540C(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085410(struct UnkStruct_02085338 * ptr);
+u32 FUN_02085414(struct UnkStruct_02085338 * ptr);
+struct Pokedex * FUN_02085418(struct UnkStruct_02085338 * ptr);
+struct UnkStruct_02013B28 * FUN_0208541C(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085420(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085424(struct UnkStruct_02085338 * ptr);
+void FUN_02085428(struct UnkStruct_02085338 * ptr, u16 * a1, struct MailMessage * a2);
+BOOL FUN_0208545C(struct UnkStruct_02085338 * ptr, const u16 * a1, const struct MailMessage * a2);
+void FUN_020854A0(struct UnkStruct_02085338 * r5, u16 * r4, struct MailMessage * r6);
+
+#endif //POKEDIAMOND_UNK_02085338_H
diff --git a/include/unk_02088AAC.h b/include/unk_02088AAC.h new file mode 100644 index 00000000..d4d7cf3e --- /dev/null +++ b/include/unk_02088AAC.h @@ -0,0 +1,31 @@ +#ifndef POKEDIAMOND_UNK_02088AAC_H +#define POKEDIAMOND_UNK_02088AAC_H + +#include "bag.h" +#include "main.h" +#include "unk_0208890C.h" + +struct UnkStruct_02088AAC +{ + u32 heap_id; + u16 unk04; + u16 unk06; + u32 item; + struct UnkStruct_0206F164 *unk0C; + struct UnkStruct_0208890C *unk10; + u32 unk14; + void *ovly_param; + struct UnkStruct_02006234 *ovly_data; + u32 unk20; +}; + +u32 FUN_02088AAC(struct UnkStruct_02088AAC *r0, u32 *r1); +u32 FUN_02088AFC(struct UnkStruct_02088AAC *r0); +u32 FUN_02088B28(struct UnkStruct_02088AAC *r0); +u32 FUN_02088B48(void); +u32 FUN_02088B4C(struct UnkStruct_02088AAC *r0); +u32 FUN_02088BA8(struct UnkStruct_02088AAC *r0); +u32 FUN_02088C3C(struct UnkStruct_02088AAC *r0); +u32 FUN_02088CDC(struct UnkStruct_02088AAC *r0); + +#endif // POKEDIAMOND_UNK_02088AAC_H |