diff options
Diffstat (limited to 'arm9')
170 files changed, 8908 insertions, 15317 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index b8accee4..dee43fd0 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -48,7 +48,7 @@ Static arm9 Object unk_02015D14.o Object unk_02015E30.o Object game_init.o - Object unk_020166C8.o + Object heap.o Object unk_02016B94.o Object unk_0201B1A8.o Object unk_0201B4E8.o @@ -65,11 +65,11 @@ Static arm9 Object unk_0201CC08.o Object unk_0201D040.o Object unk_0201E00C.o - Object unk_0201E66C.o + Object GX_layers.o Object unk_0201E7D8.o Object unk_0201F06C.o Object unk_020208B8.o - Object unk_02020AFC.o + Object timer3.o Object error_handling.o Object unk_02020C44.o Object unk_0202134C.o @@ -152,9 +152,10 @@ Static arm9 Object script.o Object unk_02038C78.o Object scrcmd.o + Object scrcmd_asm.o Object scrcmd_2.o Object scrcmd_3.o - Object scrcmd_4.o + Object scrcmd_names.o Object scrcmd_5.o Object scrcmd_6.o Object scrcmd_7.o @@ -164,16 +165,16 @@ Static arm9 Object scrcmd_11.o Object scrcmd_12.o Object scrcmd_13.o - Object scrcmd_14.o - Object scrcmd_15.o - Object scrcmd_16.o + Object scrcmd_coins.o + Object scrcmd_money.o + Object scrcmd_daycare.o Object scrcmd_17.o Object scrcmd_18_c.o Object scrcmd_18.o Object scrcmd_19.o Object scrcmd_20.o Object scrcmd_21.o - Object scrcmd_22.o + Object scrcmd_items.o Object scrcmd_23.o Object scrcmd_24.o Object scrcmd_25.o @@ -316,7 +317,7 @@ Static arm9 Object unk_0208A258.o Object unk_0208A300.o Object unk_0208A338.o - Object unk_0208A998.o + Object error_message_reset.o ### Third-party libraries ### Object unk_0208AC14.o Object custom_allocator.o diff --git a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s b/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s index 2d51a2ae..a590ef02 100644 --- a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s +++ b/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s @@ -1,11 +1,10 @@ - .include "asm/macros.inc" - .include "global.inc" +.section .text - .extern UNK_021C570C - .extern UNK_021C5734 +glabel GenerateFontHalfRowLookupTable + +.extern UNK_021C570C +.extern UNK_021C5734 - thumb_func_start GenerateFontHalfRowLookupTable -GenerateFontHalfRowLookupTable: ; 0x0201C05C push {r3-r7, lr} sub sp, #0x30 ldr r3, _0201C0F8 ; =UNK_021C570C diff --git a/arm9/asm/scrcmd_11.s b/arm9/asm/scrcmd_11.s deleted file mode 100644 index 5612284f..00000000 --- a/arm9/asm/scrcmd_11.s +++ /dev/null @@ -1,239 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02042B0C -FUN_02042B0C: ; 0x02042B0C - 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 r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - add r1, r0, #0x0 - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r1, [r1, #0x0] - bl FUN_0204B5FC - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02042B40 -FUN_02042B40: ; 0x02042B40 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - 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 r1, [r4, #0x0] - bl FUN_0204B63C - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02042B74 -FUN_02042B74: ; 0x02042B74 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - 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 r1, [r4, #0x0] - bl FUN_0204B660 - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02042BA8 -FUN_02042BA8: ; 0x02042BA8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - 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 r1, [r4, #0x0] - bl FUN_0204B684 - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02042BDC -FUN_02042BDC: ; 0x02042BDC - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - 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 r1, [r4, #0x0] - bl FUN_0204B6A4 - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02042C10 -FUN_02042C10: ; 0x02042C10 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - 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 r2, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r1, [r4, #0x0] - bl FUN_0204B57C - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02042C44 -FUN_02042C44: ; 0x02042C44 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02029FC8 - 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 r2, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r1, [r4, #0x0] - bl FUN_0204B5A8 - add r0, r6, #0x0 - mov r1, #0x3 - bl FUN_0202A0E8 - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02042C8C -FUN_02042C8C: ; 0x02042C8C - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - cmp r0, #0x0 - beq _02042C9E - cmp r0, #0x1 - beq _02042CA8 - b _02042CB2 -_02042C9E: - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_0204B9A0 - b _02042CB6 -_02042CA8: - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_0204B9CC - b _02042CB6 -_02042CB2: - bl ErrorHandling -_02042CB6: - mov r0, #0x1 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02042CBC -FUN_02042CBC: ; 0x02042CBC - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02029FC8 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - add r1, r0, #0x0 - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r1, [r1, #0x0] - bl FUN_0204B4FC - add r0, r4, #0x0 - mov r1, #0x0 - bl FUN_0202A170 - mov r0, #0x0 - pop {r3-r5, pc} diff --git a/arm9/asm/scrcmd_13.s b/arm9/asm/scrcmd_13.s deleted file mode 100644 index 1b31ce71..00000000 --- a/arm9/asm/scrcmd_13.s +++ /dev/null @@ -1,220 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0204387C -FUN_0204387C: ; 0x0204387C - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - 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 - cmp r0, #0x0 - bne _020438B2 - add r0, r4, #0x0 - bl FUN_0205F224 - add r5, #0x80 - ldr r0, [r5, #0x0] - bl FUN_0204B9EC - b _020438CA -_020438B2: - cmp r0, #0x1 - bne _020438C6 - add r0, r4, #0x0 - bl FUN_0205F234 - add r5, #0x80 - ldr r0, [r5, #0x0] - bl FUN_0204BA1C - b _020438CA -_020438C6: - bl ErrorHandling -_020438CA: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020438D0 -FUN_020438D0: ; 0x020438D0 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02022528 - add r6, r0, #0x0 - mov r0, #0x20 - bl AllocMonZeroed - add r5, 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 - add r0, r6, #0x0 - bl FUN_0202C000 - cmp r0, #0x6 - bne _02043908 - mov r0, #0x1 - b _0204390A -_02043908: - mov r0, #0x0 -_0204390A: - strh r0, [r4, #0x0] - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02043918 -FUN_02043918: ; 0x02043918 - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02022528 - add r7, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl GetStoragePCPointer - str r0, [sp, #0x8] - mov r0, #0x20 - bl AllocMonZeroed - add r4, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - str r0, [sp, #0x4] - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_Pokedex_get - mov r5, #0x0 -_0204395C: - add r0, r7, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202BFD8 - mov r0, #0x20 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r4, #0x0 - mov r2, #0x2 - mov r3, #0x0 - bl FUN_0208089C - add r0, r4, #0x0 - bl FUN_020690E4 - add r1, r0, #0x0 - ldr r0, [sp, #0x8] - bl PCStorage_PlaceMonInFirstEmptySlotInAnyBox - cmp r0, #0x0 - bne _0204398C - bl ErrorHandling -_0204398C: - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0xc] - bl FUN_0202C144 - add r5, r5, #0x1 - cmp r5, #0x6 - blt _0204395C - add r0, r4, #0x0 - bl FreeToHeap - add r0, r7, #0x0 - bl FUN_0202BEDC - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_020439B4 -FUN_020439B4: ; 0x020439B4 - push {r3-r7, lr} - add r4, r0, #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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - cmp r6, #0x3 - bhi _02043A40 - add r0, r6, r6 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020439EE: ; jump table (using 16-bit offset) - .short _020439F6 - _020439EE - 2; case 0 - .short _02043A02 - _020439EE - 2; case 1 - .short _02043A0E - _020439EE - 2; case 2 - .short _02043A1A - _020439EE - 2; case 3 -_020439F6: - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_0204BAC4 - strh r0, [r5, #0x0] - b _02043A40 -_02043A02: - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_0204BAD4 - strh r0, [r5, #0x0] - b _02043A40 -_02043A0E: - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_0204BAE4 - strh r0, [r5, #0x0] - b _02043A40 -_02043A1A: - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl FUN_0204BAD4 - add r6, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl FUN_0204BAC4 - add r4, #0x80 - add r7, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_0204BAE4 - add r0, r7, r0 - add r0, r6, r0 - strh r0, [r5, #0x0] -_02043A40: - mov r0, #0x0 - pop {r3-r7, pc} diff --git a/arm9/asm/scrcmd_14.s b/arm9/asm/scrcmd_14.s deleted file mode 100644 index 1fd34357..00000000 --- a/arm9/asm/scrcmd_14.s +++ /dev/null @@ -1,267 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02043A44 -FUN_02043A44: ; 0x02043A44 - 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 VarGet - 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, r5, #0x0 - mov r1, #0x26 - bl FUN_02039438 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - bl MOD05_021E2950 - str r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02043A94 -FUN_02043A94: ; 0x02043A94 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x26 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E29B4 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02043AAC -FUN_02043AAC: ; 0x02043AAC - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x26 - bl FUN_02039438 - add r1, r0, #0x0 - add r4, #0x80 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - bl MOD05_021E29C8 - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02043ACC -FUN_02043ACC: ; 0x02043ACC - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl CheckCoins - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043AFC -FUN_02043AFC: ; 0x02043AFC - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl GiveCoins - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043B28 -FUN_02043B28: ; 0x02043B28 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl TakeCoins - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043B54 -FUN_02043B54: ; 0x02043B54 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r1, r0, #0x0 - ldrh r1, [r1, #0x0] - add r0, r4, #0x0 - bl TakeCoins - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043B84 -FUN_02043B84: ; 0x02043B84 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - add r0, r5, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - ldr r0, [r5, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - 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 GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r6, #0x0 - bl CheckCoins - cmp r0, r4 - bhs _02043BC8 - mov r0, #0x0 - b _02043BCA -_02043BC8: - mov r0, #0x1 -_02043BCA: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02043BD0 -FUN_02043BD0: ; 0x02043BD0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - add r0, r4, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - ldr r0, [r4, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldrh r5, [r0, #0x0] - add r0, r6, #0x0 - bl CheckCoins - cmp r0, r5 - bhs _02043C1E - mov r0, #0x0 - b _02043C20 -_02043C1E: - mov r0, #0x1 -_02043C20: - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02043C28 -FUN_02043C28: ; 0x02043C28 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetCoinsAddr - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r6, #0x0 - bl CanGiveCoins - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_15.s b/arm9/asm/scrcmd_15.s deleted file mode 100644 index e5630b08..00000000 --- a/arm9/asm/scrcmd_15.s +++ /dev/null @@ -1,198 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02043C6C -FUN_02043C6C: ; 0x02043C6C - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_AddMoney - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043C90 -FUN_02043C90: ; 0x02043C90 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_SubMoney - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043CB4 -FUN_02043CB4: ; 0x02043CB4 - push {r3-r5, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl PlayerProfile_SubMoney - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043CE4 -FUN_02043CE4: ; 0x02043CE4 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - 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 GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r6, #0x0 - bl PlayerProfile_GetMoney - cmp r0, r4 - bhs _02043D20 - mov r0, #0x0 - b _02043D22 -_02043D20: - mov r0, #0x1 -_02043D22: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02043D28 -FUN_02043D28: ; 0x02043D28 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - 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 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 - add r0, r6, #0x0 - bl PlayerProfile_GetMoney - cmp r0, r4 - bhs _02043D6E - mov r0, #0x0 - b _02043D70 -_02043D6E: - mov r0, #0x1 -_02043D70: - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02043D78 -FUN_02043D78: ; 0x02043D78 - 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 VarGet - 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, r5, #0x0 - mov r1, #0x27 - bl FUN_02039438 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - bl MOD05_021E27E8 - str r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02043DC8 -FUN_02043DC8: ; 0x02043DC8 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x27 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E288C - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02043DE0 -FUN_02043DE0: ; 0x02043DE0 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x27 - bl FUN_02039438 - add r1, r0, #0x0 - add r4, #0x80 - ldr r0, [r4, #0x0] - ldr r1, [r1, #0x0] - bl MOD05_021E28A0 - mov r0, #0x0 - pop {r4, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_16.s b/arm9/asm/scrcmd_16.s deleted file mode 100644 index 8afbf518..00000000 --- a/arm9/asm/scrcmd_16.s +++ /dev/null @@ -1,408 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02043E00 -FUN_02043E00: ; 0x02043E00 - push {r3-r5, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - ldr r5, [r0, #0xc] - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl Sav2_DayCare_get - ldr r1, [r4, #0x0] - bl MOD05_021ED4E0 - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02043E20 -FUN_02043E20: ; 0x02043E20 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r4, [r1, #0xc] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x8 - bl SavArray_get - bl MOD05_021ED5EC - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02043E50 -FUN_02043E50: ; 0x02043E50 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x8 - ldr r0, [r0, #0xc] - bl SavArray_get - bl MOD05_021ECD64 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02043E68 -FUN_02043E68: ; 0x02043E68 - push {r4-r6, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0x8 - ldr r0, [r5, #0xc] - bl SavArray_get - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r2, r0, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl MOD05_DayCare_GiveEggToPlayer - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02043E9C -FUN_02043E9C: ; 0x02043E9C - push {r3-r7, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0xf - add r0, r5, #0x0 - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - ldr r6, [r5, #0xc] - 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 r4, r0, #0x0 - add r0, r6, #0x0 - mov r1, #0x8 - bl SavArray_get - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - lsl r3, r4, #0x18 - ldr r1, [r7, #0x0] - add r2, r6, #0x0 - lsr r3, r3, #0x18 - bl MOD05_021EC71C - ldr r1, [sp, #0x0] - strh r0, [r1, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02043EFC -FUN_02043EFC: ; 0x02043EFC - push {r3-r7, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0xf - add r0, r5, #0x0 - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - ldr r5, [r5, #0xc] - 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 VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - bl SavArray_get - lsl r1, r4, #0x18 - ldr r2, [r7, #0x0] - lsr r1, r1, #0x18 - bl MOD05_021EC854 - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02043F50 -FUN_02043F50: ; 0x02043F50 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - ldr r4, [r0, #0xc] - bl FUN_02039438 - 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 - add r0, r4, #0x0 - mov r1, #0x8 - bl SavArray_get - ldr r2, [r6, #0x0] - add r1, r5, #0x0 - bl MOD05_021EC864 - strh r0, [r7, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02043FA0 -FUN_02043FA0: ; 0x02043FA0 - push {r3-r7, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0xf - add r0, r5, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - 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 GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - ldr r2, [r6, #0x0] - add r1, r7, #0x0 - bl MOD05_021ED5C4 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02043FF4 -FUN_02043FF4: ; 0x02043FF4 - push {r4-r6, lr} - add r6, r0, #0x0 - add r1, r6, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - ldr r5, [r4, #0xc] - bl ScriptReadHalfword - add r6, #0x80 - add r1, r0, #0x0 - ldr r0, [r6, #0x0] - bl VarGet - add r6, r0, #0x0 - ldr r0, [r4, #0xc] - bl SavArray_PlayerParty_get - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - bl SavArray_get - lsl r1, r6, #0x18 - add r2, r0, #0x0 - add r0, r4, #0x0 - lsr r1, r1, #0x18 - add r3, r5, #0x0 - bl MOD05_021EC57C - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02044034 -FUN_02044034: ; 0x02044034 - push {r3-r7, lr} - sub sp, #0x10 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - ldr r5, [r0, #0xc] - bl FUN_02039438 - 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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #0x8] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #0xc] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl Sav2_DayCare_get - lsl r1, r4, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x0] - ldr r1, [r6, #0x0] - ldr r2, [sp, #0x8] - ldr r3, [sp, #0xc] - str r1, [sp, #0x4] - lsl r1, r7, #0x18 - lsl r2, r2, #0x18 - lsl r3, r3, #0x18 - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl MOD05_021ED52C - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start FUN_020440C0 -FUN_020440C0: ; 0x020440C0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r4, [r1, #0xc] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x8 - bl SavArray_get - bl MOD05_021ED644 - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020440F0 -FUN_020440F0: ; 0x020440F0 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r4, [r1, #0xc] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x8 - bl SavArray_get - bl Sav2_DayCare_GetEggPID - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02044120 -FUN_02044120: ; 0x02044120 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02044138 -FUN_02044138: ; 0x02044138 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204413C -FUN_0204413C: ; 0x0204413C - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02044140 -FUN_02044140: ; 0x02044140 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s index 4b0acb12..fe0e3aa9 100644 --- a/arm9/asm/scrcmd_18.s +++ b/arm9/asm/scrcmd_18.s @@ -678,7 +678,7 @@ FUN_020448D4: ; 0x020448D4 ldr r0, [r5, #0x0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r7, r0, #0x0 ldr r0, [r6, #0xc] bl SavArray_PlayerParty_get diff --git a/arm9/asm/scrcmd_19.s b/arm9/asm/scrcmd_19.s deleted file mode 100644 index 863006b1..00000000 --- a/arm9/asm/scrcmd_19.s +++ /dev/null @@ -1,175 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F450C -UNK_020F450C: ; 0x020F450C - .byte 0x67, 0x00 - - .global UNK_020F450E -UNK_020F450E: ; 0x020F450E - .byte 0x8E, 0x00, 0x65, 0x00, 0x8A, 0x00, 0x66, 0x00, 0x8C, 0x00, 0x63, 0x00, 0x59, 0x01, 0x64, 0x00 - .byte 0x5B, 0x01, 0x68, 0x00, 0x9A, 0x01, 0x69, 0x00, 0x98, 0x01 - - .text - - thumb_func_start FUN_02045268 -FUN_02045268: ; 0x02045268 - 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 - mov r4, #0x0 - ldr r7, _020452B0 ; =UNK_020F450C - str r0, [sp, #0x0] - add r5, r4, #0x0 -_02045288: - ldr r0, [r6, #0xc] - bl Sav2_Bag_get - lsl r1, r4, #0x2 - ldrh r1, [r7, r1] - mov r2, #0x4 - bl Bag_GetQuantity - add r0, r5, r0 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x7 - blo _02045288 - ldr r0, [sp, #0x0] - strh r5, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_020452B0: .word UNK_020F450C - - thumb_func_start FUN_020452B4 -FUN_020452B4: ; 0x020452B4 - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - mov r5, #0x0 - ldr r2, _02045300 ; =UNK_020F450C - strh r5, [r4, #0x0] -_020452E0: - lsl r3, r5, #0x2 - ldrh r1, [r2, r3] - cmp r0, r1 - bne _020452F0 - ldr r0, _02045304 ; =UNK_020F450E - ldrh r0, [r0, r3] - strh r0, [r4, #0x0] - b _020452FA -_020452F0: - add r1, r5, #0x1 - lsl r1, r1, #0x10 - lsr r5, r1, #0x10 - cmp r5, #0x7 - blo _020452E0 -_020452FA: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_02045300: .word UNK_020F450C -_02045304: .word UNK_020F450E - - thumb_func_start FUN_02045308 -FUN_02045308: ; 0x02045308 - 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, #0x8] - add r0, r4, #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] - mov r4, #0x0 - ldr r0, [sp, #0x8] - add r6, r4, #0x0 - strh r4, [r0, #0x0] - ldr r0, [sp, #0x4] - strh r4, [r0, #0x0] -_02045358: - ldr r0, [r7, #0xc] - lsl r5, r4, #0x2 - bl Sav2_Bag_get - ldr r1, _02045394 ; =UNK_020F450C - mov r2, #0x4 - ldrh r1, [r1, r5] - bl Bag_GetQuantity - add r0, r6, r0 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - ldr r0, [sp, #0x0] - cmp r6, r0 - blo _02045384 - ldr r0, _02045394 ; =UNK_020F450C - ldrh r1, [r0, r5] - ldr r0, [sp, #0x8] - strh r1, [r0, #0x0] - ldr r0, [sp, #0x4] - strh r4, [r0, #0x0] - b _0204538E -_02045384: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x7 - blo _02045358 -_0204538E: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02045394: .word UNK_020F450C - - thumb_func_start FUN_02045398 -FUN_02045398: ; 0x02045398 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204539C -FUN_0204539C: ; 0x0204539C - mov r0, #0x0 - bx lr diff --git a/arm9/asm/scrcmd_20.s b/arm9/asm/scrcmd_20.s deleted file mode 100644 index 31de1e77..00000000 --- a/arm9/asm/scrcmd_20.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F4528 -UNK_020F4528: ; 0x020F4528 - .byte 0xFB, 0x00 - - .global UNK_020F452A -UNK_020F452A: ; 0x020F452A - .byte 0xE8, 0x03, 0x09, 0x01, 0xE8, 0x03, 0x14, 0x01, 0xE8, 0x03, 0x15, 0x01, 0xE8, 0x03, 0xA1, 0x01 - .byte 0xD0, 0x07, 0x81, 0x01, 0xD0, 0x07, 0x92, 0x01, 0xA0, 0x0F, 0x67, 0x01, 0xA0, 0x0F, 0x73, 0x01 - .byte 0x70, 0x17, 0xA0, 0x01, 0x70, 0x17, 0x51, 0x01, 0x70, 0x17, 0x62, 0x01, 0x40, 0x1F, 0x5C, 0x01 - .byte 0x40, 0x1F, 0x6A, 0x01, 0x10, 0x27, 0x5F, 0x01, 0x10, 0x27, 0x54, 0x01, 0x10, 0x27, 0x64, 0x01 - .byte 0x10, 0x27, 0x91, 0x01, 0x98, 0x3A, 0x8B, 0x01, 0x20, 0x4E - - .text - - thumb_func_start FUN_020453A0 -FUN_020453A0: ; 0x020453A0 - 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 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 r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldr r1, _020453EC ; =UNK_020F4528 - lsl r2, r4, #0x2 - ldrh r1, [r1, r2] - strh r1, [r6, #0x0] - ldr r1, _020453F0 ; =UNK_020F452A - ldrh r1, [r1, r2] - strh r1, [r0, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_020453EC: .word UNK_020F4528 -_020453F0: .word UNK_020F452A diff --git a/arm9/asm/scrcmd_22.s b/arm9/asm/scrcmd_22.s deleted file mode 100644 index 1f354520..00000000 --- a/arm9/asm/scrcmd_22.s +++ /dev/null @@ -1,220 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02045784 -FUN_02045784: ; 0x02045784 - 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 VarGet - 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 GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl Sav2_Bag_get - add r1, r6, #0x0 - add r2, r7, #0x0 - mov r3, #0x4 - bl Bag_AddItem - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_020457DC -FUN_020457DC: ; 0x020457DC - 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 VarGet - 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 GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl Sav2_Bag_get - add r1, r6, #0x0 - add r2, r7, #0x0 - mov r3, #0x4 - bl Bag_TakeItem - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02045834 -FUN_02045834: ; 0x02045834 - 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 VarGet - 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 GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl Sav2_Bag_get - add r1, r6, #0x0 - add r2, r7, #0x0 - mov r3, #0x4 - bl Bag_HasSpaceForItem - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0204588C -FUN_0204588C: ; 0x0204588C - 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 VarGet - 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 GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl Sav2_Bag_get - add r1, r6, #0x0 - add r2, r7, #0x0 - mov r3, #0xb - bl Bag_HasItem - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_020458E4 -FUN_020458E4: ; 0x020458E4 - 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 VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02054CB0 - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02045918 -FUN_02045918: ; 0x02045918 - 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 VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x5 - mov r2, #0xb - bl GetItemAttr - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02045950 -FUN_02045950: ; 0x02045950 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02045954 -FUN_02045954: ; 0x02045954 - mov r0, #0x0 - bx lr diff --git a/arm9/asm/scrcmd_23.s b/arm9/asm/scrcmd_23.s deleted file mode 100644 index 3d38b510..00000000 --- a/arm9/asm/scrcmd_23.s +++ /dev/null @@ -1,483 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02045958 -FUN_02045958: ; 0x02045958 - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r5, [r1, #0xc] - 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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02026CC4 - add r1, r6, #0x0 - bl FUN_02025D6C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020459AC -FUN_020459AC: ; 0x020459AC - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020459E8 -FUN_020459E8: ; 0x020459E8 - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r5, [r1, #0xc] - 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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02026CC4 - add r1, r6, #0x0 - bl FUN_02025D94 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02045A3C -FUN_02045A3C: ; 0x02045A3C - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045A78 -FUN_02045A78: ; 0x02045A78 - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r5, [r1, #0xc] - 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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02026CC4 - add r1, r6, #0x0 - bl FUN_02026298 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02045ACC -FUN_02045ACC: ; 0x02045ACC - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045B08 -FUN_02045B08: ; 0x02045B08 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045B44 -FUN_02045B44: ; 0x02045B44 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045B80 -FUN_02045B80: ; 0x02045B80 - push {r3-r5, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r4, [r1, #0xc] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r0, r4, #0x0 - bl FUN_02026CC4 - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02045BC8 -FUN_02045BC8: ; 0x02045BC8 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045C04 -FUN_02045C04: ; 0x02045C04 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045C40 -FUN_02045C40: ; 0x02045C40 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045C7C -FUN_02045C7C: ; 0x02045C7C - push {r3-r7, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldr r5, [r1, #0xc] - 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 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 GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02026CC4 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_020260C4 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02045CD4 -FUN_02045CD4: ; 0x02045CD4 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045D10 -FUN_02045D10: ; 0x02045D10 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02045D4C -FUN_02045D4C: ; 0x02045D4C - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - mov r0, #0x0 - pop {r4, pc} - .balign 4 diff --git a/arm9/asm/scrcmd_25.s b/arm9/asm/scrcmd_25.s deleted file mode 100644 index ab6d4787..00000000 --- a/arm9/asm/scrcmd_25.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02046010 -FUN_02046010: ; 0x02046010 - push {r3, lr} - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0204601C -FUN_0204601C: ; 0x0204601C - push {r3, lr} - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02046028 -FUN_02046028: ; 0x02046028 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204602C -FUN_0204602C: ; 0x0204602C - mov r0, #0x0 - bx lr diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s index 28cbd7ac..28df2444 100644 --- a/arm9/asm/scrcmd_3.s +++ b/arm9/asm/scrcmd_3.s @@ -206,7 +206,7 @@ FUN_02040028: ; 0x02040028 ldr r0, [r0, #0x0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r5, #0x80 ldr r3, [r5, #0x0] add r2, r0, #0x0 diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s deleted file mode 100644 index 3bad9d50..00000000 --- a/arm9/asm/scrcmd_4.s +++ /dev/null @@ -1,1313 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gGameLanguage - - .text - - thumb_func_start FUN_020406CC -FUN_020406CC: ; 0x020406CC - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0xf - add r0, r6, #0x0 - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r4, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r5, [r1, #0x0] - add r0, r6, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r2, r0, #0x0 - ldr r0, [r4, #0x0] - add r1, r5, #0x0 - bl BufferPlayersName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040700 -FUN_02040700: ; 0x02040700 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0xf - add r0, r4, #0x0 - bl FUN_02039438 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r2, [r4, #0xc] - bl BufferRivalsName - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02040724 -FUN_02040724: ; 0x02040724 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0xf - add r0, r4, #0x0 - bl FUN_02039438 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r2, [r4, #0xc] - bl BufferFriendsName - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02040748 -FUN_02040748: ; 0x02040748 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0xf - add r0, r6, #0x0 - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #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 - add r2, r0, #0x0 - ldr r0, [r7, #0x0] - add r1, r4, #0x0 - bl BufferBoxMonSpeciesName - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02040790 -FUN_02040790: ; 0x02040790 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferItemName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020407C8 -FUN_020407C8: ; 0x020407C8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferPocketName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040800 -FUN_02040800: ; 0x02040800 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - bl TMHMGetMove - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferMoveName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0204083C -FUN_0204083C: ; 0x0204083C - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferMoveName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040874 -FUN_02040874: ; 0x02040874 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - bl FUN_02054C14 - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - add r2, r5, #0x0 - bl BufferIntegerAsString - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_020408BC -FUN_020408BC: ; 0x020408BC - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r6, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #0x8] - ldr r1, [r5, #0x8] - add r2, r1, #0x1 - str r2, [r5, #0x8] - ldrb r4, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r3, [r2, #0x0] - cmp r4, #0x0 - bne _02040904 - bl FUN_02054C14 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 -_02040904: - str r4, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - ldr r2, [sp, #0x8] - add r1, r6, #0x0 - bl BufferIntegerAsString - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0204091C -FUN_0204091C: ; 0x0204091C - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0xf - add r0, r6, #0x0 - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #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 - add r2, r0, #0x0 - ldr r0, [r7, #0x0] - add r1, r4, #0x0 - bl BufferBoxMonNickname - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02040964 -FUN_02040964: ; 0x02040964 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - ldr r0, [r4, #0xc] - bl GetStoragePCPointer - str r0, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r5, r0, #0x0 - mov r1, #0x1e - bl _s32_div_f - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x1e - bl _s32_div_f - add r2, r1, #0x0 - ldr r0, [sp, #0x0] - add r1, r7, #0x0 - bl PCStorage_GetMonByIndexPair - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferBoxMonNickname - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_020409C0 -FUN_020409C0: ; 0x020409C0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferPoketchAppName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020409F8 -FUN_020409F8: ; 0x020409F8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferTrainerClassName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040A30 -FUN_02040A30: ; 0x02040A30 - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - add r0, r5, #0x0 - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r7, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r7, #0x8] - add r0, r4, #0x0 - ldrb r5, [r1, #0x0] - bl PlayerProfile_GetTrainerGender - add r7, r0, #0x0 - add r0, r4, #0x0 - bl PlayerProfile_GetAvatar - add r1, r0, #0x0 - add r0, r7, #0x0 - mov r2, #0x2 - bl FUN_020536D0 - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r5, #0x0 - bl BufferTrainerClassNameWithArticle - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02040A7C -FUN_02040A7C: ; 0x02040A7C - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #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 - ldr r1, [r5, #0x8] - str r0, [sp, #0x8] - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r5, [r1, #0x0] - add r0, r6, #0x0 - mov r1, #0x4 - bl FUN_02040AE4 - add r6, r0, #0x0 - str r5, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - ldr r3, [sp, #0x8] - add r1, r4, #0x0 - add r2, r6, #0x0 - bl BufferString - add r0, r6, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02040AE4 -FUN_02040AE4: ; 0x02040AE4 - push {r3-r5, lr} - ldr r2, _02040B08 ; =0x0000016A - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r0, #0x1 - mov r1, #0x1a - bl NewMsgDataFromNarc - add r5, r0, #0x0 - add r1, r4, #0x0 - bl NewString_ReadMsgData - add r4, r0, #0x0 - add r0, r5, #0x0 - bl DestroyMsgData - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02040B08: .word 0x0000016A - - thumb_func_start FUN_02040B0C -FUN_02040B0C: ; 0x02040B0C - push {r4-r6, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r4, #0x8] - add r4, #0x80 - ldr r0, [r4, #0x0] - ldrb r5, [r1, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205F388 - mov r1, #0x4 - bl FUN_02040AE4 - add r4, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r6, #0x0] - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl BufferString - add r0, r4, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_02040B5C -FUN_02040B5C: ; 0x02040B5C - push {r4-r6, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r4, #0x8] - add r4, #0x80 - ldr r0, [r4, #0x0] - ldrb r5, [r1, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205F398 - mov r1, #0x4 - bl FUN_02040AE4 - add r4, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r6, #0x0] - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl BufferString - add r0, r4, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_02040BAC -FUN_02040BAC: ; 0x02040BAC - push {r4-r6, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r4, #0x8] - add r4, #0x80 - ldr r0, [r4, #0x0] - ldrb r5, [r1, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205F3C0 - mov r1, #0x4 - bl FUN_02040AE4 - add r4, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r6, #0x0] - add r1, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl BufferString - add r0, r4, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - - thumb_func_start FUN_02040BFC -FUN_02040BFC: ; 0x02040BFC - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferDecorationName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040C34 -FUN_02040C34: ; 0x02040C34 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferUndergroundTrapName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040C6C -FUN_02040C6C: ; 0x02040C6C - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferUndergroundItemName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040CA4 -FUN_02040CA4: ; 0x02040CA4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - mov r0, #0x16 - mov r1, #0x4 - bl String_ctor - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r6, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - mov r1, #0x4 - add r2, r4, #0x0 - bl FUN_02064E60 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - add r1, r6, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl BufferString - add r0, r4, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02040D04 -FUN_02040D04: ; 0x02040D04 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r4, #0x8] - add r0, r4, #0x0 - ldrb r6, [r1, #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 - sub r5, #0x95 - add r4, r0, #0x0 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x20 - bl GetNutName - add r5, r0, #0x0 - cmp r4, #0x2 - bhs _02040D5A - mov r0, #0x1 - b _02040D5C -_02040D5A: - mov r0, #0x0 -_02040D5C: - str r0, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - add r1, r6, #0x0 - add r2, r5, #0x0 - mov r3, #0x0 - bl BufferString - add r0, r5, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02040D7C -FUN_02040D7C: ; 0x02040D7C - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferNatureName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040DB4 -FUN_02040DB4: ; 0x02040DB4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferFashionName - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040DEC -FUN_02040DEC: ; 0x02040DEC - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - mov r0, #0xb - ldrb r6, [r1, #0x0] - add r1, r0, #0x0 - bl String_ctor - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02024EB4 - bl FUN_02024F0C - add r1, r0, #0x0 - add r0, r4, #0x0 - bl CopyU16ArrayToString - ldr r0, _02040E48 ; =gGameLanguage - mov r3, #0x0 - ldrb r0, [r0, #0x0] - str r3, [sp, #0x0] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - add r2, r4, #0x0 - bl BufferString - add r0, r4, #0x0 - bl String_dtor - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - nop -_02040E48: .word gGameLanguage - - thumb_func_start FUN_02040E4C -FUN_02040E4C: ; 0x02040E4C - push {r3-r7, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0xf - add r0, r6, #0x0 - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r7, r0, #0x0 - add r0, r1, #0x1 - str r0, [r4, #0x8] - add r0, r4, #0x0 - ldrb r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [sp, #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 - ldr r1, [sp, #0x0] - bl GetPartyMonByIndex - add r4, #0x36 - add r1, r4, #0x0 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - ldr r0, [r7, #0x0] - add r1, r5, #0x0 - bl BufferMoveName - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02040EB4 -FUN_02040EB4: ; 0x02040EB4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x3 - bl FUN_0207FC5C - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferRibbonNameOrDesc - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040EF8 -FUN_02040EF8: ; 0x02040EF8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - sub r2, r2, #0x1 - lsl r2, r2, #0x10 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - lsr r2, r2, #0x10 - bl BufferSealName - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02040F34 -FUN_02040F34: ; 0x02040F34 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferItemNameWithIndefArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040F6C -FUN_02040F6C: ; 0x02040F6C - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferItemNamePlural - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040FA4 -FUN_02040FA4: ; 0x02040FA4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferDecorationNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02040FDC -FUN_02040FDC: ; 0x02040FDC - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferUndergroundTrapNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02041014 -FUN_02041014: ; 0x02041014 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferUndergroundItemNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0204104C -FUN_0204104C: ; 0x0204104C - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #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 - ldr r0, [r5, #0x8] - add r1, r4, #0x0 - add r0, r0, #0x1 - str r0, [r5, #0x8] - ldr r0, [r6, #0x0] - add r2, r7, #0x0 - bl BufferSpeciesNameWithArticle - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02041094 -FUN_02041094: ; 0x02041094 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r5, #0x80 - ldr r0, [r5, #0x0] - ldrb r4, [r1, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205F3C0 - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferSpeciesNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020410C8 -FUN_020410C8: ; 0x020410C8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferFashionNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02041100 -FUN_02041100: ; 0x02041100 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - bl BufferTrainerClassNameWithArticle - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02041138 -FUN_02041138: ; 0x02041138 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - sub r2, r2, #0x1 - lsl r2, r2, #0x10 - ldr r0, [r6, #0x0] - add r1, r4, #0x0 - lsr r2, r2, #0x10 - bl BufferSealNamePlural - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02041174 -FUN_02041174: ; 0x02041174 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - bl ScrStrBufs_UpperFirstChar - mov r0, #0x0 - pop {r4, pc} diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd_asm.s index c5ae760b..3d6645c2 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd_asm.s @@ -1,11 +1,10 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020F34E0 - .extern sScriptConditionTable .extern UNK_020F34FC .extern UNK_020F3538 .extern gMain + .extern FUN_0203A2F0 .section .bss @@ -15,2852 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start ScrCmd_nop -ScrCmd_nop: ; 0x020399A0 - mov r0, #0x0 - bx lr - - thumb_func_start ScrCmd_nop2 -ScrCmd_nop2: ; 0x020399A4 - mov r0, #0x0 - bx lr - - thumb_func_start ScrCmd_end -ScrCmd_end: ; 0x020399A8 - push {r3, lr} - bl StopScript - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start ScrCmd_delay -ScrCmd_delay: ; 0x020399B4 - push {r3-r7, lr} - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r6, [r1, #0x0] - bl ScriptReadHalfword - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl GetVarPointer - strh r7, [r0, #0x0] - ldr r1, _020399E4 ; =RunPauseTimer - add r0, r5, #0x0 - str r4, [r5, #0x64] - bl SetupNativeScript - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 -_020399E4: .word RunPauseTimer - - thumb_func_start RunPauseTimer -RunPauseTimer: ; 0x020399E8 - push {r3, lr} - add r1, r0, #0x0 - ldr r1, [r1, #0x64] - add r0, #0x80 - lsl r1, r1, #0x10 - ldr r0, [r0, #0x0] - lsr r1, r1, #0x10 - bl GetVarPointer - ldrh r1, [r0, #0x0] - sub r1, r1, #0x1 - strh r1, [r0, #0x0] - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - bne _02039A0A - mov r0, #0x1 - pop {r3, pc} -_02039A0A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02039A10 -FUN_02039A10: ; 0x02039A10 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ScrCmd_loadbyte -ScrCmd_loadbyte: ; 0x02039A28 - ldr r1, [r0, #0x8] - add r2, r1, #0x1 - str r2, [r0, #0x8] - ldrb r3, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r2, [r2, #0x0] - lsl r1, r3, #0x2 - add r0, r0, r1 - str r2, [r0, #0x64] - mov r0, #0x0 - bx lr - - thumb_func_start ScrCmd_loadword -ScrCmd_loadword: ; 0x02039A40 - push {r3-r5, lr} - add r4, r0, #0x0 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r5, [r2, #0x0] - bl ScriptReadWord - lsl r1, r5, #0x2 - add r1, r4, r1 - str r0, [r1, #0x64] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_loadbytefromaddr -ScrCmd_loadbytefromaddr: ; 0x02039A5C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r4, [r2, #0x0] - bl ScriptReadWord - ldrb r1, [r0, #0x0] - lsl r0, r4, #0x2 - add r0, r5, r0 - str r1, [r0, #0x64] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_writebytetoaddr -ScrCmd_writebytetoaddr: ; 0x02039A78 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - strb r1, [r0, #0x0] - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ScrCmd_setptrbyte -ScrCmd_setptrbyte: ; 0x02039A90 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - lsl r1, r1, #0x2 - add r1, r4, r1 - ldr r1, [r1, #0x64] - strb r1, [r0, #0x0] - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_copylocal -ScrCmd_copylocal: ; 0x02039AAC - ldr r1, [r0, #0x8] - add r2, r1, #0x1 - str r2, [r0, #0x8] - ldrb r3, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r1, [r2, #0x0] - lsl r1, r1, #0x2 - add r1, r0, r1 - ldr r2, [r1, #0x64] - lsl r1, r3, #0x2 - add r0, r0, r1 - str r2, [r0, #0x64] - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start ScrCmd_copybyte -ScrCmd_copybyte: ; 0x02039ACC - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadWord - ldrb r0, [r0, #0x0] - strb r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start compare_012 -compare_012: ; 0x02039AE4 - cmp r0, r1 - bhs _02039AEC - mov r0, #0x0 - bx lr -_02039AEC: - cmp r0, r1 - bne _02039AF4 - mov r0, #0x1 - bx lr -_02039AF4: - mov r0, #0x2 - bx lr - - thumb_func_start ScrCmd_compare_local_to_local -ScrCmd_compare_local_to_local: ; 0x02039AF8 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x8] - add r1, r0, #0x1 - str r1, [r4, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x64] - str r2, [r4, #0x8] - ldrb r1, [r1, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r1, r1, #0x2 - add r1, r4, r1 - ldr r1, [r1, #0x64] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_compare_local_to_value -ScrCmd_compare_local_to_value: ; 0x02039B28 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x8] - add r1, r0, #0x1 - str r1, [r4, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - lsl r0, r0, #0x2 - add r0, r4, r0 - ldr r0, [r0, #0x64] - str r2, [r4, #0x8] - ldrb r1, [r1, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ScrCmd_compare_local_to_addr -ScrCmd_compare_local_to_addr: ; 0x02039B50 - push {r3-r5, lr} - add r4, r0, #0x0 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - lsl r1, r1, #0x2 - add r1, r4, r1 - ldr r1, [r1, #0x64] - lsl r1, r1, #0x18 - lsr r5, r1, #0x18 - bl ScriptReadWord - ldrb r1, [r0, #0x0] - add r0, r5, #0x0 - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_compare_addr_to_local -ScrCmd_compare_addr_to_local: ; 0x02039B78 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - ldr r2, [r4, #0x8] - ldrb r0, [r0, #0x0] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - lsl r1, r1, #0x2 - add r1, r4, r1 - ldr r1, [r1, #0x64] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ScrCmd_compare_addr_to_value -ScrCmd_compare_addr_to_value: ; 0x02039BA0 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - ldr r2, [r4, #0x8] - ldrb r0, [r0, #0x0] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_compare_addr_to_addr -ScrCmd_compare_addr_to_addr: ; 0x02039BBC - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadWord - ldrb r4, [r0, #0x0] - add r0, r5, #0x0 - bl ScriptReadWord - ldrb r1, [r0, #0x0] - add r0, r4, #0x0 - bl compare_012 - strb r0, [r5, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_compare_var_to_value -ScrCmd_compare_var_to_value: ; 0x02039BDC - 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 - ldrh r5, [r0, #0x0] - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - bl compare_012 - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_compare_var_to_var -ScrCmd_compare_var_to_var: ; 0x02039C08 - 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 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 r1, r0, #0x0 - ldrh r0, [r4, #0x0] - ldrh r1, [r1, #0x0] - bl compare_012 - strb r0, [r5, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02039C40 -FUN_02039C40: ; 0x02039C40 - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0x7 - add r0, r5, #0x0 - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xe - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r7, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - bl CreateScriptContext - str r0, [r6, #0x0] - ldrb r0, [r4, #0x0] - add r0, r0, #0x1 - strb r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02039C78 -FUN_02039C78: ; 0x02039C78 - push {r3-r7, lr} - str r0, [sp, #0x0] - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0x5 - add r0, r5, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x7 - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xe - bl FUN_02039438 - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - mov r0, #0x1 - strb r0, [r6, #0x0] - add r0, r5, #0x0 - bl CreateScriptContext - str r0, [r7, #0x0] - ldrb r0, [r4, #0x0] - ldr r1, _02039CC4 ; =FUN_02039CC8 - add r0, r0, #0x1 - strb r0, [r4, #0x0] - ldr r0, [sp, #0x0] - bl SetupNativeScript - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 -_02039CC4: .word FUN_02039CC8 - - thumb_func_start FUN_02039CC8 -FUN_02039CC8: ; 0x02039CC8 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x5 - bl FUN_02039438 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02039CDE - mov r0, #0x1 - pop {r3, pc} -_02039CDE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02039CE4 -FUN_02039CE4: ; 0x02039CE4 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x5 - bl FUN_02039438 - mov r1, #0x0 - strb r1, [r0, #0x0] - add r0, r1, #0x0 - pop {r3, pc} - - thumb_func_start ScrCmd_goto -ScrCmd_goto: ; 0x02039CF8 - ; relative jump - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - add r2, r0, #0x0 - ldr r1, [r4, #0x8] - add r0, r4, #0x0 - add r1, r1, r2 - bl ScriptJump - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02039D10 -FUN_02039D10: ; 0x02039D10 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadWord - add r7, r0, #0x0 - ldr r0, [r6, #0x0] - bl FUN_02058448 - cmp r4, r0 - bne _02039D44 - ldr r1, [r5, #0x8] - add r0, r5, #0x0 - add r1, r1, r7 - bl ScriptJump -_02039D44: - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02039D48 -FUN_02039D48: ; 0x02039D48 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x74] - bl FUN_02046534 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r4, [r1, #0x0] - add r0, r5, #0x0 - bl ScriptReadWord - add r2, r0, #0x0 - cmp r6, r4 - bne _02039D72 - ldr r1, [r5, #0x8] - add r0, r5, #0x0 - add r1, r1, r2 - bl ScriptJump -_02039D72: - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02039D78 -FUN_02039D78: ; 0x02039D78 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x9 - bl FUN_02039438 - ldr r1, [r5, #0x8] - add r6, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r4, [r1, #0x0] - add r0, r5, #0x0 - bl ScriptReadWord - add r2, r0, #0x0 - ldr r0, [r6, #0x0] - cmp r0, r4 - bne _02039DA8 - ldr r1, [r5, #0x8] - add r0, r5, #0x0 - add r1, r1, r2 - bl ScriptJump -_02039DA8: - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start ScrCmd_call -ScrCmd_call: ; 0x02039DAC - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadWord - add r2, r0, #0x0 - ldr r1, [r4, #0x8] - add r0, r4, #0x0 - add r1, r1, r2 - bl ScriptCall - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_return -ScrCmd_return: ; 0x02039DC4 - push {r3, lr} - bl ScriptReturn - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start ScrCmd_goto_if -ScrCmd_goto_if: ; 0x02039DD0 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r4, [r2, #0x0] - bl ScriptReadWord - add r1, r0, #0x0 - lsl r0, r4, #0x1 - add r3, r4, r0 - ldr r0, _02039E00 ; =sScriptConditionTable - ldrb r2, [r5, #0x2] - add r0, r0, r3 - ldrb r0, [r2, r0] - cmp r0, #0x1 - bne _02039DFC - ldr r2, [r5, #0x8] - add r0, r5, #0x0 - add r1, r2, r1 - bl ScriptJump -_02039DFC: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02039E00: .word sScriptConditionTable - - thumb_func_start ScrCmd_call_if -ScrCmd_call_if: ; 0x02039E04 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r4, [r2, #0x0] - bl ScriptReadWord - add r1, r0, #0x0 - lsl r0, r4, #0x1 - add r3, r4, r0 - ldr r0, _02039E34 ; =sScriptConditionTable - ldrb r2, [r5, #0x2] - add r0, r0, r3 - ldrb r0, [r2, r0] - cmp r0, #0x1 - bne _02039E30 - ldr r2, [r5, #0x8] - add r0, r5, #0x0 - add r1, r2, r1 - bl ScriptCall -_02039E30: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_02039E34: .word sScriptConditionTable - - thumb_func_start ScrCmd_setflag -ScrCmd_setflag: ; 0x02039E38 - push {r4, lr} - add r1, r0, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FlagSet - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_clearflag -ScrCmd_clearflag: ; 0x02039E50 - push {r4, lr} - add r1, r0, #0x0 - add r1, #0x80 - ldr r4, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FlagClear - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start ScrCmd_checkflag -ScrCmd_checkflag: ; 0x02039E68 - push {r3-r5, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - add r1, #0x80 - ldr r5, [r1, #0x0] - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FlagCheck - strb r0, [r4, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02039E84 -FUN_02039E84: ; 0x02039E84 - 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 - ldrh r1, [r6, #0x0] - add r0, r5, #0x0 - bl FlagCheck - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_02039EC0 -FUN_02039EC0: ; 0x02039EC0 - 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 r1, r0, #0x0 - ldrh r1, [r1, #0x0] - add r0, r4, #0x0 - bl FlagSet - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_settrainerflag -ScrCmd_settrainerflag: ; 0x02039EE8 - push {r3-r5, 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 VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl TrainerFlagSet - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_cleartrainerflag -ScrCmd_cleartrainerflag: ; 0x02039F0C - push {r3-r5, 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 VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl TrainerFlagClear - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_checktrainerflag -ScrCmd_checktrainerflag: ; 0x02039F30 - push {r3-r5, 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 VarGet - add r1, r0, #0x0 - add r0, r4, #0x0 - bl TrainerFlagCheck - strb r0, [r5, #0x2] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_addvar -ScrCmd_addvar: ; 0x02039F58 - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - ldrh r1, [r4, #0x0] - add r0, r1, r0 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_subvar -ScrCmd_subvar: ; 0x02039F88 - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - ldrh r1, [r4, #0x0] - sub r0, r1, r0 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_setvar -ScrCmd_setvar: ; 0x02039FB8 - 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 r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_copyvar -ScrCmd_copyvar: ; 0x02039FDC - 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 r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldrh r0, [r0, #0x0] - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start ScrCmd_setorcopyvar -ScrCmd_setorcopyvar: ; 0x0203A00C - 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 r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_message -ScrCmd_message: ; 0x0203A038 - push {r3, lr} - ldr r2, [r0, #0x8] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r2, [r2, #0x0] - ldr r1, [r0, #0x78] - bl MOD05_ShowMessageInField - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start ScrCmd_message_from -ScrCmd_message_from: ; 0x0203A04C - ; message_from bank, id - push {r4-r6, lr} - add r4, r0, #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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - mov r0, #0x1 - mov r1, #0x1a - add r2, r5, #0x0 - mov r3, #0x20 - bl NewMsgDataFromNarc - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl MOD05_ShowMessageInField - add r0, r5, #0x0 - bl DestroyMsgData - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0203A098 -FUN_0203A098: ; 0x0203A098 - push {r3-r6, lr} - sub sp, #0x4 - add r4, r0, #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 r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - mov r0, #0x1 - mov r1, #0x1a - add r2, r5, #0x0 - mov r3, #0x20 - bl NewMsgDataFromNarc - add r5, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0x1 - bl MOD05_021E2BD0 - add r0, r5, #0x0 - bl DestroyMsgData - ldr r1, _0203A0F8 ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r6, pc} - nop -_0203A0F8: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A0FC -FUN_0203A0FC: ; 0x0203A0FC - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0xff - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl MOD05_021E2C58 - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0203A13C -FUN_0203A13C: ; 0x0203A13C - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl MOD05_021E2C58 - ldr r1, _0203A184 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - nop -_0203A184: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A188 -FUN_0203A188: ; 0x0203A188 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - add r1, r5, #0x0 - add r1, #0x80 - ldr r1, [r1, #0x0] - ldrb r3, [r2, #0x0] - add r1, #0xa8 - ldr r2, [r1, #0x0] - cmp r2, #0x0 - bne _0203A1AA - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_0203A1AA: - lsl r1, r3, #0x4 - add r1, r3, r1 - add r2, #0x90 - lsl r1, r1, #0x4 - add r4, r2, r1 - ldrh r1, [r2, r1] - ldr r2, _0203A204 ; =0x0000FFFF - cmp r1, r2 - bne _0203A1E2 - ldr r2, _0203A208 ; =0x0000022B - mov r0, #0x1 - mov r1, #0x1a - mov r3, #0x20 - bl NewMsgDataFromNarc - add r6, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - ldrh r2, [r4, #0x2] - add r0, r5, #0x0 - add r1, r6, #0x0 - mov r3, #0x1 - bl MOD05_021E2BD0 - add r0, r6, #0x0 - bl DestroyMsgData - b _0203A1F4 -_0203A1E2: - mov r2, #0x6 - ldrsh r2, [r4, r2] - str r2, [sp, #0x0] - mov r2, #0x1 - str r2, [sp, #0x4] - ldrh r2, [r4, #0x2] - ldrh r3, [r4, #0x4] - bl MOD05_021E2C58 -_0203A1F4: - ldr r1, _0203A20C ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r4-r6, pc} - nop -_0203A204: .word 0x0000FFFF -_0203A208: .word 0x0000022B -_0203A20C: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A210 -FUN_0203A210: ; 0x0203A210 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r1, r5, #0x0 - add r1, #0x80 - ldr r2, [r5, #0x8] - ldr r6, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r4, [r2, #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 - ldr r1, [r5, #0x8] - add r2, r0, #0x0 - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r3, [r1, #0x0] - mov r1, #0x0 - add r0, sp, #0x4 - strb r1, [r0, #0x0] - add r0, sp, #0x4 - str r0, [sp, #0x0] - ldr r0, [r6, #0xc] - add r1, r7, #0x0 - bl MOD06_02244210 - add r6, r0, #0x0 - add r2, sp, #0x4 - ldrb r2, [r2, #0x0] - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, r2 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r3, #0x1 - bl MOD05_021E2CBC - add r0, r6, #0x0 - bl ScrStrBufs_delete - ldr r1, _0203A284 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - nop -_0203A284: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A288 -FUN_0203A288: ; 0x0203A288 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, sp, #0x4 - add r1, r5, #0x0 - bl MOD05_021E2BB8 - mov r1, #0x3 - add r0, sp, #0x4 - strb r1, [r0, #0x2] - add r0, sp, #0x4 - str r0, [sp, #0x0] - ldr r1, [r5, #0x78] - add r0, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl MOD05_021E2BD0 - ldr r1, _0203A2C0 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_0203A2C0: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A2C4 -FUN_0203A2C4: ; 0x0203A2C4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - ldr r2, [r4, #0x8] - mov r3, #0x1 - add r1, r2, #0x1 - str r1, [r4, #0x8] - mov r1, #0x0 - str r1, [sp, #0x0] - ldrb r2, [r2, #0x0] - ldr r1, [r4, #0x78] - bl MOD05_021E2BD0 - ldr r1, _0203A2EC ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_0203A2EC: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A2F0 -FUN_0203A2F0: ; 0x0203A2F0 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x3 - bl FUN_02039438 - ldrb r0, [r0, #0x0] - bl FUN_020546C8 - pop {r3, pc} - - thumb_func_start FUN_0203A304 -FUN_0203A304: ; 0x0203A304 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r2, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - lsl r2, r2, #0x18 - ldr r1, [r4, #0x78] - add r0, r4, #0x0 - lsr r2, r2, #0x18 - mov r3, #0x1 - bl MOD05_021E2BD0 - ldr r1, _0203A33C ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_0203A33C: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A340 -FUN_0203A340: ; 0x0203A340 - push {r3-r5, lr} - sub sp, #0x8 - 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, sp, #0x4 - add r1, r5, #0x0 - bl MOD05_021E2BB8 - lsl r2, r4, #0x18 - mov r3, #0x1 - add r0, sp, #0x4 - strb r3, [r0, #0x1] - add r0, sp, #0x4 - str r0, [sp, #0x0] - ldr r1, [r5, #0x78] - add r0, r5, #0x0 - lsr r2, r2, #0x18 - bl MOD05_021E2BD0 - ldr r1, _0203A384 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_0203A384: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A388 -FUN_0203A388: ; 0x0203A388 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r2, r0, #0x0 - mov r3, #0x0 - str r3, [sp, #0x0] - lsl r2, r2, #0x18 - ldr r1, [r4, #0x78] - add r0, r4, #0x0 - lsr r2, r2, #0x18 - bl MOD05_021E2BD0 - ldr r1, _0203A3C0 ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - nop -_0203A3C0: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A3C4 -FUN_0203A3C4: ; 0x0203A3C4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xa - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl FUN_02058488 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r1, [r4, #0x78] - add r0, r4, #0x0 - mov r3, #0x1 - bl MOD05_021E2BD0 - ldr r1, _0203A3FC ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - nop -_0203A3FC: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A400 -FUN_0203A400: ; 0x0203A400 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r1, [r5, #0x8] - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r4, [r1, #0x0] - bl FUN_02030F40 - cmp r0, #0x0 - bne _0203A428 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r1, [r5, #0x78] - add r0, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x1 - bl MOD05_021E2BD0 - b _0203A448 -_0203A428: - add r0, sp, #0x4 - add r1, r5, #0x0 - bl MOD05_021E2BB8 - mov r1, #0x1 - add r0, sp, #0x4 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - add r0, sp, #0x4 - str r0, [sp, #0x0] - ldr r1, [r5, #0x78] - add r0, r5, #0x0 - add r2, r4, #0x0 - mov r3, #0x0 - bl MOD05_021E2BD0 -_0203A448: - ldr r1, _0203A458 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - nop -_0203A458: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A45C -FUN_0203A45C: ; 0x0203A45C - push {r3, lr} - ldr r1, _0203A468 ; =FUN_0203A46C - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0203A468: .word FUN_0203A46C - - thumb_func_start FUN_0203A46C -FUN_0203A46C: ; 0x0203A46C - ldr r0, _0203A480 ; =gMain - ldr r1, [r0, #0x48] - mov r0, #0x3 - tst r0, r1 - beq _0203A47A - mov r0, #0x1 - bx lr -_0203A47A: - mov r0, #0x0 - bx lr - nop -_0203A480: .word gMain - - thumb_func_start FUN_0203A484 -FUN_0203A484: ; 0x0203A484 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [r4, #0x64] - ldr r1, _0203A4A8 ; =FUN_0203A4AC - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - nop -_0203A4A8: .word FUN_0203A4AC - - thumb_func_start FUN_0203A4AC -FUN_0203A4AC: ; 0x0203A4AC - ldr r1, _0203A4CC ; =gMain - ldr r2, [r1, #0x48] - mov r1, #0x3 - tst r1, r2 - beq _0203A4BA - mov r0, #0x1 - bx lr -_0203A4BA: - ldr r1, [r0, #0x64] - sub r1, r1, #0x1 - str r1, [r0, #0x64] - bne _0203A4C6 - mov r0, #0x1 - bx lr -_0203A4C6: - mov r0, #0x0 - bx lr - nop -_0203A4CC: .word gMain - - thumb_func_start FUN_0203A4D0 -FUN_0203A4D0: ; 0x0203A4D0 - push {r3, lr} - ldr r1, _0203A4DC ; =FUN_0203A4E0 - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0203A4DC: .word FUN_0203A4E0 - - thumb_func_start FUN_0203A4E0 -FUN_0203A4E0: ; 0x0203A4E0 - push {r4, lr} - ldr r1, _0203A55C ; =gMain - ldr r2, [r1, #0x48] - mov r1, #0x3 - add r3, r2, #0x0 - tst r3, r1 - beq _0203A4F2 - mov r0, #0x1 - pop {r4, pc} -_0203A4F2: - mov r3, #0x40 - tst r3, r2 - beq _0203A506 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - ldr r0, [r0, #0x38] - bl FUN_02055304 - b _0203A556 -_0203A506: - mov r3, #0x80 - tst r3, r2 - beq _0203A51A - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - ldr r0, [r0, #0x38] - bl FUN_02055304 - b _0203A556 -_0203A51A: - mov r3, #0x20 - tst r3, r2 - beq _0203A52E - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x2 - ldr r0, [r0, #0x38] - bl FUN_02055304 - b _0203A556 -_0203A52E: - mov r3, #0x10 - add r4, r2, #0x0 - tst r4, r3 - beq _0203A542 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_02055304 - b _0203A556 -_0203A542: - lsl r1, r3, #0x6 - tst r1, r2 - beq _0203A552 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl FUN_02039460 - b _0203A556 -_0203A552: - mov r0, #0x0 - pop {r4, pc} -_0203A556: - mov r0, #0x1 - pop {r4, pc} - nop -_0203A55C: .word gMain - - thumb_func_start FUN_0203A560 -FUN_0203A560: ; 0x0203A560 - push {r3, lr} - ldr r1, _0203A56C ; =FUN_0203A570 - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0203A56C: .word FUN_0203A570 - - thumb_func_start FUN_0203A570 -FUN_0203A570: ; 0x0203A570 - ldr r0, _0203A58C ; =gMain - ldr r1, [r0, #0x48] - mov r0, #0x3 - tst r0, r1 - beq _0203A57E - mov r0, #0x1 - bx lr -_0203A57E: - mov r0, #0xf0 - tst r0, r1 - beq _0203A588 - mov r0, #0x1 - bx lr -_0203A588: - mov r0, #0x0 - bx lr - .balign 4 -_0203A58C: .word gMain - - thumb_func_start FUN_0203A590 -FUN_0203A590: ; 0x0203A590 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x6 - add r0, r4, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_02039438 - add r1, r0, #0x0 - ldr r0, [r4, #0x8] - mov r2, #0x3 - bl FUN_020545B8 - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_02039438 - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02054608 - mov r0, #0x1 - strb r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0203A5D8 -FUN_0203A5D8: ; 0x0203A5D8 - push {r3-r5, lr} - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x1 - add r0, r4, #0x0 - bl FUN_02039438 - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0200D0E0 - add r0, r5, #0x0 - bl FUN_02019178 - mov r0, #0x0 - strb r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203A608 -FUN_0203A608: ; 0x0203A608 - push {r3-r5, lr} - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x1 - add r0, r4, #0x0 - bl FUN_02039438 - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_02039438 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02019178 - mov r0, #0x0 - strb r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203A630 -FUN_0203A630: ; 0x0203A630 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x31 - add r0, r4, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x2d - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x32 - bl FUN_02039438 - str r0, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0x33 - bl FUN_02039438 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r1, #0x2e - bl FUN_02039438 - str r0, [sp, #0x8] - add r0, r4, #0x0 - mov r1, #0x34 - bl FUN_02039438 - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - strh r1, [r6, #0x0] - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - strh r1, [r7, #0x0] - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r2, [r2, #0x0] - ldr r1, [sp, #0x0] - strh r2, [r1, #0x0] - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r2, [r2, #0x0] - ldr r1, [sp, #0x4] - strh r2, [r1, #0x0] - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r2, [r2, #0x0] - ldr r1, [sp, #0x8] - strh r2, [r1, #0x0] - ldr r2, [r5, #0x8] - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - strh r1, [r0, #0x0] - ldr r1, _0203A6C4 ; =FUN_0203A6C8 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_0203A6C4: .word FUN_0203A6C8 - - thumb_func_start FUN_0203A6C8 -FUN_0203A6C8: ; 0x0203A6C8 - push {r4-r7, lr} - sub sp, #0xc - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x31 - add r0, r4, #0x0 - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x32 - bl FUN_02039438 - str r0, [sp, #0x8] - add r0, r4, #0x0 - mov r1, #0x33 - bl FUN_02039438 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r1, #0x34 - bl FUN_02039438 - str r0, [sp, #0x0] - add r0, r4, #0x0 - mov r1, #0x2d - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x2e - bl FUN_02039438 - add r5, r0, #0x0 - ldrh r0, [r6, #0x0] - cmp r0, #0x0 - bne _0203A71E - ldrh r0, [r5, #0x0] - cmp r0, #0x0 - bne _0203A71E - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0203A71E: - ldrh r3, [r7, #0x0] - cmp r3, #0x0 - beq _0203A740 - ldr r0, [sp, #0x8] - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - ldr r0, [r4, #0x8] - bne _0203A738 - mov r1, #0x3 - mov r2, #0x1 - bl FUN_020179E0 - b _0203A740 -_0203A738: - mov r1, #0x3 - mov r2, #0x2 - bl FUN_020179E0 -_0203A740: - ldr r0, [sp, #0x4] - ldrh r3, [r0, #0x0] - cmp r3, #0x0 - beq _0203A764 - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - ldr r0, [r4, #0x8] - bne _0203A75C - mov r1, #0x3 - mov r2, #0x4 - bl FUN_020179E0 - b _0203A764 -_0203A75C: - mov r1, #0x3 - mov r2, #0x5 - bl FUN_020179E0 -_0203A764: - ldrh r0, [r6, #0x0] - cmp r0, #0x0 - beq _0203A76E - sub r0, r0, #0x1 - strh r0, [r6, #0x0] -_0203A76E: - ldrh r0, [r5, #0x0] - cmp r0, #0x0 - beq _0203A778 - sub r0, r0, #0x1 - strh r0, [r5, #0x0] -_0203A778: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203A780 -FUN_0203A780: ; 0x0203A780 - push {r4-r7, lr} - sub sp, #0x1c - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x11 - add r0, r4, #0x0 - bl FUN_02039438 - str r0, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x10 - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0xf - bl FUN_02039438 - str r0, [sp, #0x14] - ldr r0, [r5, #0x8] - add r1, r0, #0x1 - str r1, [r5, #0x8] - ldrb r0, [r0, #0x0] - str r0, [sp, #0xc] - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r0, [r1, #0x0] - str r0, [sp, #0x10] - add r0, r5, #0x0 - bl ScriptReadHalfword - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - cmp r6, #0x0 - bne _0203A7E0 - add r0, r4, #0x0 - mov r1, #0xa - bl FUN_02039438 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02058510 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 -_0203A7E0: - ldr r0, [r4, #0x60] - ldr r1, [sp, #0x10] - add r2, r6, #0x0 - bl MOD05_021E8128 - ldr r0, [r4, #0x60] - mov r1, #0x1 - bl MOD05_021E8130 - add r0, r4, #0x0 - bl MOD05_021E8158 - ldr r2, [sp, #0x18] - ldr r0, [r5, #0x78] - ldr r1, [sp, #0xc] - ldr r2, [r2, #0x0] - bl ReadMsgDataIntoString - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x18] - ldr r0, [r0, #0x0] - ldr r1, [r7, #0x0] - ldr r2, [r2, #0x0] - bl StringExpandPlaceholders - ldr r0, [r4, #0x60] - bl MOD05_021E8140 - mov r3, #0x0 - str r3, [sp, #0x0] - str r3, [sp, #0x4] - str r3, [sp, #0x8] - ldr r2, [r7, #0x0] - mov r1, #0x1 - bl AddTextPrinterParameterized - mov r0, #0x1 - add sp, #0x1c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203A830 -FUN_0203A830: ; 0x0203A830 - push {r3-r5, lr} - add r1, r0, #0x0 - add r1, #0x80 - ldr r2, [r0, #0x8] - ldr r4, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r5, [r2, #0x0] - bl ScriptReadHalfword - add r2, r0, #0x0 - ldr r0, [r4, #0x60] - add r1, r5, #0x0 - bl MOD05_021E8128 - ldr r0, [r4, #0x60] - mov r1, #0x1 - bl MOD05_021E8130 - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203A85C -FUN_0203A85C: ; 0x0203A85C - push {r3, lr} - add r1, r0, #0x0 - add r1, #0x80 - ldr r2, [r0, #0x8] - ldr r3, [r1, #0x0] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r3, #0x60] - bl MOD05_021E8130 - mov r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0203A878 -FUN_0203A878: ; 0x0203A878 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x60] - bl MOD05_021E8148 - cmp r0, #0x1 - bne _0203A88E - mov r0, #0x0 - pop {r4, pc} -_0203A88E: - ldr r1, _0203A89C ; =FUN_0203A8A0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - nop -_0203A89C: .word FUN_0203A8A0 - - thumb_func_start FUN_0203A8A0 -FUN_0203A8A0: ; 0x0203A8A0 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x60] - bl MOD05_021E8148 - cmp r0, #0x1 - bne _0203A8B4 - mov r0, #0x1 - pop {r3, pc} -_0203A8B4: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0203A8B8 -FUN_0203A8B8: ; 0x0203A8B8 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x3 - add r0, r4, #0x0 - bl FUN_02039438 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r1, #0x11 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x10 - bl FUN_02039438 - add r7, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0xf - bl FUN_02039438 - ldr r1, [r5, #0x8] - str r0, [sp, #0x8] - add r0, r1, #0x1 - str r0, [r5, #0x8] - ldrb r0, [r1, #0x0] - str r0, [sp, #0x0] - add r0, r5, #0x0 - bl ScriptReadHalfword - str r0, [sp, #0xc] - ldr r0, [r5, #0x78] - ldr r1, [sp, #0x0] - ldr r2, [r6, #0x0] - bl ReadMsgDataIntoString - ldr r0, [sp, #0x8] - ldr r1, [r7, #0x0] - ldr r0, [r0, #0x0] - ldr r2, [r6, #0x0] - bl StringExpandPlaceholders - ldr r0, [r4, #0x60] - bl MOD05_021E8140 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - add r2, r0, #0x0 - ldr r1, [r7, #0x0] - add r0, r4, #0x0 - mov r3, #0x1 - bl FUN_02054658 - ldr r1, [sp, #0x4] - strb r0, [r1, #0x0] - ldr r0, [sp, #0xc] - ldr r1, _0203A948 ; =FUN_0203A94C - str r0, [r5, #0x64] - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0203A948: .word FUN_0203A94C - - thumb_func_start FUN_0203A94C -FUN_0203A94C: ; 0x0203A94C - push {r3-r7, lr} - add r7, r0, #0x0 - add r0, #0x80 - ldr r5, [r0, #0x0] - mov r1, #0x3 - add r0, r5, #0x0 - bl FUN_02039438 - ldr r1, [r7, #0x64] - add r6, r0, #0x0 - lsl r1, r1, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl GetVarPointer - add r4, r0, #0x0 - ldr r0, [r5, #0x60] - bl MOD05_021E8144 - ldrb r0, [r6, #0x0] - ldr r5, _0203A9E8 ; =0x0000FFFF - bl FUN_020546C8 - cmp r0, #0x1 - bne _0203A986 - mov r0, #0x2 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} -_0203A986: - ldr r0, _0203A9EC ; =gMain - mov r1, #0x40 - ldr r0, [r0, #0x48] - tst r1, r0 - beq _0203A994 - mov r5, #0x0 - b _0203A9B0 -_0203A994: - mov r1, #0x80 - tst r1, r0 - beq _0203A99E - mov r5, #0x1 - b _0203A9B0 -_0203A99E: - mov r1, #0x20 - tst r1, r0 - beq _0203A9A8 - mov r5, #0x2 - b _0203A9B0 -_0203A9A8: - mov r1, #0x10 - tst r1, r0 - beq _0203A9B0 - mov r5, #0x3 -_0203A9B0: - ldr r1, _0203A9E8 ; =0x0000FFFF - cmp r5, r1 - beq _0203A9D0 - ldrb r0, [r6, #0x0] - bl FUN_0201BD7C - add r7, #0x80 - ldr r0, [r7, #0x0] - add r1, r5, #0x0 - ldr r0, [r0, #0x38] - bl FUN_02055304 - mov r0, #0x0 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} -_0203A9D0: - mov r1, #0x1 - lsl r1, r1, #0xa - tst r0, r1 - beq _0203A9E4 - ldrb r0, [r6, #0x0] - bl FUN_0201BD7C - mov r0, #0x1 - strh r0, [r4, #0x0] - pop {r3-r7, pc} -_0203A9E4: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 -_0203A9E8: .word 0x0000FFFF -_0203A9EC: .word gMain - - thumb_func_start FUN_0203A9F0 -FUN_0203A9F0: ; 0x0203A9F0 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - str r0, [r4, #0x64] - ldr r1, _0203AA08 ; =FUN_0203AA0C - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - nop -_0203AA08: .word FUN_0203AA0C - - thumb_func_start FUN_0203AA0C -FUN_0203AA0C: ; 0x0203AA0C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r1, [r5, #0x64] - add r0, #0x80 - lsl r1, r1, #0x10 - ldr r0, [r0, #0x0] - lsr r1, r1, #0x10 - bl GetVarPointer - add r4, r0, #0x0 - ldr r0, _0203AA88 ; =gMain - ldr r1, _0203AA8C ; =0x0000FFFF - ldr r2, [r0, #0x48] - mov r0, #0x3 - add r3, r2, #0x0 - tst r3, r0 - beq _0203AA36 - mov r0, #0x0 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r5, pc} -_0203AA36: - mov r3, #0x40 - tst r3, r2 - beq _0203AA40 - mov r1, #0x0 - b _0203AA5C -_0203AA40: - mov r3, #0x80 - tst r3, r2 - beq _0203AA4A - mov r1, #0x1 - b _0203AA5C -_0203AA4A: - mov r3, #0x20 - tst r3, r2 - beq _0203AA54 - mov r1, #0x2 - b _0203AA5C -_0203AA54: - mov r3, #0x10 - tst r3, r2 - beq _0203AA5C - add r1, r0, #0x0 -_0203AA5C: - ldr r0, _0203AA8C ; =0x0000FFFF - cmp r1, r0 - beq _0203AA74 - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0x38] - bl FUN_02055304 - mov r0, #0x0 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r3-r5, pc} -_0203AA74: - mov r0, #0x1 - lsl r0, r0, #0xa - tst r0, r2 - beq _0203AA82 - mov r0, #0x1 - strh r0, [r4, #0x0] - pop {r3-r5, pc} -_0203AA82: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0203AA88: .word gMain -_0203AA8C: .word 0x0000FFFF - - thumb_func_start FUN_0203AA90 -FUN_0203AA90: ; 0x0203AA90 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - bl FUN_02039460 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0203AAA0 -FUN_0203AAA0: ; 0x0203AAA0 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x80 - ldr r4, [r0, #0x0] - mov r1, #0x2 - add r0, r4, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r7, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r0, #0x4 - str r0, [sp, #0x4] - ldr r0, [r4, #0x8] - ldr r2, _0203AAF4 ; =0x000003D9 - mov r1, #0x3 - mov r3, #0xb - bl FUN_0200CB00 - mov r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [r4, #0x8] - ldr r1, _0203AAF8 ; =UNK_020F34E0 - ldr r2, _0203AAF4 ; =0x000003D9 - mov r3, #0xb - bl Std_CreateYesNoMenu - str r0, [r6, #0x0] - ldr r1, _0203AAFC ; =FUN_0203AB00 - add r0, r5, #0x0 - str r7, [r5, #0x64] - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - nop -_0203AAF4: .word 0x000003D9 -_0203AAF8: .word UNK_020F34E0 -_0203AAFC: .word FUN_0203AB00 - - thumb_func_start FUN_0203AB00 -FUN_0203AB00: ; 0x0203AB00 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0x2 - add r0, r6, #0x0 - bl FUN_02039438 - ldr r1, [r5, #0x64] - add r4, r0, #0x0 - lsl r1, r1, #0x10 - add r0, r6, #0x0 - lsr r1, r1, #0x10 - bl GetVarPointer - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x4 - bl FUN_020021AC - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - bne _0203AB34 - mov r0, #0x0 - pop {r4-r6, pc} -_0203AB34: - cmp r0, #0x0 - bne _0203AB3C - mov r0, #0x0 - b _0203AB3E -_0203AB3C: - mov r0, #0x1 -_0203AB3E: - strh r0, [r5, #0x0] - mov r0, #0x1 - pop {r4-r6, pc} - - thumb_func_start FUN_0203AB44 -FUN_0203AB44: ; 0x0203AB44 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - bl FUN_02039438 - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - mov r1, #0x12 - bl FUN_02039438 - add r5, r0, #0x0 - ldr r1, _0203AB70 ; =0x000003E2 - add r0, r4, #0x0 - bl FUN_0200D858 - str r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0203AB70: .word 0x000003E2 - - thumb_func_start FUN_0203AB74 -FUN_0203AB74: ; 0x0203AB74 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x12 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl FUN_0200DBFC - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0203AB8C -FUN_0203AB8C: ; 0x0203AB8C - push {r4-r7, lr} - sub sp, #0x2c - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0x0 - add r0, r6, #0x0 - bl FUN_02039438 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - mov r1, #0xf - bl FUN_02039438 - str r0, [sp, #0x20] - ldr r0, [r5, #0x8] - add r1, r0, #0x1 - str r1, [r5, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - str r0, [sp, #0x18] - str r2, [r5, #0x8] - ldrb r0, [r1, #0x0] - add r1, r2, #0x1 - str r0, [sp, #0x14] - str r1, [r5, #0x8] - ldrb r7, [r2, #0x0] - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - str r0, [sp, #0x24] - ldr r1, [sp, #0x24] - add r0, r6, #0x0 - bl GetVarPointer - str r0, [sp, #0x28] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - bl FUN_02039438 - ldr r1, [sp, #0x28] - str r4, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x20] - add r3, r7, #0x0 - ldr r1, [r1, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - add r0, r6, #0x0 - bl MOD05_021E1BF8 - ldr r1, [sp, #0x1c] - str r0, [r1, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x64] - mov r0, #0x1 - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203AC14 -FUN_0203AC14: ; 0x0203AC14 - push {r4-r7, lr} - sub sp, #0x2c - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0x0 - add r0, r6, #0x0 - bl FUN_02039438 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - mov r1, #0xf - bl FUN_02039438 - str r0, [sp, #0x20] - ldr r0, [r5, #0x8] - add r1, r0, #0x1 - str r1, [r5, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - str r0, [sp, #0x18] - str r2, [r5, #0x8] - ldrb r0, [r1, #0x0] - add r1, r2, #0x1 - str r0, [sp, #0x14] - str r1, [r5, #0x8] - ldrb r7, [r2, #0x0] - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - str r0, [sp, #0x24] - ldr r1, [sp, #0x24] - add r0, r6, #0x0 - bl GetVarPointer - str r0, [sp, #0x28] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - bl FUN_02039438 - ldr r1, [sp, #0x28] - str r4, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x20] - add r3, r7, #0x0 - ldr r1, [r1, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - ldr r0, [r5, #0x78] - str r0, [sp, #0x10] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - add r0, r6, #0x0 - bl MOD05_021E1BF8 - ldr r1, [sp, #0x1c] - str r0, [r1, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x64] - mov r0, #0x1 - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203AC9C -FUN_0203AC9C: ; 0x0203AC9C - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r1, [r4, #0x8] - add r3, r1, #0x1 - str r3, [r4, #0x8] - ldrb r1, [r1, #0x0] - add r2, r3, #0x1 - str r2, [r4, #0x8] - ldrb r2, [r3, #0x0] - ldr r0, [r0, #0x0] - bl MOD05_021E1C4C - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0203ACC4 -FUN_0203ACC4: ; 0x0203ACC4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - 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 r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, [r4, #0x0] - add r1, r6, #0x0 - bl MOD05_021E1C4C - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0203AD08 -FUN_0203AD08: ; 0x0203AD08 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E1C54 - ldr r1, _0203AD28 ; =FUN_0203AD2C - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0203AD28: .word FUN_0203AD2C - - thumb_func_start FUN_0203AD2C -FUN_0203AD2C: ; 0x0203AD2C - push {r3, lr} - add r1, r0, #0x0 - ldr r1, [r1, #0x64] - add r0, #0x80 - lsl r1, r1, #0x10 - ldr r0, [r0, #0x0] - lsr r1, r1, #0x10 - bl GetVarPointer - ldrh r1, [r0, #0x0] - ldr r0, _0203AD50 ; =0x0000EEEE - cmp r1, r0 - beq _0203AD4A - mov r0, #0x1 - pop {r3, pc} -_0203AD4A: - mov r0, #0x0 - pop {r3, pc} - nop -_0203AD50: .word 0x0000EEEE - - thumb_func_start FUN_0203AD54 -FUN_0203AD54: ; 0x0203AD54 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E1C54 - ldr r1, _0203AD74 ; =FUN_0203AD78 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0203AD74: .word FUN_0203AD78 - - thumb_func_start FUN_0203AD78 -FUN_0203AD78: ; 0x0203AD78 - push {r4-r6, lr} - add r1, r0, #0x0 - add r0, #0x80 - ldr r1, [r1, #0x64] - ldr r5, [r0, #0x0] - lsl r1, r1, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_02039438 - add r6, r0, #0x0 - ldrh r1, [r4, #0x0] - ldr r0, _0203ADC0 ; =0x0000EEEE - cmp r1, r0 - bne _0203ADBC - ldr r0, [r5, #0x78] - bl FUN_02052714 - cmp r0, #0x0 - beq _0203ADB8 - mov r0, #0x8 - strh r0, [r4, #0x0] - ldr r0, [r6, #0x0] - bl MOD05_021E1ECC - mov r0, #0x1 - pop {r4-r6, pc} -_0203ADB8: - mov r0, #0x0 - pop {r4-r6, pc} -_0203ADBC: - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 -_0203ADC0: .word 0x0000EEEE - - thumb_func_start FUN_0203ADC4 -FUN_0203ADC4: ; 0x0203ADC4 - push {r4-r7, lr} - sub sp, #0x2c - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0x0 - add r0, r6, #0x0 - bl FUN_02039438 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - mov r1, #0xf - bl FUN_02039438 - str r0, [sp, #0x20] - ldr r0, [r5, #0x8] - add r1, r0, #0x1 - str r1, [r5, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - str r0, [sp, #0x18] - str r2, [r5, #0x8] - ldrb r0, [r1, #0x0] - add r1, r2, #0x1 - str r0, [sp, #0x14] - str r1, [r5, #0x8] - ldrb r7, [r2, #0x0] - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - str r0, [sp, #0x24] - ldr r1, [sp, #0x24] - add r0, r6, #0x0 - bl GetVarPointer - str r0, [sp, #0x28] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - bl FUN_02039438 - ldr r1, [sp, #0x28] - str r4, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x20] - add r3, r7, #0x0 - ldr r1, [r1, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - add r0, r6, #0x0 - bl MOD05_021E1F34 - ldr r1, [sp, #0x1c] - str r0, [r1, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x64] - mov r0, #0x1 - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203AE4C -FUN_0203AE4C: ; 0x0203AE4C - push {r4-r7, lr} - sub sp, #0x2c - add r5, r0, #0x0 - add r0, #0x80 - ldr r6, [r0, #0x0] - mov r1, #0x0 - add r0, r6, #0x0 - bl FUN_02039438 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - mov r1, #0xf - bl FUN_02039438 - str r0, [sp, #0x20] - ldr r0, [r5, #0x8] - add r1, r0, #0x1 - str r1, [r5, #0x8] - ldrb r0, [r0, #0x0] - add r2, r1, #0x1 - str r0, [sp, #0x18] - str r2, [r5, #0x8] - ldrb r0, [r1, #0x0] - add r1, r2, #0x1 - str r0, [sp, #0x14] - str r1, [r5, #0x8] - ldrb r7, [r2, #0x0] - add r0, r1, #0x1 - str r0, [r5, #0x8] - add r0, r5, #0x0 - ldrb r4, [r1, #0x0] - bl ScriptReadHalfword - str r0, [sp, #0x24] - ldr r1, [sp, #0x24] - add r0, r6, #0x0 - bl GetVarPointer - str r0, [sp, #0x28] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x1 - bl FUN_02039438 - ldr r1, [sp, #0x28] - str r4, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x20] - add r3, r7, #0x0 - ldr r1, [r1, #0x0] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - ldr r0, [r5, #0x78] - str r0, [sp, #0x10] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x14] - add r0, r6, #0x0 - bl MOD05_021E1F34 - ldr r1, [sp, #0x1c] - str r0, [r1, #0x0] - ldr r0, [sp, #0x24] - str r0, [r5, #0x64] - mov r0, #0x1 - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0203AED4 -FUN_0203AED4: ; 0x0203AED4 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - 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 r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl VarGet - add r3, r0, #0x0 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - lsl r3, r3, #0x18 - ldr r0, [r4, #0x0] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl MOD05_021E1F58 - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0203AF34 -FUN_0203AF34: ; 0x0203AF34 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r0, [r0, #0x0] - bl MOD05_021E1F60 - ldr r1, _0203AF54 ; =FUN_0203AD2C - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0203AF54: .word FUN_0203AD2C - - thumb_func_start FUN_0203AF58 -FUN_0203AF58: ; 0x0203AF58 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - bl MOD05_021E26CC - ldr r1, _0203AF80 ; =FUN_0203AD2C - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0203AF80: .word FUN_0203AD2C - - thumb_func_start FUN_0203AF84 -FUN_0203AF84: ; 0x0203AF84 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - bl MOD05_021E2B80 - mov r0, #0x1 - pop {r4, pc} - - thumb_func_start FUN_0203AFA4 -FUN_0203AFA4: ; 0x0203AFA4 - push {r4, lr} - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x0 - bl FUN_02039438 - ldr r2, [r4, #0x8] - add r1, r2, #0x1 - str r1, [r4, #0x8] - ldrb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - bl MOD05_021E2B9C - mov r0, #0x1 - pop {r4, pc} - thumb_func_start FUN_0203AFC4 FUN_0203AFC4: ; 0x0203AFC4 push {r4-r6, lr} diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 0920c2fb..6d593845 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -2463,7 +2463,7 @@ _0200DE40: bl FUN_0201FDEC mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x34 pop {r4-r7, pc} nop diff --git a/arm9/asm/unk_02015E30.s b/arm9/asm/unk_02015E30.s deleted file mode 100644 index 9ca09399..00000000 --- a/arm9/asm/unk_02015E30.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global UNK_021C4898 -UNK_021C4898: ; 0x021C4898 - .space 0x20 - - .text - - thumb_func_start FUN_02015E30 -FUN_02015E30: ; 0x02015E30 - ldr r0, _02015E38 ; =UNK_021C4898 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_02015E38: .word UNK_021C4898 - - thumb_func_start FUN_02015E3C -FUN_02015E3C: ; 0x02015E3C - push {r3, lr} - ldr r1, _02015E5C ; =UNK_021C4898 - mov r2, #0x1 - str r2, [r1, #0x0] - mov r2, #0x0 - str r2, [r1, #0x10] - str r2, [r1, #0x14] - str r2, [r1, #0x8] - str r2, [r1, #0xc] - str r0, [r1, #0x4] - bl FUN_02020BF4 - ldr r2, _02015E5C ; =UNK_021C4898 - str r0, [r2, #0x18] - str r1, [r2, #0x1c] - pop {r3, pc} - .balign 4 -_02015E5C: .word UNK_021C4898 - - thumb_func_start FUN_02015E60 -FUN_02015E60: ; 0x02015E60 - push {r3-r5, lr} - ldr r0, _02015E9C ; =UNK_021C4898 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02015E9A - bl FUN_02020BF4 - ldr r2, _02015E9C ; =UNK_021C4898 - ldr r3, [r2, #0x18] - ldr r2, [r2, #0x1c] - sub r0, r0, r3 - sbc r1, r2 - bl FUN_02020C14 - add r5, r1, #0x0 - ldr r1, _02015E9C ; =UNK_021C4898 - add r4, r0, #0x0 - ldr r3, [r1, #0x8] - ldr r2, [r1, #0xc] - sub r0, r3, r4 - sbc r2, r5 - bhs _02015E9A - ldr r0, [r1, #0x4] - sub r1, r4, r3 - bl AddIGTSeconds - ldr r0, _02015E9C ; =UNK_021C4898 - str r4, [r0, #0x8] - str r5, [r0, #0xc] -_02015E9A: - pop {r3-r5, pc} - .balign 4 -_02015E9C: .word UNK_021C4898 diff --git a/arm9/asm/unk_020166C8.s b/arm9/asm/unk_020166C8.s deleted file mode 100644 index 3c251114..00000000 --- a/arm9/asm/unk_020166C8.s +++ /dev/null @@ -1,665 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global UNK_021C4D28 -UNK_021C4D28: ; 0x021C4D28 - .space 0x1c - - .text - - thumb_func_start FUN_020166C8 -FUN_020166C8: ; 0x020166C8 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - str r0, [sp, #0x4] - add r0, #0x18 - add r6, r2, #0x0 - str r0, [sp, #0x4] - cmp r6, r0 - bhs _020166E0 - add r6, r0, #0x0 -_020166E0: - cmp r3, #0x0 - beq _020166FE - mov r0, #0x3 - tst r0, r3 - beq _020166F4 - mov r0, #0x3 -_020166EC: - add r3, r3, #0x1 - add r1, r3, #0x0 - tst r1, r0 - bne _020166EC -_020166F4: - mov r0, #0x0 - add r1, r3, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo -_020166FE: - ldr r1, [sp, #0x4] - lsl r7, r6, #0x1 - lsl r2, r1, #0x1 - add r1, r1, r2 - add r1, r1, #0x1 - lsl r1, r1, #0x2 - add r1, r7, r1 - mov r0, #0x0 - add r1, r6, r1 - mov r2, #0x4 - bl OS_AllocFromArenaLo - ldr r1, _020167F0 ; =UNK_021C4D28 - str r0, [r1, #0x0] - ldr r1, [sp, #0x4] - add r1, r1, #0x1 - lsl r1, r1, #0x2 - add r1, r0, r1 - ldr r0, _020167F0 ; =UNK_021C4D28 - str r1, [r0, #0x4] - ldr r0, [sp, #0x4] - lsl r0, r0, #0x2 - add r2, r1, r0 - ldr r1, _020167F0 ; =UNK_021C4D28 - str r2, [r1, #0x8] - add r1, r2, r0 - ldr r0, _020167F0 ; =UNK_021C4D28 - str r1, [r0, #0xc] - add r1, r1, r7 - str r1, [r0, #0x10] - strh r6, [r0, #0x14] - strh r4, [r0, #0x16] - ldr r0, [sp, #0x4] - mov r7, #0x0 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, _020167F0 ; =UNK_021C4D28 - cmp r4, #0x0 - strh r1, [r0, #0x1a] - strh r1, [r0, #0x18] - bls _020167A0 - str r7, [sp, #0x0] -_02016752: - ldr r0, [r5, #0x4] - cmp r0, #0x0 - beq _0201675C - cmp r0, #0x2 - beq _02016768 -_0201675C: - ldr r1, [r5, #0x0] - mov r0, #0x0 - mov r2, #0x4 - bl OS_AllocFromArenaLo - b _02016772 -_02016768: - ldr r1, [r5, #0x0] - mov r0, #0x2 - mov r2, #0x4 - bl OS_AllocFromArenaHi -_02016772: - cmp r0, #0x0 - beq _0201678E - ldr r1, [r5, #0x0] - mov r2, #0x0 - bl tempName_NNS_FndCreateExpHeapEx - ldr r1, _020167F0 ; =UNK_021C4D28 - ldr r2, [r1, #0x0] - ldr r1, [sp, #0x0] - str r0, [r2, r1] - ldr r0, _020167F0 ; =UNK_021C4D28 - ldr r0, [r0, #0x10] - strb r7, [r0, r7] - b _02016792 -_0201678E: - bl ErrorHandling -_02016792: - ldr r0, [sp, #0x0] - add r7, r7, #0x1 - add r0, r0, #0x4 - add r5, #0x8 - str r0, [sp, #0x0] - cmp r7, r4 - blo _02016752 -_020167A0: - ldr r0, [sp, #0x4] - add r1, r0, #0x1 - cmp r4, r1 - bhs _020167C0 - ldr r3, _020167F0 ; =UNK_021C4D28 - lsl r2, r4, #0x2 - mov r0, #0x0 -_020167AE: - ldr r5, [r3, #0x0] - str r0, [r5, r2] - ldrh r7, [r3, #0x1a] - ldr r5, [r3, #0x10] - add r2, r2, #0x4 - strb r7, [r5, r4] - add r4, r4, #0x1 - cmp r4, r1 - blo _020167AE -_020167C0: - cmp r4, r6 - bhs _020167D2 - ldr r0, _020167F0 ; =UNK_021C4D28 -_020167C6: - ldrh r2, [r0, #0x1a] - ldr r1, [r0, #0x10] - strb r2, [r1, r4] - add r4, r4, #0x1 - cmp r4, r6 - blo _020167C6 -_020167D2: - mov r4, #0x0 - cmp r6, #0x0 - bls _020167EA - ldr r0, _020167F0 ; =UNK_021C4D28 - add r3, r4, #0x0 - add r2, r4, #0x0 -_020167DE: - ldr r1, [r0, #0xc] - add r4, r4, #0x1 - strh r2, [r1, r3] - add r3, r3, #0x2 - cmp r4, r6 - blo _020167DE -_020167EA: - add sp, #0x8 - pop {r3-r7, pc} - nop -_020167F0: .word UNK_021C4D28 - - thumb_func_start FUN_020167F4 -FUN_020167F4: ; 0x020167F4 - ldr r1, _02016818 ; =UNK_021C4D28 - ldrh r0, [r1, #0x16] - ldrh r3, [r1, #0x18] - cmp r0, r3 - bge _02016812 - ldr r2, [r1, #0x0] - lsl r1, r0, #0x2 - add r2, r2, r1 -_02016804: - ldr r1, [r2, #0x0] - cmp r1, #0x0 - beq _02016816 - add r0, r0, #0x1 - add r2, r2, #0x4 - cmp r0, r3 - blt _02016804 -_02016812: - mov r0, #0x0 - mvn r0, r0 -_02016816: - bx lr - .balign 4 -_02016818: .word UNK_021C4D28 - - thumb_func_start FUN_0201681C -FUN_0201681C: ; 0x0201681C - push {r3, lr} - mov r3, #0x4 - bl FUN_02016834 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02016828 -FUN_02016828: ; 0x02016828 - push {r3, lr} - mov r3, #0x3 - mvn r3, r3 - bl FUN_02016834 - pop {r3, pc} - - thumb_func_start FUN_02016834 -FUN_02016834: ; 0x02016834 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - add r5, r1, #0x0 - str r2, [sp, #0x0] - add r7, r3, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _0201684C - bl ErrorHandling -_0201684C: - ldr r1, _020168CC ; =UNK_021C4D28 - ldr r0, [r1, #0x10] - ldrh r3, [r1, #0x1a] - ldrb r2, [r0, r5] - cmp r3, r2 - bne _020168C2 - ldrb r0, [r0, r4] - ldr r1, [r1, #0x0] - lsl r0, r0, #0x2 - ldr r6, [r1, r0] - cmp r6, #0x0 - beq _020168BC - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - add r2, r7, #0x0 - bl tempName_NNS_FndAllocFromExpHeapEx - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _020168B6 - bl FUN_020167F4 - add r7, r0, #0x0 - bmi _020168B0 - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x0] - mov r2, #0x0 - lsl r4, r7, #0x2 - bl tempName_NNS_FndCreateExpHeapEx - ldr r1, _020168CC ; =UNK_021C4D28 - ldr r2, [r1, #0x0] - str r0, [r2, r4] - ldr r0, [r1, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _020168AA - ldr r0, [r1, #0x4] - str r6, [r0, r4] - ldr r0, [sp, #0x4] - ldr r2, [r1, #0x8] - add sp, #0x8 - str r0, [r2, r4] - ldr r0, [r1, #0x10] - strb r7, [r0, r5] - mov r0, #0x1 - pop {r3-r7, pc} -_020168AA: - bl ErrorHandling - b _020168C6 -_020168B0: - bl ErrorHandling - b _020168C6 -_020168B6: - bl ErrorHandling - b _020168C6 -_020168BC: - bl ErrorHandling - b _020168C6 -_020168C2: - bl ErrorHandling -_020168C6: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020168CC: .word UNK_021C4D28 - - thumb_func_start FUN_020168D0 -FUN_020168D0: ; 0x020168D0 - push {r4, lr} - add r4, r0, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _020168E0 - bl ErrorHandling -_020168E0: - ldr r0, _02016940 ; =UNK_021C4D28 - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r4] - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - cmp r0, #0x0 - beq _0201693E - bl thunk_FUN_020adc8c - ldr r1, _02016940 ; =UNK_021C4D28 - ldr r0, [r1, #0x10] - ldrb r0, [r0, r4] - lsl r2, r0, #0x2 - ldr r0, [r1, #0x4] - ldr r1, [r1, #0x8] - ldr r0, [r0, r2] - ldr r1, [r1, r2] - cmp r0, #0x0 - beq _02016912 - cmp r1, #0x0 - beq _02016912 - bl FUN_020ADDF0 - b _02016916 -_02016912: - bl ErrorHandling -_02016916: - ldr r1, _02016940 ; =UNK_021C4D28 - mov r0, #0x0 - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x0] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x4] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldr r2, [r1, #0x10] - ldr r3, [r1, #0x8] - ldrb r2, [r2, r4] - lsl r2, r2, #0x2 - str r0, [r3, r2] - ldrh r2, [r1, #0x1a] - ldr r0, [r1, #0x10] - strb r2, [r0, r4] -_0201693E: - pop {r4, pc} - .balign 4 -_02016940: .word UNK_021C4D28 - - thumb_func_start FUN_02016944 -FUN_02016944: ; 0x02016944 - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r7, r2, #0x0 - add r6, r3, #0x0 - cmp r5, #0x0 - bne _02016956 - bl ErrorHandling -_02016956: - bl OS_DisableInterrupts - add r4, #0x10 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - bl tempName_NNS_FndAllocFromExpHeapEx - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - bl OS_RestoreInterrupts - cmp r4, #0x0 - beq _02016984 - ldr r1, [r4, #0xc] - mov r0, #0xff - bic r1, r0 - lsl r0, r6, #0x18 - lsr r0, r0, #0x18 - orr r0, r1 - str r0, [r4, #0xc] - add r4, #0x10 -_02016984: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02016988 -FUN_02016988: ; 0x02016988 - push {r3, lr} - bl FUN_02031810 - cmp r0, #0x0 - beq _02016996 - bl PrintErrorMessageAndReset -_02016996: - pop {r3, pc} - - thumb_func_start AllocFromHeap -AllocFromHeap: ; 0x02016998 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _020169D4 ; =UNK_021C4D28 - mov r4, #0x0 - ldrh r2, [r0, #0x14] - cmp r5, r2 - bhs _020169BA - ldr r2, [r0, #0x0] - ldr r0, [r0, #0x10] - add r3, r5, #0x0 - ldrb r0, [r0, r5] - lsl r0, r0, #0x2 - ldr r0, [r2, r0] - mov r2, #0x4 - bl FUN_02016944 - add r4, r0, #0x0 -_020169BA: - cmp r4, #0x0 - beq _020169CC - ldr r0, _020169D4 ; =UNK_021C4D28 - lsl r1, r5, #0x1 - ldr r2, [r0, #0xc] - ldrh r0, [r2, r1] - add r0, r0, #0x1 - strh r0, [r2, r1] - b _020169D0 -_020169CC: - bl FUN_02016988 -_020169D0: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_020169D4: .word UNK_021C4D28 - - thumb_func_start AllocFromHeapAtEnd -AllocFromHeapAtEnd: ; 0x020169D8 - push {r3-r5, lr} - ldr r2, _02016A14 ; =UNK_021C4D28 - add r5, r0, #0x0 - ldrh r0, [r2, #0x14] - mov r4, #0x0 - cmp r5, r0 - bhs _020169FA - ldr r0, [r2, #0x0] - ldr r2, [r2, #0x10] - add r3, r5, #0x0 - ldrb r2, [r2, r5] - lsl r2, r2, #0x2 - ldr r0, [r0, r2] - sub r2, r4, #0x4 - bl FUN_02016944 - add r4, r0, #0x0 -_020169FA: - cmp r4, #0x0 - beq _02016A0C - ldr r0, _02016A14 ; =UNK_021C4D28 - lsl r1, r5, #0x1 - ldr r2, [r0, #0xc] - ldrh r0, [r2, r1] - add r0, r0, #0x1 - strh r0, [r2, r1] - b _02016A10 -_02016A0C: - bl FUN_02016988 -_02016A10: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02016A14: .word UNK_021C4D28 - - thumb_func_start FreeToHeap -FreeToHeap: ; 0x02016A18 - push {r3-r7, lr} - add r6, r0, #0x0 - sub r0, r6, #0x4 - ldr r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, _02016A88 ; =UNK_021C4D28 - ldrh r1, [r0, #0x14] - cmp r4, r1 - bhs _02016A80 - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r4] - lsl r0, r0, #0x2 - ldr r7, [r1, r0] - cmp r7, #0x0 - bne _02016A3E - bl ErrorHandling -_02016A3E: - ldr r0, _02016A88 ; =UNK_021C4D28 - lsl r5, r4, #0x1 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r5] - cmp r0, #0x0 - bne _02016A50 - add r0, r4, #0x0 - bl FUN_02016B90 -_02016A50: - ldr r0, _02016A88 ; =UNK_021C4D28 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r5] - cmp r0, #0x0 - bne _02016A5E - bl ErrorHandling -_02016A5E: - ldr r0, _02016A88 ; =UNK_021C4D28 - ldr r1, [r0, #0xc] - ldrh r0, [r1, r5] - sub r0, r0, #0x1 - strh r0, [r1, r5] - bl OS_DisableInterrupts - sub r6, #0x10 - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_020ADDF0 - add r0, r4, #0x0 - bl OS_RestoreInterrupts - pop {r3-r7, pc} -_02016A80: - bl ErrorHandling - pop {r3-r7, pc} - nop -_02016A88: .word UNK_021C4D28 - - thumb_func_start FUN_02016A8C -FUN_02016A8C: ; 0x02016A8C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _02016A9E - bl ErrorHandling -_02016A9E: - ldr r0, _02016AF4 ; =UNK_021C4D28 - ldrh r1, [r0, #0x14] - cmp r5, r1 - bhs _02016AEE - ldr r1, [r0, #0x0] - ldr r0, [r0, #0x10] - ldrb r0, [r0, r5] - lsl r0, r0, #0x2 - ldr r6, [r1, r0] - cmp r6, #0x0 - bne _02016AB8 - bl ErrorHandling -_02016AB8: - sub r0, r4, #0x4 - ldr r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, r5 - beq _02016AC8 - bl ErrorHandling -_02016AC8: - sub r4, #0x10 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_020ADDF0 - ldr r0, _02016AF4 ; =UNK_021C4D28 - lsl r4, r5, #0x1 - ldr r0, [r0, #0xc] - ldrh r0, [r0, r4] - cmp r0, #0x0 - bne _02016AE2 - bl ErrorHandling -_02016AE2: - ldr r0, _02016AF4 ; =UNK_021C4D28 - ldr r1, [r0, #0xc] - ldrh r0, [r1, r4] - sub r0, r0, #0x1 - strh r0, [r1, r4] - pop {r4-r6, pc} -_02016AEE: - bl ErrorHandling - pop {r4-r6, pc} - .balign 4 -_02016AF4: .word UNK_021C4D28 - - thumb_func_start FUN_02016AF8 -FUN_02016AF8: ; 0x02016AF8 - push {r3, lr} - ldr r1, _02016B1C ; =UNK_021C4D28 - ldrh r2, [r1, #0x14] - cmp r0, r2 - bhs _02016B12 - ldr r2, [r1, #0x0] - ldr r1, [r1, #0x10] - ldrb r0, [r1, r0] - lsl r0, r0, #0x2 - ldr r0, [r2, r0] - bl FUN_020ADDC8 - pop {r3, pc} -_02016B12: - bl ErrorHandling - mov r0, #0x0 - pop {r3, pc} - nop -_02016B1C: .word UNK_021C4D28 - - thumb_func_start FUN_02016B20 -FUN_02016B20: ; 0x02016B20 - push {r4, lr} - ldr r4, _02016B40 ; =UNK_021C4D28 - ldrh r3, [r4, #0x14] - cmp r1, r3 - bhs _02016B3A - ldr r3, [r4, #0x0] - ldr r4, [r4, #0x10] - ldrb r1, [r4, r1] - lsl r1, r1, #0x2 - ldr r1, [r3, r1] - bl FUN_020AE82C - pop {r4, pc} -_02016B3A: - bl ErrorHandling - pop {r4, pc} - .balign 4 -_02016B40: .word UNK_021C4D28 - - thumb_func_start FUN_02016B44 -FUN_02016B44: ; 0x02016B44 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl OS_GetProcMode - cmp r0, #0x12 - bne _02016B56 - bl ErrorHandling -_02016B56: - add r0, r5, #0x0 - sub r0, #0x10 - bl FUN_020ADDC0 - add r4, #0x10 - cmp r0, r4 - blo _02016B84 - sub r2, r5, #0x4 - ldr r0, _02016B8C ; =UNK_021C4D28 - ldr r2, [r2, #0x0] - ldr r1, [r0, #0x0] - lsl r2, r2, #0x18 - ldr r0, [r0, #0x10] - lsr r2, r2, #0x18 - ldrb r0, [r0, r2] - sub r5, #0x10 - add r2, r4, #0x0 - lsl r0, r0, #0x2 - ldr r0, [r1, r0] - add r1, r5, #0x0 - bl FUN_020ADE2C - pop {r3-r5, pc} -_02016B84: - bl ErrorHandling - pop {r3-r5, pc} - nop -_02016B8C: .word UNK_021C4D28 - - thumb_func_start FUN_02016B90 -FUN_02016B90: ; 0x02016B90 - mov r0, #0x1 - bx lr diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 61fc9de5..3c92650d 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -89,8 +89,8 @@ FUN_02016BBC: ; 0x02016BBC asr r0, r0, #0x3 and r0, r1 str r0, [r2, #0x0] - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers pop {r4, pc} nop _02016BF0: .word 0xC7FFFFFF @@ -105,12 +105,12 @@ FUN_02016BF4: ; 0x02016BF4 ldr r1, [r2, #0x4] ldr r2, [r2, #0xc] bl GX_SetGraphicsMode - bl FUN_0201E6D8 + bl GX_DisableEngineALayers pop {r3, pc} _02016C0C: ldr r0, [r2, #0x8] bl GXS_SetGraphicsMode - bl FUN_0201E740 + bl GX_DisableEngineBLayers pop {r3, pc} thumb_func_start FUN_02016C18 @@ -148,7 +148,7 @@ _02016C42: ; jump table (using 16-bit offset) _02016C52: mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] @@ -193,7 +193,7 @@ _02016CA0: _02016CAA: mov r0, #0x2 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] @@ -238,7 +238,7 @@ _02016CF8: _02016D02: mov r0, #0x4 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016D18 @@ -324,7 +324,7 @@ _02016D9A: _02016DA4: mov r0, #0x8 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016DBA @@ -410,7 +410,7 @@ _02016E3C: _02016E46: mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] @@ -455,7 +455,7 @@ _02016E94: _02016E9E: mov r0, #0x2 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] @@ -500,7 +500,7 @@ _02016EEC: _02016EF6: mov r0, #0x4 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016F0C @@ -586,7 +586,7 @@ _02016F8E: _02016F98: mov r0, #0x8 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016FAE @@ -1958,35 +1958,35 @@ _0201798E: ; jump table (using 16-bit offset) .short _020179D6 - _0201798E - 2; case 7 _0201799E: mov r0, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, pc} _020179A6: mov r0, #0x2 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, pc} _020179AE: mov r0, #0x4 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, pc} _020179B6: mov r0, #0x8 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, pc} _020179BE: mov r0, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, pc} _020179C6: mov r0, #0x2 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, pc} _020179CE: mov r0, #0x4 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, pc} _020179D6: mov r0, #0x8 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _020179DC: pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_0201B1A8.s b/arm9/asm/unk_0201B1A8.s index baf31fcb..05245bc6 100644 --- a/arm9/asm/unk_0201B1A8.s +++ b/arm9/asm/unk_0201B1A8.s @@ -199,7 +199,7 @@ FUN_0201B314: ; 0x0201B314 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0201B380 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] diff --git a/arm9/asm/unk_0201E66C.s b/arm9/asm/unk_0201E66C.s deleted file mode 100644 index 5f5dcb68..00000000 --- a/arm9/asm/unk_0201E66C.s +++ /dev/null @@ -1,197 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .bss - - .global UNK_021C599C -UNK_021C599C: ; 0x021C599C - .space 0x8 - - .text - - thumb_func_start FUN_0201E66C -FUN_0201E66C: ; 0x0201E66C - push {r4, lr} - add r4, r0, #0x0 - bl GX_ResetBankForBG - bl GX_ResetBankForBGExtPltt - bl GX_ResetBankForSubBG - bl FUN_020C6034 - bl GX_ResetBankForOBJ - bl GX_ResetBankForOBJExtPltt - bl FUN_020C605C - bl GX_ResetBankForSubOBJ - bl GX_ResetBankForTex - bl GX_ResetBankForTexPltt - ldr r0, [r4, #0x0] - bl GX_SetBankForBG - ldr r0, [r4, #0x4] - bl GX_SetBankForBGExtPltt - ldr r0, [r4, #0x8] - bl GX_SetBankForSubBG - ldr r0, [r4, #0xc] - bl GX_SetBankForSubBGExtPltt - ldr r0, [r4, #0x10] - bl GX_SetBankForOBJ - ldr r0, [r4, #0x14] - bl GX_SetBankForOBJExtPltt - ldr r0, [r4, #0x18] - bl GX_SetBankForSubOBJ - ldr r0, [r4, #0x1c] - bl GX_SetBankForSubOBJExtPltt - ldr r0, [r4, #0x20] - bl GX_SetBankForTex - ldr r0, [r4, #0x24] - bl GX_SetBankForTexPltt - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201E6D8 -FUN_0201E6D8: ; 0x0201E6D8 - ldr r0, _0201E6E0 ; =UNK_021C599C - mov r1, #0x0 - str r1, [r0, #0x4] - bx lr - .balign 4 -_0201E6E0: .word UNK_021C599C - - thumb_func_start FUN_0201E6E4 -FUN_0201E6E4: ; 0x0201E6E4 - cmp r1, #0x1 - bne _0201E6F2 - ldr r1, _0201E718 ; =UNK_021C599C - ldr r1, [r1, #0x4] - tst r1, r0 - beq _0201E6FA - bx lr -_0201E6F2: - ldr r1, _0201E718 ; =UNK_021C599C - ldr r1, [r1, #0x4] - tst r1, r0 - beq _0201E714 -_0201E6FA: - ldr r1, _0201E718 ; =UNK_021C599C - ldr r2, [r1, #0x4] - add r3, r2, #0x0 - eor r3, r0 - mov r2, #0x1 - lsl r2, r2, #0x1a - str r3, [r1, #0x4] - ldr r1, [r2, #0x0] - ldr r0, _0201E71C ; =0xFFFFE0FF - and r1, r0 - lsl r0, r3, #0x8 - orr r0, r1 - str r0, [r2, #0x0] -_0201E714: - bx lr - nop -_0201E718: .word UNK_021C599C -_0201E71C: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E720 -FUN_0201E720: ; 0x0201E720 - ldr r1, _0201E738 ; =UNK_021C599C - mov r3, #0x1 - str r0, [r1, #0x4] - lsl r3, r3, #0x1a - ldr r2, [r3, #0x0] - ldr r1, _0201E73C ; =0xFFFFE0FF - lsl r0, r0, #0x8 - and r1, r2 - orr r0, r1 - str r0, [r3, #0x0] - bx lr - nop -_0201E738: .word UNK_021C599C -_0201E73C: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E740 -FUN_0201E740: ; 0x0201E740 - ldr r0, _0201E748 ; =UNK_021C599C - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_0201E748: .word UNK_021C599C - - thumb_func_start FUN_0201E74C -FUN_0201E74C: ; 0x0201E74C - cmp r1, #0x1 - bne _0201E75A - ldr r1, _0201E77C ; =UNK_021C599C - ldr r1, [r1, #0x0] - tst r1, r0 - beq _0201E762 - bx lr -_0201E75A: - ldr r1, _0201E77C ; =UNK_021C599C - ldr r1, [r1, #0x0] - tst r1, r0 - beq _0201E77A -_0201E762: - ldr r1, _0201E77C ; =UNK_021C599C - ldr r2, [r1, #0x0] - add r3, r2, #0x0 - eor r3, r0 - ldr r2, _0201E780 ; =0x04001000 - str r3, [r1, #0x0] - ldr r1, [r2, #0x0] - ldr r0, _0201E784 ; =0xFFFFE0FF - and r1, r0 - lsl r0, r3, #0x8 - orr r0, r1 - str r0, [r2, #0x0] -_0201E77A: - bx lr - .balign 4 -_0201E77C: .word UNK_021C599C -_0201E780: .word 0x04001000 -_0201E784: .word 0xFFFFE0FF - - thumb_func_start FUN_0201E788 -FUN_0201E788: ; 0x0201E788 - push {r3, lr} - bl GX_DispOn - ldr r2, _0201E79C ; =0x04001000 - mov r0, #0x1 - ldr r1, [r2, #0x0] - lsl r0, r0, #0x10 - orr r0, r1 - str r0, [r2, #0x0] - pop {r3, pc} - .balign 4 -_0201E79C: .word 0x04001000 - - thumb_func_start FUN_0201E7A0 -FUN_0201E7A0: ; 0x0201E7A0 - ldr r0, _0201E7C0 ; =gMain + 0x60 - ldr r2, _0201E7C4 ; =0x04000304 - ldrb r0, [r0, #0x5] - cmp r0, #0x0 - bne _0201E7B4 - ldrh r1, [r2, #0x0] - lsr r0, r2, #0xb - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201E7B4: - ldrh r1, [r2, #0x0] - ldr r0, _0201E7C8 ; =0xFFFF7FFF - and r0, r1 - strh r0, [r2, #0x0] - bx lr - nop -_0201E7C0: .word gMain + 0x60 -_0201E7C4: .word 0x04000304 -_0201E7C8: .word 0xFFFF7FFF - - thumb_func_start FUN_0201E7CC -FUN_0201E7CC: ; 0x0201E7CC - ldr r0, _0201E7D4 ; =UNK_021C599C - ldr r0, [r0, #0x4] - bx lr - nop -_0201E7D4: .word UNK_021C599C diff --git a/arm9/asm/unk_02020AFC.s b/arm9/asm/unk_02020AFC.s deleted file mode 100644 index 3d43d259..00000000 --- a/arm9/asm/unk_02020AFC.s +++ /dev/null @@ -1,165 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global UNK_021C59B0 -UNK_021C59B0: ; 0x021C59B0 - .space 0xc - - .text - - thumb_func_start FUN_02020AFC -FUN_02020AFC: ; 0x02020AFC - push {r3, lr} - ldr r0, _02020B24 ; =UNK_021C59B0 - mov r2, #0x0 - str r2, [r0, #0x4] - str r2, [r0, #0x8] - ldr r1, _02020B28 ; =0x0400010E - str r2, [r0, #0x0] - strh r2, [r1, #0x0] - sub r0, r1, #0x2 - strh r2, [r0, #0x0] - mov r0, #0xc1 - strh r0, [r1, #0x0] - ldr r1, _02020B2C ; =FUN_02020B30 - mov r0, #0x40 - bl OS_SetIrqFunction - mov r0, #0x40 - bl OS_EnableIrqMask - pop {r3, pc} - .balign 4 -_02020B24: .word UNK_021C59B0 -_02020B28: .word 0x0400010E -_02020B2C: .word FUN_02020B30 - - thumb_func_start FUN_02020B30 -FUN_02020B30: ; 0x02020B30 - ldr r0, _02020B68 ; =UNK_021C59B0 - mov r3, #0x0 - ldr r1, [r0, #0x4] - ldr r2, [r0, #0x8] - add r1, r1, #0x1 - adc r2, r3 - str r1, [r0, #0x4] - str r2, [r0, #0x8] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02020B54 - ldr r2, _02020B6C ; =0x0400010E - strh r3, [r2, #0x0] - sub r1, r2, #0x2 - strh r3, [r1, #0x0] - mov r1, #0xc1 - strh r1, [r2, #0x0] - str r3, [r0, #0x0] -_02020B54: - ldr r3, _02020B70 ; =0x027E0000 - ldr r1, _02020B74 ; =0x00003FF8 - mov r0, #0x40 - ldr r2, [r3, r1] - orr r2, r0 - str r2, [r3, r1] - ldr r3, _02020B78 ; =OS_SetIrqFunction - ldr r1, _02020B7C ; =FUN_02020B30 - bx r3 - nop -_02020B68: .word UNK_021C59B0 -_02020B6C: .word 0x0400010E -_02020B70: .word 0x027E0000 -_02020B74: .word 0x00003FF8 -_02020B78: .word OS_SetIrqFunction -_02020B7C: .word FUN_02020B30 - - thumb_func_start FUN_02020B80 -FUN_02020B80: ; 0x02020B80 - push {r4-r5, lr} - sub sp, #0xc - bl OS_DisableInterrupts - ldr r1, _02020BE4 ; =0x0400010C - add r3, sp, #0x0 - ldrh r1, [r1, #0x0] - ldr r2, _02020BE8 ; =0x0000FFFF - strh r1, [r3, #0x0] - ldr r1, _02020BEC ; =UNK_021C59B0 - ldr r5, [r1, #0x4] - ldr r4, [r1, #0x8] - mov r1, #0x0 - mvn r1, r1 - and r1, r5 - str r1, [sp, #0x4] - and r2, r4 - ldr r1, _02020BF0 ; =0x04000214 - str r2, [sp, #0x8] - ldr r2, [r1, #0x0] - mov r1, #0x40 - tst r2, r1 - beq _02020BC4 - ldrh r2, [r3, #0x0] - lsl r1, r1, #0x9 - tst r1, r2 - bne _02020BC4 - ldr r2, [sp, #0x4] - mov r1, #0x0 - ldr r3, [sp, #0x8] - add r2, r2, #0x1 - adc r3, r1 - str r2, [sp, #0x4] - str r3, [sp, #0x8] -_02020BC4: - bl OS_RestoreInterrupts - ldr r2, [sp, #0x4] - ldr r1, [sp, #0x8] - lsr r0, r2, #0x10 - lsl r1, r1, #0x10 - orr r1, r0 - add r0, sp, #0x0 - lsl r3, r2, #0x10 - ldrh r2, [r0, #0x0] - asr r0, r2, #0x1f - orr r1, r0 - add r0, r3, #0x0 - orr r0, r2 - add sp, #0xc - pop {r4-r5, pc} - .balign 4 -_02020BE4: .word 0x0400010C -_02020BE8: .word 0x0000FFFF -_02020BEC: .word UNK_021C59B0 -_02020BF0: .word 0x04000214 - - thumb_func_start FUN_02020BF4 -FUN_02020BF4: ; 0x02020BF4 - ldr r3, _02020BF8 ; =FUN_02020B80 - bx r3 - .balign 4 -_02020BF8: .word FUN_02020B80 - - thumb_func_start FUN_02020BFC -FUN_02020BFC: ; 0x02020BFC - push {r3, lr} - lsr r2, r0, #0x1a - lsl r1, r1, #0x6 - orr r1, r2 - ldr r2, _02020C10 ; =0x000082EA - lsl r0, r0, #0x6 - mov r3, #0x0 - bl _ll_udiv - pop {r3, pc} - .balign 4 -_02020C10: .word 0x000082EA - - thumb_func_start FUN_02020C14 -FUN_02020C14: ; 0x02020C14 - push {r3, lr} - lsr r2, r0, #0x1a - lsl r1, r1, #0x6 - orr r1, r2 - ldr r2, _02020C28 ; =0x01FF6210 - lsl r0, r0, #0x6 - mov r3, #0x0 - bl _ll_udiv - pop {r3, pc} - .balign 4 -_02020C28: .word 0x01FF6210 diff --git a/arm9/asm/unk_02022318.s b/arm9/asm/unk_02022318.s index 7f8590a6..cf87cdb9 100644 --- a/arm9/asm/unk_02022318.s +++ b/arm9/asm/unk_02022318.s @@ -99,7 +99,7 @@ FUN_020223D4: ; 0x020223D4 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _02022438 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] diff --git a/arm9/asm/unk_02024E64.s b/arm9/asm/unk_02024E64.s deleted file mode 100644 index 0234a504..00000000 --- a/arm9/asm/unk_02024E64.s +++ /dev/null @@ -1,118 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02024E64 -FUN_02024E64: ; 0x02024E64 - ldr r0, _02024E68 ; =0x0000074C - bx lr - .balign 4 -_02024E68: .word 0x0000074C - - thumb_func_start FUN_02024E6C -FUN_02024E6C: ; 0x02024E6C - push {r4, lr} - add r4, r0, #0x0 - ldr r2, _02024EA4 ; =0x0000074C - mov r0, #0x0 - add r1, r4, #0x0 - bl MIi_CpuClearFast - add r0, r4, #0x0 - bl FUN_020250A4 - mov r0, #0x7 - lsl r0, r0, #0x8 - add r0, r4, r0 - bl FUN_02025484 - ldr r1, _02024EA8 ; =0x00000724 - ldr r0, _02024EAC ; =0x0000FFFF - add r1, r4, r1 - mov r2, #0x8 - bl MIi_CpuClear16 - ldr r1, _02024EB0 ; =0x00000734 - ldr r0, _02024EAC ; =0x0000FFFF - add r1, r4, r1 - mov r2, #0xb - bl MIi_CpuClear16 - pop {r4, pc} - .balign 4 -_02024EA4: .word 0x0000074C -_02024EA8: .word 0x00000724 -_02024EAC: .word 0x0000FFFF -_02024EB0: .word 0x00000734 - - thumb_func_start FUN_02024EB4 -FUN_02024EB4: ; 0x02024EB4 - ldr r3, _02024EBC ; =SavArray_get - mov r1, #0xa - bx r3 - nop -_02024EBC: .word SavArray_get - - thumb_func_start FUN_02024EC0 -FUN_02024EC0: ; 0x02024EC0 - ldr r3, _02024EC8 ; =FUN_02022634 - mov r1, #0xa - bx r3 - nop -_02024EC8: .word FUN_02022634 - - thumb_func_start FUN_02024ECC -FUN_02024ECC: ; 0x02024ECC - ldr r3, _02024ED4 ; =SavArray_get - mov r1, #0xa - bx r3 - nop -_02024ED4: .word SavArray_get - - thumb_func_start FUN_02024ED8 -FUN_02024ED8: ; 0x02024ED8 - push {r3, lr} - mov r1, #0xa - bl SavArray_get - mov r1, #0x7 - lsl r1, r1, #0x8 - add r0, r0, r1 - pop {r3, pc} - - thumb_func_start FUN_02024EE8 -FUN_02024EE8: ; 0x02024EE8 - ldr r1, _02024EF0 ; =0x00000724 - add r0, r0, r1 - bx lr - nop -_02024EF0: .word 0x00000724 - - thumb_func_start FUN_02024EF4 -FUN_02024EF4: ; 0x02024EF4 - add r2, r0, #0x0 - add r0, r1, #0x0 - ldr r1, _02024F04 ; =0x00000724 - ldr r3, _02024F08 ; =CopyStringToU16Array - add r1, r2, r1 - mov r2, #0x8 - bx r3 - nop -_02024F04: .word 0x00000724 -_02024F08: .word CopyStringToU16Array - - thumb_func_start FUN_02024F0C -FUN_02024F0C: ; 0x02024F0C - ldr r1, _02024F14 ; =0x00000734 - add r0, r0, r1 - bx lr - nop -_02024F14: .word 0x00000734 - - thumb_func_start FUN_02024F18 -FUN_02024F18: ; 0x02024F18 - add r2, r0, #0x0 - add r0, r1, #0x0 - ldr r1, _02024F28 ; =0x00000734 - ldr r3, _02024F2C ; =CopyStringToU16Array - add r1, r2, r1 - mov r2, #0xb - bx r3 - nop -_02024F28: .word 0x00000734 -_02024F2C: .word CopyStringToU16Array diff --git a/arm9/asm/unk_02025484.s b/arm9/asm/unk_02025484.s deleted file mode 100644 index 5f869289..00000000 --- a/arm9/asm/unk_02025484.s +++ /dev/null @@ -1,41 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02025484 -FUN_02025484: ; 0x02025484 - ldr r3, _0202548C ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x24 - bx r3 - .balign 4 -_0202548C: .word MI_CpuFill8 - - thumb_func_start FUN_02025490 -FUN_02025490: ; 0x02025490 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02025484 - str r4, [r5, #0x0] - add r0, r5, #0x4 - pop {r3-r5, pc} - - thumb_func_start FUN_020254A0 -FUN_020254A0: ; 0x020254A0 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, r1 - beq _020254AE - bl ErrorHandling -_020254AE: - add r0, r4, #0x4 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020254B4 -FUN_020254B4: ; 0x020254B4 - ldr r0, [r0, #0x0] - bx lr diff --git a/arm9/asm/unk_02028980.s b/arm9/asm/unk_02028980.s index ad0b1145..8c9178e7 100644 --- a/arm9/asm/unk_02028980.s +++ b/arm9/asm/unk_02028980.s @@ -2215,7 +2215,7 @@ FUN_02029880: ; 0x02029880 cmp r0, #0x1 bne _02029942 add r0, r4, #0x0 - bl FUN_02034824 + bl MapHeader_GetMapSec lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r6, #0x0 @@ -2248,7 +2248,7 @@ _020298DE: b _02029942 _020298EE: add r0, r4, #0x0 - bl FUN_02034824 + bl MapHeader_GetMapSec add r7, r0, #0x0 lsl r0, r7, #0x10 lsr r0, r0, #0x10 diff --git a/arm9/asm/unk_0202F150.s b/arm9/asm/unk_0202F150.s deleted file mode 100644 index a4efe28d..00000000 --- a/arm9/asm/unk_0202F150.s +++ /dev/null @@ -1,4516 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .bss - - .global UNK_021C59F4 -UNK_021C59F4: ; 0x021C59F4 - .space 0x8 - - .section .data - - .global UNK_02105D58 -UNK_02105D58: ; 0x02105D58 - .byte 4, 4 - - .text - - thumb_func_start FUN_0202F150 -FUN_0202F150: ; 0x0202F150 - push {r4-r6, lr} - add r6, r1, #0x0 - mov r4, #0x0 - ldr r1, _0202F2BC ; =UNK_021C59F4 - cmp r0, #0x0 - strb r4, [r1, #0x0] - beq _0202F25C - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r5, r0, #0x1 - ldr r0, _0202F2BC ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202F178 - mov r0, #0x1 - pop {r4-r6, pc} -_0202F178: - mov r0, #0xf - bl FUN_02031480 - ldr r1, _0202F2C0 ; =0x0000068C - mov r0, #0xf - bl AllocFromHeap - ldr r1, _0202F2BC ; =UNK_021C59F4 - ldr r2, _0202F2C0 ; =0x0000068C - str r0, [r1, #0x4] - add r1, r4, #0x0 - bl MI_CpuFill8 - ldr r2, _0202F2BC ; =UNK_021C59F4 - ldr r1, _0202F2C4 ; =0x00000658 - ldr r0, [r2, #0x4] - add r6, #0x40 - str r6, [r0, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - add r6, r4, #0x0 - add r0, #0x25 - strb r6, [r3, r0] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - mov r6, #0x1b - add r0, #0x26 - strb r6, [r3, r0] - ldr r2, [r2, #0x4] - mov r0, #0xf - ldr r1, [r2, r1] - lsl r1, r1, #0x1 - bl AllocFromHeap - ldr r2, _0202F2BC ; =UNK_021C59F4 - ldr r1, _0202F2C8 ; =0x0000045C - ldr r3, [r2, #0x4] - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - bl AllocFromHeap - ldr r2, _0202F2BC ; =UNK_021C59F4 - mov r1, #0x46 - ldr r3, [r2, #0x4] - lsl r1, r1, #0x4 - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - mul r1, r5 - bl AllocFromHeap - ldr r2, _0202F2BC ; =UNK_021C59F4 - ldr r1, _0202F2CC ; =0x00000458 - ldr r3, [r2, #0x4] - str r0, [r3, r1] - ldr r2, [r2, #0x4] - ldr r1, _0202F2C4 ; =0x00000658 - mov r0, #0xf - ldr r1, [r2, r1] - mul r1, r5 - bl AllocFromHeap - ldr r1, _0202F2BC ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _0202F2D0 ; =0x00000454 - str r0, [r2, r1] - bl FUN_02033534 - cmp r0, #0xa - ldr r2, _0202F2D4 ; =0x0000054C - bne _0202F236 - ldr r0, _0202F2BC ; =UNK_021C59F4 - mov r1, #0x64 - ldr r3, [r0, #0x4] - add r0, r3, r2 - sub r2, #0xe8 - add r2, r3, r2 - bl FUN_0202D7D8 - ldr r0, _0202F2BC ; =UNK_021C59F4 - mov r1, #0x32 - ldr r3, [r0, #0x4] - ldr r2, _0202F2D8 ; =0x0000056C - lsl r1, r1, #0x4 - add r0, r3, r2 - sub r2, #0x90 - add r2, r3, r2 - bl FUN_0202D7D8 - b _0202F268 -_0202F236: - ldr r0, _0202F2BC ; =UNK_021C59F4 - mov r1, #0x14 - ldr r3, [r0, #0x4] - add r0, r3, r2 - sub r2, #0xe8 - add r2, r3, r2 - bl FUN_0202D7D8 - ldr r0, _0202F2BC ; =UNK_021C59F4 - add r1, r6, #0x0 - ldr r3, [r0, #0x4] - ldr r2, _0202F2D8 ; =0x0000056C - add r1, #0xfd - add r0, r3, r2 - sub r2, #0x90 - add r2, r3, r2 - bl FUN_0202D7D8 - b _0202F268 -_0202F25C: - ldr r0, [r1, #0x4] - mov r4, #0x1 - cmp r0, #0x0 - bne _0202F268 - bl ErrorHandling -_0202F268: - ldr r2, _0202F2BC ; =UNK_021C59F4 - ldr r1, _0202F2DC ; =0x0000065C - ldr r3, [r2, #0x4] - mov r0, #0x0 - strh r0, [r3, r1] - mov r5, #0xff - add r1, #0x1b -_0202F276: - ldr r3, [r2, #0x4] - add r3, r3, r0 - add r0, r0, #0x1 - strb r5, [r3, r1] - cmp r0, #0x4 - blt _0202F276 - cmp r4, #0x0 - bne _0202F28A - bl FUN_0202F2F0 -_0202F28A: - ldr r0, _0202F2BC ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F2E0 ; =0x000005F8 - add r0, r1, r0 - bl FUN_020312BC - cmp r4, #0x0 - bne _0202F2AC - mov r1, #0x0 - ldr r0, _0202F2E4 ; =FUN_0202FB20 - add r2, r1, #0x0 - bl FUN_0200CA60 - ldr r1, _0202F2BC ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _0202F2E8 ; =0x00000548 - str r0, [r2, r1] -_0202F2AC: - ldr r0, _0202F2BC ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F2EC ; =0x00000687 - strb r2, [r1, r0] - mov r0, #0x1 - pop {r4-r6, pc} - nop -_0202F2BC: .word UNK_021C59F4 -_0202F2C0: .word 0x0000068C -_0202F2C4: .word 0x00000658 -_0202F2C8: .word 0x0000045C -_0202F2CC: .word 0x00000458 -_0202F2D0: .word 0x00000454 -_0202F2D4: .word 0x0000054C -_0202F2D8: .word 0x0000056C -_0202F2DC: .word 0x0000065C -_0202F2E0: .word 0x000005F8 -_0202F2E4: .word FUN_0202FB20 -_0202F2E8: .word 0x00000548 -_0202F2EC: .word 0x00000687 - - thumb_func_start FUN_0202F2F0 -FUN_0202F2F0: ; 0x0202F2F0 - push {r3-r7, lr} - ldr r3, _0202F54C ; =UNK_021C59F4 - ldr r2, _0202F550 ; =0x0000062C - ldr r1, [r3, #0x4] - mov r0, #0x0 - strb r0, [r1, r2] - ldr r4, [r3, #0x4] - add r1, r2, #0x1 - strb r0, [r4, r1] - add r1, r2, #0x0 - ldr r4, [r3, #0x4] - add r1, #0x53 - strb r0, [r4, r1] - ldr r1, [r3, #0x4] - add r2, #0x54 - strb r0, [r1, r2] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _0202F54C ; =UNK_021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F558 ; =0x00000458 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r4, #0x0 - cmp r6, #0x0 - ble _0202F360 - ldr r7, _0202F54C ; =UNK_021C59F4 - add r5, r4, #0x0 -_0202F33E: - ldr r3, [r7, #0x4] - ldr r0, _0202F554 ; =0x00000658 - ldr r1, _0202F558 ; =0x00000458 - ldr r2, [r3, r0] - ldr r0, _0202F55C ; =0x000004E8 - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r4, #0x0 - mul r1, r2 - add r0, r0, r5 - add r1, r3, r1 - bl FUN_0202D394 - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r6 - blt _0202F33E -_0202F360: - ldr r0, _0202F54C ; =UNK_021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F560 ; =0x00000454 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r5, #0x0 - cmp r6, #0x0 - ble _0202F3A2 - ldr r7, _0202F54C ; =UNK_021C59F4 - add r4, r5, #0x0 -_0202F380: - ldr r3, [r7, #0x4] - ldr r0, _0202F554 ; =0x00000658 - ldr r1, _0202F560 ; =0x00000454 - ldr r2, [r3, r0] - ldr r0, _0202F564 ; =0x0000047C - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - add r5, r5, #0x1 - add r4, #0xc - cmp r5, r6 - blt _0202F380 -_0202F3A2: - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r2, #0x6 - ldr r1, [r0, #0x4] - mov r0, #0xb5 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x0 - lsl r2, r2, #0x6 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r1, #0xb5 - ldr r2, [r0, #0x4] - ldr r0, _0202F568 ; =0x000004DC - lsl r1, r1, #0x2 - add r0, r2, r0 - add r1, r2, r1 - mov r2, #0x6 - lsl r2, r2, #0x6 - bl FUN_0202D394 - mov r0, #0xee - add r2, r0, #0x0 - mov r3, #0x85 - ldr r4, _0202F54C ; =UNK_021C59F4 - mov r1, #0x0 - add r2, #0x66 - lsl r3, r3, #0x2 -_0202F3DA: - ldr r5, [r4, #0x4] - add r5, r5, r1 - strb r0, [r5, r2] - ldr r5, [r4, #0x4] - add r5, r5, r1 - add r1, r1, #0x1 - strb r0, [r5, r3] - cmp r1, #0xc0 - blt _0202F3DA - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r2, #0x42 - ldr r0, [r0, #0x4] - mov r1, #0x0 - add r0, #0x4c - lsl r2, r2, #0x2 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r2, #0x42 - ldr r1, [r0, #0x4] - ldr r0, _0202F56C ; =0x00000464 - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, #0x4c - bl FUN_0202D394 - ldr r1, _0202F54C ; =UNK_021C59F4 - mov r2, #0xff - ldr r0, [r1, #0x4] - mov r3, #0x1 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x4] - add r0, #0x26 - strb r2, [r0, #0x0] - mov r2, #0xee -_0202F420: - ldr r0, [r1, #0x4] - strb r2, [r0, r3] - ldr r0, [r1, #0x4] - add r0, r0, r3 - add r0, #0x26 - add r3, r3, #0x1 - strb r2, [r0, #0x0] - cmp r3, #0x26 - blt _0202F420 - ldr r0, _0202F54C ; =UNK_021C59F4 - ldr r2, _0202F554 ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F570 ; =0x0000045C - ldr r2, [r3, r2] - ldr r0, [r3, r0] - mov r1, #0x0 - lsl r2, r2, #0x1 - bl MI_CpuFill8 - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r1, #0x47 - ldr r3, [r0, #0x4] - ldr r2, _0202F554 ; =0x00000658 - lsl r1, r1, #0x4 - add r0, r3, r1 - sub r1, #0x14 - ldr r2, [r3, r2] - ldr r1, [r3, r1] - lsl r2, r2, #0x1 - bl FUN_0202D394 - mov r2, #0x0 - ldr r0, _0202F54C ; =UNK_021C59F4 - ldr r1, _0202F574 ; =0x00000684 - ldr r3, [r0, #0x4] - mov r12, r2 - strb r2, [r3, r1] - ldr r3, [r0, #0x4] - add r1, r1, #0x1 - strb r2, [r3, r1] - add r1, r2, #0x0 - add r7, r2, #0x0 - add r6, r2, #0x0 -_0202F476: - ldr r3, [r0, #0x4] - add r4, r3, r2 - ldr r3, _0202F578 ; =0x0000065F - strb r6, [r4, r3] - ldr r3, [r0, #0x4] - ldr r4, _0202F57C ; =0x00000667 - add r5, r3, r2 - mov r3, #0x1 - strb r3, [r5, r4] - ldr r3, [r0, #0x4] - add r4, #0x8 - add r5, r3, r2 - mov r3, #0x1 - strb r3, [r5, r4] - ldr r4, [r0, #0x4] - mov r3, r12 - add r4, r4, r3 - mov r3, #0x61 - lsl r3, r3, #0x4 - strh r6, [r4, r3] - ldr r3, [r0, #0x4] - mov r4, #0xee - add r5, r3, r1 - ldr r3, _0202F580 ; =0x00000596 - add r2, r2, #0x1 - strb r4, [r5, r3] - ldr r3, [r0, #0x4] - ldr r4, _0202F584 ; =0x0000FFFF - add r5, r3, r1 - ldr r3, _0202F588 ; =0x00000594 - strh r4, [r5, r3] - ldr r3, [r0, #0x4] - add r4, r3, r1 - mov r3, #0x59 - lsl r3, r3, #0x4 - str r6, [r4, r3] - ldr r3, [r0, #0x4] - add r4, r3, r1 - ldr r3, _0202F58C ; =0x0000058C - add r1, #0xc - str r6, [r4, r3] - ldr r3, [r0, #0x4] - add r4, r3, r7 - ldr r3, _0202F590 ; =0x00000638 - add r7, r7, #0x4 - str r6, [r4, r3] - mov r3, r12 - add r3, r3, #0x2 - mov r12, r3 - cmp r2, #0x8 - blt _0202F476 - ldr r1, _0202F54C ; =UNK_021C59F4 - ldr r0, _0202F594 ; =0x00000634 - ldr r2, [r1, #0x4] - sub r3, r0, #0x4 - str r6, [r2, r0] - ldr r4, [r1, #0x4] - mov r2, #0x1 - str r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - sub r3, #0x3e - mov r2, #0xee - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - ldr r2, _0202F584 ; =0x0000FFFF - sub r3, #0x40 - strh r2, [r4, r3] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x44 - str r6, [r3, r2] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x48 - str r6, [r3, r2] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x4e - mov r2, #0x1 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x4f - strb r2, [r4, r3] - ldr r2, _0202F598 ; =UNK_02105D58 - mov r3, #0x4 - strb r3, [r2, #0x1] - strb r3, [r2, #0x0] - ldr r1, [r1, #0x4] - sub r0, #0xe8 - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F54C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F59C ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F54C ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F5A0 ; =0x00000688 - strb r2, [r1, r0] - pop {r3-r7, pc} - .balign 4 -_0202F54C: .word UNK_021C59F4 -_0202F550: .word 0x0000062C -_0202F554: .word 0x00000658 -_0202F558: .word 0x00000458 -_0202F55C: .word 0x000004E8 -_0202F560: .word 0x00000454 -_0202F564: .word 0x0000047C -_0202F568: .word 0x000004DC -_0202F56C: .word 0x00000464 -_0202F570: .word 0x0000045C -_0202F574: .word 0x00000684 -_0202F578: .word 0x0000065F -_0202F57C: .word 0x00000667 -_0202F580: .word 0x00000596 -_0202F584: .word 0x0000FFFF -_0202F588: .word 0x00000594 -_0202F58C: .word 0x0000058C -_0202F590: .word 0x00000638 -_0202F594: .word 0x00000634 -_0202F598: .word UNK_02105D58 -_0202F59C: .word 0x0000056C -_0202F5A0: .word 0x00000688 - - thumb_func_start FUN_0202F5A4 -FUN_0202F5A4: ; 0x0202F5A4 - push {r3-r7, lr} - ldr r1, _0202F7D4 ; =UNK_021C59F4 - ldr r0, _0202F7D8 ; =0x0000062C - ldr r2, [r1, #0x4] - mov r3, #0x0 - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - add r0, r0, #0x1 - strb r3, [r1, r0] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7E0 ; =0x00000458 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r4, #0x0 - cmp r6, #0x0 - ble _0202F606 - ldr r7, _0202F7D4 ; =UNK_021C59F4 - add r5, r4, #0x0 -_0202F5E4: - ldr r3, [r7, #0x4] - ldr r0, _0202F7DC ; =0x00000658 - ldr r1, _0202F7E0 ; =0x00000458 - ldr r2, [r3, r0] - ldr r0, _0202F7E4 ; =0x000004E8 - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r4, #0x0 - mul r1, r2 - add r0, r0, r5 - add r1, r3, r1 - bl FUN_0202D394 - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r6 - blt _0202F5E4 -_0202F606: - ldr r0, _0202F7D4 ; =UNK_021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7E8 ; =0x00000454 - mov r1, #0x0 - ldr r0, [r3, r0] - ldr r3, [r3, r2] - add r2, r3, #0x0 - mul r2, r6 - bl MI_CpuFill8 - mov r5, #0x0 - cmp r6, #0x0 - ble _0202F648 - ldr r7, _0202F7D4 ; =UNK_021C59F4 - add r4, r5, #0x0 -_0202F626: - ldr r3, [r7, #0x4] - ldr r0, _0202F7DC ; =0x00000658 - ldr r1, _0202F7E8 ; =0x00000454 - ldr r2, [r3, r0] - ldr r0, _0202F7EC ; =0x0000047C - add r0, r3, r0 - ldr r3, [r3, r1] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - add r5, r5, #0x1 - add r4, #0xc - cmp r5, r6 - blt _0202F626 -_0202F648: - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r2, #0x6 - ldr r1, [r0, #0x4] - mov r0, #0xb5 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x0 - lsl r2, r2, #0x6 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r1, #0xb5 - ldr r2, [r0, #0x4] - ldr r0, _0202F7F0 ; =0x000004DC - lsl r1, r1, #0x2 - add r0, r2, r0 - add r1, r2, r1 - mov r2, #0x6 - lsl r2, r2, #0x6 - bl FUN_0202D394 - mov r0, #0xee - add r2, r0, #0x0 - mov r3, #0x85 - ldr r4, _0202F7D4 ; =UNK_021C59F4 - mov r1, #0x0 - add r2, #0x66 - lsl r3, r3, #0x2 -_0202F680: - ldr r5, [r4, #0x4] - add r5, r5, r1 - strb r0, [r5, r2] - ldr r5, [r4, #0x4] - add r5, r5, r1 - add r1, r1, #0x1 - strb r0, [r5, r3] - cmp r1, #0xc0 - blt _0202F680 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r2, #0x42 - ldr r0, [r0, #0x4] - mov r1, #0x0 - add r0, #0x4c - lsl r2, r2, #0x2 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r2, #0x42 - ldr r1, [r0, #0x4] - ldr r0, _0202F7F4 ; =0x00000464 - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, #0x4c - bl FUN_0202D394 - ldr r1, _0202F7D4 ; =UNK_021C59F4 - mov r2, #0xff - ldr r0, [r1, #0x4] - mov r3, #0x1 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x4] - add r0, #0x26 - strb r2, [r0, #0x0] - mov r2, #0xee -_0202F6C6: - ldr r0, [r1, #0x4] - strb r2, [r0, r3] - ldr r0, [r1, #0x4] - add r0, r0, r3 - add r0, #0x26 - add r3, r3, #0x1 - strb r2, [r0, #0x0] - cmp r3, #0x26 - blt _0202F6C6 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - ldr r2, _0202F7DC ; =0x00000658 - ldr r3, [r0, #0x4] - ldr r0, _0202F7F8 ; =0x0000045C - ldr r2, [r3, r2] - ldr r0, [r3, r0] - mov r1, #0x0 - lsl r2, r2, #0x1 - bl MI_CpuFill8 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r1, #0x47 - ldr r3, [r0, #0x4] - ldr r2, _0202F7DC ; =0x00000658 - lsl r1, r1, #0x4 - add r0, r3, r1 - sub r1, #0x14 - ldr r2, [r3, r2] - ldr r1, [r3, r1] - lsl r2, r2, #0x1 - bl FUN_0202D394 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r3, #0x0 - ldr r2, [r0, #0x4] - ldr r1, _0202F7FC ; =0x00000684 - add r7, r3, #0x0 - strb r3, [r2, r1] - ldr r2, [r0, #0x4] - add r1, r1, #0x1 - strb r3, [r2, r1] - add r1, r3, #0x0 - add r2, r3, #0x0 -_0202F71A: - ldr r4, [r0, #0x4] - add r5, r4, r3 - ldr r4, _0202F800 ; =0x0000065F - strb r7, [r5, r4] - ldr r4, [r0, #0x4] - ldr r5, _0202F804 ; =0x00000667 - add r6, r4, r3 - mov r4, #0x1 - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - add r5, #0x8 - add r6, r4, r3 - mov r4, #0x1 - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - add r3, r3, #0x1 - add r5, r4, r1 - mov r4, #0x61 - lsl r4, r4, #0x4 - strh r7, [r5, r4] - ldr r4, [r0, #0x4] - ldr r5, _0202F808 ; =0x00000596 - add r6, r4, r2 - mov r4, #0xee - strb r4, [r6, r5] - ldr r4, [r0, #0x4] - ldr r5, _0202F80C ; =0x0000FFFF - add r6, r4, r2 - ldr r4, _0202F810 ; =0x00000594 - add r1, r1, #0x2 - strh r5, [r6, r4] - ldr r4, [r0, #0x4] - add r5, r4, r2 - mov r4, #0x59 - lsl r4, r4, #0x4 - str r7, [r5, r4] - ldr r4, [r0, #0x4] - add r5, r4, r2 - ldr r4, _0202F814 ; =0x0000058C - add r2, #0xc - str r7, [r5, r4] - cmp r3, #0x8 - blt _0202F71A - ldr r1, _0202F7D4 ; =UNK_021C59F4 - add r0, r4, #0x0 - ldr r3, [r1, #0x4] - add r0, #0xa4 - mov r2, #0x1 - str r2, [r3, r0] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - sub r3, #0x3a - mov r2, #0xee - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - ldr r2, _0202F80C ; =0x0000FFFF - sub r3, #0x3c - strh r2, [r4, r3] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x40 - str r7, [r3, r2] - add r2, r0, #0x0 - ldr r3, [r1, #0x4] - sub r2, #0x44 - str r7, [r3, r2] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x52 - mov r2, #0x1 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x4] - add r3, #0x53 - strb r2, [r4, r3] - ldr r1, [r1, #0x4] - sub r0, #0xe4 - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202F818 ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D804 - ldr r0, _0202F7D4 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202F81C ; =0x00000688 - strb r2, [r1, r0] - pop {r3-r7, pc} - .balign 4 -_0202F7D4: .word UNK_021C59F4 -_0202F7D8: .word 0x0000062C -_0202F7DC: .word 0x00000658 -_0202F7E0: .word 0x00000458 -_0202F7E4: .word 0x000004E8 -_0202F7E8: .word 0x00000454 -_0202F7EC: .word 0x0000047C -_0202F7F0: .word 0x000004DC -_0202F7F4: .word 0x00000464 -_0202F7F8: .word 0x0000045C -_0202F7FC: .word 0x00000684 -_0202F800: .word 0x0000065F -_0202F804: .word 0x00000667 -_0202F808: .word 0x00000596 -_0202F80C: .word 0x0000FFFF -_0202F810: .word 0x00000594 -_0202F814: .word 0x0000058C -_0202F818: .word 0x0000056C -_0202F81C: .word 0x00000688 - - thumb_func_start FUN_0202F820 -FUN_0202F820: ; 0x0202F820 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _0202F8B8 ; =UNK_021C59F4 - ldr r3, _0202F8BC ; =0x0000065F - ldr r1, [r0, #0x4] - mov r2, #0x0 - add r1, r1, r5 - strb r2, [r1, r3] - ldr r4, [r0, #0x4] - mov r1, #0x1 - add r6, r4, r5 - add r4, r3, #0x0 - add r4, #0x8 - strb r1, [r6, r4] - ldr r6, [r0, #0x4] - lsl r4, r5, #0x2 - add r6, r6, r4 - add r4, r3, #0x0 - sub r4, #0x27 - str r2, [r6, r4] - ldr r2, [r0, #0x4] - add r4, r2, r5 - add r2, r3, #0x0 - add r2, #0x10 - strb r1, [r4, r2] - ldr r1, [r0, #0x4] - sub r0, r3, #0x7 - ldr r2, [r1, r0] - ldr r3, _0202F8C0 ; =0x0000047C - mov r0, #0xc - add r4, r5, #0x0 - mul r4, r0 - add r0, r1, r3 - sub r3, #0x28 - ldr r3, [r1, r3] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - ldr r0, _0202F8B8 ; =UNK_021C59F4 - ldr r3, _0202F8C4 ; =0x000004E8 - ldr r1, [r0, #0x4] - ldr r0, _0202F8C8 ; =0x00000658 - ldr r2, [r1, r0] - add r0, r1, r3 - sub r3, #0x90 - ldr r3, [r1, r3] - add r1, r5, #0x0 - mul r1, r2 - add r0, r0, r4 - add r1, r3, r1 - bl FUN_0202D394 - ldr r3, _0202F8B8 ; =UNK_021C59F4 - ldr r2, _0202F8CC ; =0x00000596 - ldr r0, [r3, #0x4] - mov r1, #0xee - add r0, r0, r4 - strb r1, [r0, r2] - ldr r0, [r3, #0x4] - ldr r5, _0202F8D0 ; =0x0000FFFF - add r1, r0, r4 - sub r0, r2, #0x2 - strh r5, [r1, r0] - ldr r1, [r3, #0x4] - mov r0, #0x0 - add r5, r1, r4 - sub r1, r2, #0x6 - str r0, [r5, r1] - ldr r1, [r3, #0x4] - sub r2, #0xa - add r1, r1, r4 - str r0, [r1, r2] - pop {r4-r6, pc} - .balign 4 -_0202F8B8: .word UNK_021C59F4 -_0202F8BC: .word 0x0000065F -_0202F8C0: .word 0x0000047C -_0202F8C4: .word 0x000004E8 -_0202F8C8: .word 0x00000658 -_0202F8CC: .word 0x00000596 -_0202F8D0: .word 0x0000FFFF - - thumb_func_start FUN_0202F8D4 -FUN_0202F8D4: ; 0x0202F8D4 - push {r4-r6, lr} - ldr r4, _0202F908 ; =UNK_021C59F4 - ldr r6, _0202F90C ; =0x00000667 - mov r5, #0x1 -_0202F8DC: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202F900 - ldr r0, [r4, #0x4] - add r0, r0, r5 - ldrb r0, [r0, r6] - cmp r0, #0x0 - bne _0202F900 - bl FUN_02031280 - cmp r0, #0x0 - bne _0202F900 - add r0, r5, #0x0 - bl FUN_0202F820 -_0202F900: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202F8DC - pop {r4-r6, pc} - .balign 4 -_0202F908: .word UNK_021C59F4 -_0202F90C: .word 0x00000667 - - thumb_func_start FUN_0202F910 -FUN_0202F910: ; 0x0202F910 - ldr r3, _0202F914 ; =FUN_0202F820 - bx r3 - .balign 4 -_0202F914: .word FUN_0202F820 - - thumb_func_start FUN_0202F918 -FUN_0202F918: ; 0x0202F918 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - mov r4, #0x1 - bl FUN_02033534 - cmp r0, #0x13 - bge _0202F93E - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202E5F8 - add r4, r0, #0x0 - ldr r0, _0202F94C ; =FUN_0202F910 - bl FUN_0202D330 -_0202F93E: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0202F150 - add r0, r4, #0x0 - pop {r3-r7, pc} - nop -_0202F94C: .word FUN_0202F910 - - thumb_func_start FUN_0202F950 -FUN_0202F950: ; 0x0202F950 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - mov r4, #0x1 - bl FUN_02033534 - cmp r0, #0x13 - bge _0202F96C - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0202E66C - add r4, r0, #0x0 -_0202F96C: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_0202F150 - ldr r0, _0202F980 ; =UNK_02105D58 - mov r1, #0x4 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - pop {r3-r7, pc} - nop -_0202F980: .word UNK_02105D58 - - thumb_func_start FUN_0202F984 -FUN_0202F984: ; 0x0202F984 - push {r4, lr} - mov r4, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202F99A - ldr r0, _0202F9D4 ; =UNK_02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - beq _0202F9A2 - pop {r4, pc} -_0202F99A: - ldr r0, _0202F9D4 ; =UNK_02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x4 - bne _0202F9D0 -_0202F9A2: - ldr r0, _0202F9D8 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202F9DC ; =0x0000067D - ldrb r1, [r2, r0] - cmp r1, #0x2 - bne _0202F9B4 - mov r1, #0x0 - strb r1, [r2, r0] - mov r4, #0x1 -_0202F9B4: - ldr r0, _0202F9D8 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202F9DC ; =0x0000067D - ldrb r1, [r2, r0] - cmp r1, #0x3 - bne _0202F9C4 - mov r4, #0x1 - strb r4, [r2, r0] -_0202F9C4: - cmp r4, #0x0 - beq _0202F9CC - bl FUN_0202F5A4 -_0202F9CC: - bl FUN_02031088 -_0202F9D0: - pop {r4, pc} - nop -_0202F9D4: .word UNK_02105D58 -_0202F9D8: .word UNK_021C59F4 -_0202F9DC: .word 0x0000067D - - thumb_func_start FUN_0202F9E0 -FUN_0202F9E0: ; 0x0202F9E0 - ldr r1, _0202FA08 ; =UNK_021C59F4 - ldr r3, [r1, #0x4] - ldr r1, _0202FA0C ; =0x0000067D - ldrb r2, [r3, r1] - cmp r2, #0x0 - bne _0202F9F6 - cmp r0, #0x1 - bne _0202F9F6 - mov r0, #0x3 - strb r0, [r3, r1] - bx lr -_0202F9F6: - cmp r2, #0x1 - bne _0202FA04 - cmp r0, #0x0 - bne _0202FA04 - ldr r0, _0202FA0C ; =0x0000067D - mov r1, #0x2 - strb r1, [r3, r0] -_0202FA04: - bx lr - nop -_0202FA08: .word UNK_021C59F4 -_0202FA0C: .word 0x0000067D - - thumb_func_start FUN_0202FA10 -FUN_0202FA10: ; 0x0202FA10 - ldr r3, _0202FA18 ; =FUN_0202F9E0 - mov r0, #0x1 - bx r3 - nop -_0202FA18: .word FUN_0202F9E0 - - thumb_func_start FUN_0202FA1C -FUN_0202FA1C: ; 0x0202FA1C - ldr r3, _0202FA24 ; =FUN_0202F9E0 - mov r0, #0x0 - bx r3 - nop -_0202FA24: .word FUN_0202F9E0 - - thumb_func_start FUN_0202FA28 -FUN_0202FA28: ; 0x0202FA28 - ldr r0, _0202FA40 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FA44 ; =0x0000067D - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _0202FA38 - mov r0, #0x1 - bx lr -_0202FA38: - cmp r0, #0x3 - bne _0202FA3E - mov r0, #0x0 -_0202FA3E: - bx lr - .balign 4 -_0202FA40: .word UNK_021C59F4 -_0202FA44: .word 0x0000067D - - thumb_func_start FUN_0202FA48 -FUN_0202FA48: ; 0x0202FA48 - push {r3, lr} - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0202FA56 - mov r0, #0x1 - pop {r3, pc} -_0202FA56: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202FA5C -FUN_0202FA5C: ; 0x0202FA5C - push {r4, lr} - ldr r0, _0202FB00 ; =UNK_021C59F4 - mov r4, #0x0 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FA82 - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FA78 - bl MOD04_021D83C0 - mov r4, #0x1 - b _0202FA82 -_0202FA78: - bl FUN_0202E784 - cmp r0, #0x0 - beq _0202FA82 - mov r4, #0x1 -_0202FA82: - cmp r4, #0x0 - beq _0202FAFE - bl FUN_020314D0 - bl FUN_0202DBA4 - ldr r0, _0202FB00 ; =UNK_021C59F4 - mov r1, #0x0 - strb r1, [r0, #0x0] - ldr r1, [r0, #0x4] - ldr r0, _0202FB04 ; =0x00000548 - ldr r0, [r1, r0] - bl FUN_0200CAB4 - ldr r1, _0202FB00 ; =UNK_021C59F4 - ldr r0, _0202FB04 ; =0x00000548 - ldr r2, [r1, #0x4] - mov r3, #0x0 - str r3, [r2, r0] - ldr r1, [r1, #0x4] - sub r0, #0xec - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x46 - lsl r0, r0, #0x4 - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB08 ; =0x00000458 - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB0C ; =0x00000454 - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB10 ; =0x0000056C - add r0, r1, r0 - bl FUN_0202D824 - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FB14 ; =0x0000054C - add r0, r1, r0 - bl FUN_0202D824 - ldr r0, _0202FB00 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - bl FreeToHeap - ldr r0, _0202FB00 ; =UNK_021C59F4 - mov r1, #0x0 - str r1, [r0, #0x4] -_0202FAFE: - pop {r4, pc} - .balign 4 -_0202FB00: .word UNK_021C59F4 -_0202FB04: .word 0x00000548 -_0202FB08: .word 0x00000458 -_0202FB0C: .word 0x00000454 -_0202FB10: .word 0x0000056C -_0202FB14: .word 0x0000054C - - thumb_func_start FUN_0202FB18 -FUN_0202FB18: ; 0x0202FB18 - ldr r3, _0202FB1C ; =FUN_0202E9E8 - bx r3 - .balign 4 -_0202FB1C: .word FUN_0202E9E8 - - thumb_func_start FUN_0202FB20 -FUN_0202FB20: ; 0x0202FB20 - push {r3, lr} - ldr r0, _0202FB54 ; =UNK_021C59F4 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202FB52 - bl FUN_0203050C - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FB40 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FB48 -_0202FB40: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FB4C -_0202FB48: - bl FUN_0202FEEC -_0202FB4C: - ldr r0, _0202FB54 ; =UNK_021C59F4 - mov r1, #0x0 - strb r1, [r0, #0x0] -_0202FB52: - pop {r3, pc} - .balign 4 -_0202FB54: .word UNK_021C59F4 - - thumb_func_start FUN_0202FB58 -FUN_0202FB58: ; 0x0202FB58 - push {r3, lr} - bl FUN_0202F03C - cmp r0, #0x0 - beq _0202FB7C - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FB78 - bl FUN_0202EE24 - cmp r0, #0x0 - bne _0202FB7C - bl FUN_0202FA5C - pop {r3, pc} -_0202FB78: - bl FUN_0202FA5C -_0202FB7C: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202FB80 -FUN_0202FB80: ; 0x0202FB80 - push {r4, lr} - bl FUN_02031CDC - ldr r1, _0202FC48 ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _0202FC34 - ldr r0, _0202FC4C ; =0x0000068A - ldrb r0, [r2, r0] - cmp r0, #0x0 - bne _0202FC16 - mov r0, #0x0 - strb r0, [r1, #0x0] - bl FUN_0202F984 - ldr r0, _0202FC48 ; =UNK_021C59F4 - ldr r1, _0202FC50 ; =gMain - ldr r0, [r0, #0x4] - ldr r2, _0202FC54 ; =0x00000628 - ldr r3, [r1, #0x44] - ldr r1, _0202FC58 ; =0x00007FFF - ldrh r4, [r0, r2] - and r1, r3 - orr r1, r4 - strh r1, [r0, r2] - bl FUN_02030674 - bl FUN_0202FCCC - ldr r0, _0202FC48 ; =UNK_021C59F4 - ldr r1, _0202FC54 ; =0x00000628 - ldr r3, [r0, #0x4] - mov r0, #0x2 - ldrh r2, [r3, r1] - lsl r0, r0, #0xe - and r0, r2 - strh r0, [r3, r1] - bl FUN_0202FA28 - cmp r0, #0x0 - bne _0202FBD6 - bl FUN_02030DA4 -_0202FBD6: - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FBE8 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FBF0 -_0202FBE8: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FBF4 -_0202FBF0: - bl FUN_02030074 -_0202FBF4: - bl FUN_02031190 - cmp r0, #0x0 - beq _0202FC0C - bl FUN_0202FA28 - cmp r0, #0x1 - beq _0202FC0C - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FC10 -_0202FC0C: - bl FUN_02030DFC -_0202FC10: - ldr r0, _0202FC48 ; =UNK_021C59F4 - mov r1, #0x1 - strb r1, [r0, #0x0] -_0202FC16: - ldr r0, _0202FC48 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FC5C ; =0x0000065C - ldrh r0, [r1, r0] - bl FUN_0202ED70 - bl FUN_02031190 - cmp r0, #0x0 - bne _0202FC2E - bl FUN_0202F8D4 -_0202FC2E: - bl FUN_0202FB58 - b _0202FC3A -_0202FC34: - mov r0, #0x0 - bl FUN_0202ED70 -_0202FC3A: - mov r0, #0x0 - bl FUN_020335F4 - bl FUN_020315A4 - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_0202FC48: .word UNK_021C59F4 -_0202FC4C: .word 0x0000068A -_0202FC50: .word gMain -_0202FC54: .word 0x00000628 -_0202FC58: .word 0x00007FFF -_0202FC5C: .word 0x0000065C - - thumb_func_start FUN_0202FC60 -FUN_0202FC60: ; 0x0202FC60 - push {r4, lr} - ldr r0, _0202FC7C ; =UNK_021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FC74 - bl FUN_0202F2F0 -_0202FC74: - ldr r0, _0202FC7C ; =UNK_021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - nop -_0202FC7C: .word UNK_021C59F4 - - thumb_func_start FUN_0202FC80 -FUN_0202FC80: ; 0x0202FC80 - push {r4, lr} - ldr r0, _0202FCA0 ; =UNK_021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _0202FC9A - ldr r0, _0202FCA4 ; =0x0000067D - mov r1, #0x1 - strb r1, [r2, r0] - bl FUN_0202F2F0 -_0202FC9A: - ldr r0, _0202FCA0 ; =UNK_021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 -_0202FCA0: .word UNK_021C59F4 -_0202FCA4: .word 0x0000067D - - thumb_func_start FUN_0202FCA8 -FUN_0202FCA8: ; 0x0202FCA8 - push {r4, lr} - ldr r0, _0202FCC8 ; =UNK_021C59F4 - mov r1, #0x0 - ldrb r4, [r0, #0x0] - strb r1, [r0, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FCC0 - bl FUN_0202F2F0 - bl FUN_0202E538 -_0202FCC0: - ldr r0, _0202FCC8 ; =UNK_021C59F4 - strb r4, [r0, #0x0] - pop {r4, pc} - nop -_0202FCC8: .word UNK_021C59F4 - - thumb_func_start FUN_0202FCCC -FUN_0202FCCC: ; 0x0202FCCC - push {r3, lr} - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202FD40 - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FD06 - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r1, _0202FE1C ; =0x00000687 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r1] - cmp r1, #0x0 - beq _0202FCF8 - mov r1, #0x26 - bl MOD04_021D78FC - cmp r0, #0x0 - bne _0202FCFA -_0202FCF8: - b _0202FE10 -_0202FCFA: - ldr r0, _0202FE14 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - strb r2, [r1, r0] - pop {r3, pc} -_0202FD06: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FD1A - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FD22 -_0202FD1A: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FE10 -_0202FD22: - ldr r0, _0202FE20 ; =UNK_02105D58 - mov r1, #0x0 - strb r1, [r0, #0x0] - bl FUN_0203050C - ldr r0, _0202FE20 ; =UNK_02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE14 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0202FE18 ; =0x00000683 - strb r2, [r1, r0] - pop {r3, pc} -_0202FD40: - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FDB2 - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r2, _0202FE1C ; =0x00000687 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r2] - cmp r1, #0x0 - beq _0202FE10 - add r1, r2, #0x0 - sub r1, #0x57 - ldr r1, [r0, r1] - cmp r1, #0x0 - beq _0202FD7A - sub r2, #0x53 - ldr r1, [r0, r2] - cmp r1, #0x3 - bgt _0202FE10 - ldr r1, _0202FE20 ; =UNK_02105D58 - ldrb r1, [r1, #0x0] - cmp r1, #0x4 - bne _0202FD90 - bl FUN_02030930 - ldr r0, _0202FE20 ; =UNK_02105D58 - mov r1, #0x2 - strb r1, [r0, #0x0] - b _0202FD90 -_0202FD7A: - ldr r1, _0202FE20 ; =UNK_02105D58 - ldrb r1, [r1, #0x0] - cmp r1, #0x4 - bne _0202FD90 - bl FUN_02030930 - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE20 ; =UNK_02105D58 - mov r1, #0x2 - strb r1, [r0, #0x0] -_0202FD90: - ldr r0, _0202FE14 ; =UNK_021C59F4 - mov r1, #0x26 - ldr r0, [r0, #0x4] - bl MOD04_021D78FC - cmp r0, #0x0 - beq _0202FE10 - ldr r0, _0202FE20 ; =UNK_02105D58 - mov r1, #0x4 - strb r1, [r0, #0x0] - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE24 ; =0x00000634 - ldr r1, [r2, r0] - add r1, r1, #0x1 - str r1, [r2, r0] - pop {r3, pc} -_0202FDB2: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FDC6 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _0202FDCE -_0202FDC6: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FE10 -_0202FDCE: - ldr r0, _0202FE20 ; =UNK_02105D58 - ldrb r0, [r0, #0x0] - cmp r0, #0x4 - bne _0202FE10 - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE24 ; =0x00000634 - ldr r1, [r2, r0] - cmp r1, #0x3 - bgt _0202FE10 - add r0, #0x4b - ldrb r1, [r2, r0] - mov r0, #0x26 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030930 - ldr r0, _0202FE14 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _0202FE28 ; =0x0000067F - ldrb r1, [r2, r0] - mov r0, #0x1 - sub r1, r0, r1 - mov r0, #0x26 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030930 - ldr r0, _0202FE20 ; =UNK_02105D58 - mov r1, #0x0 - strb r1, [r0, #0x0] - bl FUN_0203050C -_0202FE10: - pop {r3, pc} - nop -_0202FE14: .word UNK_021C59F4 -_0202FE18: .word 0x00000683 -_0202FE1C: .word 0x00000687 -_0202FE20: .word UNK_02105D58 -_0202FE24: .word 0x00000634 -_0202FE28: .word 0x0000067F - - thumb_func_start FUN_0202FE2C -FUN_0202FE2C: ; 0x0202FE2C - push {r3-r7, lr} - sub sp, #0x10 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - str r0, [sp, #0xc] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - mov r7, #0x0 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _0202FED0 - ldr r0, [sp, #0x0] - mov r1, #0xc0 - add r6, r0, #0x0 - add r4, r7, #0x0 - add r5, r7, #0x0 - mul r6, r1 -_0202FE66: - ldr r0, _0202FEE4 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0202FEE8 ; =0x0000047C - add r0, r1, r0 - add r0, r0, r4 - bl FUN_0202D4BC - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202FE90 - ldr r0, _0202FEE4 ; =UNK_021C59F4 - mov r1, #0xe - ldr r0, [r0, #0x4] - add r0, r6, r0 - add r2, r5, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - strb r1, [r2, r0] -_0202FE90: - ldr r0, _0202FEE4 ; =UNK_021C59F4 - mov r2, #0x55 - ldr r1, [r0, #0x4] - ldr r0, _0202FEE8 ; =0x0000047C - lsl r2, r2, #0x2 - add r0, r1, r0 - add r1, r1, r2 - add r1, r1, r6 - ldr r2, [sp, #0xc] - add r0, r0, r4 - add r1, r1, r5 - bl FUN_0202D400 - ldr r0, _0202FEE4 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - add r0, r6, r0 - add r1, r5, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - ldrb r0, [r1, r0] - cmp r0, #0xe - bne _0202FEC2 - ldr r0, [sp, #0x4] - add r0, r0, #0x1 - str r0, [sp, #0x4] -_0202FEC2: - ldr r0, [sp, #0xc] - add r7, r7, #0x1 - add r5, r5, r0 - ldr r0, [sp, #0x8] - add r4, #0xc - cmp r7, r0 - blt _0202FE66 -_0202FED0: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - cmp r1, r0 - bne _0202FEDE - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0202FEDE: - mov r0, #0x1 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_0202FEE4: .word UNK_021C59F4 -_0202FEE8: .word 0x0000047C - - thumb_func_start FUN_0202FEEC -FUN_0202FEEC: ; 0x0202FEEC - push {r3-r7, lr} - ldr r0, _02030064 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202FEFE - bl FUN_02033534 - cmp r0, #0x13 - blt _0202FF00 -_0202FEFE: - b _02030062 -_0202FF00: - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - str r0, [sp, #0x0] - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r6, r0, #0x1 - ldr r0, _02030068 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - cmp r1, #0x2 - beq _0202FF2C - ldrb r0, [r0, #0x1] - cmp r0, #0x0 - beq _0202FF2C - b _02030062 -_0202FF2C: - ldr r0, _02030068 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0202FF4A - ldr r0, _02030064 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r0, [r1, r0] - bl FUN_0202FE2C -_0202FF4A: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0202FF86 - bl FUN_02031280 - cmp r0, #0x0 - bne _0202FF86 - ldr r0, _02030064 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r3, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r0, [r1, r0] - mov r1, #0xc0 - add r2, r0, #0x0 - mul r2, r1 - add r0, r3, r2 - ldr r3, _0203006C ; =FUN_020304F0 - mov r2, #0xe - bl FUN_0202D0D0 - cmp r0, #0x0 - bne _0202FF86 - ldr r0, _02030068 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - sub r1, r1, #0x1 - strb r1, [r0, #0x1] -_0202FF86: - ldr r0, _02030068 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - cmp r1, #0x1 - beq _0202FF94 - ldrb r0, [r0, #0x1] - cmp r0, #0x3 - bne _0203000A -_0202FF94: - mov r4, #0x0 - cmp r6, #0x0 - ble _0202FFDC - ldr r7, _02030064 ; =UNK_021C59F4 - add r5, r4, #0x0 -_0202FF9E: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0202FFBA - ldr r0, [r7, #0x4] - ldr r1, _02030070 ; =0x00000638 - add r0, r0, r5 - ldr r1, [r0, r1] - add r2, r1, #0x1 - ldr r1, _02030070 ; =0x00000638 - str r2, [r0, r1] - b _0202FFD4 -_0202FFBA: - bl FUN_02031280 - cmp r0, #0x0 - beq _0202FFD4 - cmp r4, #0x0 - bne _0202FFD4 - ldr r0, [r7, #0x4] - ldr r1, _02030070 ; =0x00000638 - add r0, r0, r5 - ldr r1, [r0, r1] - add r2, r1, #0x1 - ldr r1, _02030070 ; =0x00000638 - str r2, [r0, r1] -_0202FFD4: - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r6 - blt _0202FF9E -_0202FFDC: - ldr r0, _02030064 ; =UNK_021C59F4 - mov r1, #0x55 - ldr r2, [r0, #0x4] - lsl r1, r1, #0x2 - add r4, r2, r1 - mov r1, #0x1a - lsl r1, r1, #0x6 - ldrb r1, [r2, r1] - mov r2, #0xc0 - mov r0, #0x0 - add r3, r1, #0x0 - mul r3, r2 - add r1, r4, r3 - bl FUN_0203026C - ldr r0, _02030064 ; =UNK_021C59F4 - mov r1, #0x1a - ldr r3, [r0, #0x4] - lsl r1, r1, #0x6 - ldrb r2, [r3, r1] - mov r0, #0x1 - sub r0, r0, r2 - strb r0, [r3, r1] -_0203000A: - mov r5, #0x0 - cmp r6, #0x0 - ble _0203004A - add r4, r5, #0x0 - mov r7, #0xff -_02030014: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030040 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030040 - ldr r0, _02030064 ; =UNK_021C59F4 - mov r1, #0x1a - ldr r0, [r0, #0x4] - lsl r1, r1, #0x6 - ldrb r2, [r0, r1] - mov r1, #0xc0 - mul r1, r2 - add r0, r0, r1 - add r1, r4, r0 - mov r0, #0x55 - lsl r0, r0, #0x2 - strb r7, [r1, r0] -_02030040: - ldr r0, [sp, #0x0] - add r5, r5, #0x1 - add r4, r4, r0 - cmp r5, r6 - blt _02030014 -_0203004A: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0203005A - bl FUN_02031280 - cmp r0, #0x0 - beq _02030062 -_0203005A: - ldr r0, _02030068 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] -_02030062: - pop {r3-r7, pc} - .balign 4 -_02030064: .word UNK_021C59F4 -_02030068: .word UNK_02105D58 -_0203006C: .word FUN_020304F0 -_02030070: .word 0x00000638 - - thumb_func_start FUN_02030074 -FUN_02030074: ; 0x02030074 - push {r3-r7, lr} - ldr r0, _02030228 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _020300DC - bl FUN_02033534 - cmp r0, #0x13 - blt _020300B4 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020300DC - ldr r0, _02030228 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x4c - bl MOD04_021D79B4 - cmp r0, #0x0 - beq _020300DC - ldr r0, _02030228 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - strb r2, [r1, r0] - pop {r3-r7, pc} -_020300B4: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _020300C4 - bl FUN_02031280 - cmp r0, #0x0 - beq _020300DC -_020300C4: - bl FUN_0202FEEC - ldr r0, _02030230 ; =UNK_02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x2 - bne _020300DC - ldr r0, _02030228 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203022C ; =0x00000683 - strb r2, [r1, r0] - pop {r3-r7, pc} -_020300DC: - bl FUN_02033534 - cmp r0, #0x13 - blt _02030184 - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _020300F0 - b _02030224 -_020300F0: - ldr r0, _02030228 ; =UNK_021C59F4 - mov r1, #0x63 - ldr r2, [r0, #0x4] - lsl r1, r1, #0x4 - ldr r0, [r2, r1] - cmp r0, #0x0 - beq _02030130 - add r0, r1, #0x0 - add r0, #0xc - ldr r0, [r2, r0] - cmp r0, #0x3 - bgt _02030110 - add r1, #0x8 - ldr r0, [r2, r1] - cmp r0, #0x3 - ble _02030112 -_02030110: - b _02030224 -_02030112: - ldr r0, _02030230 ; =UNK_02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _02030150 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030128 - mov r0, #0x0 - bl FUN_0202FE2C -_02030128: - ldr r0, _02030230 ; =UNK_02105D58 - mov r1, #0x2 - strb r1, [r0, #0x1] - b _02030150 -_02030130: - ldr r0, _02030230 ; =UNK_02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _0203014A - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0203014A - mov r0, #0x0 - bl FUN_0202FE2C - cmp r0, #0x0 - beq _02030224 -_0203014A: - ldr r0, _02030230 ; =UNK_02105D58 - mov r1, #0x2 - strb r1, [r0, #0x1] -_02030150: - ldr r0, _02030228 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r0, r1, r0 - mov r1, #0x4c - bl MOD04_021D79B4 - cmp r0, #0x0 - beq _02030224 - ldr r0, _02030230 ; =UNK_02105D58 - mov r1, #0x4 - strb r1, [r0, #0x1] - ldr r1, _02030228 ; =UNK_021C59F4 - ldr r0, _02030234 ; =0x00000638 - ldr r3, [r1, #0x4] - ldr r2, [r3, r0] - add r2, r2, #0x1 - str r2, [r3, r0] - ldr r2, [r1, #0x4] - add r1, r0, #0x4 - ldr r1, [r2, r1] - add r0, r0, #0x4 - add r1, r1, #0x1 - str r1, [r2, r0] - pop {r3-r7, pc} -_02030184: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _02030194 - bl FUN_02031280 - cmp r0, #0x0 - beq _02030224 -_02030194: - ldr r0, _02030230 ; =UNK_02105D58 - ldrb r0, [r0, #0x1] - cmp r0, #0x4 - bne _02030224 - ldr r6, _02030228 ; =UNK_021C59F4 - ldr r7, _02030234 ; =0x00000638 - mov r4, #0x1 - mov r5, #0x4 -_020301A4: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020301BC - ldr r0, [r6, #0x4] - add r0, r0, r5 - ldr r0, [r0, r7] - cmp r0, #0x3 - ble _020301D2 - pop {r3-r7, pc} -_020301BC: - cmp r4, #0x0 - bne _020301D2 - bl FUN_02031280 - cmp r0, #0x0 - beq _020301D2 - ldr r1, [r6, #0x4] - ldr r0, _02030234 ; =0x00000638 - ldr r0, [r1, r0] - cmp r0, #0x3 - bgt _02030224 -_020301D2: - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x8 - blt _020301A4 - bl FUN_0202FA28 - cmp r0, #0x0 - bne _0203021A - ldr r0, _02030228 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r2, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r1, [r1, r0] - mov r0, #0xc0 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030A00 - ldr r0, _02030228 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x55 - lsl r0, r0, #0x2 - add r2, r1, r0 - mov r0, #0x1a - lsl r0, r0, #0x6 - ldrb r1, [r1, r0] - mov r0, #0x1 - sub r1, r0, r1 - mov r0, #0xc0 - mul r0, r1 - add r0, r2, r0 - bl FUN_02030A00 -_0203021A: - ldr r0, _02030230 ; =UNK_02105D58 - mov r1, #0x0 - strb r1, [r0, #0x1] - bl FUN_0202FEEC -_02030224: - pop {r3-r7, pc} - nop -_02030228: .word UNK_021C59F4 -_0203022C: .word 0x00000683 -_02030230: .word UNK_02105D58 -_02030234: .word 0x00000638 - - thumb_func_start FUN_02030238 -FUN_02030238: ; 0x02030238 - push {r4-r6, lr} - ldr r4, _02030264 ; =UNK_021C59F4 - ldr r3, _02030268 ; =0x0000066F - ldr r5, [r4, #0x4] - ldrb r6, [r5, r3] - cmp r6, #0x0 - beq _0203025C - add r0, r3, #0x0 - sub r0, #0x3b - ldr r0, [r5, r0] - sub r1, r0, #0x1 - add r0, r3, #0x0 - sub r0, #0x3b - str r1, [r5, r0] - ldr r0, [r4, #0x4] - mov r1, #0x0 - strb r1, [r0, r3] - pop {r4-r6, pc} -_0203025C: - bl FUN_0203026C - pop {r4-r6, pc} - nop -_02030264: .word UNK_021C59F4 -_02030268: .word 0x0000066F - - thumb_func_start FUN_0203026C -FUN_0203026C: ; 0x0203026C - push {r3-r7, lr} - sub sp, #0x8 - ldr r0, _020303A0 ; =UNK_021C59F4 - add r5, r1, #0x0 - ldr r2, [r0, #0x4] - ldr r0, _020303A4 ; =0x00000634 - ldr r1, [r2, r0] - sub r1, r1, #0x1 - str r1, [r2, r0] - cmp r5, #0x0 - beq _02030290 - ldrb r0, [r5, #0x0] - cmp r0, #0xb - bne _02030296 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030292 -_02030290: - b _0203039C -_02030292: - add r5, r5, #0x1 - b _0203029E -_02030296: - bl FUN_0202FA28 - cmp r0, #0x0 - beq _0203039C -_0203029E: - ldr r0, _020303A0 ; =UNK_021C59F4 - ldr r1, _020303A8 ; =0x00000682 - ldr r0, [r0, #0x4] - ldrb r1, [r0, r1] - cmp r1, #0x0 - beq _020302B2 - ldrb r2, [r5, #0x0] - mov r1, #0x1 - tst r1, r2 - bne _0203039C -_020302B2: - ldr r1, _020303A8 ; =0x00000682 - mov r2, #0x0 - strb r2, [r0, r1] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _0203036E - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r6, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - mov r4, #0x0 - str r0, [sp, #0x4] - cmp r0, #0x0 - ble _0203039C - sub r0, r6, #0x1 - add r7, r4, #0x0 - str r0, [sp, #0x0] -_020302EA: - ldrb r0, [r5, #0x0] - cmp r0, #0xff - bne _02030302 - ldr r0, _020303A0 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020303AC ; =0x0000065C - lsl r2, r4 - ldrh r0, [r1, r0] - mvn r2, r2 - and r2, r0 - b _02030310 -_02030302: - ldr r0, _020303A0 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020303AC ; =0x0000065C - lsl r2, r4 - ldrh r0, [r1, r0] - orr r2, r0 -_02030310: - ldr r0, _020303AC ; =0x0000065C - strh r2, [r1, r0] - ldrb r2, [r5, #0x0] - cmp r2, #0xff - bne _0203031E - add r5, r5, r6 - b _02030360 -_0203031E: - cmp r2, #0xe - bne _02030326 - add r5, r5, r6 - b _02030360 -_02030326: - ldr r0, _020303A0 ; =UNK_021C59F4 - ldr r3, [r0, #0x4] - ldr r0, _020303B0 ; =0x00000667 - add r1, r3, r4 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0203033E - mov r0, #0x1 - tst r0, r2 - beq _0203033E - add r5, r5, r6 - b _02030360 -_0203033E: - ldr r0, _020303B4 ; =0x000004E8 - add r5, r5, #0x1 - add r0, r3, r0 - ldr r2, [sp, #0x0] - ldr r3, _020303B8 ; =0x000005E6 - add r0, r0, r7 - add r1, r5, #0x0 - bl FUN_0202D3A4 - ldr r0, [sp, #0x0] - mov r1, #0x0 - add r5, r5, r0 - ldr r0, _020303A0 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - add r2, r0, r4 - ldr r0, _020303B0 ; =0x00000667 - strb r1, [r2, r0] -_02030360: - ldr r0, [sp, #0x4] - add r4, r4, #0x1 - add r7, #0xc - cmp r4, r0 - blt _020302EA - add sp, #0x8 - pop {r3-r7, pc} -_0203036E: - ldr r0, _020303A0 ; =UNK_021C59F4 - ldrb r2, [r5, #0x1] - ldr r1, [r0, #0x4] - ldr r3, _020303AC ; =0x0000065C - strh r2, [r1, r3] - ldr r2, [r0, #0x4] - ldrh r1, [r2, r3] - lsl r1, r1, #0x8 - strh r1, [r2, r3] - ldr r4, [r0, #0x4] - ldrb r1, [r5, #0x2] - ldrh r2, [r4, r3] - add r1, r2, r1 - strh r1, [r4, r3] - ldr r1, [r0, #0x4] - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - ldrb r2, [r5, #0x3] - add r1, r5, #0x4 - sub r3, #0x5d - bl FUN_0202D3A4 -_0203039C: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020303A0: .word UNK_021C59F4 -_020303A4: .word 0x00000634 -_020303A8: .word 0x00000682 -_020303AC: .word 0x0000065C -_020303B0: .word 0x00000667 -_020303B4: .word 0x000004E8 -_020303B8: .word 0x000005E6 - - thumb_func_start FUN_020303BC -FUN_020303BC: ; 0x020303BC - push {r4-r6, lr} - ldr r3, _020303EC ; =UNK_021C59F4 - ldr r6, _020303F0 ; =0x0000066F - ldr r5, [r3, #0x4] - add r4, r5, r0 - ldrb r4, [r4, r6] - cmp r4, #0x0 - beq _020303E4 - add r1, r6, #0x0 - sub r1, #0x37 - add r4, r5, r1 - lsl r2, r0, #0x2 - ldr r1, [r4, r2] - sub r1, r1, #0x1 - str r1, [r4, r2] - ldr r1, [r3, #0x4] - mov r2, #0x0 - add r0, r1, r0 - strb r2, [r0, r6] - pop {r4-r6, pc} -_020303E4: - bl FUN_020303F4 - pop {r4-r6, pc} - nop -_020303EC: .word UNK_021C59F4 -_020303F0: .word 0x0000066F - - thumb_func_start FUN_020303F4 -FUN_020303F4: ; 0x020303F4 - push {r4-r6, lr} - ldr r3, _020304B8 ; =UNK_021C59F4 - add r5, r0, #0x0 - ldr r0, [r3, #0x4] - ldr r2, _020304BC ; =0x00000638 - add r4, r1, #0x0 - add r1, r0, r2 - lsl r0, r5, #0x2 - ldr r6, [r1, r0] - sub r6, r6, #0x1 - str r6, [r1, r0] - cmp r4, #0x0 - beq _020304B4 - ldr r0, [r3, #0x4] - add r2, #0x2f - add r0, r0, r2 - ldrb r1, [r0, r5] - cmp r1, #0x0 - beq _02030422 - ldrb r2, [r4, #0x0] - mov r1, #0x1 - tst r1, r2 - bne _020304B4 -_02030422: - mov r1, #0x0 - strb r1, [r0, r5] - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030478 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r6, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - ldrb r1, [r4, #0x0] - mov r0, #0x2 - tst r0, r1 - bne _02030468 - ldr r0, _020304B8 ; =UNK_021C59F4 - ldr r3, _020304C0 ; =0x0000065E - ldr r1, [r0, #0x4] - ldr r0, _020304C4 ; =0x0000047C - add r2, r6, #0x0 - add r1, r1, r0 - mov r0, #0xc - mul r0, r5 - add r0, r1, r0 - add r1, r4, #0x0 - bl FUN_0202D3A4 -_02030468: - ldr r0, _020304B8 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020304C8 ; =0x0000065F - add r1, r1, r0 - ldrb r0, [r1, r5] - add r0, r0, #0x1 - strb r0, [r1, r5] - pop {r4-r6, pc} -_02030478: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020307E4 - ldrb r1, [r4, #0x0] - mov r0, #0x2 - tst r0, r1 - bne _020304B4 - mov r0, #0xc - add r6, r5, #0x0 - mul r6, r0 - ldr r0, _020304B8 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020304CC ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r6 - bl FUN_0202D498 - cmp r0, #0xb - blt _020304B4 - ldr r0, _020304B8 ; =UNK_021C59F4 - ldr r3, _020304D0 ; =0x0000066E - ldr r1, [r0, #0x4] - ldr r0, _020304CC ; =0x000004E8 - mov r2, #0xb - add r0, r1, r0 - add r0, r0, r6 - add r1, r4, #0x1 - bl FUN_0202D3A4 -_020304B4: - pop {r4-r6, pc} - nop -_020304B8: .word UNK_021C59F4 -_020304BC: .word 0x00000638 -_020304C0: .word 0x0000065E -_020304C4: .word 0x0000047C -_020304C8: .word 0x0000065F -_020304CC: .word 0x000004E8 -_020304D0: .word 0x0000066E - - thumb_func_start FUN_020304D4 -FUN_020304D4: ; 0x020304D4 - push {r3, lr} - cmp r0, #0x0 - beq _020304E4 - ldr r0, _020304EC ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - pop {r3, pc} -_020304E4: - bl ErrorHandling - pop {r3, pc} - nop -_020304EC: .word UNK_02105D58 - - thumb_func_start FUN_020304F0 -FUN_020304F0: ; 0x020304F0 - push {r3, lr} - cmp r0, #0x0 - beq _02030500 - ldr r0, _02030508 ; =UNK_02105D58 - ldrb r1, [r0, #0x1] - add r1, r1, #0x1 - strb r1, [r0, #0x1] - pop {r3, pc} -_02030500: - bl ErrorHandling - pop {r3, pc} - nop -_02030508: .word UNK_02105D58 - - thumb_func_start FUN_0203050C -FUN_0203050C: ; 0x0203050C - push {r4, lr} - ldr r0, _02030660 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0203051E - bl FUN_02033534 - cmp r0, #0x13 - blt _02030520 -_0203051E: - b _0203065E -_02030520: - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - bl FUN_02031280 - cmp r0, #0x0 - beq _02030594 - ldr r0, _02030664 ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - cmp r1, #0x2 - beq _02030550 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02030594 -_02030550: - ldr r0, _02030664 ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x1 - bl FUN_020304D4 - ldr r0, _02030660 ; =UNK_021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r3, [r0, #0x4] - mov r0, #0x0 - ldrb r2, [r3, r1] - mov r1, #0x26 - mul r1, r2 - lsl r2, r4, #0x10 - add r1, r3, r1 - lsr r2, r2, #0x10 - bl FUN_020303F4 - ldr r2, _02030660 ; =UNK_021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] - pop {r4, pc} -_02030594: - bl FUN_0202CBD4 - cmp r0, #0x4 - bne _0203065E - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _020305AE - bl FUN_02031190 - pop {r4, pc} -_020305AE: - ldr r0, _02030664 ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - cmp r1, #0x2 - beq _020305BC - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203065E -_020305BC: - bl FUN_02031190 - cmp r0, #0x0 - beq _02030612 - ldr r0, _02030664 ; =UNK_02105D58 - ldr r3, _0203066C ; =FUN_020304D4 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - ldr r0, _02030660 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _02030668 ; =0x0000067F - ldrb r1, [r2, r0] - mov r0, #0x26 - mul r0, r1 - lsl r1, r4, #0x10 - add r0, r2, r0 - lsr r1, r1, #0x10 - mov r2, #0xe - bl FUN_0202D0D0 - cmp r0, #0x0 - bne _020305F4 - ldr r0, _02030664 ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - sub r1, r1, #0x1 - strb r1, [r0, #0x0] - pop {r4, pc} -_020305F4: - ldr r2, _02030660 ; =UNK_021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] - pop {r4, pc} -_02030612: - bl FUN_0202CB8C - ldr r1, _02030670 ; =0x0000FFFE - tst r0, r1 - beq _0203065E - ldr r0, _02030664 ; =UNK_02105D58 - ldrb r1, [r0, #0x0] - add r1, r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x1 - bl FUN_020304D4 - ldr r0, _02030660 ; =UNK_021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r3, [r0, #0x4] - mov r0, #0x0 - ldrb r2, [r3, r1] - mov r1, #0x26 - mul r1, r2 - lsl r2, r4, #0x10 - add r1, r3, r1 - lsr r2, r2, #0x10 - bl FUN_020303F4 - ldr r2, _02030660 ; =UNK_021C59F4 - ldr r1, _02030668 ; =0x0000067F - ldr r4, [r2, #0x4] - mov r0, #0x1 - ldrb r3, [r4, r1] - sub r0, r0, r3 - strb r0, [r4, r1] - add r0, r1, #0x0 - ldr r2, [r2, #0x4] - sub r0, #0x4b - ldr r0, [r2, r0] - sub r1, #0x4b - add r0, r0, #0x1 - str r0, [r2, r1] -_0203065E: - pop {r4, pc} - .balign 4 -_02030660: .word UNK_021C59F4 -_02030664: .word UNK_02105D58 -_02030668: .word 0x0000067F -_0203066C: .word FUN_020304D4 -_02030670: .word 0x0000FFFE - - thumb_func_start FUN_02030674 -FUN_02030674: ; 0x02030674 - push {r3-r7, lr} - ldr r7, _02030798 ; =UNK_021C59F4 - mov r6, #0x0 - ldr r5, [r7, #0x4] - ldr r2, _0203079C ; =0x0000062C - add r4, r6, #0x0 - ldrb r0, [r5, r2] - cmp r0, #0x0 - beq _02030690 - sub r1, r2, #0x4 - ldrh r1, [r5, r1] - mov r3, #0xf0 - tst r3, r1 - bne _02030692 -_02030690: - b _02030794 -_02030692: - cmp r0, #0x2 - bne _020306D0 - mov r0, #0x20 - tst r0, r1 - beq _020306A4 - mov r0, #0x10 - orr r0, r6 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306A4: - mov r0, #0x10 - tst r0, r1 - beq _020306B2 - mov r0, #0x20 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306B2: - mov r0, #0x40 - tst r0, r1 - beq _020306C0 - mov r0, #0x80 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_020306C0: - mov r0, #0x80 - tst r0, r1 - beq _0203077E - mov r0, #0x40 - orr r0, r4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - b _0203077E -_020306D0: - add r0, r2, #0x2 - ldrh r0, [r5, r0] - cmp r0, #0x0 - beq _020306F2 - add r4, r0, #0x0 - add r0, r2, #0x1 - ldrsb r0, [r5, r0] - sub r1, r0, #0x1 - add r0, r2, #0x1 - strb r1, [r5, r0] - ldr r1, [r7, #0x4] - ldrsb r0, [r1, r0] - cmp r0, #0x0 - bge _0203077E - add r0, r2, #0x2 - strh r6, [r1, r0] - b _0203077E -_020306F2: - add r0, r2, #0x0 - sub r0, #0x34 - add r6, r5, r0 - sub r2, #0x34 - ldr r0, [r6, #0x8] - ldr r1, [r6, #0xc] - ldr r2, [r5, r2] - ldr r3, [r6, #0x4] - bl _ll_mul - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r6, #0x10] - ldr r1, [r6, #0x14] - add r0, r0, r3 - adc r1, r2 - ldr r2, _020307A0 ; =0x000005F8 - str r0, [r5, r2] - mov r2, #0x0 - str r1, [r6, #0x4] - lsr r0, r1, #0x1e - lsl r1, r2, #0x2 - orr r1, r0 - cmp r1, #0x3 - bhi _02030746 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02030730: ; jump table (using 16-bit offset) - .short _02030738 - _02030730 - 2; case 0 - .short _0203073C - _02030730 - 2; case 1 - .short _02030740 - _02030730 - 2; case 2 - .short _02030744 - _02030730 - 2; case 3 -_02030738: - mov r4, #0x20 - b _02030746 -_0203073C: - mov r4, #0x10 - b _02030746 -_02030740: - mov r4, #0x40 - b _02030746 -_02030744: - mov r4, #0x80 -_02030746: - ldr r0, _02030798 ; =UNK_021C59F4 - ldr r5, [r0, #0x4] - ldr r0, _020307A0 ; =0x000005F8 - add r6, r5, r0 - ldr r0, [r6, #0x8] - ldr r1, [r6, #0xc] - ldr r2, [r6, #0x0] - ldr r3, [r6, #0x4] - bl _ll_mul - ldr r3, [r6, #0x10] - ldr r2, [r6, #0x14] - add r0, r3, r0 - adc r2, r1 - ldr r1, _020307A0 ; =0x000005F8 - mov r3, #0x0 - str r0, [r5, r1] - str r2, [r6, #0x4] - lsr r0, r2, #0x1c - lsl r2, r3, #0x4 - orr r2, r0 - add r0, r1, #0x0 - add r0, #0x35 - strb r2, [r5, r0] - ldr r0, _02030798 ; =UNK_021C59F4 - add r1, #0x36 - ldr r0, [r0, #0x4] - strh r4, [r0, r1] -_0203077E: - ldr r2, _02030798 ; =UNK_021C59F4 - ldr r1, _020307A4 ; =0x00000628 - ldr r5, [r2, #0x4] - mov r0, #0xf0 - ldrh r3, [r5, r1] - bic r3, r0 - strh r3, [r5, r1] - ldr r2, [r2, #0x4] - ldrh r0, [r2, r1] - add r0, r0, r4 - strh r0, [r2, r1] -_02030794: - pop {r3-r7, pc} - nop -_02030798: .word UNK_021C59F4 -_0203079C: .word 0x0000062C -_020307A0: .word 0x000005F8 -_020307A4: .word 0x00000628 - - thumb_func_start FUN_020307A8 -FUN_020307A8: ; 0x020307A8 - ldr r0, _020307B4 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020307B8 ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307B4: .word UNK_021C59F4 -_020307B8: .word 0x0000062C - - thumb_func_start FUN_020307BC -FUN_020307BC: ; 0x020307BC - ldr r0, _020307C8 ; =UNK_021C59F4 - mov r2, #0x2 - ldr r1, [r0, #0x4] - ldr r0, _020307CC ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307C8: .word UNK_021C59F4 -_020307CC: .word 0x0000062C - - thumb_func_start FUN_020307D0 -FUN_020307D0: ; 0x020307D0 - ldr r0, _020307DC ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _020307E0 ; =0x0000062C - strb r2, [r1, r0] - bx lr - .balign 4 -_020307DC: .word UNK_021C59F4 -_020307E0: .word 0x0000062C - - thumb_func_start FUN_020307E4 -FUN_020307E4: ; 0x020307E4 - push {r4-r7} - ldr r4, _02030868 ; =UNK_021C59F4 - lsl r6, r1, #0x1 - ldr r2, [r4, #0x4] - mov r5, #0x0 - add r3, r2, r6 - mov r2, #0x61 - lsl r2, r2, #0x4 - strh r5, [r3, r2] - ldrb r5, [r0, #0x0] - mov r3, #0x10 - add r7, r5, #0x0 - and r7, r3 - cmp r7, #0x10 - bne _02030860 - mov r7, #0xc - and r5, r7 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - bne _0203081A - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x40 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203081A: - cmp r5, #0x4 - bne _0203082C - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x80 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203082C: - cmp r5, #0x8 - bne _0203083E - ldr r3, [r4, #0x4] - add r4, r3, r2 - ldrh r3, [r4, r6] - mov r2, #0x20 - orr r2, r3 - strh r2, [r4, r6] - b _0203084C -_0203083E: - cmp r5, #0xc - bne _0203084C - ldr r4, [r4, #0x4] - add r4, r4, r2 - ldrh r2, [r4, r6] - orr r2, r3 - strh r2, [r4, r6] -_0203084C: - ldrb r0, [r0, #0x0] - asr r2, r0, #0x5 - mov r0, #0x7 - and r2, r0 - ldr r0, _02030868 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - add r1, r0, r1 - mov r0, #0x62 - lsl r0, r0, #0x4 - strb r2, [r1, r0] -_02030860: - mov r0, #0x1 - pop {r4-r7} - bx lr - nop -_02030868: .word UNK_021C59F4 - - thumb_func_start FUN_0203086C -FUN_0203086C: ; 0x0203086C - bx lr - .balign 4 - - thumb_func_start FUN_02030870 -FUN_02030870: ; 0x02030870 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0203091C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030920 ; =0x0000062A - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02030884 - mov r0, #0x0 - pop {r4, pc} -_02030884: - bl FUN_02030FE0 - cmp r0, #0x0 - bne _02030890 - mov r0, #0x0 - pop {r4, pc} -_02030890: - ldr r0, _0203091C ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - ldr r0, _02030924 ; =0x00000681 - ldrb r1, [r2, r0] - cmp r1, #0x0 - beq _020308A0 - sub r1, r1, #0x1 - strb r1, [r2, r0] -_020308A0: - ldr r1, _0203091C ; =UNK_021C59F4 - ldr r0, _02030928 ; =0x00000628 - ldr r2, [r1, #0x4] - mov r3, #0x40 - ldrh r2, [r2, r0] - tst r3, r2 - beq _020308C0 - ldrb r3, [r4, #0x0] - mov r2, #0x10 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308C0: - mov r3, #0x80 - tst r3, r2 - beq _020308D8 - ldrb r3, [r4, #0x0] - mov r2, #0x14 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308D8: - mov r3, #0x20 - tst r3, r2 - beq _020308F0 - ldrb r3, [r4, #0x0] - mov r2, #0x18 - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] - b _02030906 -_020308F0: - mov r3, #0x10 - tst r2, r3 - beq _02030906 - ldrb r3, [r4, #0x0] - mov r2, #0x1c - add r0, #0x59 - orr r2, r3 - strb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - mov r2, #0x8 - strb r2, [r1, r0] -_02030906: - ldr r0, _0203091C ; =UNK_021C59F4 - ldrb r2, [r4, #0x0] - ldr r1, [r0, #0x4] - ldr r0, _0203092C ; =0x0000062B - ldrb r0, [r1, r0] - lsl r0, r0, #0x5 - orr r0, r2 - strb r0, [r4, #0x0] - mov r0, #0x0 - pop {r4, pc} - nop -_0203091C: .word UNK_021C59F4 -_02030920: .word 0x0000062A -_02030924: .word 0x00000681 -_02030928: .word 0x00000628 -_0203092C: .word 0x0000062B - - thumb_func_start FUN_02030930 -FUN_02030930: ; 0x02030930 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02031228 - add r5, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - ldr r0, _020309F0 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _020309F4 ; =0x00000684 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030960 - mov r0, #0x0 - b _02030962 -_02030960: - mov r0, #0x1 -_02030962: - strb r0, [r4, #0x0] - bl FUN_0202FA28 - cmp r0, #0x0 - bne _02030972 - add r0, r4, #0x0 - bl FUN_02030870 -_02030972: - ldr r1, _020309F0 ; =UNK_021C59F4 - ldr r0, _020309F4 ; =0x00000684 - ldr r2, [r1, #0x4] - mov r3, #0x0 - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - ldr r0, _020309F8 ; =0x0000054C - add r0, r1, r0 - bl FUN_0202D4E4 - cmp r0, #0x0 - beq _0203099E - ldrb r1, [r4, #0x0] - mov r0, #0x2 - orr r0, r1 - strb r0, [r4, #0x0] - ldrb r0, [r4, #0x0] - cmp r0, #0x2 - bne _020309E8 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_0203099E: - sub r0, r5, #0x1 - str r0, [sp, #0x4] - add r0, r4, #0x1 - str r0, [sp, #0x0] - ldr r0, _020309F0 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020309F8 ; =0x0000054C - add r0, r1, r0 - add r1, sp, #0x0 - bl FUN_0202D760 - cmp r0, #0x0 - bne _020309C4 - ldr r0, _020309F0 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _020309F4 ; =0x00000684 - strb r2, [r1, r0] -_020309C4: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _020309E8 - ldr r2, _020309F0 ; =UNK_021C59F4 - ldr r1, _020309FC ; =0x0000065E - ldr r3, [r2, #0x4] - ldrb r0, [r3, r1] - add r0, r0, #0x1 - strb r0, [r3, r1] - ldr r2, [r2, #0x4] - ldrb r0, [r4, #0x0] - ldrb r1, [r2, r1] - lsl r2, r1, #0x4 - mov r1, #0xf0 - and r1, r2 - orr r0, r1 - strb r0, [r4, #0x0] -_020309E8: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r5, pc} - nop -_020309F0: .word UNK_021C59F4 -_020309F4: .word 0x00000684 -_020309F8: .word 0x0000054C -_020309FC: .word 0x0000065E - - thumb_func_start FUN_02030A00 -FUN_02030A00: ; 0x02030A00 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0xb - strb r0, [r4, #0x0] - ldr r0, _02030A6C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030A1A - mov r0, #0x0 - b _02030A1C -_02030A1A: - mov r0, #0x1 -_02030A1C: - strb r0, [r4, #0x1] - bl FUN_0202CB8C - asr r1, r0, #0x8 - strb r1, [r4, #0x2] - strb r0, [r4, #0x3] - mov r0, #0xbb - str r0, [sp, #0x4] - add r0, r4, #0x5 - str r0, [sp, #0x0] - ldr r0, _02030A6C ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030A74 ; =0x0000056C - add r0, r1, r0 - add r1, sp, #0x0 - bl FUN_0202D760 - cmp r0, #0x0 - beq _02030A5A - ldr r0, _02030A6C ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - strb r2, [r1, r0] - ldr r1, [sp, #0x4] - mov r0, #0xbb - sub r0, r0, r1 - add sp, #0x8 - strb r0, [r4, #0x4] - pop {r4, pc} -_02030A5A: - ldr r0, _02030A6C ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _02030A70 ; =0x00000685 - strb r2, [r1, r0] - mov r0, #0xbb - strb r0, [r4, #0x4] - add sp, #0x8 - pop {r4, pc} - .balign 4 -_02030A6C: .word UNK_021C59F4 -_02030A70: .word 0x00000685 -_02030A74: .word 0x0000056C - - thumb_func_start FUN_02030A78 -FUN_02030A78: ; 0x02030A78 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030A9C - bl FUN_02031280 - cmp r0, #0x0 - bne _02030A9C - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030A9C: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02030AD4 ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030AD8 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030AC0 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030AC0: - bl FUN_02033534 - cmp r0, #0xa - bne _02030ACC - bl FUN_02031454 -_02030ACC: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02030AD4: .word UNK_021C59F4 -_02030AD8: .word 0x0000054C - - thumb_func_start FUN_02030ADC -FUN_02030ADC: ; 0x02030ADC - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030B00 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030B00 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B00: - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02030B34 ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030B38 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030B22 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030B22: - bl FUN_02033534 - cmp r0, #0xa - bne _02030B2E - bl FUN_02031454 -_02030B2E: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_02030B34: .word UNK_021C59F4 -_02030B38: .word 0x0000054C - - thumb_func_start FUN_02030B3C -FUN_02030B3C: ; 0x02030B3C - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02030B58 - bl ErrorHandling - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B58: - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030B70 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030B70 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030B70: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030B86 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02030A78 - add sp, #0x8 - pop {r4-r6, pc} -_02030B86: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02030BBC ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030BC0 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030BAA - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030BAA: - bl FUN_02033534 - cmp r0, #0xa - bne _02030BB6 - bl FUN_02031454 -_02030BB6: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 -_02030BBC: .word UNK_021C59F4 -_02030BC0: .word 0x0000056C - - thumb_func_start FUN_02030BC4 -FUN_02030BC4: ; 0x02030BC4 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02030BE0 - bl FUN_02031454 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030BE0: - mov r0, #0x0 - bl FUN_02030E7C - cmp r0, #0x0 - bne _02030BF8 - bl FUN_02031280 - cmp r0, #0x0 - bne _02030BF8 - add sp, #0x8 - mov r0, #0x0 - pop {r4-r6, pc} -_02030BF8: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02030C0E - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02030ADC - add sp, #0x8 - pop {r4-r6, pc} -_02030C0E: - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02030C44 ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02030C48 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - cmp r0, #0x0 - beq _02030C30 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r6, pc} -_02030C30: - bl FUN_02033534 - cmp r0, #0xa - bne _02030C3C - bl FUN_02031454 -_02030C3C: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02030C44: .word UNK_021C59F4 -_02030C48: .word 0x0000056C - - thumb_func_start FUN_02030C4C -FUN_02030C4C: ; 0x02030C4C - ldr r3, _02030C54 ; =FUN_02030BC4 - mov r2, #0x0 - bx r3 - nop -_02030C54: .word FUN_02030BC4 - - thumb_func_start FUN_02030C58 -FUN_02030C58: ; 0x02030C58 - ldr r0, _02030C64 ; =UNK_021C59F4 - ldr r3, _02030C68 ; =FUN_0202D498 - ldr r1, [r0, #0x4] - ldr r0, _02030C6C ; =0x00000464 - add r0, r1, r0 - bx r3 - .balign 4 -_02030C64: .word UNK_021C59F4 -_02030C68: .word FUN_0202D498 -_02030C6C: .word 0x00000464 - - thumb_func_start FUN_02030C70 -FUN_02030C70: ; 0x02030C70 - push {r4, lr} - ldr r4, [sp, #0x8] - bl FUN_0202D934 - mov r0, #0xee - strb r0, [r4, #0xa] - ldr r0, _02030C88 ; =0x0000FFFF - strh r0, [r4, #0x8] - mov r0, #0x0 - str r0, [r4, #0x4] - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_02030C88: .word 0x0000FFFF - - thumb_func_start FUN_02030C8C -FUN_02030C8C: ; 0x02030C8C - push {r4-r7, lr} - sub sp, #0x14 - add r6, r0, #0x0 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - ldr r5, [sp, #0x28] - bl FUN_0202D478 - cmp r0, #0x0 - beq _02030D94 -_02030CA0: - ldrb r7, [r5, #0xa] - cmp r7, #0xee - bne _02030CB2 - add r0, r6, #0x0 - bl FUN_0202D41C - add r7, r0, #0x0 - cmp r7, #0xee - beq _02030D8A -_02030CB2: - mov r0, #0x4 - ldrsh r0, [r6, r0] - strb r7, [r5, #0xa] - ldrh r4, [r5, #0x8] - str r0, [sp, #0x10] - ldr r0, _02030D98 ; =0x0000FFFF - cmp r4, r0 - bne _02030D06 - add r0, r7, #0x0 - bl FUN_0202D9A0 - add r4, r0, #0x0 - ldr r0, _02030D9C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030DA0 ; =0x00000689 - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030D94 - ldr r0, _02030D98 ; =0x0000FFFF - cmp r4, r0 - bne _02030D04 - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, #0x1 - bge _02030CEE - ldr r0, [sp, #0x10] - add sp, #0x14 - strh r0, [r6, #0x4] - pop {r4-r7, pc} -_02030CEE: - add r0, r6, #0x0 - bl FUN_0202D41C - lsl r4, r0, #0x8 - add r0, r6, #0x0 - bl FUN_0202D41C - add r4, r4, r0 - mov r0, #0x4 - ldrsh r0, [r6, r0] - str r0, [sp, #0x10] -_02030D04: - strh r4, [r5, #0x8] -_02030D06: - add r0, r7, #0x0 - bl FUN_0202DA04 - cmp r0, #0x0 - beq _02030D5E - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _02030D22 - ldrh r2, [r5, #0x8] - ldr r1, [sp, #0x4] - add r0, r7, #0x0 - bl FUN_0202DA40 - str r0, [r5, #0x4] -_02030D22: - ldr r2, [r5, #0x0] - ldr r1, [sp, #0x8] - add r0, r6, #0x0 - sub r2, r4, r2 - bl FUN_0202D400 - ldr r2, [r5, #0x4] - str r0, [sp, #0xc] - cmp r2, #0x0 - beq _02030D42 - ldr r1, [r5, #0x0] - ldr r0, [sp, #0x8] - add r1, r2, r1 - ldr r2, [sp, #0xc] - bl MI_CpuCopy8 -_02030D42: - ldr r1, [r5, #0x0] - ldr r0, [sp, #0xc] - add r0, r1, r0 - str r0, [r5, #0x0] - cmp r0, r4 - blt _02030D8A - str r5, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r3, [r5, #0x4] - add r1, r7, #0x0 - add r2, r4, #0x0 - bl FUN_02030C70 - b _02030D8A -_02030D5E: - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, r4 - blt _02030D82 - ldr r1, [sp, #0x8] - add r0, r6, #0x0 - add r2, r4, #0x0 - bl FUN_0202D400 - ldr r0, [sp, #0x4] - ldr r3, [sp, #0x8] - add r1, r7, #0x0 - add r2, r4, #0x0 - str r5, [sp, #0x0] - bl FUN_02030C70 - b _02030D8A -_02030D82: - ldr r0, [sp, #0x10] - add sp, #0x14 - strh r0, [r6, #0x4] - pop {r4-r7, pc} -_02030D8A: - add r0, r6, #0x0 - bl FUN_0202D478 - cmp r0, #0x0 - bne _02030CA0 -_02030D94: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02030D98: .word 0x0000FFFF -_02030D9C: .word UNK_021C59F4 -_02030DA0: .word 0x00000689 - - thumb_func_start FUN_02030DA4 -FUN_02030DA4: ; 0x02030DA4 - push {r3, lr} - ldr r0, _02030DF0 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030DEE - ldr r0, _02030DF4 ; =0x0000068B - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030DEE - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - bl FUN_0202D4BC - ldr r0, _02030DF0 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - mov r0, #0x47 - lsl r0, r0, #0x4 - add r0, r1, r0 - bl FUN_0202D478 - cmp r0, #0x0 - ble _02030DEE - ldr r0, _02030DF0 ; =UNK_021C59F4 - mov r2, #0x47 - ldr r3, [r0, #0x4] - ldr r0, _02030DF8 ; =0x000005EC - lsl r2, r2, #0x4 - add r0, r3, r0 - str r0, [sp, #0x0] - add r0, r3, r2 - sub r2, #0x10 - ldr r2, [r3, r2] - mov r1, #0x0 - mov r3, #0x1 - bl FUN_02030C8C -_02030DEE: - pop {r3, pc} - .balign 4 -_02030DF0: .word UNK_021C59F4 -_02030DF4: .word 0x0000068B -_02030DF8: .word 0x000005EC - - thumb_func_start FUN_02030DFC -FUN_02030DFC: ; 0x02030DFC - push {r3-r7, lr} - ldr r0, _02030E6C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030E68 - ldr r0, _02030E70 ; =0x0000068B - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _02030E68 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r7, r0, #0x1 - mov r4, #0x0 - cmp r7, #0x0 - ble _02030E68 - ldr r6, _02030E6C ; =UNK_021C59F4 - add r5, r4, #0x0 -_02030E26: - ldr r1, [r6, #0x4] - ldr r0, _02030E74 ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r5 - bl FUN_0202D4BC - ldr r1, [r6, #0x4] - ldr r0, _02030E74 ; =0x000004E8 - add r0, r1, r0 - add r0, r0, r5 - bl FUN_0202D478 - cmp r0, #0x0 - ble _02030E60 - ldr r3, [r6, #0x4] - ldr r0, _02030E78 ; =0x0000058C - mov r2, #0x46 - add r0, r3, r0 - add r0, r0, r5 - str r0, [sp, #0x0] - ldr r0, _02030E74 ; =0x000004E8 - lsl r2, r2, #0x4 - add r0, r3, r0 - ldr r2, [r3, r2] - add r0, r0, r5 - add r1, r4, #0x0 - mov r3, #0x0 - bl FUN_02030C8C -_02030E60: - add r4, r4, #0x1 - add r5, #0xc - cmp r4, r7 - blt _02030E26 -_02030E68: - pop {r3-r7, pc} - nop -_02030E6C: .word UNK_021C59F4 -_02030E70: .word 0x0000068B -_02030E74: .word 0x000004E8 -_02030E78: .word 0x0000058C - - thumb_func_start FUN_02030E7C -FUN_02030E7C: ; 0x02030E7C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02030F14 ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - bne _02030E8C - mov r0, #0x0 - pop {r4, pc} -_02030E8C: - bl FUN_02033534 - cmp r0, #0x13 - blt _02030EC0 - ldr r0, _02030F14 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030F18 ; =0x00000687 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02030EBC - bl MOD04_021D8018 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02030EBC - cmp r4, #0x0 - bne _02030EB4 - mov r0, #0x1 - pop {r4, pc} -_02030EB4: - cmp r4, #0x1 - bne _02030EBC - mov r0, #0x1 - pop {r4, pc} -_02030EBC: - mov r0, #0x0 - pop {r4, pc} -_02030EC0: - bl FUN_02030F40 - cmp r0, #0x0 - bne _02030ECC - mov r0, #0x0 - pop {r4, pc} -_02030ECC: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _02030ED8 - mov r0, #0x0 - pop {r4, pc} -_02030ED8: - bl FUN_02031190 - cmp r4, r0 - bne _02030EE4 - mov r0, #0x1 - pop {r4, pc} -_02030EE4: - bl FUN_02031190 - cmp r0, #0x0 - bne _02030EFE - bl FUN_0202CB8C - mov r1, #0x1 - add r2, r1, #0x0 - lsl r2, r4 - tst r0, r2 - beq _02030F10 - add r0, r1, #0x0 - pop {r4, pc} -_02030EFE: - ldr r0, _02030F14 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02030F1C ; =0x0000065C - ldrh r2, [r1, r0] - mov r0, #0x1 - add r1, r0, #0x0 - lsl r1, r4 - tst r1, r2 - bne _02030F12 -_02030F10: - mov r0, #0x0 -_02030F12: - pop {r4, pc} - .balign 4 -_02030F14: .word UNK_021C59F4 -_02030F18: .word 0x00000687 -_02030F1C: .word 0x0000065C - - thumb_func_start FUN_02030F20 -FUN_02030F20: ; 0x02030F20 - push {r3-r5, lr} - mov r4, #0x0 - add r5, r4, #0x0 -_02030F26: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02030F34 - add r4, r4, #0x1 -_02030F34: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _02030F26 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02030F40 -FUN_02030F40: ; 0x02030F40 - push {r3, lr} - ldr r0, _02030F5C ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _02030F56 - bl FUN_02033534 - cmp r0, #0x13 - blt _02030F56 - mov r0, #0x1 - pop {r3, pc} -_02030F56: - bl FUN_0202EDF8 - pop {r3, pc} - .balign 4 -_02030F5C: .word UNK_021C59F4 - - thumb_func_start FUN_02030F60 -FUN_02030F60: ; 0x02030F60 - ldr r1, _02030F6C ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _02030F70 ; =0x0000062B - strb r0, [r2, r1] - bx lr - nop -_02030F6C: .word UNK_021C59F4 -_02030F70: .word 0x0000062B - - thumb_func_start FUN_02030F74 -FUN_02030F74: ; 0x02030F74 - ldr r1, _02030F84 ; =UNK_021C59F4 - ldr r1, [r1, #0x4] - add r1, r1, r0 - mov r0, #0x62 - lsl r0, r0, #0x4 - ldrb r0, [r1, r0] - bx lr - nop -_02030F84: .word UNK_021C59F4 - - thumb_func_start FUN_02030F88 -FUN_02030F88: ; 0x02030F88 - ldr r1, _02030FA4 ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - bne _02030F94 - mov r0, #0x0 - bx lr -_02030F94: - mov r1, #0x61 - lsl r1, r1, #0x4 - add r3, r2, r1 - lsl r2, r0, #0x1 - ldrh r0, [r3, r2] - mov r1, #0x0 - strh r1, [r3, r2] - bx lr - .balign 4 -_02030FA4: .word UNK_021C59F4 - - thumb_func_start FUN_02030FA8 -FUN_02030FA8: ; 0x02030FA8 - ldr r0, _02030FC0 ; =UNK_021C59F4 - ldr r3, [r0, #0x4] - cmp r3, #0x0 - beq _02030FBC - ldr r1, _02030FC4 ; =0x00000628 - mov r0, #0x2 - ldrh r2, [r3, r1] - lsl r0, r0, #0xe - orr r0, r2 - strh r0, [r3, r1] -_02030FBC: - bx lr - nop -_02030FC0: .word UNK_021C59F4 -_02030FC4: .word 0x00000628 - - thumb_func_start FUN_02030FC8 -FUN_02030FC8: ; 0x02030FC8 - ldr r0, _02030FD8 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _02030FD6 - ldr r0, _02030FDC ; =0x00000628 - mov r1, #0x0 - strh r1, [r2, r0] -_02030FD6: - bx lr - .balign 4 -_02030FD8: .word UNK_021C59F4 -_02030FDC: .word 0x00000628 - - thumb_func_start FUN_02030FE0 -FUN_02030FE0: ; 0x02030FE0 - ldr r0, _02030FF8 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02030FF4 - ldr r0, _02030FFC ; =0x00000628 - ldrh r1, [r1, r0] - mov r0, #0x2 - lsl r0, r0, #0xe - and r0, r1 - bx lr -_02030FF4: - mov r0, #0x1 - bx lr - .balign 4 -_02030FF8: .word UNK_021C59F4 -_02030FFC: .word 0x00000628 - - thumb_func_start FUN_02031000 -FUN_02031000: ; 0x02031000 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_0202FA28 - cmp r0, #0x1 - bne _02031030 - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02031050 ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031054 ; =0x0000054C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r4-r6, pc} -_02031030: - mov r0, #0x1 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, _02031050 ; =UNK_021C59F4 - add r2, r4, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031058 ; =0x0000056C - add r3, r6, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02031050: .word UNK_021C59F4 -_02031054: .word 0x0000054C -_02031058: .word 0x0000056C - - thumb_func_start FUN_0203105C -FUN_0203105C: ; 0x0203105C - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, _02031080 ; =UNK_021C59F4 - add r4, r1, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031084 ; =0x0000054C - add r3, r2, #0x0 - add r0, r1, r0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_0202D684 - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02031080: .word UNK_021C59F4 -_02031084: .word 0x0000054C - - thumb_func_start FUN_02031088 -FUN_02031088: ; 0x02031088 - push {r3, lr} - ldr r0, _02031100 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _020310FC - ldr r1, _02031104 ; =0x0000067B - ldrb r0, [r2, r1] - cmp r0, #0x1 - beq _020310A0 - cmp r0, #0x3 - beq _020310D8 - pop {r3, pc} -_020310A0: - bl FUN_0202FA28 - cmp r0, #0x1 - bne _020310B8 - ldr r1, _02031100 ; =UNK_021C59F4 - mov r0, #0xb - ldr r2, [r1, #0x4] - ldr r1, _02031108 ; =0x0000067C - add r1, r2, r1 - bl FUN_020311D0 - b _020310C8 -_020310B8: - ldr r1, _02031100 ; =UNK_021C59F4 - mov r0, #0xb - ldr r2, [r1, #0x4] - ldr r1, _02031108 ; =0x0000067C - add r1, r2, r1 - mov r2, #0x1 - bl FUN_02030BC4 -_020310C8: - cmp r0, #0x0 - beq _020310FC - ldr r0, _02031100 ; =UNK_021C59F4 - mov r2, #0x2 - ldr r1, [r0, #0x4] - ldr r0, _02031104 ; =0x0000067B - strb r2, [r1, r0] - pop {r3, pc} -_020310D8: - add r1, r1, #0x1 - mov r0, #0xc - add r1, r2, r1 - bl FUN_020311D0 - cmp r0, #0x0 - beq _020310FC - ldr r0, _02031100 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02031108 ; =0x0000067C - ldrb r0, [r1, r0] - bl FUN_0202F9E0 - ldr r0, _02031100 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _02031104 ; =0x0000067B - strb r2, [r1, r0] -_020310FC: - pop {r3, pc} - nop -_02031100: .word UNK_021C59F4 -_02031104: .word 0x0000067B -_02031108: .word 0x0000067C - - thumb_func_start FUN_0203110C -FUN_0203110C: ; 0x0203110C - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _0203112A - ldr r1, _0203112C ; =UNK_021C59F4 - ldr r0, _02031130 ; =0x0000067B - ldr r2, [r1, #0x4] - mov r3, #0x1 - strb r3, [r2, r0] - ldrb r2, [r4, #0x0] - ldr r1, [r1, #0x4] - add r0, r0, #0x1 - strb r2, [r1, r0] -_0203112A: - pop {r4, pc} - .balign 4 -_0203112C: .word UNK_021C59F4 -_02031130: .word 0x0000067B - - thumb_func_start FUN_02031134 -FUN_02031134: ; 0x02031134 - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - beq _02031152 - ldr r1, _02031154 ; =UNK_021C59F4 - ldrb r3, [r4, #0x0] - ldr r2, [r1, #0x4] - ldr r0, _02031158 ; =0x0000067C - strb r3, [r2, r0] - ldr r1, [r1, #0x4] - mov r2, #0x3 - sub r0, r0, #0x1 - strb r2, [r1, r0] -_02031152: - pop {r4, pc} - .balign 4 -_02031154: .word UNK_021C59F4 -_02031158: .word 0x0000067C - - thumb_func_start FUN_0203115C -FUN_0203115C: ; 0x0203115C - push {r4, lr} - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02031184 - ldr r0, _02031188 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _0203118C ; =0x0000067B - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _02031184 - ldrb r0, [r4, #0x0] - bl FUN_0202F9E0 - ldr r0, _02031188 ; =UNK_021C59F4 - mov r2, #0x0 - ldr r1, [r0, #0x4] - ldr r0, _0203118C ; =0x0000067B - strb r2, [r1, r0] -_02031184: - pop {r4, pc} - nop -_02031188: .word UNK_021C59F4 -_0203118C: .word 0x0000067B - - thumb_func_start FUN_02031190 -FUN_02031190: ; 0x02031190 - push {r3, lr} - ldr r0, _020311CC ; =UNK_021C59F4 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _020311C6 - bl FUN_02033534 - cmp r0, #0x13 - blt _020311B4 - bl MOD04_021D8018 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020311C6 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r3, pc} -_020311B4: - bl FUN_02031280 - cmp r0, #0x0 - beq _020311C0 - mov r0, #0x0 - pop {r3, pc} -_020311C0: - bl FUN_0202D19C - pop {r3, pc} -_020311C6: - mov r0, #0x0 - pop {r3, pc} - nop -_020311CC: .word UNK_021C59F4 - - thumb_func_start FUN_020311D0 -FUN_020311D0: ; 0x020311D0 - ldr r3, _020311D8 ; =FUN_02030ADC - mov r2, #0x0 - bx r3 - nop -_020311D8: .word FUN_02030ADC - - thumb_func_start FUN_020311DC -FUN_020311DC: ; 0x020311DC - ldr r3, _020311E4 ; =FUN_02030ADC - mov r1, #0x0 - add r2, r1, #0x0 - bx r3 - .balign 4 -_020311E4: .word FUN_02030ADC - - thumb_func_start FUN_020311E8 -FUN_020311E8: ; 0x020311E8 - ldr r3, _020311EC ; =FUN_0202EE24 - bx r3 - .balign 4 -_020311EC: .word FUN_0202EE24 - - thumb_func_start FUN_020311F0 -FUN_020311F0: ; 0x020311F0 - push {r3, lr} - bl FUN_02031280 - cmp r0, #0x0 - beq _020311FE - mov r0, #0x0 - pop {r3, pc} -_020311FE: - ldr r0, _02031220 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0203121A - ldr r0, _02031224 ; =0x00000689 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0203121A - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - pop {r3, pc} -_0203121A: - bl FUN_0202EE60 - pop {r3, pc} - .balign 4 -_02031220: .word UNK_021C59F4 -_02031224: .word 0x00000689 - - thumb_func_start FUN_02031228 -FUN_02031228: ; 0x02031228 - push {r3, lr} - bl FUN_0202D858 - cmp r0, #0x5 - blo _02031236 - mov r0, #0xc - pop {r3, pc} -_02031236: - bl FUN_0202FA28 - cmp r0, #0x0 - bne _02031242 - mov r0, #0xc - pop {r3, pc} -_02031242: - mov r0, #0x26 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031248 -FUN_02031248: ; 0x02031248 - push {r3, lr} - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r0, r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031258 -FUN_02031258: ; 0x02031258 - push {r3, lr} - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D884 - add r0, r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031268 -FUN_02031268: ; 0x02031268 - ldr r1, _02031278 ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _02031274 - ldr r1, _0203127C ; =0x00000686 - strb r0, [r2, r1] -_02031274: - bx lr - nop -_02031278: .word UNK_021C59F4 -_0203127C: .word 0x00000686 - - thumb_func_start FUN_02031280 -FUN_02031280: ; 0x02031280 - ldr r0, _02031294 ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _0203128E - ldr r0, _02031298 ; =0x00000686 - ldrb r0, [r1, r0] - bx lr -_0203128E: - mov r0, #0x0 - bx lr - nop -_02031294: .word UNK_021C59F4 -_02031298: .word 0x00000686 - - thumb_func_start FUN_0203129C -FUN_0203129C: ; 0x0203129C - push {r3, lr} - bl FUN_0202F03C - cmp r0, #0x0 - bne _020312B6 - bl FUN_02031190 - cmp r0, #0x0 - bne _020312B6 - mov r0, #0x2 - add r1, sp, #0x0 - bl FUN_02030C4C -_020312B6: - bl FUN_0202F05C - pop {r3, pc} - - thumb_func_start FUN_020312BC -FUN_020312BC: ; 0x020312BC - push {r3-r7, lr} - sub sp, #0x20 - add r4, r0, #0x0 - add r0, sp, #0x10 - add r1, sp, #0x4 - bl GF_RTC_CopyDateTime - ldr r0, _02031340 ; =gMain - ldr r6, [sp, #0x10] - mov r5, #0x0 - lsr r7, r6, #0x1c - lsl r5, r5, #0x4 - ldr r1, [sp, #0xc] - ldr r0, [r0, #0x2c] - lsl r6, r6, #0x4 - add r3, r1, r0 - ldr r0, [sp, #0x18] - orr r5, r7 - str r0, [sp, #0x0] - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x4] - add r6, r0, r6 - ldr r0, _02031344 ; =0x00000000 - ldr r2, [sp, #0x8] - adc r0, r5 - lsr r5, r6, #0x1b - lsl r0, r0, #0x5 - orr r0, r5 - ldr r5, [sp, #0x0] - lsl r6, r6, #0x5 - add r6, r5, r6 - ldr r5, _02031344 ; =0x00000000 - adc r5, r0 - lsr r0, r6, #0x1b - lsl r5, r5, #0x5 - orr r5, r0 - lsl r0, r6, #0x5 - add r6, r1, r0 - ldr r1, _02031344 ; =0x00000000 - adc r1, r5 - lsr r0, r6, #0x1a - lsl r1, r1, #0x6 - orr r1, r0 - lsl r0, r6, #0x6 - add r5, r2, r0 - ldr r2, _02031344 ; =0x00000000 - adc r2, r1 - lsr r0, r5, #0x1a - lsl r1, r2, #0x6 - orr r1, r0 - lsl r0, r5, #0x6 - add r2, r3, r0 - ldr r0, _02031344 ; =0x00000000 - str r2, [r4, #0x0] - adc r0, r1 - str r0, [r4, #0x4] - ldr r1, _02031348 ; =0x6C078965 - ldr r0, _0203134C ; =0x5D588B65 - str r1, [r4, #0x8] - str r0, [r4, #0xc] - ldr r0, _02031350 ; =0x00269EC3 - str r0, [r4, #0x10] - mov r0, #0x0 - str r0, [r4, #0x14] - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 -_02031340: .word gMain -_02031344: .word 0x00000000 -_02031348: .word 0x6C078965 -_0203134C: .word 0x5D588B65 -_02031350: .word 0x00269EC3 - - thumb_func_start FUN_02031354 -FUN_02031354: ; 0x02031354 - add r1, r0, #0x0 - ldr r0, _02031364 ; =UNK_021C59F4 - ldr r3, _02031368 ; =FUN_0202D830 - ldr r2, [r0, #0x4] - ldr r0, _0203136C ; =0x0000056C - add r0, r2, r0 - bx r3 - nop -_02031364: .word UNK_021C59F4 -_02031368: .word FUN_0202D830 -_0203136C: .word 0x0000056C - - thumb_func_start FUN_02031370 -FUN_02031370: ; 0x02031370 - ldr r0, _0203137C ; =UNK_021C59F4 - ldr r3, _02031380 ; =FUN_0202D4E4 - ldr r1, [r0, #0x4] - ldr r0, _02031384 ; =0x0000056C - add r0, r1, r0 - bx r3 - .balign 4 -_0203137C: .word UNK_021C59F4 -_02031380: .word FUN_0202D4E4 -_02031384: .word 0x0000056C - - thumb_func_start FUN_02031388 -FUN_02031388: ; 0x02031388 - ldr r0, _02031394 ; =UNK_021C59F4 - ldr r3, _02031398 ; =FUN_0202D4E4 - ldr r1, [r0, #0x4] - ldr r0, _0203139C ; =0x0000054C - add r0, r1, r0 - bx r3 - .balign 4 -_02031394: .word UNK_021C59F4 -_02031398: .word FUN_0202D4E4 -_0203139C: .word 0x0000054C - - thumb_func_start FUN_020313A0 -FUN_020313A0: ; 0x020313A0 - ldr r1, _020313AC ; =UNK_021C59F4 - ldr r2, [r1, #0x4] - ldr r1, _020313B0 ; =0x00000687 - strb r0, [r2, r1] - bx lr - nop -_020313AC: .word UNK_021C59F4 -_020313B0: .word 0x00000687 - - thumb_func_start FUN_020313B4 -FUN_020313B4: ; 0x020313B4 - ldr r2, _020313C4 ; =UNK_021C59F4 - ldr r2, [r2, #0x4] - cmp r2, #0x0 - beq _020313C2 - add r2, r2, r1 - ldr r1, _020313C8 ; =0x00000677 - strb r0, [r2, r1] -_020313C2: - bx lr - .balign 4 -_020313C4: .word UNK_021C59F4 -_020313C8: .word 0x00000677 - - thumb_func_start FUN_020313CC -FUN_020313CC: ; 0x020313CC - ldr r1, _020313E4 ; =UNK_021C59F4 - ldr r1, [r1, #0x4] - cmp r1, #0x0 - beq _020313E0 - add r2, r1, r0 - ldr r1, _020313E8 ; =0x00000677 - ldrb r1, [r2, r1] - cmp r1, #0xff - beq _020313E0 - add r0, r1, #0x0 -_020313E0: - bx lr - nop -_020313E4: .word UNK_021C59F4 -_020313E8: .word 0x00000677 - - thumb_func_start FUN_020313EC -FUN_020313EC: ; 0x020313EC - push {r3, lr} - bl FUN_02033534 - cmp r0, #0x13 - bge _020313FA - mov r0, #0x0 - pop {r3, pc} -_020313FA: - bl MOD04_021D8624 - pop {r3, pc} - - thumb_func_start FUN_02031400 -FUN_02031400: ; 0x02031400 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02033534 - cmp r0, #0x13 - blt _02031430 - ldr r2, _02031434 ; =UNK_021C59F4 - mov r1, #0x63 - ldr r0, [r2, #0x4] - lsl r1, r1, #0x4 - str r4, [r0, r1] - cmp r4, #0x0 - beq _02031430 - ldr r3, [r2, #0x4] - mov r4, #0x0 - add r0, r1, #0x4 - str r4, [r3, r0] - add r0, r1, #0x0 - ldr r3, [r2, #0x4] - add r0, #0x8 - str r4, [r3, r0] - ldr r0, [r2, #0x4] - add r1, #0xc - str r4, [r0, r1] -_02031430: - pop {r4, pc} - nop -_02031434: .word UNK_021C59F4 - - thumb_func_start FUN_02031438 -FUN_02031438: ; 0x02031438 - ldr r0, _0203144C ; =UNK_021C59F4 - ldr r1, [r0, #0x4] - ldr r0, _02031450 ; =0x00000681 - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _02031448 - mov r0, #0x1 - bx lr -_02031448: - mov r0, #0x0 - bx lr - .balign 4 -_0203144C: .word UNK_021C59F4 -_02031450: .word 0x00000681 - - thumb_func_start FUN_02031454 -FUN_02031454: ; 0x02031454 - ldr r0, _02031460 ; =UNK_021C59F4 - mov r2, #0x1 - ldr r1, [r0, #0x4] - ldr r0, _02031464 ; =0x00000689 - strb r2, [r1, r0] - bx lr - .balign 4 -_02031460: .word UNK_021C59F4 -_02031464: .word 0x00000689 - - thumb_func_start FUN_02031468 -FUN_02031468: ; 0x02031468 - ldr r0, _02031478 ; =UNK_021C59F4 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - beq _02031476 - ldr r0, _0203147C ; =0x0000068A - mov r1, #0x1 - strb r1, [r2, r0] -_02031476: - bx lr - .balign 4 -_02031478: .word UNK_021C59F4 -_0203147C: .word 0x0000068A diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s index cf84285f..a5439dfe 100644 --- a/arm9/asm/unk_02033F50.s +++ b/arm9/asm/unk_02033F50.s @@ -96,8 +96,8 @@ _02033FA4: mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -114,7 +114,7 @@ _02033FA4: ldr r0, _02034160 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r3, _02034164 ; =0x04000050 mov r1, #0x0 strh r1, [r3, #0x0] @@ -130,7 +130,7 @@ _02033FA4: and r1, r2 str r1, [r0, #0x0] ldr r0, _02034170 ; =UNK_020EECD0 - bl FUN_0201E66C + bl GX_SetBanks add r0, r4, #0x0 bl FUN_02016B94 add r6, r0, #0x0 @@ -231,7 +231,7 @@ _02033FA4: bl AddTextPrinterParameterized add r0, r7, #0x0 bl String_dtor - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s index d8b35c57..44144564 100644 --- a/arm9/asm/unk_02034188.s +++ b/arm9/asm/unk_02034188.s @@ -44,8 +44,8 @@ FUN_02034188: ; 0x02034188 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -62,7 +62,7 @@ FUN_02034188: ; 0x02034188 ldr r0, _02034370 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r3, _02034374 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] @@ -78,7 +78,7 @@ FUN_02034188: ; 0x02034188 and r0, r1 str r0, [r2, #0x0] ldr r0, _02034380 ; =UNK_020EED2C - bl FUN_0201E66C + bl GX_SetBanks add r0, r4, #0x0 bl FUN_02016B94 str r0, [sp, #0x10] @@ -158,7 +158,7 @@ FUN_02034188: ; 0x02034188 bl AddTextPrinterParameterized add r0, r4, #0x0 bl String_dtor - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 diff --git a/arm9/asm/unk_020343A8.s b/arm9/asm/unk_020343A8.s index fc2463b8..88fd2560 100644 --- a/arm9/asm/unk_020343A8.s +++ b/arm9/asm/unk_020343A8.s @@ -139,7 +139,7 @@ FUN_020344AC: ; 0x020344AC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_0203474C + bl MapHeader_GetMatrixId add r6, r0, #0x0 add r0, r4, #0x4 add r1, r6, #0x0 diff --git a/arm9/asm/unk_02034A28.s b/arm9/asm/unk_02034A28.s index d0cc2c05..e4c8097a 100644 --- a/arm9/asm/unk_02034A28.s +++ b/arm9/asm/unk_02034A28.s @@ -67,7 +67,7 @@ FUN_02034A98: ; 0x02034A98 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 - bl FUN_02034810 + bl MapHeader_GetEventsBank add r4, r0, #0x0 mov r0, #0x20 add r1, r4, #0x0 @@ -406,11 +406,11 @@ FUN_02034CB4: ; 0x02034CB4 add r5, r0, #0x0 bl memset add r0, r4, #0x0 - bl FUN_020347D8 + bl MapHeader_HasWildEncounters cmp r0, #0x0 beq _02034CDE add r0, r4, #0x0 - bl FUN_020347FC + bl MapHeader_GetWildEncounterBank add r2, r0, #0x0 add r0, r5, #0x0 .ifdef DIAMOND @@ -436,7 +436,7 @@ FUN_02034CEC: ; 0x02034CEC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 - bl FUN_0203479C + bl MapHeader_GetLevelScriptsBank mov r1, #0x82 lsl r1, r1, #0x4 mov r2, #0x1 diff --git a/arm9/asm/unk_02034FE4.s b/arm9/asm/unk_02034FE4.s index 2d66b396..8ff7abe0 100644 --- a/arm9/asm/unk_02034FE4.s +++ b/arm9/asm/unk_02034FE4.s @@ -128,7 +128,7 @@ FUN_02034FE4: ; 0x02034FE4 push {r3-r7, lr} add r7, r0, #0x0 add r0, r1, #0x0 - bl FUN_02034838 + bl MapHeader_GetWeatherType add r4, r0, #0x0 cmp r4, #0x18 blt _0203505C diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 95c1867f..f0cdc150 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -67,7 +67,7 @@ FUN_02035068: ; 0x02035068 push {r3, lr} ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec cmp r0, #0x0 beq _0203507A mov r0, #0x1 @@ -1406,7 +1406,7 @@ _02035B2C: str r2, [r0, r1] mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0xb4 pop {r4-r7, pc} .balign 4 @@ -1870,7 +1870,7 @@ _02035ECC: bl FUN_0202A918 str r0, [r7, #0x20] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -1918,7 +1918,7 @@ _02035F4A: mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -1975,7 +1975,7 @@ _02035FD0: mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 9d5e2f32..7c45ad7a 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -773,7 +773,7 @@ FUN_02037C00: ; 0x02037C00 bl FUN_0202A918 str r0, [r4, #0x20] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -827,7 +827,7 @@ FUN_02037C7C: ; 0x02037C7C strh r0, [r4, #0x18] strb r6, [r4, #0x12] add r0, r5, #0x0 - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02079C70 @@ -874,7 +874,7 @@ FUN_02037CF0: ; 0x02037CF0 mov r0, #0x2 strb r0, [r4, #0x12] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -1426,7 +1426,7 @@ FUN_02038144: ; 0x02038144 bl Sav2_Pokedex_get str r0, [r5, #0x24] ldr r0, [r4, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r5, #0x30] ldr r0, [r4, #0xc] str r0, [r5, #0x10] @@ -2157,7 +2157,7 @@ FUN_020386E0: ; 0x020386E0 ldr r0, [r5, #0xc] str r0, [r4, #0x20] ldr r0, [r5, #0xc] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r4, #0x34] ldr r0, [r4, #0x14] bl FUN_02033830 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index f35fd58e..08416fc7 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -149,79 +149,79 @@ UNK_020F3538: ; 0x020F3538 .global gScriptCmdTable gScriptCmdTable: ; 0x020F355C - .word ScrCmd_nop - .word ScrCmd_nop2 - .word ScrCmd_end - .word ScrCmd_delay - .word ScrCmd_loadbyte - .word ScrCmd_loadword - .word ScrCmd_loadbytefromaddr - .word ScrCmd_writebytetoaddr - .word ScrCmd_setptrbyte - .word ScrCmd_copylocal - .word ScrCmd_copybyte - .word ScrCmd_compare_local_to_local - .word ScrCmd_compare_local_to_value - .word ScrCmd_compare_local_to_addr - .word ScrCmd_compare_addr_to_local - .word ScrCmd_compare_addr_to_value - .word ScrCmd_compare_addr_to_addr - .word ScrCmd_compare_var_to_value - .word ScrCmd_compare_var_to_var - .word FUN_02039C40 - .word FUN_02039C78 - .word FUN_02039CE4 - .word ScrCmd_goto - .word FUN_02039D10 - .word FUN_02039D48 - .word FUN_02039D78 - .word ScrCmd_call - .word ScrCmd_return - .word ScrCmd_goto_if - .word ScrCmd_call_if - .word ScrCmd_setflag - .word ScrCmd_clearflag - .word ScrCmd_checkflag - .word FUN_02039E84 - .word FUN_02039EC0 - .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 FUN_0203A2C4 - .word FUN_0203A304 - .word FUN_0203A388 - .word FUN_0203A400 - .word FUN_0203A45C - .word FUN_0203A4D0 - .word FUN_0203A560 - .word FUN_0203A590 - .word FUN_0203A5D8 - .word FUN_0203A608 - .word FUN_0203A780 - .word FUN_0203A830 - .word FUN_0203A85C - .word FUN_0203A878 - .word FUN_0203A8B8 - .word FUN_0203A9F0 - .word FUN_0203AA90 - .word FUN_0203A630 - .word FUN_0203AAA0 + .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_Unk0032 + .word ScrCmd_Unk0033 + .word ScrCmd_Unk0034 + .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 FUN_0203DEA8 - .word FUN_0203AB8C - .word FUN_0203AC14 - .word FUN_0203AC9C - .word FUN_0203AD08 - .word FUN_0203ADC4 - .word FUN_0203AE4C - .word FUN_0203AED4 - .word FUN_0203AF34 - .word FUN_0203AF58 + .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 FUN_020414E0 .word FUN_020414FC .word FUN_02041518 @@ -260,46 +260,46 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203B724 .word FUN_0203B758 .word FUN_0203B7D8 - .word FUN_02043C6C - .word FUN_02043C90 - .word FUN_02043CE4 - .word FUN_02043D78 - .word FUN_02043DC8 - .word FUN_02043DE0 - .word FUN_02043A44 - .word FUN_02043A94 - .word FUN_02043AAC - .word FUN_02043ACC - .word FUN_02043AFC - .word FUN_02043B28 - .word FUN_02045784 - .word FUN_020457DC - .word FUN_02045834 - .word FUN_0204588C - .word FUN_020458E4 - .word FUN_02045918 - .word FUN_02045950 - .word FUN_02045954 - .word FUN_02045958 - .word FUN_020459AC - .word FUN_020459E8 - .word FUN_02045A3C - .word FUN_02045A78 - .word FUN_02045ACC - .word FUN_02045B08 - .word FUN_02045B44 - .word FUN_02045B80 - .word FUN_02045BC8 - .word FUN_02045C04 - .word FUN_02045C40 - .word FUN_02045C7C - .word FUN_02045CD4 - .word FUN_02045D10 - .word FUN_02045D4C + .word ScrCmd_GiveMoney + .word ScrCmd_TakeMoneyImmediate + .word ScrCmd_HasEnoughMoneyImmediate + .word ScrCmd_Unk0072 + .word ScrCmd_Unk0073 + .word ScrCmd_Unk0074 + .word ScrCmd_Unk0075 + .word ScrCmd_Unk0076 + .word ScrCmd_Unk0077 + .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_Unk0083 + .word ScrCmd_Unk0084 + .word ScrCmd_Unk0085 + .word ScrCmd_Unk0086 + .word ScrCmd_Unk0087 + .word ScrCmd_Unk0088 + .word ScrCmd_Unk0089 + .word ScrCmd_Unk008A + .word ScrCmd_Unk008B + .word ScrCmd_Unk008C + .word ScrCmd_Unk008D + .word ScrCmd_Unk008E + .word ScrCmd_Unk008F + .word ScrCmd_Unk0090 + .word ScrCmd_Unk0091 + .word ScrCmd_Unk0092 .word FUN_0203B81C .word FUN_0203B85C .word FUN_0203B8A0 - .word ScrCmd_givemon + .word ScrCmd_GiveMon .word ScrCmd_giveegg .word ScrCmd_setpartymonmove .word ScrCmd_partymonhasmove @@ -354,28 +354,28 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203CB20 .word FUN_0203CB48 .word FUN_0203CB60 - .word FUN_020406CC - .word FUN_02040700 - .word FUN_02040724 - .word FUN_02040748 - .word FUN_02040790 - .word FUN_020407C8 - .word FUN_02040800 - .word FUN_0204083C - .word FUN_02040874 - .word FUN_0204091C - .word FUN_020409C0 - .word FUN_020409F8 - .word FUN_02040A30 - .word FUN_02040A7C - .word FUN_02040B0C - .word FUN_02040B5C - .word FUN_02040BAC + .word ScrCmd_GetPlayerName + .word ScrCmd_GetRivalName + .word ScrCmd_GetFriendName + .word ScrCmd_Unk00D0 + .word ScrCmd_GetItemName + .word ScrCmd_GetPocketName + .word ScrCmd_GetTMHMMoveName + .word ScrCmd_GetMoveName + .word ScrCmd_Unk00D5 + .word ScrCmd_Unk00D6 + .word ScrCmd_GetPoketchAppName + .word ScrCmd_GetTrainerClassName + .word ScrCmd_Unk00D9 + .word ScrCmd_Unk00DA + .word ScrCmd_Unk00DB + .word ScrCmd_Unk00DC + .word ScrCmd_Unk00DD .word FUN_0203CBBC - .word FUN_02040BFC - .word FUN_02040C34 - .word FUN_02040C6C - .word FUN_02040CA4 + .word ScrCmd_GetDecorationName + .word ScrCmd_GetUndergroundTrapName + .word ScrCmd_GetUndergroundItemName + .word ScrCmd_Unk00E2 .word FUN_0203CB70 .word FUN_0204185C .word FUN_0204188C @@ -514,8 +514,8 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203DC70 .word FUN_0203DC88 .word FUN_0203DCA0 - .word FUN_02043E00 - .word FUN_02043E20 + .word ScrCmd_Unk016D + .word ScrCmd_Unk016E .word FUN_0203DCB8 .word FUN_0203DCC8 .word FUN_0203DCD8 @@ -528,17 +528,17 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203C460 .word FUN_0203C4B0 .word FUN_0203D958 - .word FUN_02040D04 - .word FUN_02040D7C - .word FUN_02042B0C - .word FUN_02042B40 - .word FUN_02042B74 - .word FUN_02042BA8 - .word FUN_02042BDC - .word FUN_02042C10 - .word FUN_02042C44 - .word FUN_02042C8C - .word FUN_02042CBC + .word ScrCmd_Unk017B + .word ScrCmd_GetNatureName + .word ScrCmd_Unk017D + .word ScrCmd_Unk017E + .word ScrCmd_Unk017F + .word ScrCmd_Unk0180 + .word ScrCmd_Unk0181 + .word ScrCmd_Unk0182 + .word ScrCmd_Unk0183 + .word ScrCmd_Unk0184 + .word ScrCmd_Unk0185 .word FUN_0203D998 .word FUN_0203D9E8 .word FUN_0203DA78 @@ -546,10 +546,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203DAE8 .word FUN_0203DB38 .word FUN_0203DB88 - .word FUN_0203AB44 - .word FUN_0203AB74 + .word ScrCmd_ShowSaveClock + .word ScrCmd_HideSaveClock .word FUN_0203DBD4 - .word FUN_0203A484 + .word ScrCmd_WaitButtonABTime .word FUN_0203B8E4 .word FUN_0203B944 .word FUN_0203B968 @@ -568,20 +568,20 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203DE4C .word FUN_0203DE58 .word FUN_0203DE80 - .word FUN_02043CB4 - .word FUN_02043E9C - .word FUN_02044120 - .word FUN_02044138 - .word FUN_0204413C - .word FUN_02043E50 - .word FUN_02043E68 - .word FUN_02043EFC - .word FUN_02043D28 + .word ScrCmd_TakeMoneyAddress + .word ScrCmd_Unk01A4 + .word ScrCmd_Unk01A5 + .word ScrCmd_Unk01A6 + .word ScrCmd_Unk01A7 + .word ScrCmd_Unk01A8 + .word ScrCmd_Unk01A9 + .word ScrCmd_Unk01AA + .word ScrCmd_HasEnoughMoneyAddress .word FUN_0203DD50 - .word FUN_02044140 - .word FUN_02043F50 - .word FUN_02043FA0 - .word FUN_02043FF4 + .word ScrCmd_Unk01AD + .word ScrCmd_Unk01AE + .word ScrCmd_Unk01AF + .word ScrCmd_Unk01B0 .word FUN_0203DEC4 .word FUN_0203DEF8 .word FUN_0203DF2C @@ -593,10 +593,10 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_getpartymonfriendship .word FUN_020448D4 .word FUN_020449A4 - .word FUN_02044034 + .word ScrCmd_Unk01BC .word FUN_0203B618 - .word FUN_020440C0 - .word FUN_020440F0 + .word ScrCmd_Unk01BE + .word ScrCmd_Unk01BF .word FUN_02044F58 .word FUN_0203E018 .word FUN_0203E054 @@ -608,7 +608,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02044D8C .word FUN_02044E34 .word FUN_02044E78 - .word FUN_02040E4C + .word ScrCmd_GetPokemonMoveName .word FUN_0203E138 .word FUN_0203E168 .word FUN_0203E254 @@ -646,21 +646,21 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02044ED8 .word FUN_0203E4D8 .word FUN_02044F20 - .word FUN_02045268 - .word FUN_02045398 - .word FUN_0204539C - .word FUN_020452B4 - .word FUN_02045308 + .word ScrCmd_Unk01F1 + .word ScrCmd_Unk01F2 + .word ScrCmd_Unk01F3 + .word ScrCmd_Unk01F4 + .word ScrCmd_Unk01F5 .word ScrCmd_countpartymonsatorbelowlevel .word ScrCmd_survivepsn .word FUN_0203BC2C - .word FUN_02039A10 - .word ScrCmd_message_from - .word FUN_0203A098 - .word FUN_0203A0FC - .word FUN_0203A13C - .word FUN_0203A188 - .word FUN_0203A210 + .word ScrCmd_DebugWatch + .word ScrCmd_MessageFrom + .word ScrCmd_MessageFrom2 + .word ScrCmd_Unk01FC + .word ScrCmd_Unk01FD + .word ScrCmd_Unk01FE + .word ScrCmd_Unk01FF .word FUN_0203C7F4 .word FUN_0203C820 .word FUN_0203E5DC @@ -673,7 +673,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203BE50 .word FUN_0203BECC .word FUN_0203BF00 - .word FUN_0203A3C4 + .word ScrCmd_Unk020C .word FUN_0203E684 .word FUN_0203E6B4 .word FUN_0203E6C4 @@ -711,7 +711,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0204505C .word FUN_02045104 .word FUN_02045170 - .word FUN_02040EB4 + .word ScrCmd_Unk0232 .word FUN_0203E9CC .word FUN_0203EA68 .word FUN_02041E40 @@ -724,10 +724,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203EB48 .word FUN_0203EB88 .word FUN_02042D1C - .word FUN_02046010 - .word FUN_0204601C - .word FUN_02046028 - .word FUN_0204602C + .word ScrCmd_Unk023F + .word ScrCmd_Unk0240 + .word ScrCmd_Unk0241 + .word ScrCmd_Unk0242 .word FUN_0203C5BC .word FUN_0203C614 .word FUN_0203C680 @@ -742,12 +742,12 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02041194 .word FUN_020411C4 .word FUN_02041340 - .word FUN_02040964 + .word ScrCmd_Unk0251 .word ScrCmd_pcfreespace - .word FUN_0204387C - .word FUN_020438D0 - .word FUN_02043918 - .word FUN_020439B4 + .word ScrCmd_Unk0253 + .word ScrCmd_Unk0254 + .word ScrCmd_Unk0255 + .word ScrCmd_Unk0256 .word FUN_0203FE80 .word FUN_0203EDA4 .word FUN_0203EDC8 @@ -758,7 +758,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203EE58 .word FUN_0203EE68 .word FUN_0203EE78 - .word FUN_02040DB4 + .word ScrCmd_GetFashionName .word FUN_0203EE98 .word FUN_0203EED8 .word FUN_0203EF58 @@ -770,16 +770,16 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203F110 .word FUN_0203F174 .word FUN_0203F19C - .word FUN_0203A288 + .word ScrCmd_Unk026D .word FUN_0203F234 .word FUN_0203F254 .word FUN_0203F26C .word FUN_0203C58C - .word FUN_02040DEC + .word ScrCmd_Unk0272 .word FUN_0203F2AC - .word FUN_02043B84 + .word ScrCmd_HasEnoughCoinsImmediate .word FUN_0203F2E4 - .word FUN_02043C28 + .word ScrCmd_CanGiveCoins .word FUN_0203F31C .word ScrCmd_getpartymonlevel .word FUN_0203F348 @@ -789,7 +789,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203F3AC .word FUN_0203F44C .word FUN_0203F418 - .word FUN_020408BC + .word ScrCmd_Unk0280 .word FUN_02044A0C .word FUN_0203F484 .word FUN_02041674 @@ -818,7 +818,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_02042A48 .word FUN_02042A98 .word FUN_0203D7DC - .word FUN_0203ACC4 + .word ScrCmd_Unk029D .word FUN_0203F8C0 .word FUN_0203F954 .word FUN_0204190C @@ -827,10 +827,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203F988 .word FUN_0203F9B0 .word FUN_0203B914 - .word FUN_020453A0 + .word ScrCmd_Unk02A6 .word FUN_0203FA14 - .word FUN_02043B54 - .word FUN_02043BD0 + .word ScrCmd_TakeCoinsAddress + .word ScrCmd_HasEnoughCoinsAddress .word FUN_0203FA58 .word FUN_0203B7F0 .word FUN_0203FB4C @@ -840,36 +840,36 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203FB94 .word FUN_0203FBA0 .word FUN_0203FBAC - .word FUN_02040EF8 + .word ScrCmd_GetSealName .word FUN_0203B2E0 .word FUN_0203FBBC .word FUN_0203FC1C .word FUN_020451D0 .word FUN_02042000 - .word FUN_0203AD54 + .word ScrCmd_Unk02B9 .word FUN_0203D4E8 .word FUN_0203D920 .word FUN_02041B40 .word FUN_0203D0A4 .word FUN_0203FC58 .word FUN_0203CAE8 - .word FUN_0203A340 + .word ScrCmd_Unk02C0 .word FUN_0203FC80 .word FUN_0203FCB0 .word FUN_0203FCDC - .word FUN_02040F34 - .word FUN_02040F6C - .word FUN_02040FA4 - .word FUN_02040FDC - .word FUN_02041014 - .word FUN_0204104C - .word FUN_02041094 - .word FUN_020410C8 - .word FUN_02041100 - .word FUN_02041138 - .word FUN_02041174 - .word FUN_0203AF84 - .word FUN_0203AFA4 + .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 @@ -1925,7 +1925,7 @@ ScriptRunByIndex: ; 0x02039484 thumb_func_start LoadScriptsForCurrentMap LoadScriptsForCurrentMap: ; 0x0203949C push {r3, lr} - bl MapHeader_GetScrSeqReleaseNo + bl MapHeader_GetScriptsBank add r1, r0, #0x0 mov r0, #0xa mov r2, #0xb diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 8eac1942..7e25689f 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -525,7 +525,7 @@ FUN_02047A78: ; 0x02047A78 str r0, [r5, r1] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec mov r1, #0x56 lsl r1, r1, #0x2 str r0, [r5, r1] @@ -1161,7 +1161,7 @@ FUN_0204806C: ; 0x0204806C add r6, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034860 + bl MapHeader_GetField17_0 mov r1, #0x15 lsl r1, r1, #0x4 str r0, [r5, r1] diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 3c92ba05..6f303045 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -32,7 +32,7 @@ FUN_02048120: ; 0x02048120 sub sp, #0x8 add r4, r0, #0x0 ldr r0, _02048158 ; =UNK_020F465C - bl FUN_0201E66C + bl GX_SetBanks ldr r0, _0204815C ; =UNK_020F4630 bl FUN_02016BBC ldr r2, _02048160 ; =UNK_020F4640 diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s index 833d62c0..4750c7ea 100644 --- a/arm9/asm/unk_020484A8.s +++ b/arm9/asm/unk_020484A8.s @@ -345,7 +345,7 @@ FUN_02048764: ; 0x02048764 add r0, r1, #0x0 bl FUN_0201901C ldr r0, _020487D4 ; =UNK_020F46B0 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _020487D8 ; =0x04000304 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s index d9259556..1fcababe 100644 --- a/arm9/asm/unk_02048904.s +++ b/arm9/asm/unk_02048904.s @@ -223,14 +223,14 @@ _02048A82: bl FUN_02034E10 add r6, r0, #0x0 add r0, r7, #0x0 - bl FUN_0203484C + bl MapHeader_GetCameraType cmp r6, r0 beq _02048AB4 bl ErrorHandling b _02048AB4 _02048AA6: add r0, r7, #0x0 - bl FUN_0203484C + bl MapHeader_GetCameraType add r1, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02034E18 diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s index 45702b12..bea4eefa 100644 --- a/arm9/asm/unk_0204AB0C.s +++ b/arm9/asm/unk_0204AB0C.s @@ -121,11 +121,11 @@ FUN_0204ABA8: ; 0x0204ABA8 cmp r0, #0x0 bne _0204ABBE add r0, r4, #0x0 - bl FUN_020347B0 + bl MapHeader_GetDayMusicId b _0204ABC4 _0204ABBE: add r0, r4, #0x0 - bl FUN_020347C4 + bl MapHeader_GetNightMusicId _0204ABC4: add r6, r0, #0x0 ldr r0, [r5, #0xc] @@ -338,11 +338,11 @@ FUN_0204AD44: ; 0x0204AD44 cmp r0, #0x0 bne _0204AD58 add r0, r4, #0x0 - bl FUN_020347B0 + bl MapHeader_GetDayMusicId pop {r4, pc} _0204AD58: add r0, r4, #0x0 - bl FUN_020347C4 + bl MapHeader_GetNightMusicId pop {r4, pc} thumb_func_start FUN_0204AD60 diff --git a/arm9/asm/unk_0204AEA8.s b/arm9/asm/unk_0204AEA8.s deleted file mode 100644 index 018a64e2..00000000 --- a/arm9/asm/unk_0204AEA8.s +++ /dev/null @@ -1,67 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0204AEA8 -FUN_0204AEA8: ; 0x0204AEA8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _0204AEC6 - cmp r1, #0x1 - beq _0204AEE6 - b _0204AEF4 -_0204AEC6: - ldr r0, [r4, #0x8] - add r1, r5, #0x0 - add r2, r4, #0x4 - bl MOD05_021E3444 - ldr r1, [r4, #0xc] - mov r0, #0x5 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - mov r2, #0x1 - bl FUN_0200433C - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - b _0204AEF4 -_0204AEE6: - ldr r1, [r4, #0x4] - cmp r1, #0x1 - bne _0204AEF4 - bl FreeToHeap - mov r0, #0x1 - pop {r3-r5, pc} -_0204AEF4: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0204AEF8 -FUN_0204AEF8: ; 0x0204AEF8 - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - mov r0, #0xb - mov r1, #0x10 - add r4, r2, #0x0 - bl AllocFromHeapAtEnd - add r2, r0, #0x0 - mov r0, #0x0 - str r0, [r2, #0x0] - str r0, [r2, #0x4] - str r5, [r2, #0x8] - ldr r1, _0204AF20 ; =FUN_0204AEA8 - add r0, r6, #0x0 - str r4, [r2, #0xc] - bl FUN_0204640C - pop {r4-r6, pc} - nop -_0204AF20: .word FUN_0204AEA8 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index 5746b23f..c8a8a153 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -35,7 +35,7 @@ FUN_02050E48: ; 0x02050E48 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r6, #0x0 - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled str r0, [r4, #0x1c] add r0, r6, #0x0 bl FUN_02079C70 diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 73072399..6ab54142 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -308,10 +308,10 @@ _02053912: bl FUN_02017FB4 mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r1, #0x57 lsl r1, r1, #0x2 add r0, r4, #0x0 @@ -488,7 +488,7 @@ _02053A78: bge _02053B30 mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] @@ -559,7 +559,7 @@ _02053B00: _02053B16: mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -878,10 +878,10 @@ FUN_02053D70: ; 0x02053D70 str r0, [r4, #0x0] mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r4, pc} thumb_func_start FUN_02053D94 diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s index 5ad7ca34..6e6f1f85 100644 --- a/arm9/asm/unk_0205CE48.s +++ b/arm9/asm/unk_0205CE48.s @@ -432,7 +432,7 @@ FUN_0205D170: ; 0x0205D170 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec cmp r0, #0x0 bne _0205D184 mov r0, #0x0 @@ -440,7 +440,7 @@ FUN_0205D170: ; 0x0205D170 pop {r3-r5, pc} _0205D184: ldr r0, [r5, #0x0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0x0 bne _0205D194 mov r0, #0x0 @@ -697,7 +697,7 @@ _0205D390: pop {r3-r5, pc} _0205D396: ldr r0, [r4, #0x0] - bl FUN_020348B4 + bl MapHeader_IsBikeAllowed cmp r0, #0x0 bne _0205D3A6 mov r0, #0x0 @@ -1178,7 +1178,7 @@ _0205D730: .word 0x000022F6 FUN_0205D734: ; 0x0205D734 push {r3, lr} ldr r0, [r0, #0x0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0x0 beq _0205D744 mov r0, #0x0 @@ -1595,7 +1595,7 @@ _0205DA8E: cmp r0, #0x1 bne _0205DAA6 ldr r0, [r4, #0x0] - bl FUN_0203487C + bl MapHeader_GetField17_6 cmp r0, #0x1 bne _0205DAA6 mov r0, #0x0 diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s index 43358f72..b781112b 100644 --- a/arm9/asm/unk_0205F7A0.s +++ b/arm9/asm/unk_0205F7A0.s @@ -55,7 +55,7 @@ FUN_0205F7A0: ; 0x0205F7A0 asr r1, r1, #0x5 asr r2, r2, #0x5 bl FUN_0203451C - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0x0 beq _0205F806 str r4, [r5, #0x0] diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s deleted file mode 100644 index ae0d9d3f..00000000 --- a/arm9/asm/unk_0205FA2C.s +++ /dev/null @@ -1,930 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern UNK_020F96DC - .extern UNK_020FA6E8 - - .section .rodata - - .global UNK_020F7454 -UNK_020F7454: ; 0x020F7454 - .byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00 - - .text - - thumb_func_start FUN_0205FA2C -FUN_0205FA2C: ; 0x0205FA2C - push {r3-r7, lr} - add r5, r0, #0x0 - add r7, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x40 - bl AllocFromHeapAtEnd - ldr r6, [r7, #0xc] - mov r1, #0x0 - mov r2, #0x40 - add r4, r0, #0x0 - bl MI_CpuFill8 - add r0, r6, #0x0 - bl Sav2_PlayerData_GetOptionsAddr - str r0, [r4, #0xc] - add r0, r6, #0x0 - bl SavArray_PlayerParty_get - str r0, [r4, #0x0] - add r0, r6, #0x0 - bl Sav2_Bag_get - str r0, [r4, #0x4] - add r0, r4, #0x0 - mov r1, #0x0 - add r0, #0x21 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - ldrb r2, [r5, #0x8] - add r0, #0x20 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x32 - ldrb r0, [r0, #0x0] - mov r2, #0xf - ldrb r3, [r5, #0xa] - bic r0, r2 - mov r2, #0xf - and r2, r3 - orr r2, r0 - add r0, r4, #0x0 - add r0, #0x32 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x32 - ldrb r0, [r0, #0x0] - mov r2, #0xf0 - bic r0, r2 - ldrb r2, [r5, #0xb] - lsl r2, r2, #0x1c - lsr r2, r2, #0x18 - orr r2, r0 - add r0, r4, #0x0 - add r0, #0x32 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - ldrb r2, [r5, #0xc] - add r0, #0x33 - strb r2, [r0, #0x0] - add r0, r4, #0x0 - ldrb r2, [r5, #0xd] - add r0, #0x22 - strb r2, [r0, #0x0] -_0205FAAE: - add r0, r5, r1 - ldrb r2, [r0, #0xe] - add r0, r4, r1 - add r0, #0x2c - strb r2, [r0, #0x0] - add r0, r1, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - cmp r1, #0x6 - blo _0205FAAE - ldr r1, _0205FAD4 ; =UNK_020F96DC - add r0, r7, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - ldr r0, [r5, #0x14] - str r4, [r0, #0x0] - mov r0, #0x1 - pop {r3-r7, pc} - .balign 4 -_0205FAD4: .word UNK_020F96DC - - thumb_func_start FUN_0205FAD8 -FUN_0205FAD8: ; 0x0205FAD8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - beq _0205FAEA - mov r0, #0x1 - pop {r3-r5, pc} -_0205FAEA: - ldr r0, [r5, #0x14] - ldr r4, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - cmp r0, #0x6 - beq _0205FB04 - cmp r0, #0x7 - bne _0205FB0C - mov r0, #0x0 - str r0, [r5, #0x0] - mov r0, #0x4 - pop {r3-r5, pc} -_0205FB04: - mov r0, #0x1 - str r0, [r5, #0x0] - mov r0, #0x4 - pop {r3-r5, pc} -_0205FB0C: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r0, #0x2c - add r1, #0xe - mov r2, #0x6 - bl MI_CpuCopy8 - add r0, r4, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - strb r0, [r5, #0xd] - add r0, r4, #0x0 - bl FreeToHeap - ldr r0, [r5, #0x14] - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, #0x2 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0205FB34 -FUN_0205FB34: ; 0x0205FB34 - push {r3-r7, lr} - add r7, r1, #0x0 - add r6, r0, #0x0 - ldr r5, [r7, #0xc] - add r0, r2, #0x0 - mov r1, #0x30 - bl AllocFromHeapAtEnd - mov r1, #0x0 - mov r2, #0x30 - add r4, r0, #0x0 - bl MI_CpuFill8 - add r0, r5, #0x0 - bl Sav2_PlayerData_GetOptionsAddr - str r0, [r4, #0x4] - add r0, r5, #0x0 - bl SavArray_PlayerParty_get - str r0, [r4, #0x0] - add r0, r5, #0x0 - bl FUN_0206BB28 - str r0, [r4, #0x1c] - add r0, r5, #0x0 - bl FUN_02079C70 - str r0, [r4, #0x2c] - mov r0, #0x1 - strb r0, [r4, #0x11] - ldrb r0, [r6, #0xd] - strb r0, [r4, #0x14] - ldr r0, [r4, #0x0] - bl GetPartyCount - strb r0, [r4, #0x13] - mov r0, #0x0 - strh r0, [r4, #0x18] - ldrb r0, [r6, #0x9] - strb r0, [r4, #0x12] - add r0, r5, #0x0 - bl FUN_0202A918 - str r0, [r4, #0x20] - ldr r1, _0205FBB8 ; =UNK_020F7454 - add r0, r4, #0x0 - bl FUN_0207B000 - add r0, r5, #0x0 - bl Sav2_PlayerData_GetProfileAddr - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0207C2A4 - ldr r1, _0205FBBC ; =UNK_020FA6E8 - add r0, r7, #0x0 - add r2, r4, #0x0 - bl FUN_020373D4 - ldr r0, [r6, #0x14] - str r4, [r0, #0x0] - mov r0, #0x3 - pop {r3-r7, pc} - nop -_0205FBB8: .word UNK_020F7454 -_0205FBBC: .word UNK_020FA6E8 - - thumb_func_start FUN_0205FBC0 -FUN_0205FBC0: ; 0x0205FBC0 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - beq _0205FBD2 - mov r0, #0x3 - pop {r4, pc} -_0205FBD2: - ldr r0, [r4, #0x14] - ldr r0, [r0, #0x0] - ldrb r1, [r0, #0x14] - strb r1, [r4, #0xd] - bl FreeToHeap - ldr r1, [r4, #0x14] - mov r0, #0x0 - str r0, [r1, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0205FBE8 -FUN_0205FBE8: ; 0x0205FBE8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r1, [r4, #0x4] - cmp r1, #0x4 - bhi _0205FC4A - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0205FC0C: ; jump table (using 16-bit offset) - .short _0205FC16 - _0205FC0C - 2; case 0 - .short _0205FC22 - _0205FC0C - 2; case 1 - .short _0205FC2C - _0205FC0C - 2; case 2 - .short _0205FC38 - _0205FC0C - 2; case 3 - .short _0205FC42 - _0205FC0C - 2; case 4 -_0205FC16: - add r1, r5, #0x0 - mov r2, #0xb - bl FUN_0205FA2C - str r0, [r4, #0x4] - b _0205FC4A -_0205FC22: - add r1, r5, #0x0 - bl FUN_0205FAD8 - str r0, [r4, #0x4] - b _0205FC4A -_0205FC2C: - add r1, r5, #0x0 - mov r2, #0xb - bl FUN_0205FB34 - str r0, [r4, #0x4] - b _0205FC4A -_0205FC38: - add r1, r5, #0x0 - bl FUN_0205FBC0 - str r0, [r4, #0x4] - b _0205FC4A -_0205FC42: - bl FreeToHeap - mov r0, #0x1 - pop {r3-r5, pc} -_0205FC4A: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0205FC50 -FUN_0205FC50: ; 0x0205FC50 - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02046528 - str r0, [sp, #0x0] - mov r0, #0xb - mov r1, #0x18 - bl AllocFromHeap - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x18 - bl MI_CpuFill8 - strb r6, [r4, #0x8] - strb r7, [r4, #0x9] - add r0, sp, #0x8 - ldrb r1, [r0, #0x10] - add r2, r4, #0x0 - strb r1, [r4, #0xa] - ldrb r1, [r0, #0x14] - strb r1, [r4, #0xb] - ldrb r1, [r0, #0x18] - strb r1, [r4, #0xc] - ldrb r0, [r0, #0x1c] - ldr r1, _0205FC98 ; =FUN_0205FBE8 - strb r0, [r4, #0xd] - ldr r0, [sp, #0x0] - str r5, [r4, #0x14] - ldr r0, [r0, #0x10] - bl FUN_0204640C - pop {r3-r7, pc} - nop -_0205FC98: .word FUN_0205FBE8 - - thumb_func_start FUN_0205FC9C -FUN_0205FC9C: ; 0x0205FC9C - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0203384C - cmp r0, #0x0 - beq _0205FCBC - ldrh r1, [r4, #0x12] - ldrh r2, [r4, #0x14] - add r0, r5, #0x0 - bl FUN_02038790 - str r0, [r4, #0x8] - mov r0, #0x1 - pop {r3-r5, pc} -_0205FCBC: - mov r0, #0x1 - str r0, [r4, #0x0] - mov r0, #0x2 - pop {r3-r5, pc} - - thumb_func_start FUN_0205FCC4 -FUN_0205FCC4: ; 0x0205FCC4 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - bl FUN_0204647C - cmp r0, #0x0 - beq _0205FCD6 - mov r0, #0x1 - pop {r4, pc} -_0205FCD6: - ldr r0, [r4, #0x8] - ldr r0, [r0, #0x20] - str r0, [r4, #0x0] - ldr r0, [r4, #0x8] - bl FreeToHeap - mov r0, #0x2 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0205FCE8 -FUN_0205FCE8: ; 0x0205FCE8 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldr r1, [r4, #0x4] - cmp r1, #0x0 - beq _0205FD0A - cmp r1, #0x1 - beq _0205FD14 - cmp r1, #0x2 - beq _0205FD1E - b _0205FD34 -_0205FD0A: - add r1, r5, #0x0 - bl FUN_0205FC9C - str r0, [r4, #0x4] - b _0205FD34 -_0205FD14: - add r1, r5, #0x0 - bl FUN_0205FCC4 - str r0, [r4, #0x4] - b _0205FD34 -_0205FD1E: - ldrh r1, [r4, #0x10] - add r0, r5, #0x0 - bl GetVarPointer - ldr r1, [r4, #0x0] - strh r1, [r0, #0x0] - add r0, r4, #0x0 - bl FreeToHeap - mov r0, #0x1 - pop {r3-r5, pc} -_0205FD34: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0205FD38 -FUN_0205FD38: ; 0x0205FD38 - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02046528 - str r0, [sp, #0x0] - mov r0, #0xb - mov r1, #0x18 - bl AllocFromHeap - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x18 - bl MI_CpuFill8 - strh r5, [r4, #0x12] - strh r7, [r4, #0x14] - ldr r0, [sp, #0x0] - strh r6, [r4, #0x10] - ldr r0, [r0, #0x10] - ldr r1, _0205FD6C ; =FUN_0205FCE8 - add r2, r4, #0x0 - bl FUN_0204640C - pop {r3-r7, pc} - .balign 4 -_0205FD6C: .word FUN_0205FCE8 - - thumb_func_start FUN_0205FD70 -FUN_0205FD70: ; 0x0205FD70 - push {r3-r7, lr} - add r4, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0204652C - add r5, r0, #0x0 - bl FUN_02031190 - mov r1, #0x1 - sub r0, r1, r0 - bl FUN_020316E0 - add r7, r0, #0x0 - bne _0205FD96 - mov r0, #0x0 - pop {r3-r7, pc} -_0205FD96: - ldrh r1, [r5, #0x2] - add r0, r6, #0x0 - bl GetVarPointer - add r4, r0, #0x0 - ldrh r0, [r5, #0x0] - cmp r0, #0x0 - beq _0205FDB0 - cmp r0, #0x1 - beq _0205FDBC - cmp r0, #0x2 - beq _0205FDC8 - b _0205FDD2 -_0205FDB0: - add r0, r6, #0x0 - add r1, r7, #0x0 - bl MOD06_02244660 - strh r0, [r4, #0x0] - b _0205FDD2 -_0205FDBC: - add r0, r6, #0x0 - add r1, r7, #0x0 - bl MOD06_022446BC - strh r0, [r4, #0x0] - b _0205FDD2 -_0205FDC8: - add r0, r6, #0x0 - add r1, r7, #0x0 - bl MOD06_022446E0 - strh r0, [r4, #0x0] -_0205FDD2: - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x1 - pop {r3-r7, pc} - - thumb_func_start FUN_0205FDDC -FUN_0205FDDC: ; 0x0205FDDC - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02046528 - add r7, r0, #0x0 - mov r0, #0xb - mov r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x4 - bl MI_CpuFill8 - strh r5, [r4, #0x0] - strh r6, [r4, #0x2] - ldr r0, [r7, #0x10] - ldr r1, _0205FE0C ; =FUN_0205FD70 - add r2, r4, #0x0 - bl FUN_0204640C - pop {r3-r7, pc} - nop -_0205FE0C: .word FUN_0205FD70 - - thumb_func_start FUN_0205FE10 -FUN_0205FE10: ; 0x0205FE10 - push {r4-r7, lr} - sub sp, #0x14 - str r0, [sp, #0x0] - bl FUN_02029FC8 - mov r1, #0x35 - bl FUN_0202A150 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x10] - cmp r0, #0x14 - bhs _0205FE30 - add sp, #0x14 - mov r0, #0x0 - pop {r4-r7, pc} -_0205FE30: - ldr r0, [sp, #0x0] - bl FUN_0202A8D8 - mov r1, #0xd - mov r2, #0x0 - add r4, r0, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - mov r1, #0x0 - lsr r7, r0, #0x18 - add r0, r4, #0x0 - add r2, r1, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - add r0, r4, #0x0 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - add r0, r4, #0x0 - mov r1, #0xe - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xc] - add r0, r4, #0x0 - mov r1, #0x2 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x8] - add r0, r4, #0x0 - mov r1, #0x3 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x4] - cmp r7, #0x0 - beq _0205FEA2 - cmp r6, #0x0 - beq _0205FEA2 - cmp r5, #0x0 - beq _0205FEA2 - add sp, #0x14 - mov r0, #0x0 - pop {r4-r7, pc} -_0205FEA2: - ldr r0, [sp, #0x0] - bl FUN_02026CC4 - cmp r7, #0x0 - bne _0205FEDC - mov r1, #0x55 - bl FUN_02025D94 - cmp r0, #0x0 - beq _0205FEC6 - add r0, r4, #0x0 - mov r1, #0xd - mov r2, #0x1 - bl FUN_0202A578 - add sp, #0x14 - mov r0, #0x1 - pop {r4-r7, pc} -_0205FEC6: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - bne _0205FED6 - add r0, r4, #0x0 - mov r1, #0xe - mov r2, #0x1 - bl FUN_0202A578 -_0205FED6: - add sp, #0x14 - mov r0, #0x4 - pop {r4-r7, pc} -_0205FEDC: - ldr r1, [sp, #0x10] - cmp r1, #0x32 - bhs _0205FEE8 - add sp, #0x14 - mov r0, #0x0 - pop {r4-r7, pc} -_0205FEE8: - cmp r6, #0x0 - bne _0205FF1C - mov r1, #0x56 - bl FUN_02025D94 - cmp r0, #0x0 - beq _0205FF06 - add r0, r4, #0x0 - mov r1, #0x0 - mov r2, #0x1 - bl FUN_0202A578 - add sp, #0x14 - mov r0, #0x2 - pop {r4-r7, pc} -_0205FF06: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bne _0205FF16 - add r0, r4, #0x0 - mov r1, #0x2 - mov r2, #0x1 - bl FUN_0202A578 -_0205FF16: - add sp, #0x14 - mov r0, #0x4 - pop {r4-r7, pc} -_0205FF1C: - cmp r1, #0x64 - blo _0205FF24 - cmp r5, #0x0 - beq _0205FF2A -_0205FF24: - add sp, #0x14 - mov r0, #0x0 - pop {r4-r7, pc} -_0205FF2A: - mov r1, #0x57 - bl FUN_02025D94 - cmp r0, #0x0 - beq _0205FF44 - mov r1, #0x1 - add r0, r4, #0x0 - add r2, r1, #0x0 - bl FUN_0202A578 - add sp, #0x14 - mov r0, #0x3 - pop {r4-r7, pc} -_0205FF44: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _0205FF54 - add r0, r4, #0x0 - mov r1, #0x3 - mov r2, #0x1 - bl FUN_0202A578 -_0205FF54: - mov r0, #0x4 - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0205FF5C -FUN_0205FF5C: ; 0x0205FF5C - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - bl FUN_02029FC8 - mov r1, #0x35 - bl FUN_0202A150 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - cmp r7, #0x14 - bhs _0205FF7A - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0205FF7A: - add r0, r4, #0x0 - bl FUN_0202A8D8 - mov r1, #0xd - mov r2, #0x0 - str r0, [sp, #0x8] - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - mov r1, #0x0 - ldr r0, [sp, #0x8] - add r2, r1, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r0, [sp, #0x8] - mov r1, #0x1 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, [sp, #0x8] - mov r1, #0xe - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - mov r1, #0x2 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - ldr r0, [sp, #0x8] - mov r1, #0x3 - mov r2, #0x0 - bl FUN_0202A578 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r6, #0x0 - beq _0205FFEA - cmp r4, #0x0 - beq _0205FFEA - cmp r5, #0x0 - beq _0205FFEA - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0205FFEA: - cmp r6, #0x0 - bne _02060000 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _0205FFFA - add sp, #0xc - mov r0, #0x4 - pop {r4-r7, pc} -_0205FFFA: - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_02060000: - cmp r7, #0x32 - bhs _0206000A - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0206000A: - cmp r4, #0x0 - bne _02060020 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _0206001A - add sp, #0xc - mov r0, #0x5 - pop {r4-r7, pc} -_0206001A: - add sp, #0xc - mov r0, #0x2 - pop {r4-r7, pc} -_02060020: - cmp r7, #0x64 - bhs _0206002A - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0206002A: - cmp r5, #0x0 - beq _02060034 - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02060034: - cmp r0, #0x0 - beq _0206003E - add sp, #0xc - mov r0, #0x6 - pop {r4-r7, pc} -_0206003E: - mov r0, #0x3 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_02060044 -FUN_02060044: ; 0x02060044 - add r0, #0xa8 - ldr r0, [r0, #0x0] - ldr r2, [r1, #0x0] - ldrh r3, [r0, #0x24] - add r2, r3, r2 - strh r2, [r0, #0x24] - ldrh r3, [r0, #0x28] - ldr r2, [r1, #0x4] - add r2, r3, r2 - strh r2, [r0, #0x28] - ldrh r2, [r0, #0x26] - ldr r1, [r1, #0x8] - add r1, r2, r1 - strh r1, [r0, #0x26] - bx lr - .balign 4 - - thumb_func_start FUN_02060064 -FUN_02060064: ; 0x02060064 - ldr r1, _0206006C ; =0x02E90EDD - mul r1, r0 - add r0, r1, #0x1 - bx lr - .balign 4 -_0206006C: .word 0x02E90EDD - - thumb_func_start FUN_02060070 -FUN_02060070: ; 0x02060070 - ldr r1, _02060078 ; =0x5D588B65 - mul r1, r0 - add r0, r1, #0x1 - bx lr - .balign 4 -_02060078: .word 0x5D588B65 - - thumb_func_start FUN_0206007C -FUN_0206007C: ; 0x0206007C - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0202881C - bl FUN_020287A4 - bl FUN_02060070 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0202A8D8 - add r1, r4, #0x0 - bl FUN_0202A5CC - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020600A0 -FUN_020600A0: ; 0x020600A0 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - bl FUN_0202A8D8 - add r6, r0, #0x0 - bl FUN_0202A5D0 - bl FUN_02060070 - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl FUN_0202A5CC - add r0, r4, #0x0 - bl FUN_02060064 - str r0, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_0202A8CC - mov r1, #0xa - add r2, sp, #0x0 - bl FUN_0202A2C4 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_020600DC -FUN_020600DC: ; 0x020600DC - push {r3-r6, lr} - sub sp, #0x4 - add r6, r0, #0x0 - bl FUN_0202A8D8 - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A8CC - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0202A5D0 - bl FUN_02060064 - mov r1, #0x0 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r2, r1, #0x0 - bl FUN_0202A240 - add r1, r0, #0x0 - lsl r1, r1, #0x10 - add r0, r4, #0x0 - lsr r1, r1, #0x10 - mov r2, #0x0 - bl FUN_0202A538 - mov r1, #0x18 - add r5, r0, #0x0 - mul r5, r1 - mov r4, #0x0 - cmp r5, #0x0 - ble _0206012E - ldr r0, [sp, #0x0] -_02060122: - bl FUN_02060064 - add r4, r4, #0x1 - str r0, [sp, #0x0] - cmp r4, r5 - blt _02060122 -_0206012E: - add r0, r6, #0x0 - bl FUN_0202A8CC - mov r1, #0xa - add r2, sp, #0x0 - bl FUN_0202A2C4 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02060144 -FUN_02060144: ; 0x02060144 - ldr r0, [r0, #0x1c] - ldr r1, [r0, #0x0] - ldr r0, _02060158 ; =0x000001ED - cmp r1, r0 - bne _02060152 - mov r0, #0x1 - bx lr -_02060152: - mov r0, #0x0 - bx lr - nop -_02060158: .word 0x000001ED diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 44e19c06..b6692f24 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -1033,7 +1033,7 @@ FUN_02061374: ; 0x02061374 strh r1, [r0, #0x0] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r1, sp, #0x0 strh r0, [r1, #0x2] add r0, r4, #0x0 @@ -1084,7 +1084,7 @@ FUN_020613CC: ; 0x020613CC bl FUN_02060E34 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r1, sp, #0x4 strh r0, [r1, #0x6] add r0, r4, #0x0 @@ -2838,7 +2838,7 @@ _0206218C: bl FUN_02034FE4 add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0x0 add r0, r7, #0x0 mov r1, #0x0 @@ -2949,7 +2949,7 @@ FUN_02062240: ; 0x02062240 bl MOD06_02245910 add r0, sp, #0x0 ldrh r0, [r0, #0x2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 @@ -3176,7 +3176,7 @@ FUN_020623F4: ; 0x020623F4 lsl r1, r0, #0x1 ldr r0, _0206245C ; =UNK_020F79EE ldrh r0, [r0, r1] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_0206367C.s b/arm9/asm/unk_0206367C.s index 431828e8..0696b4e4 100644 --- a/arm9/asm/unk_0206367C.s +++ b/arm9/asm/unk_0206367C.s @@ -107,7 +107,7 @@ _02063758: bne _0206377C ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] - bl FUN_020348B4 + bl MapHeader_IsBikeAllowed cmp r0, #0x0 bne _0206377C mov r0, #0x0 @@ -122,7 +122,7 @@ _0206377C: _02063786: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0x0 beq _020637A6 ldr r0, [r5, #0xc] diff --git a/arm9/asm/unk_02063948.s b/arm9/asm/unk_02063948.s index 28b6db5b..854eaedd 100644 --- a/arm9/asm/unk_02063948.s +++ b/arm9/asm/unk_02063948.s @@ -303,7 +303,7 @@ _02063B52: pop {r4, pc} _02063B66: ldr r0, [r4, #0x0] - bl FUN_02034898 + bl MapHeader_IsFlyAllowed cmp r0, #0x0 bne _02063B74 mov r0, #0x1 @@ -1129,7 +1129,7 @@ _020641BE: cmp r0, #0x1 bne _020641D2 ldr r0, [r4, #0x0] - bl FUN_0203487C + bl MapHeader_GetField17_6 cmp r0, #0x1 beq _020641D6 _020641D2: diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 8e89581c..879f7f48 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -2237,7 +2237,7 @@ FUN_0206D9B4: ; 0x0206D9B4 sub sp, #0xb8 add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r6, _0206DC28 ; =UNK_020F8354 add r3, sp, #0x3c mov r2, #0x5 @@ -2247,7 +2247,7 @@ _0206D9C6: sub r2, r2, #0x1 bne _0206D9C6 add r0, sp, #0x3c - bl FUN_0201E66C + bl GX_SetBanks mov r1, #0x6 mov r2, #0x2 mov r0, #0x0 @@ -2323,7 +2323,7 @@ _0206DA26: orr r2, r0 strh r2, [r1, #0x0] add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r6, _0206DC38 ; =UNK_020F8338 add r3, sp, #0x10 ldmia r6!, {r0-r1} @@ -2507,10 +2507,10 @@ _0206DA26: mov r1, #0xa0 add r0, #0x75 strb r1, [r0, #0x0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0206DC44 ; =FUN_0206DD08 add r1, r5, #0x0 bl Main_SetVBlankIntrCB @@ -2532,10 +2532,10 @@ FUN_0206DC48: ; 0x0206DC48 add r4, r0, #0x0 mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0x0 mov r1, #0x1 bl FUN_020178A0 diff --git a/arm9/asm/unk_0206DE24.s b/arm9/asm/unk_0206DE24.s index 41eab63c..0bc45eb2 100644 --- a/arm9/asm/unk_0206DE24.s +++ b/arm9/asm/unk_0206DE24.s @@ -9,8 +9,8 @@ thumb_func_start FUN_0206DE24 FUN_0206DE24: ; 0x0206DE24 push {r3, lr} - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -69,7 +69,7 @@ FUN_0206DE94: ; 0x0206DE94 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0206DF00 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index e09b1ec4..b7b79b0e 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -124,8 +124,8 @@ FUN_0206F3FC: ; 0x0206F3FC add r1, r0, #0x0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #0x1 lsl r0, r0, #0x1a ldr r2, [r0, #0x0] @@ -289,7 +289,7 @@ _0206F564: bne _0206F582 mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _0206F582: ldr r0, _0206F5A8 ; =FUN_0206FB58 add r1, r4, #0x0 @@ -1064,7 +1064,7 @@ _0206FB8A: sub r2, r2, #0x1 bne _0206FB8A add r0, sp, #0x0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .balign 4 @@ -1213,10 +1213,10 @@ FUN_0206FCD4: ; 0x0206FCD4 add r4, r0, #0x0 mov r0, #0x1f mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x13 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0x0 mov r1, #0x5 bl FUN_020178A0 diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s index 93309503..8aac6df0 100644 --- a/arm9/asm/unk_02073710.s +++ b/arm9/asm/unk_02073710.s @@ -129,10 +129,10 @@ FUN_02073710: ; 0x02073710 add r4, r0, #0x0 mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x20 mov r1, #0xc bl FUN_0201C24C diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index d4608a0d..14488621 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -3503,7 +3503,7 @@ FUN_020772CC: ; 0x020772CC ldr r0, [r0, #0x1c] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index ecca3742..a5d7b26d 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -714,8 +714,8 @@ _020772FE: add r1, r0, #0x0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -846,7 +846,7 @@ _020772FE: ldr r0, _020774A8 ; =gMain + 0x60 mov r1, #0x1 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] @@ -1587,7 +1587,7 @@ _02077A0C: ldr r0, _02077A80 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay mov r0, #0x1 add sp, #0x14 pop {r4-r7, pc} @@ -1697,7 +1697,7 @@ _02077B2E: sub r2, r2, #0x1 bne _02077B2E add r0, sp, #0x0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .balign 4 @@ -1855,32 +1855,32 @@ FUN_02077C84: ; 0x02077C84 lsl r1, r4, #0x18 mov r0, #0x1 lsr r1, r1, #0x18 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers lsl r1, r4, #0x18 mov r0, #0x2 lsr r1, r1, #0x18 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers lsl r1, r4, #0x18 mov r0, #0x4 lsr r1, r1, #0x18 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x8 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers lsl r1, r4, #0x18 mov r0, #0x10 lsr r1, r1, #0x18 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers lsl r1, r4, #0x18 mov r0, #0x1 lsr r1, r1, #0x18 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x10 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r4, pc} thumb_func_start FUN_02077CD4 @@ -2875,10 +2875,10 @@ _020784FA: bl FUN_02078530 mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r4-r7, pc} nop diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 3562d2e7..722c8144 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -61,8 +61,8 @@ FUN_02079C7C: ; 0x02079C7C add r1, r0, #0x0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #0x1 lsl r1, r1, #0x1a ldr r0, [r1, #0x0] @@ -157,7 +157,7 @@ FUN_02079C7C: ; 0x02079C7C ldr r0, _02079DB0 ; =FUN_02079F24 add r1, r5, #0x0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r1, #0x0 mov r0, #0x3d add r2, r1, #0x0 @@ -381,7 +381,7 @@ _02079F62: sub r2, r2, #0x1 bne _02079F62 add r0, sp, #0x0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .balign 4 @@ -514,8 +514,8 @@ _0207A088: .word UNK_020FA634 FUN_0207A08C: ; 0x0207A08C push {r4, lr} add r4, r0, #0x0 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers add r0, r4, #0x0 mov r1, #0x5 bl FUN_020178A0 diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s index bf0bb784..ba0e57e6 100644 --- a/arm9/asm/unk_0207C328.s +++ b/arm9/asm/unk_0207C328.s @@ -274,10 +274,10 @@ FUN_0207C328: ; 0x0207C328 add r4, r0, #0x0 mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x20 mov r1, #0x13 bl FUN_0201C24C diff --git a/arm9/asm/unk_0207EF6C.s b/arm9/asm/unk_0207EF6C.s index 0ef763b0..8fcaed0c 100644 --- a/arm9/asm/unk_0207EF6C.s +++ b/arm9/asm/unk_0207EF6C.s @@ -145,7 +145,7 @@ FUN_0207EF6C: ; 0x0207EF6C str r0, [r1, #0x40] mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _0207F004 ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index a299f623..2e98e9cf 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -445,28 +445,28 @@ FUN_02085C08: ; 0x02085C08 add r4, r0, #0x0 mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x4 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x8 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x4 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x8 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s index 4d8fa9a4..3a4017d7 100644 --- a/arm9/asm/unk_02086084.s +++ b/arm9/asm/unk_02086084.s @@ -171,16 +171,16 @@ FUN_020861DC: ; 0x020861DC bl FUN_020223BC mov r0, #0x1 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x3 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x4 mov r1, #0x0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4, #0x8] mov r1, #0x0 bl FUN_02003038 @@ -279,7 +279,7 @@ _020862D6: add r7, r0, #0x0 ldr r0, [r6, #0x1c] ldr r0, [r0, #0x0] - bl FUN_02034824 + bl MapHeader_GetMapSec str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index de7be3b2..7e7745fe 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -97,8 +97,8 @@ UNK_020FD078: ; 0x020FD078 thumb_func_start FUN_02086414 FUN_02086414: ; 0x02086414 push {r3, lr} - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -158,7 +158,7 @@ FUN_02086488: ; 0x02086488 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _020864F4 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] @@ -251,7 +251,7 @@ FUN_0208654C: ; 0x0208654C push {r3-r5, lr} sub sp, #0xa8 add r4, r0, #0x0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _02086650 ; =UNK_020FCEBC add r3, sp, #0x2c mov r2, #0x5 @@ -261,7 +261,7 @@ _0208655C: sub r2, r2, #0x1 bne _0208655C add r0, sp, #0x2c - bl FUN_0201E66C + bl GX_SetBanks mov r1, #0x6 mov r2, #0x2 mov r0, #0x0 @@ -337,11 +337,11 @@ _020865BC: orr r2, r0 strh r2, [r1, #0x0] add r1, r0, #0x0 - bl FUN_0201E6E4 - bl FUN_0201E788 + bl GX_EngineAToggleLayers + bl GX_BothDispOn mov r0, #0x10 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _02086660 ; =UNK_020FCE60 add r3, sp, #0x0 ldmia r5!, {r0-r1} diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index 8cc246e9..2ccd040d 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -850,7 +850,7 @@ _02087636: bl FUN_0200C61C mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] @@ -984,7 +984,7 @@ _0208774C: bne _02087810 mov r0, #0x2 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0x0 mov r1, #0x0 bl FUN_02086F98 @@ -1105,7 +1105,7 @@ _02087844: bl FUN_02086B70 mov r0, #0x2 mov r1, #0x0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] @@ -1232,7 +1232,7 @@ _0208794C: bl FUN_02086F98 mov r0, #0x2 mov r1, #0x1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C644 diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s index e4ce48cf..b4c7a133 100644 --- a/arm9/asm/unk_02089498.s +++ b/arm9/asm/unk_02089498.s @@ -105,8 +105,8 @@ _020894FC: add r0, r6, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -127,7 +127,7 @@ _020894FC: ldr r0, _020895EC ; =FUN_02089610 add r1, r4, #0x0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x6 mov r1, #0x1 str r0, [sp, #0x0] @@ -225,7 +225,7 @@ _02089628: sub r2, r2, #0x1 bne _02089628 add r0, sp, #0x34 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4, #0x0] bl FUN_02016B94 add r3, sp, #0x24 diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s index 575eade7..4502d1f9 100644 --- a/arm9/asm/unk_02089960.s +++ b/arm9/asm/unk_02089960.s @@ -87,8 +87,8 @@ _020899B8: add r0, r4, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -106,7 +106,7 @@ _020899B8: bl FUN_02089A6C add r0, r6, #0x0 bl FUN_02089B80 - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x1 str r0, [r5, #0x0] b _02089A34 @@ -165,7 +165,7 @@ _02089A78: sub r2, r2, #0x1 bne _02089A78 add r0, sp, #0x34 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4, #0x0] bl FUN_02016B94 add r3, sp, #0x24 diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s index b8c341df..92b9e987 100644 --- a/arm9/asm/unk_02089D90.s +++ b/arm9/asm/unk_02089D90.s @@ -43,8 +43,8 @@ FUN_02089D90: ; 0x02089D90 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -61,7 +61,7 @@ FUN_02089D90: ; 0x02089D90 ldr r0, _02089EFC ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r3, _02089F00 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] @@ -77,7 +77,7 @@ FUN_02089D90: ; 0x02089D90 and r0, r1 str r0, [r2, #0x0] ldr r0, _02089F0C ; =UNK_020FF418 - bl FUN_0201E66C + bl GX_SetBanks add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 @@ -157,7 +157,7 @@ FUN_02089D90: ; 0x02089D90 bl AddTextPrinterParameterized add r0, r4, #0x0 bl String_dtor - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s index 5c84eabc..b678254c 100644 --- a/arm9/asm/unk_02089F24.s +++ b/arm9/asm/unk_02089F24.s @@ -47,8 +47,8 @@ FUN_02089F24: ; 0x02089F24 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -65,7 +65,7 @@ FUN_02089F24: ; 0x02089F24 ldr r0, _0208A090 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r3, _0208A094 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] @@ -81,7 +81,7 @@ FUN_02089F24: ; 0x02089F24 and r0, r1 str r0, [r2, #0x0] ldr r0, _0208A0A0 ; =UNK_020FF418 - bl FUN_0201E66C + bl GX_SetBanks add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 @@ -161,7 +161,7 @@ FUN_02089F24: ; 0x02089F24 bl AddTextPrinterParameterized add r0, r4, #0x0 bl String_dtor - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 @@ -216,8 +216,8 @@ _0208A0C8: mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] @@ -234,7 +234,7 @@ _0208A0C8: ldr r0, _0208A230 ; =gMain + 0x60 mov r1, #0x0 strb r1, [r0, #0x5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r3, _0208A234 ; =0x04000050 mov r1, #0x0 strh r1, [r3, #0x0] @@ -250,7 +250,7 @@ _0208A0C8: and r1, r2 str r1, [r0, #0x0] ldr r0, _0208A240 ; =UNK_020FF474 - bl FUN_0201E66C + bl GX_SetBanks add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 @@ -330,7 +330,7 @@ _0208A0C8: bl AddTextPrinterParameterized add r0, r4, #0x0 bl String_dtor - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 diff --git a/arm9/asm/unk_0208A998.s b/arm9/asm/unk_0208A998.s deleted file mode 100644 index 14a02753..00000000 --- a/arm9/asm/unk_0208A998.s +++ /dev/null @@ -1,294 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .rodata - - .global UNK_020FF49C -UNK_020FF49C: ; 0x020FF49C - .byte 0x00, 0x03, 0x03, 0x1A, 0x12, 0x01, 0x23, 0x00 - - .global UNK_020FF4A4 -UNK_020FF4A4: ; 0x020FF4A4 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020FF4AC -UNK_020FF4AC: ; 0x020FF4AC - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020FF4BC -UNK_020FF4BC: ; 0x020FF4BC - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020FF4D8 -UNK_020FF4D8: ; 0x020FF4D8 - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 - - .section .bss - - .global sErrorMessagePrinterLock -sErrorMessagePrinterLock: ; 0x021C8C58 - .space 0x4 - - .text - - thumb_func_start FUN_0208A998 -FUN_0208A998: ; 0x0208A998 - ldr r3, _0208A9AC ; =0x027E0000 - ldr r1, _0208A9B0 ; =0x00003FF8 - mov r0, #0x1 - ldr r2, [r3, r1] - orr r0, r2 - str r0, [r3, r1] - ldr r3, _0208A9B4 ; =MI_WaitDma - mov r0, #0x3 - bx r3 - nop -_0208A9AC: .word 0x027E0000 -_0208A9B0: .word 0x00003FF8 -_0208A9B4: .word MI_WaitDma - - thumb_func_start PrintErrorMessageAndReset -PrintErrorMessageAndReset: ; 0x0208A9B8 - push {r4-r7, lr} - sub sp, #0x24 - ldr r0, _0208ABC8 ; =sErrorMessagePrinterLock - ldr r1, [r0, #0x0] - cmp r1, #0x1 - bne _0208A9C6 - b _0208ABC4 -_0208A9C6: - mov r1, #0x1 - str r1, [r0, #0x0] - mov r0, #0x0 - bl OS_GetInitArenaHi - add r1, r0, #0x0 - mov r0, #0x0 - bl OS_SetArenaHi - mov r0, #0x0 - bl OS_GetInitArenaLo - add r1, r0, #0x0 - mov r0, #0x0 - bl OS_SetArenaLo - mov r1, #0x1 - ldr r0, _0208ABCC ; =UNK_020FF4A4 - add r2, r1, #0x0 - mov r3, #0x0 - bl FUN_020166C8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_0200E3A0 - mov r0, #0x1 - bl OS_DisableIrqMask - ldr r1, _0208ABD0 ; =FUN_0208A998 - mov r0, #0x1 - bl OS_SetIrqFunction - mov r0, #0x1 - bl OS_EnableIrqMask - mov r0, #0x0 - add r1, r0, #0x0 - bl Main_SetVBlankIntrCB - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _0208ABD4 ; =0xFFFFE0FF - and r1, r0 - str r1, [r2, #0x0] - ldr r2, _0208ABD8 ; =0x04001000 - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - mov r0, #0x4 - mov r1, #0x8 - bl FUN_0201669C - ldr r0, _0208ABDC ; =gMain + 0x60 - mov r1, #0x0 - strb r1, [r0, #0x5] - bl FUN_0201E7A0 - ldr r3, _0208ABE0 ; =0x04000050 - mov r0, #0x0 - strh r0, [r3, #0x0] - ldr r2, _0208ABE4 ; =0x04001050 - sub r3, #0x50 - strh r0, [r2, #0x0] - ldr r1, [r3, #0x0] - ldr r0, _0208ABE8 ; =0xFFFF1FFF - sub r2, #0x50 - and r1, r0 - str r1, [r3, #0x0] - ldr r1, [r2, #0x0] - and r0, r1 - str r0, [r2, #0x0] - ldr r0, _0208ABEC ; =UNK_020FF4D8 - bl FUN_0201E66C - mov r0, #0x0 - bl FUN_02016B94 - str r0, [sp, #0x10] - ldr r0, _0208ABF0 ; =UNK_020FF4AC - bl FUN_02016BBC - mov r1, #0x0 - ldr r0, [sp, #0x10] - ldr r2, _0208ABF4 ; =UNK_020FF4BC - add r3, r1, #0x0 - bl FUN_02016C18 - ldr r0, [sp, #0x10] - mov r1, #0x0 - bl FUN_02018744 - mov r1, #0x0 - str r1, [sp, #0x0] - ldr r0, [sp, #0x10] - ldr r2, _0208ABF8 ; =0x000001F7 - mov r3, #0x2 - str r1, [sp, #0x4] - bl FUN_0200CB00 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - bl FUN_02002ED0 - mov r0, #0x0 - mov r1, #0x20 - add r2, r0, #0x0 - add r3, r0, #0x0 - bl FUN_02017F18 - ldr r1, _0208ABFC ; =0x00006C21 - mov r0, #0x0 - bl FUN_02017FE4 - ldr r1, _0208ABFC ; =0x00006C21 - mov r0, #0x4 - bl FUN_02017FE4 - mov r0, #0x1 - mov r1, #0x1a - mov r2, #0xc8 - mov r3, #0x0 - bl NewMsgDataFromNarc - str r0, [sp, #0xc] - mov r0, #0x6 - lsl r0, r0, #0x6 - mov r1, #0x0 - bl String_ctor - add r4, r0, #0x0 - bl FUN_0201BD5C - ldr r0, [sp, #0x10] - ldr r2, _0208AC00 ; =UNK_020FF49C - add r1, sp, #0x14 - bl FUN_02019150 - mov r0, #0xd0 - str r0, [sp, #0x0] - mov r0, #0x90 - mov r2, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x14 - mov r1, #0xf - add r3, r2, #0x0 - bl FUN_020196F4 - ldr r2, _0208ABF8 ; =0x000001F7 - add r0, sp, #0x14 - mov r1, #0x0 - mov r3, #0x2 - bl FUN_0200CCA4 - ldr r0, [sp, #0xc] - mov r1, #0x3 - add r2, r4, #0x0 - bl ReadMsgDataIntoString - mov r1, #0x0 - str r1, [sp, #0x0] - str r1, [sp, #0x4] - add r0, sp, #0x14 - add r2, r4, #0x0 - add r3, r1, #0x0 - str r1, [sp, #0x8] - bl AddTextPrinterParameterized - add r0, r4, #0x0 - bl String_dtor - bl FUN_0201E788 - mov r0, #0x0 - bl FUN_0200E394 - mov r0, #0x1 - bl FUN_0200E394 - mov r0, #0x0 - mov r1, #0x3f - mov r2, #0x3 - bl FUN_0200A274 - bl FUN_02032DAC - mov r4, #0x1 -_0208AB58: - bl HandleDSLidAction - bl FUN_0202FB80 - bl FUN_02033678 - cmp r0, #0x0 - bne _0208AB72 - add r0, r4, #0x0 - add r1, r4, #0x0 - bl OS_WaitIrq - b _0208AB58 -_0208AB72: - ldr r5, _0208AC04 ; =0x04000130 - ldr r4, _0208AC08 ; =0x027FFFA8 - ldr r7, _0208AC0C ; =0x00002FFF - mov r6, #0x1 -_0208AB7A: - bl HandleDSLidAction - ldrh r1, [r5, #0x0] - ldrh r0, [r4, #0x0] - orr r1, r0 - ldr r0, _0208AC0C ; =0x00002FFF - eor r0, r1 - and r0, r7 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - tst r0, r6 - bne _0208AB9C - mov r0, #0x1 - add r1, r0, #0x0 - bl OS_WaitIrq - b _0208AB7A -_0208AB9C: - ldr r1, _0208AC10 ; =0x00007FFF - mov r0, #0x0 - bl FUN_0200E3A0 - ldr r1, _0208AC10 ; =0x00007FFF - mov r0, #0x1 - bl FUN_0200E3A0 - add r0, sp, #0x14 - bl FUN_02019178 - ldr r0, [sp, #0xc] - bl DestroyMsgData - ldr r0, [sp, #0x10] - bl FreeToHeap - mov r0, #0x0 - bl OS_ResetSystem -_0208ABC4: - add sp, #0x24 - pop {r4-r7, pc} - .balign 4 -_0208ABC8: .word sErrorMessagePrinterLock -_0208ABCC: .word UNK_020FF4A4 -_0208ABD0: .word FUN_0208A998 -_0208ABD4: .word 0xFFFFE0FF -_0208ABD8: .word 0x04001000 -_0208ABDC: .word gMain + 0x60 -_0208ABE0: .word 0x04000050 -_0208ABE4: .word 0x04001050 -_0208ABE8: .word 0xFFFF1FFF -_0208ABEC: .word UNK_020FF4D8 -_0208ABF0: .word UNK_020FF4AC -_0208ABF4: .word UNK_020FF4BC -_0208ABF8: .word 0x000001F7 -_0208ABFC: .word 0x00006C21 -_0208AC00: .word UNK_020FF49C -_0208AC04: .word 0x04000130 -_0208AC08: .word 0x027FFFA8 -_0208AC0C: .word 0x00002FFF -_0208AC10: .word 0x00007FFF diff --git a/arm9/global.inc b/arm9/global.inc index 94c754ec..08432a05 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1230,15 +1230,15 @@ .extern FUN_0201E230 .extern FUN_0201E258 .extern FUN_0201E28C -.extern FUN_0201E66C -.extern FUN_0201E6D8 -.extern FUN_0201E6E4 -.extern FUN_0201E720 -.extern FUN_0201E740 -.extern FUN_0201E74C -.extern FUN_0201E788 -.extern FUN_0201E7A0 -.extern FUN_0201E7CC +.extern GX_SetBanks +.extern GX_DisableEngineALayers +.extern GX_EngineAToggleLayers +.extern GX_SetEngineALayers +.extern GX_DisableEngineBLayers +.extern GX_EngineBToggleLayers +.extern GX_BothDispOn +.extern GX_SwapDisplay +.extern GX_GetEngineALayers .extern FUN_0201EABC .extern FUN_0201EB48 .extern FUN_0201EB64 @@ -1353,10 +1353,9 @@ .extern FUN_02020AB0 .extern FUN_02020ACC .extern FUN_02020AE8 -.extern FUN_02020AFC -.extern FUN_02020BF4 -.extern FUN_02020BFC -.extern FUN_02020C14 +.extern GetTimer3Count +.extern Timer3CountToMilliSeconds +.extern Timer3CountToSeconds .extern FUN_02020C44 .extern FUN_02020C90 .extern FUN_02020CB0 @@ -1582,8 +1581,8 @@ .extern FUN_02024EC0 .extern FUN_02024ECC .extern FUN_02024ED8 -.extern FUN_02024EE8 -.extern FUN_02024EF4 +.extern GetRivalNamePtr +.extern RivalsNameToU16Array .extern FUN_02024F0C .extern FUN_02024F18 .extern Options_new @@ -1619,10 +1618,6 @@ .extern FUN_020252E8 .extern FUN_020252F4 .extern FUN_020253E0 -.extern FUN_02025484 -.extern FUN_02025490 -.extern FUN_020254A0 -.extern FUN_020254B4 .extern FUN_020254B8 .extern FUN_020254C0 .extern FUN_020254CC @@ -2495,26 +2490,26 @@ .extern FUN_02034660 .extern FUN_02034678 .extern FUN_020346CC -.extern FUN_02034724 -.extern FUN_02034738 -.extern FUN_0203474C +.extern MapHeader_GetAreaDataBank +.extern MapHeader_GetField1 +.extern MapHeader_GetMatrixId .extern MapHeader_GetMsgBank -.extern MapHeader_GetScrSeqReleaseNo -.extern FUN_0203479C -.extern FUN_020347B0 -.extern FUN_020347C4 -.extern FUN_020347D8 -.extern FUN_020347FC -.extern FUN_02034810 -.extern FUN_02034824 -.extern FUN_02034838 -.extern FUN_0203484C -.extern FUN_02034860 -.extern FUN_0203487C -.extern FUN_02034898 -.extern FUN_020348B4 +.extern MapHeader_GetScriptsBank +.extern MapHeader_GetLevelScriptsBank +.extern MapHeader_GetDayMusicId +.extern MapHeader_GetNightMusicId +.extern MapHeader_HasWildEncounters +.extern MapHeader_GetWildEncounterBank +.extern MapHeader_GetEventsBank +.extern MapHeader_GetMapSec +.extern MapHeader_GetWeatherType +.extern MapHeader_GetCameraType +.extern MapHeader_GetField17_0 +.extern MapHeader_GetField17_6 +.extern MapHeader_IsFlyAllowed +.extern MapHeader_IsBikeAllowed .extern FUN_020348E4 -.extern FUN_02034908 +.extern MapHeader_MapIsOnOverworldMatrix .extern FUN_02034930 .extern FUN_02034944 .extern FUN_02034964 @@ -2702,95 +2697,95 @@ .extern FUN_02039754 .extern RunPokemonCenterScriptsInNewContext .extern FUN_0203989C -.extern ScrCmd_nop -.extern ScrCmd_nop2 -.extern ScrCmd_end -.extern ScrCmd_delay -.extern FUN_02039A10 -.extern ScrCmd_loadbyte -.extern ScrCmd_loadword -.extern ScrCmd_loadbytefromaddr -.extern ScrCmd_writebytetoaddr -.extern ScrCmd_setptrbyte -.extern ScrCmd_copylocal -.extern ScrCmd_copybyte -.extern ScrCmd_compare_local_to_local -.extern ScrCmd_compare_local_to_value -.extern ScrCmd_compare_local_to_addr -.extern ScrCmd_compare_addr_to_local -.extern ScrCmd_compare_addr_to_value -.extern ScrCmd_compare_addr_to_addr -.extern ScrCmd_compare_var_to_value -.extern ScrCmd_compare_var_to_var -.extern FUN_02039C40 -.extern FUN_02039C78 -.extern FUN_02039CE4 -.extern ScrCmd_goto -.extern FUN_02039D10 -.extern FUN_02039D48 -.extern FUN_02039D78 -.extern ScrCmd_call -.extern ScrCmd_return -.extern ScrCmd_goto_if -.extern ScrCmd_call_if -.extern ScrCmd_setflag -.extern ScrCmd_clearflag -.extern ScrCmd_checkflag -.extern FUN_02039E84 -.extern FUN_02039EC0 -.extern ScrCmd_settrainerflag -.extern ScrCmd_cleartrainerflag -.extern ScrCmd_checktrainerflag -.extern ScrCmd_addvar -.extern ScrCmd_subvar -.extern ScrCmd_setvar -.extern ScrCmd_copyvar -.extern ScrCmd_setorcopyvar -.extern ScrCmd_message -.extern ScrCmd_message_from -.extern FUN_0203A098 -.extern FUN_0203A0FC -.extern FUN_0203A13C -.extern FUN_0203A188 -.extern FUN_0203A210 -.extern FUN_0203A288 -.extern FUN_0203A2C4 -.extern FUN_0203A304 -.extern FUN_0203A340 -.extern FUN_0203A388 -.extern FUN_0203A3C4 -.extern FUN_0203A400 -.extern FUN_0203A45C -.extern FUN_0203A484 -.extern FUN_0203A4D0 -.extern FUN_0203A560 -.extern FUN_0203A590 -.extern FUN_0203A5D8 -.extern FUN_0203A608 -.extern FUN_0203A630 -.extern FUN_0203A780 -.extern FUN_0203A830 -.extern FUN_0203A85C -.extern FUN_0203A878 -.extern FUN_0203A8B8 -.extern FUN_0203A9F0 -.extern FUN_0203AA90 -.extern FUN_0203AAA0 -.extern FUN_0203AB44 -.extern FUN_0203AB74 -.extern FUN_0203AB8C -.extern FUN_0203AC14 -.extern FUN_0203AC9C -.extern FUN_0203ACC4 -.extern FUN_0203AD08 -.extern FUN_0203AD54 -.extern FUN_0203ADC4 -.extern FUN_0203AE4C -.extern FUN_0203AED4 -.extern FUN_0203AF34 -.extern FUN_0203AF58 -.extern FUN_0203AF84 -.extern FUN_0203AFA4 +.extern ScrCmd_Nop +.extern ScrCmd_Dummy +.extern ScrCmd_End +.extern ScrCmd_Wait +.extern ScrCmd_DebugWatch +.extern ScrCmd_LoadByte +.extern ScrCmd_LoadWord +.extern ScrCmd_LoadByteFromAddr +.extern ScrCmd_WriteByteToAddr +.extern ScrCmd_SetPtrByte +.extern ScrCmd_CopyLocal +.extern ScrCmd_CopyByte +.extern ScrCmd_CompareLocalToLocal +.extern ScrCmd_CompareLocalToValue +.extern ScrCmd_CompareLocalToAddr +.extern ScrCmd_CompareAddrToLocal +.extern ScrCmd_CompareAddrToValue +.extern ScrCmd_CompareAddrToAddr +.extern ScrCmd_CompareVarToValue +.extern ScrCmd_CompareVarToVar +.extern ScrCmd_RunScript +.extern ScrCmd_RunScriptWait +.extern ScrCmd_RestartCurrentScript +.extern ScrCmd_GoTo +.extern ScrCmd_ObjectGoTo +.extern ScrCmd_BgGoTo +.extern ScrCmd_DirectionGoTo +.extern ScrCmd_Call +.extern ScrCmd_Return +.extern ScrCmd_GoToIf +.extern ScrCmd_CallIf +.extern ScrCmd_SetFlag +.extern ScrCmd_ClearFlag +.extern ScrCmd_CheckFlag +.extern ScrCmd_CheckFlagVar +.extern ScrCmd_SetFlagVar +.extern ScrCmd_SetTrainerFlag +.extern ScrCmd_ClearTrainerFlag +.extern ScrCmd_CheckTrainerFlag +.extern ScrCmd_AddVar +.extern ScrCmd_SubVar +.extern ScrCmd_SetVar +.extern ScrCmd_CopyVar +.extern ScrCmd_SetOrCopyVar +.extern ScrCmd_Message +.extern ScrCmd_MessageFrom +.extern ScrCmd_MessageFrom2 +.extern ScrCmd_Unk01FC +.extern ScrCmd_Unk01FD +.extern ScrCmd_Unk01FE +.extern ScrCmd_Unk01FF +.extern ScrCmd_Unk026D +.extern ScrCmd_Unk002C +.extern ScrCmd_Unk002D +.extern ScrCmd_Unk02C0 +.extern ScrCmd_Unk002E +.extern ScrCmd_Unk020C +.extern ScrCmd_Unk002F +.extern ScrCmd_WaitButtonAB +.extern ScrCmd_WaitButtonABTime +.extern ScrCmd_WaitButton +.extern ScrCmd_Unk0032 +.extern ScrCmd_Unk0033 +.extern ScrCmd_Unk0034 +.extern ScrCmd_Unk0035 +.extern ScrCmd_ScrollBg +.extern ScrCmd_CreateMessageBox +.extern ScrCmd_Unk0037 +.extern ScrCmd_Unk0038 +.extern ScrCmd_Unk0039 +.extern ScrCmd_Unk003A +.extern ScrCmd_Unk003B +.extern ScrCmd_Menu +.extern ScrCmd_YesNoMenu +.extern ScrCmd_ShowSaveClock +.extern ScrCmd_HideSaveClock +.extern ScrCmd_Unk0040 +.extern ScrCmd_Unk0041 +.extern ScrCmd_Unk0042 +.extern ScrCmd_Unk029D +.extern ScrCmd_Unk0043 +.extern ScrCmd_Unk02B9 +.extern ScrCmd_Unk0044 +.extern ScrCmd_Unk0045 +.extern ScrCmd_Unk0046 +.extern ScrCmd_Unk0047 +.extern ScrCmd_Unk0048 +.extern ScrCmd_Unk02CF +.extern ScrCmd_Unk02D0 .extern FUN_0203AFC4 .extern FUN_0203B024 .extern FUN_0203B148 @@ -3160,47 +3155,47 @@ .extern FUN_0204064C .extern FUN_02040660 .extern FUN_020406C0 -.extern FUN_020406CC -.extern FUN_02040700 -.extern FUN_02040724 -.extern FUN_02040748 -.extern FUN_02040790 -.extern FUN_020407C8 -.extern FUN_02040800 -.extern FUN_0204083C -.extern FUN_02040874 -.extern FUN_020408BC -.extern FUN_0204091C -.extern FUN_02040964 -.extern FUN_020409C0 -.extern FUN_020409F8 -.extern FUN_02040A30 -.extern FUN_02040A7C -.extern FUN_02040B0C -.extern FUN_02040B5C -.extern FUN_02040BAC -.extern FUN_02040BFC -.extern FUN_02040C34 -.extern FUN_02040C6C -.extern FUN_02040CA4 -.extern FUN_02040D04 -.extern FUN_02040D7C -.extern FUN_02040DB4 -.extern FUN_02040DEC -.extern FUN_02040E4C -.extern FUN_02040EB4 -.extern FUN_02040EF8 -.extern FUN_02040F34 -.extern FUN_02040F6C -.extern FUN_02040FA4 -.extern FUN_02040FDC -.extern FUN_02041014 -.extern FUN_0204104C -.extern FUN_02041094 -.extern FUN_020410C8 -.extern FUN_02041100 -.extern FUN_02041138 -.extern FUN_02041174 +.extern ScrCmd_GetPlayerName +.extern ScrCmd_GetRivalName +.extern ScrCmd_GetFriendName +.extern ScrCmd_Unk00D0 +.extern ScrCmd_GetItemName +.extern ScrCmd_GetPocketName +.extern ScrCmd_GetTMHMMoveName +.extern ScrCmd_GetMoveName +.extern ScrCmd_Unk00D5 +.extern ScrCmd_Unk0280 +.extern ScrCmd_Unk00D6 +.extern ScrCmd_Unk0251 +.extern ScrCmd_GetPoketchAppName +.extern ScrCmd_GetTrainerClassName +.extern ScrCmd_Unk00D9 +.extern ScrCmd_Unk00DA +.extern ScrCmd_Unk00DB +.extern ScrCmd_Unk00DC +.extern ScrCmd_Unk00DD +.extern ScrCmd_GetDecorationName +.extern ScrCmd_GetUndergroundTrapName +.extern ScrCmd_GetUndergroundItemName +.extern ScrCmd_Unk00E2 +.extern ScrCmd_Unk017B +.extern ScrCmd_GetNatureName +.extern ScrCmd_GetFashionName +.extern ScrCmd_Unk0272 +.extern ScrCmd_GetPokemonMoveName +.extern ScrCmd_Unk0232 +.extern ScrCmd_GetSealName +.extern ScrCmd_GetItemNameWithIndefArticle +.extern ScrCmd_GetItemNamePlural +.extern ScrCmd_GetDecorationNameWithArticle +.extern ScrCmd_GetUndergroundTrapNameWithArticle +.extern ScrCmd_GetUndergroundItemNameWithArticle +.extern ScrCmd_Unk02C9 +.extern ScrCmd_Unk02CA +.extern ScrCmd_GetFashionNameWithArticle +.extern ScrCmd_Unk02CC +.extern ScrCmd_GetSealNamePlural +.extern ScrCmd_CapitalizeFirstChar .extern FUN_02041194 .extern FUN_020411C4 .extern FUN_02041340 @@ -3272,58 +3267,58 @@ .extern FUN_02042A18 .extern FUN_02042A48 .extern FUN_02042A98 -.extern FUN_02042B0C -.extern FUN_02042B40 -.extern FUN_02042B74 -.extern FUN_02042BA8 -.extern FUN_02042BDC -.extern FUN_02042C10 -.extern FUN_02042C44 -.extern FUN_02042C8C -.extern FUN_02042CBC +.extern ScrCmd_Unk017D +.extern ScrCmd_Unk017E +.extern ScrCmd_Unk017F +.extern ScrCmd_Unk0180 +.extern ScrCmd_Unk0181 +.extern ScrCmd_Unk0182 +.extern ScrCmd_Unk0183 +.extern ScrCmd_Unk0184 +.extern ScrCmd_Unk0185 .extern FUN_02042D1C -.extern FUN_0204387C -.extern FUN_020438D0 -.extern FUN_02043918 -.extern FUN_020439B4 -.extern FUN_02043A44 -.extern FUN_02043A94 -.extern FUN_02043AAC -.extern FUN_02043ACC -.extern FUN_02043AFC -.extern FUN_02043B28 -.extern FUN_02043B54 -.extern FUN_02043B84 -.extern FUN_02043BD0 -.extern FUN_02043C28 -.extern FUN_02043C6C -.extern FUN_02043C90 -.extern FUN_02043CB4 -.extern FUN_02043CE4 -.extern FUN_02043D28 -.extern FUN_02043D78 -.extern FUN_02043DC8 -.extern FUN_02043DE0 -.extern FUN_02043E00 -.extern FUN_02043E20 -.extern FUN_02043E50 -.extern FUN_02043E68 -.extern FUN_02043E9C -.extern FUN_02043EFC -.extern FUN_02043F50 -.extern FUN_02043FA0 -.extern FUN_02043FF4 -.extern FUN_02044034 -.extern FUN_020440C0 -.extern FUN_020440F0 -.extern FUN_02044120 -.extern FUN_02044138 -.extern FUN_0204413C -.extern FUN_02044140 +.extern ScrCmd_Unk0253 +.extern ScrCmd_Unk0254 +.extern ScrCmd_Unk0255 +.extern ScrCmd_Unk0256 +.extern ScrCmd_Unk0075 +.extern ScrCmd_Unk0076 +.extern ScrCmd_Unk0077 +.extern ScrCmd_GetCoins +.extern ScrCmd_GiveCoins +.extern ScrCmd_TakeCoinsImmediate +.extern ScrCmd_TakeCoinsAddress +.extern ScrCmd_HasEnoughCoinsImmediate +.extern ScrCmd_HasEnoughCoinsAddress +.extern ScrCmd_CanGiveCoins +.extern ScrCmd_GiveMoney +.extern ScrCmd_TakeMoneyImmediate +.extern ScrCmd_TakeMoneyAddress +.extern ScrCmd_HasEnoughMoneyImmediate +.extern ScrCmd_HasEnoughMoneyAddress +.extern ScrCmd_Unk0072 +.extern ScrCmd_Unk0073 +.extern ScrCmd_Unk0074 +.extern ScrCmd_Unk016D +.extern ScrCmd_Unk016E +.extern ScrCmd_Unk01A8 +.extern ScrCmd_Unk01A9 +.extern ScrCmd_Unk01A4 +.extern ScrCmd_Unk01AA +.extern ScrCmd_Unk01AE +.extern ScrCmd_Unk01AF +.extern ScrCmd_Unk01B0 +.extern ScrCmd_Unk01BC +.extern ScrCmd_Unk01BE +.extern ScrCmd_Unk01BF +.extern ScrCmd_Unk01A5 +.extern ScrCmd_Unk01A6 +.extern ScrCmd_Unk01A7 +.extern ScrCmd_Unk01AD .extern FUN_02044158 .extern FUN_0204416C .extern FUN_02044198 -.extern ScrCmd_givemon +.extern ScrCmd_GiveMon .extern ScrCmd_getpartyspecies .extern ScrCmd_checkpartymonotid .extern ScrCmd_giveegg @@ -3360,12 +3355,12 @@ .extern FUN_02045170 .extern FUN_020451D0 .extern FUN_02045264 -.extern FUN_02045268 -.extern FUN_020452B4 -.extern FUN_02045308 -.extern FUN_02045398 -.extern FUN_0204539C -.extern FUN_020453A0 +.extern ScrCmd_Unk01F1 +.extern ScrCmd_Unk01F4 +.extern ScrCmd_Unk01F5 +.extern ScrCmd_Unk01F2 +.extern ScrCmd_Unk01F3 +.extern ScrCmd_Unk02A6 .extern FUN_020453F4 .extern FUN_02045424 .extern FUN_02045438 @@ -3386,30 +3381,30 @@ .extern FUN_02045678 .extern FUN_020456D4 .extern FUN_0204572C -.extern FUN_02045784 -.extern FUN_020457DC -.extern FUN_02045834 -.extern FUN_0204588C -.extern FUN_020458E4 -.extern FUN_02045918 -.extern FUN_02045950 -.extern FUN_02045954 -.extern FUN_02045958 -.extern FUN_020459AC -.extern FUN_020459E8 -.extern FUN_02045A3C -.extern FUN_02045A78 -.extern FUN_02045ACC -.extern FUN_02045B08 -.extern FUN_02045B44 -.extern FUN_02045B80 -.extern FUN_02045BC8 -.extern FUN_02045C04 -.extern FUN_02045C40 -.extern FUN_02045C7C -.extern FUN_02045CD4 -.extern FUN_02045D10 -.extern FUN_02045D4C +.extern ScrCmd_GiveItem +.extern ScrCmd_TakeItem +.extern ScrCmd_HasSpaceForItem +.extern ScrCmd_HasItem +.extern ScrCmd_ItemIdIsTMOrHM +.extern ScrCmd_GetItemPocketId +.extern ScrCmd_Unk0081 +.extern ScrCmd_Unk0082 +.extern ScrCmd_Unk0083 +.extern ScrCmd_Unk0084 +.extern ScrCmd_Unk0085 +.extern ScrCmd_Unk0086 +.extern ScrCmd_Unk0087 +.extern ScrCmd_Unk0088 +.extern ScrCmd_Unk0089 +.extern ScrCmd_Unk008A +.extern ScrCmd_Unk008B +.extern ScrCmd_Unk008C +.extern ScrCmd_Unk008D +.extern ScrCmd_Unk008E +.extern ScrCmd_Unk008F +.extern ScrCmd_Unk0090 +.extern ScrCmd_Unk0091 +.extern ScrCmd_Unk0092 .extern FUN_02045D88 .extern FUN_02045DD0 .extern FUN_02045E1C @@ -3420,10 +3415,10 @@ .extern FUN_02045F84 .extern FUN_02045F88 .extern FUN_02045FCC -.extern FUN_02046010 -.extern FUN_0204601C -.extern FUN_02046028 -.extern FUN_0204602C +.extern ScrCmd_Unk023F +.extern ScrCmd_Unk0240 +.extern ScrCmd_Unk0241 +.extern ScrCmd_Unk0242 .extern FUN_02046030 .extern SavArray_Flags_sizeof .extern SavArray_Flags_init @@ -4895,8 +4890,8 @@ .extern CopyPlayerParty .extern PartyHasMon .extern SavArray_PlayerParty_get -.extern FUN_0206BB28 -.extern FUN_0206BB34 +.extern SavArray_IsNatDexEnabled +.extern Pokedex_IsNatDexEnabled .extern FUN_0206BB48 .extern FUN_0206BB5C .extern FUN_0206BB74 @@ -5482,7 +5477,6 @@ .extern FUN_0208A330 .extern FUN_0208A334 .extern FUN_0208A338 -.extern PrintErrorMessageAndReset .extern FUN_0208AC14 .extern FUN_0208AC58 .extern FUN_0208ACEC @@ -8522,3 +8516,7 @@ .extern CARDi_InitCommon .extern MonNotFaintedOrEgg .extern CountAlivePokemon +.extern FUN_02025484 +.extern FUN_02025490 +.extern FUN_020254A0 +.extern FUN_020254B4 diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index 24743c4b..e66ad6aa 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -99,7 +99,7 @@ _021D757A: bl FUN_0201B2EC bl MOD05_021D7BA0 bl MOD05_021D7B38 - bl FUN_0201E7A0 + bl GX_SwapDisplay mov r0, #4 bl FUN_02016B94 str r0, [r4, #8] @@ -477,10 +477,10 @@ _021D78CE: ldr r0, [r0, #0xc] bl MOD05_021DC174 add r0, r6, #0 - bl FUN_02034824 + bl MapHeader_GetMapSec add r6, r0, #0 add r0, r4, #0 - bl FUN_02034824 + bl MapHeader_GetMapSec add r1, r0, #0 cmp r6, r1 beq _021D7956 @@ -542,7 +542,7 @@ MOD05_021D79B4: ; 0x021D79B4 add r5, r0, #0 ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 beq _021D79FE ldr r0, [r5, #0xc] @@ -584,7 +584,7 @@ _021D7A0A: sub r2, r2, #1 bne _021D7A0A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .balign 4, 0 @@ -710,7 +710,7 @@ MOD05_021D7B10: ; 0x021D7B10 add r4, r0, #0 mov r0, #0xf mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #1 bl FUN_020178A0 @@ -942,7 +942,7 @@ MOD05_021D7CF0: ; 0x021D7CF0 add r5, r0, #0 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021D7D44 ; =UNK_02105BB8 ldr r0, [r0] lsl r1, r0, #1 @@ -954,13 +954,13 @@ MOD05_021D7CF0: ; 0x021D7CF0 str r0, [r5, #0x50] ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_02034724 + bl MapHeader_GetAreaDataBank ldr r1, [r5, #0x4c] bl MOD05_021F4978 str r0, [r5, #0x2c] ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_02034738 + bl MapHeader_GetField1 add r4, r0, #0 ldr r0, [r5, #0x30] cmp r0, #0 @@ -1097,8 +1097,8 @@ MOD05_021D7E4C: ; 0x021D7E4C add r4, r0, #0 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 - bl FUN_0201E788 + bl GX_EngineAToggleLayers + bl GX_BothDispOn bl MOD05_021DBABC str r0, [r4, #0x40] bl MOD05_021D7B64 diff --git a/arm9/modules/05/asm/mod05_021D80E8.s b/arm9/modules/05/asm/mod05_021D80E8.s index 946b25da..c00cb45f 100644 --- a/arm9/modules/05/asm/mod05_021D80E8.s +++ b/arm9/modules/05/asm/mod05_021D80E8.s @@ -1075,7 +1075,7 @@ _021D8992: _021D8998: ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_020347D8 + bl MapHeader_HasWildEncounters cmp r0, #0 beq _021D89B4 add r0, r4, #0 @@ -1846,7 +1846,7 @@ MOD05_021D8FD0: ; 0x021D8FD0 add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034824 + bl MapHeader_GetMapSec lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r6, #0 @@ -1894,7 +1894,7 @@ MOD05_021D9010: ; 0x021D9010 _021D903E: ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r1, r0, #0 lsl r1, r1, #0x10 add r0, r4, #0 @@ -2216,11 +2216,11 @@ MOD05_021D9290: ; 0x021D9290 beq _021D92DA ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #1 bne _021D931C ldr r0, [sp, #8] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] @@ -2246,11 +2246,11 @@ _021D92DA: beq _021D931C ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #1 bne _021D931C ldr r0, [sp, #8] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index 5e07b24d..ab06fed1 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -32,7 +32,7 @@ _021DC0CC: str r0, [r4, #0x10] mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 pop {r3, r4, r5, pc} @@ -681,7 +681,7 @@ _021DC5A2: strh r0, [r1] mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4] add r0, #8 bl MOD05_021DC4AC @@ -1252,7 +1252,7 @@ _021DCA04: beq _021DCA30 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r2, _021DCA40 ; =0x0400000C mov r1, #3 ldrh r3, [r2] @@ -1336,7 +1336,7 @@ MOD05_021DCA94: ; 0x021DCA94 beq _021DCAD2 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DCB5C ; =0x0400000C mov r2, #3 ldrh r3, [r0] @@ -1436,7 +1436,7 @@ MOD05_021DCB6C: ; 0x021DCB6C beq _021DCBA2 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DCBD4 ; =0x0400000C mov r2, #3 ldrh r3, [r0] @@ -1967,7 +1967,7 @@ MOD05_021DCF68: ; 0x021DCF68 beq _021DD00A mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0xc mov r0, #0x42 lsl r0, r0, #2 @@ -5337,7 +5337,7 @@ _021DE8EE: strh r0, [r1] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DEA68 ; =0x00000F62 mov r1, #1 add sp, #0x10 @@ -5395,7 +5395,7 @@ _021DE9A0: strh r0, [r1] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DEA68 ; =0x00000F62 mov r1, #3 add sp, #0x10 @@ -6061,7 +6061,7 @@ _021DEF00: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF08A _021DEF10: mov r2, #8 @@ -6119,7 +6119,7 @@ _021DEF54: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF08A _021DEF8A: mov r0, #6 @@ -6192,7 +6192,7 @@ _021DF008: mov r0, #4 strh r0, [r5, r1] mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF08A _021DF01E: add r0, r4, #0 @@ -6425,7 +6425,7 @@ _021DF1EC: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF366 _021DF1FC: mov r2, #0xa @@ -6480,7 +6480,7 @@ _021DF240: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF366 _021DF270: mov r1, #6 @@ -6548,7 +6548,7 @@ _021DF2E2: mov r0, #4 strh r0, [r5, r1] mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021DF366 _021DF2F8: add r0, r4, #0 @@ -7339,7 +7339,7 @@ _021DF934: str r1, [r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DFAA0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] @@ -8366,7 +8366,7 @@ _021E0180: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021E02E8 _021E0190: mov r2, #1 @@ -8428,7 +8428,7 @@ _021E01EE: strh r1, [r5, r0] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021E02E8 _021E0212: mov r0, #6 @@ -8479,7 +8479,7 @@ _021E025C: add r1, #0xc8 str r2, [r1] mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021E02E8 _021E027A: add r0, r4, #0 @@ -8918,7 +8918,7 @@ _021E05D4: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E06F0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] @@ -9452,7 +9452,7 @@ _021E0A02: strh r0, [r1] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] @@ -9484,7 +9484,7 @@ _021E0A52: strh r0, [r1] mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] @@ -9562,7 +9562,7 @@ _021E0AF2: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0B94 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] @@ -9587,7 +9587,7 @@ _021E0B34: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0B94 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] @@ -9687,7 +9687,7 @@ _021E0BC6: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0D1C ; =0x00000F62 mov r1, #1 add sp, #0x10 @@ -9738,7 +9738,7 @@ _021E0C6A: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0D1C ; =0x00000F62 mov r1, #3 add sp, #0x10 @@ -9880,7 +9880,7 @@ _021E0D4E: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #1 add sp, #0x10 @@ -9931,7 +9931,7 @@ _021E0DF2: bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #3 add sp, #0x10 @@ -10072,7 +10072,7 @@ _021E0F0A: bne _021E0F98 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 bl MOD05_021E1290 ldr r0, _021E0FA0 ; =0x00000F62 @@ -10083,7 +10083,7 @@ _021E0F0A: _021E0F2C: mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #3 add sp, #8 @@ -10116,7 +10116,7 @@ _021E0F3E: _021E0F70: mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 bl MOD05_021E11EC cmp r0, #1 diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s index 6d69341c..0666b52d 100644 --- a/arm9/modules/05/asm/mod05_021E2E88.s +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -606,7 +606,7 @@ MOD05_021E331C: ; 0x021E331C bne _021E333E ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034824 + bl MapHeader_GetMapSec add r1, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #8] diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index fa3acfc5..27446591 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1058,7 +1058,7 @@ MOD05_021E3C14: ; 0x021E3C14 bl FUN_02016BBC mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r3, _021E3D14 ; =UNK05_021F74AC add r2, sp, #0x38 ldmia r3!, {r0, r1} @@ -1087,7 +1087,7 @@ MOD05_021E3C14: ; 0x021E3C14 bl FUN_02018744 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r3, _021E3D18 ; =UNK05_021F7490 add r2, sp, #0x1c ldmia r3!, {r0, r1} @@ -1116,7 +1116,7 @@ MOD05_021E3C14: ; 0x021E3C14 bl FUN_02018744 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r3, _021E3D1C ; =UNK05_021F7474 add r2, sp, #0 ldmia r3!, {r0, r1} @@ -1145,7 +1145,7 @@ MOD05_021E3C14: ; 0x021E3C14 bl FUN_02018744 mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 bl FUN_0200CAB4 add sp, #0x64 diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s index e3a28a97..7a66cdcb 100644 --- a/arm9/modules/05/asm/mod05_021E8310.s +++ b/arm9/modules/05/asm/mod05_021E8310.s @@ -16,7 +16,7 @@ MOD05_021E8310: ; 0x021E8310 bl Sav2_Pokedex_get add r7, r0, #0 ldr r0, [r6] - bl FUN_02034824 + bl MapHeader_GetMapSec str r0, [r5, #4] add r0, r7, #0 bl Pokedex_GetSinnohDexFlag diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index ad35672e..fe346300 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -286,13 +286,13 @@ MOD05_021E8860: ; 0x021E8860 add r4, r1, #0 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers bl GX_ResetBankForBG mov r0, #4 add r1, r0, #0 @@ -336,7 +336,7 @@ MOD05_021E88C0: ; 0x021E88C0 bl GX_SetBankForBG mov r0, #0xe mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, [r4] mov r0, #4 bl FUN_02016A8C @@ -1511,7 +1511,7 @@ _021E91D4: blt _021E91D4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r7] add r0, r0, #1 str r0, [r7] @@ -1911,7 +1911,7 @@ _021E9536: blt _021E9536 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r6] add r0, r0, #1 str r0, [r6] @@ -2278,7 +2278,7 @@ _021E9844: blt _021E9844 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r7] add r0, r0, #1 str r0, [r7] @@ -2734,7 +2734,7 @@ _021E9C02: blt _021E9C02 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 bl FUN_02018FF4 @@ -3369,7 +3369,7 @@ _021EA110: bl FUN_020200A0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3706,7 +3706,7 @@ _021EA430: blt _021EA430 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 bl FUN_02018FF4 @@ -4287,7 +4287,7 @@ _021EA8B2: bl FUN_02020398 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -4573,7 +4573,7 @@ _021EAB5A: blt _021EAB5A mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r6] add r0, r0, #1 str r0, [r6] @@ -4880,7 +4880,7 @@ _021EADDC: blt _021EADDC mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -5374,7 +5374,7 @@ _021EB18E: bl FUN_02020238 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 bl MOD05_021E4688 str r0, [r4, #4] @@ -5671,13 +5671,13 @@ _021EB484: bne _021EB484 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4] add sp, #0xc add r0, r0, #1 @@ -5849,13 +5849,13 @@ _021EB5E4: bl memset mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4] add sp, #0xc add r0, r0, #1 @@ -6180,7 +6180,7 @@ _021EB86A: bl MOD05_021E35EC mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -6276,7 +6276,7 @@ _021EB8E8: bl FUN_02020238 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r2, #0x11 ldr r1, [r4] add r0, sp, #0x24 @@ -6930,7 +6930,7 @@ _021EBE60: bl FUN_02020064 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -26509,7 +26509,7 @@ MOD05_021F5518: ; 0x021F5518 bl FUN_020178BC mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021F5560 ; =0x00000648 bl FUN_020054C8 add sp, #4 @@ -26721,7 +26721,7 @@ MOD05_021F56B8: ; 0x021F56B8 strh r1, [r0] mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _021F5714 ; =0x0400000C mov r0, #3 ldrh r2, [r1] @@ -26746,7 +26746,7 @@ MOD05_021F56B8: ; 0x021F56B8 bl FUN_02018768 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD05_021F569C add sp, #8 @@ -26766,7 +26766,7 @@ MOD05_021F571C: ; 0x021F571C strh r1, [r0] mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _021F5778 ; =0x0400000E mov r0, #3 ldrh r2, [r1] @@ -26790,7 +26790,7 @@ MOD05_021F571C: ; 0x021F571C bl FUN_02018768 mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD05_021F569C add sp, #8 @@ -26931,7 +26931,7 @@ _021F5856: bl FUN_020178BC mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _021F5980 _021F5872: ldr r0, [r4] @@ -26953,7 +26953,7 @@ _021F5888: strh r0, [r4, #0xa] ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_020347D8 + bl MapHeader_HasWildEncounters cmp r0, #0 beq _021F58D4 mov r0, #0xa @@ -27001,7 +27001,7 @@ _021F58EE: beq _021F5980 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021F5984 ; =0x04000050 mov r1, #0 strh r1, [r0] diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c index 8a31d032..c24a7bd3 100644 --- a/arm9/modules/05/src/mod05_021E72FC.c +++ b/arm9/modules/05/src/mod05_021E72FC.c @@ -2,6 +2,7 @@ #include "mod05_021E72FC.h" #include "heap.h" + extern void FUN_020054C8(u32 param0); extern void FUN_020463CC(u32 param0, void *func, UnkStruct021E7358 *param2); extern u32 FUN_020553A0(u32 param0); @@ -19,7 +20,6 @@ extern void FUN_02055304(u32 param0, u32 param1); extern BOOL FUN_02056B74(u32 param0, u32 param1, u32 param2); extern void FUN_02058418(u32 param0, u32 param1); extern void FUN_020054F0(u32 param0, u32 param1); -extern void FUN_02016A8C(u32 param0, void *param1); THUMB_FUNC BOOL MOD05_021E72FC(u32 param0, u32 param1) { diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 1dd5e52a..d46e003b 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -126,7 +126,7 @@ _0223977A: sub r2, r2, #1 bne _0223977A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -148,7 +148,7 @@ MOD06_02239790: ; 0x02239790 bl FUN_02016BBC mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _022397F0 ; =0x0224F1D8 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -225,7 +225,7 @@ MOD06_02239840: ; 0x02239840 add r4, r1, #0 add r5, r0, #0 add r0, r4, #4 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4] ldr r0, [r0, #8] bl MOD06_02239864 @@ -249,7 +249,7 @@ MOD06_0223986C: ; 0x0223986C bl MOD05_021D7A20 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, pc} thumb_func_start MOD06_0223987C @@ -8668,7 +8668,7 @@ _0223D804: bne _0223D8F4 ldr r0, [r5, #0x1c] ldr r0, [r0] - bl FUN_02034824 + bl MapHeader_GetMapSec cmp r0, #0x65 beq _0223D8F4 ldr r0, [r5, #0x1c] @@ -8949,7 +8949,7 @@ _0223DA88: .word 0x00000241 MOD06_0223DA8C: ; 0x0223DA8C push {r4, lr} add r4, r0, #0 - bl FUN_0201E7CC + bl GX_GetEngineALayers mov r1, #0x8e lsl r1, r1, #2 str r0, [r4, r1] @@ -8988,16 +8988,16 @@ MOD06_0223DA8C: ; 0x0223DA8C bl FUN_020178BC mov r0, #0 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #3 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r4, pc} nop _0223DB10: .word 0x00000235 @@ -9028,7 +9028,7 @@ MOD06_0223DB1C: ; 0x0223DB1C mov r0, #0x8e lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0201E720 + bl GX_SetEngineALayers pop {r4, pc} nop _0223DB58: .word 0x00000235 @@ -10997,7 +10997,7 @@ _0223EBA8: blo _0223EBA8 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, r4, r5, r6, r7, pc} nop _0223EBCC: .word MOD6_0224F370 @@ -27738,7 +27738,7 @@ MOD06_02246F0C: ; 0x02246F0C strh r0, [r2, #4] mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r2, r5, #0 add r0, r4, #0 mov r1, #2 @@ -27771,7 +27771,7 @@ MOD06_02246F0C: ; 0x02246F0C str r0, [r5, r1] mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, r4, r5, pc} .align 2, 0 _02246FB4: .word 0x0400000A @@ -27782,7 +27782,7 @@ MOD06_02246FB8: ; 0x02246FB8 add r4, r0, #0 mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] @@ -27809,7 +27809,7 @@ MOD06_02246FB8: ; 0x02246FB8 bl FUN_02054590 mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r4, pc} nop _02247008: .word 0x04000008 @@ -31270,7 +31270,7 @@ CreateInGameTradeMon: ; 0x022489D4 add r2, r4, #0 bl SetMonData ldr r0, [sp, #0x2c] - bl FUN_02034824 + bl MapHeader_GetMapSec add r3, r0, #0 ldr r0, [sp, #0x28] mov r1, #0 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 1a91192a..3cef2d24 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -110,7 +110,7 @@ _02211F1E: sub r2, r2, #1 bne _02211F1E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -126,8 +126,8 @@ MOD07_02211F34: ; 0x02211F34 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] @@ -1358,7 +1358,7 @@ MOD07_02212968: ; 0x02212968 bne _022129AC mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 lsl r0, r0, #0x1a add r3, r0, #0 @@ -1750,7 +1750,7 @@ MOD07_02212C04: ; 0x02212C04 bl FUN_0200BF60 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop @@ -1966,7 +1966,7 @@ MOD07_02212D98: ; 0x02212D98 bl FUN_02018744 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x64 pop {r4, r5, pc} nop @@ -1981,7 +1981,7 @@ MOD07_02212E64: ; 0x02212E64 add r4, r0, #0 mov r0, #0x1f mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0xc] mov r1, #3 bl FUN_020178A0 @@ -3269,7 +3269,7 @@ MOD07_022138F8: ; 0x022138F8 add r4, r0, #0 mov r0, #0x1e mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0xc] mov r1, #3 bl FUN_020178A0 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index e98eadea..55a90a71 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2143,7 +2143,7 @@ MOD09_02212F5C: ; 0x02212F5C add r4, r0, #0 mov r0, #0x1f mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 bl FUN_020178A0 @@ -8759,7 +8759,7 @@ MOD09_02216734: ; 0x02216734 bl MOD09_02217750 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r4, pc} thumb_func_start MOD09_02216770 @@ -13962,7 +13962,7 @@ MOD09_02219198: ; 0x02219198 add r4, r0, #0 mov r0, #0x17 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 bl FUN_020178A0 @@ -15495,7 +15495,7 @@ MOD09_02219DC8: ; 0x02219DC8 bl MOD09_0221A244 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 30ee9995..32981b60 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -386,7 +386,7 @@ MOD11_0222D88C: ; 0x0222D88C bl MOD11_02258450 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -427,10 +427,10 @@ MOD11_0222D944: ; 0x0222D944 bl FUN_02019178 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 @@ -499,7 +499,7 @@ _0222D99A: orr r2, r0 strh r2, [r1] add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 bl MOD11_02230E44 add r4, r0, #0 @@ -602,13 +602,13 @@ _0222D99A: ldrh r2, [r0] bic r2, r1 strh r2, [r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, _0222DB4C ; =MOD11_0222F01C add r1, r5, #0 bl Main_SetVBlankIntrCB @@ -1420,7 +1420,7 @@ MOD11_0222E264: ; 0x0222E264 sub sp, #0x9c add r5, r0, #0 add r4, r1, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers mov r0, #0 bl FUN_0200E394 mov r0, #1 @@ -1434,7 +1434,7 @@ _0222E282: sub r2, r2, #1 bne _0222E282 add r0, sp, #0x20 - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -1517,7 +1517,7 @@ _0222E2F0: orr r2, r0 strh r2, [r1] add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD11_02258450 add r0, r5, #0 @@ -1622,13 +1622,13 @@ _0222E2F0: ldrh r2, [r0] bic r2, r1 strh r2, [r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, _0222E46C ; =MOD11_0222F01C add r1, r5, #0 bl Main_SetVBlankIntrCB @@ -1706,10 +1706,10 @@ MOD11_0222E4E8: ; 0x0222E4E8 add r4, r0, #0 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #1 bl FUN_020178A0 @@ -2995,7 +2995,7 @@ MOD11_0222EF50: ; 0x0222EF50 push {r3, lr} mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0222EFBC ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -3127,7 +3127,7 @@ _0222F056: sub r2, r2, #1 bne _0222F056 add r0, sp, #0x28 - bl FUN_0201E66C + bl GX_SetBanks _0222F064: ldr r1, _0222F0B8 ; =0x000023FB ldrb r2, [r4, r1] @@ -3146,7 +3146,7 @@ _0222F07A: sub r2, r2, #1 bne _0222F07A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks _0222F088: add r0, r4, #0 add r0, #0x88 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index f04e67da..62996375 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -49,7 +49,7 @@ MOD11_0222F29C: ; 0x0222F29C str r0, [r5, #8] add r0, r5, #0 bl FUN_0206BFF0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r6, _0222F4C8 ; =MOD11_0225DA40 add r3, sp, #0x40 mov r2, #5 @@ -59,7 +59,7 @@ _0222F30E: sub r2, r2, #1 bne _0222F30E add r0, sp, #0x40 - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -165,10 +165,10 @@ _0222F30E: add r2, r1, #0 add r3, r1, #0 bl FUN_02003914 - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -813,7 +813,7 @@ MOD11_0222F93C: ; 0x0222F93C bl FUN_020191A4 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 @@ -25381,7 +25381,7 @@ _0223B916: str r0, [sp, #0xe0] ldr r0, [r4] bl MOD11_022300D0 - bl FUN_0206BB34 + bl Pokedex_IsNatDexEnabled str r0, [sp, #0xe4] bl FUN_0201D658 str r0, [r4, #0x54] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 4f1ef252..f717789a 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -12,8 +12,8 @@ MOD12_0222D5C0: ; 0x0222D5C0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -255,13 +255,13 @@ _0222D7BC: ldr r0, _0222D88C ; =0x00000824 mov r1, #1 strb r1, [r4, r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r1, _0222D890 ; =0x0000046F mov r0, #6 mov r2, #1 @@ -448,10 +448,10 @@ MOD12_0222D9B0: ; 0x0222D9B0 bl FUN_02019178 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 bl FUN_020178A0 @@ -589,7 +589,7 @@ MOD12_0222DB50: ; 0x0222DB50 push {r4, r5, lr} sub sp, #0x8c add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _0222DC70 ; =MOD12_022449E8 add r3, sp, #0x10 mov r2, #5 @@ -599,7 +599,7 @@ _0222DB60: sub r2, r2, #1 bne _0222DB60 add r0, sp, #0x10 - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -706,7 +706,7 @@ _0222DBC0: strh r0, [r1] mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD12_022319A4 add sp, #0x8c @@ -1079,7 +1079,7 @@ MOD12_0222DF30: ; 0x0222DF30 bne _0222DFBE mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x10 pop {r3, r4, r5, pc} _0222DF9A: @@ -3147,8 +3147,8 @@ MOD12_0222EF04: ; 0x0222EF04 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -3357,13 +3357,13 @@ MOD12_0222EF04: ; 0x0222EF04 ldr r0, _0222F188 ; =0x000004F8 mov r1, #1 strb r1, [r5, r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 bl FUN_0200415C ldr r1, _0222F18C ; =0x0000046F @@ -3604,10 +3604,10 @@ MOD12_0222F324: ; 0x0222F324 bl FUN_02019178 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 bl FUN_020178A0 @@ -3818,7 +3818,7 @@ MOD12_0222F548: ; 0x0222F548 push {r3, r4, r5, lr} sub sp, #0xa8 add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _0222F6A0 ; =MOD12_02244B1C add r3, sp, #0x2c mov r2, #5 @@ -3828,7 +3828,7 @@ _0222F558: sub r2, r2, #1 bne _0222F558 add r0, sp, #0x2c - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -3934,7 +3934,7 @@ _0222F5B8: orr r2, r0 strh r2, [r1] add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _0222F6B0 ; =MOD12_02244AE0 add r3, sp, #0 ldmia r5!, {r0, r1} @@ -4987,8 +4987,8 @@ MOD12_0222FE4C: ; 0x0222FE4C add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -5219,13 +5219,13 @@ MOD12_0222FE4C: ; 0x0222FE4C ldr r0, _02230110 ; =0x00001154 mov r1, #1 strb r1, [r5, r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r1, _02230114 ; =0x0000046F mov r0, #6 mov r2, #1 @@ -5442,10 +5442,10 @@ _02230296: blt _02230296 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x74] mov r1, #1 bl FUN_020178A0 @@ -5764,7 +5764,7 @@ MOD12_02230574: ; 0x02230574 push {r4, r5, lr} sub sp, #0x8c add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _02230694 ; =MOD12_02244C38 add r3, sp, #0x10 mov r2, #5 @@ -5774,7 +5774,7 @@ _02230584: sub r2, r2, #1 bne _02230584 add r0, sp, #0x10 - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -5881,7 +5881,7 @@ _022305E4: strh r0, [r1] mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD12_0223B41C add sp, #0x8c @@ -7479,7 +7479,7 @@ MOD12_022312F4: ; 0x022312F4 push {r3, lr} mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _02231360 ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -41074,8 +41074,8 @@ MOD12_02241210: ; 0x02241210 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -41276,13 +41276,13 @@ MOD12_02241210: ; 0x02241210 mov r1, #1 lsl r0, r0, #4 strb r1, [r5, r0] - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r1, _0224147C ; =0x0000046F mov r0, #6 mov r2, #1 @@ -41479,10 +41479,10 @@ _022415D4: blt _022415D4 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x30] mov r1, #1 bl FUN_020178A0 @@ -41754,7 +41754,7 @@ MOD12_02241864: ; 0x02241864 push {r3, r4, r5, lr} sub sp, #0xa8 add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _022419BC ; =MOD12_0224656C add r3, sp, #0x2c mov r2, #5 @@ -41764,7 +41764,7 @@ _02241874: sub r2, r2, #1 bne _02241874 add r0, sp, #0x2c - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -41870,7 +41870,7 @@ _022418D4: orr r2, r0 strh r2, [r1] add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _022419CC ; =MOD12_02246530 add r3, sp, #0 ldmia r5!, {r0, r1} diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 824cb507..37a18d6d 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -1925,7 +1925,7 @@ _021D84AA: str r1, [r4, r0] sub r0, #0x38 ldr r0, [r4, r0] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled mov r1, #0x52 lsl r1, r1, #2 str r0, [r4, r1] @@ -9205,7 +9205,7 @@ MOD14_021DBEAC: ; 0x021DBEAC mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r6, r0] - bl FUN_0206BB28 + bl SavArray_IsNatDexEnabled ldrh r1, [r4, #4] bl FUN_0206BB48 strh r0, [r4, #8] @@ -10495,8 +10495,8 @@ _021DC79C: mov r5, #1 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -12835,7 +12835,7 @@ MOD14_021DDA38: ; 0x021DDA38 add r5, r0, #0 ldr r0, _021DDB20 ; =MOD14_021E63A4 add r4, r1, #0 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _021DDB24 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -13061,10 +13061,10 @@ _021DDBF2: _021DDC48: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers bl GX_DispOn add sp, #0x10 pop {r3, r4, r5, pc} @@ -13083,7 +13083,7 @@ MOD14_021DDC78: ; 0x021DDC78 bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021DDCDC ; =0x04000008 mov r1, #3 ldrh r2, [r0] diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index f7f9881d..560be120 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2817,8 +2817,8 @@ MOD15_021D8998: ; 0x021D8998 MOD15_021D89C0: ; 0x021D89C0 push {r3, r4, r5, lr} add r4, r1, #0 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] @@ -2903,10 +2903,10 @@ MOD15_021D89C0: ; 0x021D89C0 bl MOD15_021DAEB4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers bl GX_DispOn add r0, r4, #0 bl MOD15_021D8998 @@ -3110,7 +3110,7 @@ MOD15_021D8C30: ; 0x021D8C30 add r2, r0, #0 bl GX_SetGraphicsMode ldr r0, _021D8C98 ; =0x021DB964 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, _021D8C9C ; =0x021DB8C8 bl FUN_02016BBC mov r1, #0 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index cfff4a29..26ae4fbf 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -1984,7 +1984,7 @@ _021D840E: sub r2, r2, #1 bne _021D840E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -2207,10 +2207,10 @@ MOD16_021D8534: ; 0x021D8534 str r0, [r5, r1] mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r5, r0] @@ -3372,7 +3372,7 @@ MOD16_021D8DC0: ; 0x021D8DC0 bl FUN_020178BC mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r6, _021D8F1C ; =0x021FF4D8 add r3, sp, #0x54 ldmia r6!, {r0, r1} @@ -25839,7 +25839,7 @@ _021E3288: _021E329E: mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021E32D0 ; =0x00000804 ldr r0, [r5, r0] bl FreeToHeap @@ -27619,7 +27619,7 @@ MOD16_021E4094: ; 0x021E4094 add r0, r0, #4 str r1, [r6, r0] mov r0, #2 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] @@ -27658,7 +27658,7 @@ MOD16_021E40D4: ; 0x021E40D4 bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] @@ -27725,7 +27725,7 @@ _021E4158: _021E4162: mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x81 add r1, r4, #0 lsl r0, r0, #4 @@ -27773,7 +27773,7 @@ _021E417E: bne _021E41CC mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r3, r4, r5, r6, r7, pc} _021E41CC: add r0, r5, #0 @@ -51397,7 +51397,7 @@ MOD16_021EF218: ; 0x021EF218 bl FUN_020178BC mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 mov r1, #0 bl FUN_020178A0 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 3615681b..82398e6b 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -414,7 +414,7 @@ MOD17_021D7794: ; 0x021D7794 ldr r0, _021D77B0 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay pop {r3, pc} nop _021D77B0: .word gMain + 0x60 @@ -426,7 +426,7 @@ MOD17_021D77B4: ; 0x021D77B4 ldr r0, _021D77D0 ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay bl MOD17_021D7E0C bl MOD17_021D7E00 bl GX_ResetBankForTex @@ -1163,7 +1163,7 @@ _021D7D12: sub r2, r2, #1 bne _021D7D12 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1177,7 +1177,7 @@ MOD17_021D7D28: ; 0x021D7D28 bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021D7D9C ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -1254,14 +1254,14 @@ MOD17_021D7DB0: ; 0x021D7DB0 orr r0, r1 str r0, [r2] bl FUN_020B0FC0 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #0x1f mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x13 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -1280,8 +1280,8 @@ MOD17_021D7E00: ; 0x021D7E00 thumb_func_start MOD17_021D7E0C MOD17_021D7E0C: ; 0x021D7E0C push {r3, lr} - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers bl FUN_020B0FC0 pop {r3, pc} thumb_func_end MOD17_021D7E0C @@ -4497,19 +4497,19 @@ MOD17_021D9778: ; 0x021D9778 bic r2, r3 strh r2, [r1, #6] mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0 bl FUN_0200E394 pop {r4, pc} @@ -4535,16 +4535,16 @@ MOD17_021D9800: ; 0x021D9800 bl FUN_0201FD98 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers pop {r4, pc} thumb_func_end MOD17_021D9800 @@ -13824,7 +13824,7 @@ _021DDBBC: ldr r0, _021DDC2C ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay add r0, r4, #0 add r0, #0x14 mov r1, #0xe diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 233dbc05..d0f6db33 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -1467,7 +1467,7 @@ _0223A194: sub r2, r2, #1 bne _0223A194 add r0, sp, #0x80 - bl FUN_0201E66C + bl GX_SetBanks ldr r5, _0223A2A8 ; =0x02250000 add r3, sp, #0x70 add r2, r3, #0 @@ -1733,16 +1733,16 @@ MOD18_0223A3D4: ; 0x0223A3D4 bl MOD18_022396A0 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r2, #5 mov r0, #3 mov r1, #0x1d @@ -2128,16 +2128,16 @@ _0223A73A: bl FUN_0200E1D0 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4] add sp, #0xc add r0, r0, #1 @@ -6124,10 +6124,10 @@ _0223C634: blt _0223C57A mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x64 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -14393,7 +14393,7 @@ _022404A4: bl FUN_020178BC mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 bl FUN_0204F774 ldr r0, _022404EC ; =0x022513A0 @@ -14652,7 +14652,7 @@ _02240672: ; jump table _0224068C: mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers bl MOD18_022400A0 str r0, [r4, #4] ldr r0, [r4] @@ -14793,7 +14793,7 @@ _0224079E: bl FUN_0200A208 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #7 str r0, [r4] bl MOD18_0223D638 @@ -17110,10 +17110,10 @@ _0224195E: _022419BE: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} nop @@ -18293,10 +18293,10 @@ _0224227A: _02242308: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -18857,10 +18857,10 @@ _02242704: blt _02242704 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} nop @@ -20398,10 +20398,10 @@ MOD18_022432B4: ; 0x022432B4 bl FUN_02020238 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {pc} nop @@ -21585,10 +21585,10 @@ _02243CBE: blt _02243C60 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} nop @@ -22580,7 +22580,7 @@ _02244460: blt _02244460 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4] add sp, #0x60 add r0, r0, #1 @@ -22594,16 +22594,16 @@ _022444A4: _022444AC: mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 bl FUN_02017FE4 @@ -23101,7 +23101,7 @@ MOD18_0224486C: ; 0x0224486C bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r6, _02244990 ; =0x02250498 add r3, sp, #0x2c ldmia r6!, {r0, r1} @@ -23119,7 +23119,7 @@ MOD18_0224486C: ; 0x0224486C bl FUN_02016C18 mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r6, _02244994 ; =0x0225047C add r3, sp, #0x10 ldmia r6!, {r0, r1} @@ -23137,7 +23137,7 @@ MOD18_0224486C: ; 0x0224486C bl FUN_02016C18 mov r0, #8 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r5, #0 mov r1, #7 bl FUN_02018744 @@ -32427,7 +32427,7 @@ _02249184: str r2, [r0, r1] mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0xb4 pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index a42eeb6f..67f4c29a 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -1560,10 +1560,10 @@ MOD20_02252ED0: ; 0x02252ED0 mov r0, #0x10 orr r0, r1 str r0, [r2] - bl FUN_0201E740 + bl GX_DisableEngineBLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s index ef079cdb..e58e406b 100644 --- a/arm9/modules/22/asm/module_22.s +++ b/arm9/modules/22/asm/module_22.s @@ -657,7 +657,7 @@ MOD22_02254D00: ; 0x02254D00 eor r0, r3 orr r0, r1 beq _02254D32 - bl FUN_02020BF4 + bl GetTimer3Count add r5, r4, #0 add r5, #0xc ldr r7, [r4, #0x14] @@ -672,7 +672,7 @@ MOD22_02254D00: ; 0x02254D00 str r3, [r5, #4] b _02254D3A _02254D32: - bl FUN_02020BF4 + bl GetTimer3Count str r0, [r4, #0xc] str r1, [r4, #0x10] _02254D3A: @@ -687,7 +687,7 @@ _02254D3A: MOD22_02254D44: ; 0x02254D44 push {r4, lr} add r4, r0, #0 - bl FUN_02020BF4 + bl GetTimer3Count str r0, [r4, #0x14] str r1, [r4, #0x18] mov r0, #0 @@ -706,12 +706,12 @@ MOD22_02254D58: ; 0x02254D58 bne _02254D66 b _02254E7C _02254D66: - bl FUN_02020BF4 + bl GetTimer3Count ldr r3, [r5, #0xc] ldr r2, [r5, #0x10] sub r0, r0, r3 sbc r1, r2 - bl FUN_02020BFC + bl Timer3CountToMilliSeconds ldr r2, _02254E80 ; =0x04000280 mov r3, #1 strh r3, [r2] diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s index a60736df..637c100f 100644 --- a/arm9/modules/41/asm/module_41.s +++ b/arm9/modules/41/asm/module_41.s @@ -1046,7 +1046,7 @@ MOD41_0225504C: ; 0x0225504C add r5, r0, #0 add r4, r5, #0 add r4, #0x48 - bl FUN_02020BF4 + bl GetTimer3Count str r0, [r5, #0x68] str r1, [r5, #0x6c] mov r2, #0 @@ -1105,7 +1105,7 @@ MOD41_022550BC: ; 0x022550BC mov r1, #0 add r0, #0x88 str r1, [r0] - bl FUN_02020BF4 + bl GetTimer3Count str r0, [r4, #0x70] str r1, [r4, #0x74] pop {r4, pc} @@ -1115,7 +1115,7 @@ MOD41_022550BC: ; 0x022550BC MOD41_022550D0: ; 0x022550D0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 - bl FUN_02020BF4 + bl GetTimer3Count add r5, r4, #0 add r5, #0x68 ldr r7, [r4, #0x70] @@ -1155,12 +1155,12 @@ MOD41_02255108: ; 0x02255108 ldr r0, [r0] cmp r0, #0 beq _0225516A - bl FUN_02020BF4 + bl GetTimer3Count ldr r3, [r4, #0x68] ldr r2, [r4, #0x6c] sub r0, r0, r3 sbc r1, r2 - bl FUN_02020C14 + bl Timer3CountToSeconds add r5, r0, #0 add r0, r4, #0 add r0, #0x80 diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index 8e41c6cc..5bbfa2ba 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -139,7 +139,7 @@ _02254932: add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 beq _02254984 ldr r0, [r4, #0x1c] @@ -527,7 +527,7 @@ MOD42_02254C04: ; 0x02254C04 add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 beq _02254C3C ldr r1, [r4, #0x1c] diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index 8efadd9b..89b23259 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -62,7 +62,7 @@ MOD43_0225489C: ; 0x0225489C add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 beq _022548E0 ldr r0, [r4, #0x1c] @@ -395,7 +395,7 @@ MOD43_02254AF8: ; 0x02254AF8 add r7, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] - bl FUN_02034908 + bl MapHeader_MapIsOnOverworldMatrix cmp r0, #0 beq _02254B36 ldr r1, [r4, #0x1c] diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s index 848caed1..60bdd016 100644 --- a/arm9/modules/51/asm/module_51.s +++ b/arm9/modules/51/asm/module_51.s @@ -49,19 +49,19 @@ _0225487A: bl MOD51_02254944 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 bl MOD51_0225571C ldr r0, [r4] @@ -409,7 +409,7 @@ MOD51_02254B54: ; 0x02254B54 bl FUN_02018744 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r5, _02254C74 ; =0x0225578C add r3, sp, #0x48 ldmia r5!, {r0, r1} @@ -430,7 +430,7 @@ MOD51_02254B54: ; 0x02254B54 bl FUN_02018744 mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r5, _02254C78 ; =0x022557C4 add r3, sp, #0x2c ldmia r5!, {r0, r1} @@ -451,7 +451,7 @@ MOD51_02254B54: ; 0x02254B54 bl FUN_02018744 mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r5, _02254C7C ; =0x02255754 add r3, sp, #0x10 ldmia r5!, {r0, r1} @@ -469,7 +469,7 @@ MOD51_02254B54: ; 0x02254B54 bl FUN_02016C18 mov r0, #8 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x60 mov r1, #0 str r0, [sp] diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s deleted file mode 100644 index 22824930..00000000 --- a/arm9/modules/52/asm/module_52.s +++ /dev/null @@ -1,293 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 4, 0 - - thumb_func_start MOD52_021D74E0 -MOD52_021D74E0: ; 0x021D74E0 - push {r3, lr} - mov r2, #2 - mov r0, #3 - mov r1, #0x4d - lsl r2, r2, #0x10 - bl FUN_0201681C - bl InitializeMainRNG - mov r0, #1 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD52_021D74E0 - - thumb_func_start MOD52_021D74F8 -MOD52_021D74F8: ; 0x021D74F8 - push {r3, lr} - bl OverlayManager_GetField18 - ldr r1, [r0, #8] - mov r0, #0x4d - bl MOD52_021D769C - mov r0, #1 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD52_021D74F8 - - thumb_func_start MOD52_021D750C -MOD52_021D750C: ; 0x021D750C - push {r3, lr} - mov r0, #0x4d - bl FUN_020168D0 - mov r0, #0 - ldr r1, _021D7524 ; =UNK_020FD144 - mvn r0, r0 - bl RegisterMainOverlay - mov r0, #1 - pop {r3, pc} - nop -_021D7524: .word UNK_020FD144 - thumb_func_end MOD52_021D750C - - thumb_func_start MOD52_021D7528 -MOD52_021D7528: ; 0x021D7528 - push {r3, lr} - mov r2, #2 - mov r0, #3 - mov r1, #0x4d - lsl r2, r2, #0x10 - bl FUN_0201681C - bl InitializeMainRNG - mov r0, #1 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD52_021D7528 - - thumb_func_start MOD52_021D7540 -MOD52_021D7540: ; 0x021D7540 - push {r4, lr} - bl OverlayManager_GetField18 - ldr r4, [r0, #8] - mov r0, #0x4d - add r1, r4, #0 - mov r2, #1 - bl MOD52_021D7604 - add r0, r4, #0 - bl Sav2_PlayerData_GetIGTAddr - bl FUN_02015E3C - mov r0, #1 - pop {r4, pc} - thumb_func_end MOD52_021D7540 - - thumb_func_start MOD52_021D7560 -MOD52_021D7560: ; 0x021D7560 - push {r3, lr} - mov r0, #0x4d - bl FUN_020168D0 - mov r0, #0 - ldr r1, _021D7578 ; =UNK_020F2B7C - mvn r0, r0 - bl RegisterMainOverlay - mov r0, #1 - pop {r3, pc} - nop -_021D7578: .word UNK_020F2B7C - thumb_func_end MOD52_021D7560 - - thumb_func_start MOD52_021D757C -MOD52_021D757C: ; 0x021D757C - push {r3, lr} - mov r2, #2 - mov r0, #3 - mov r1, #0x4d - lsl r2, r2, #0x10 - bl FUN_0201681C - bl InitializeMainRNG - mov r0, #1 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD52_021D757C - - thumb_func_start MOD52_021D7594 -MOD52_021D7594: ; 0x021D7594 - push {r3, r4, r5, lr} - bl OverlayManager_GetField18 - ldr r4, [r0, #8] - add r0, r4, #0 - bl Sav2_SysInfo_get - add r5, r0, #0 - mov r0, #0x4d - add r1, r4, #0 - bl MOD52_021D7688 - add r0, r4, #0 - mov r1, #0 - bl Options_SetButtonModeOnMain - add r0, r5, #0 - bl Sav2_SysInfo_MacAddressIsMine - cmp r0, #0 - beq _021D75C8 - add r0, r5, #0 - bl Sav2_SysInfo_RTCOffsetIsMine - cmp r0, #0 - bne _021D75D8 -_021D75C8: - add r0, r4, #0 - bl Sav2_SysInfo_RTC_get - bl FUN_020238A4 - add r0, r5, #0 - bl Sav2_SysInfo_InitFromSystem -_021D75D8: - add r0, r4, #0 - bl Sav2_PlayerData_GetIGTAddr - bl FUN_02015E3C - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD52_021D7594 - - thumb_func_start MOD52_021D75E8 -MOD52_021D75E8: ; 0x021D75E8 - push {r3, lr} - mov r0, #0x4d - bl FUN_020168D0 - mov r0, #0 - ldr r1, _021D7600 ; =UNK_020F2B8C - mvn r0, r0 - bl RegisterMainOverlay - mov r0, #1 - pop {r3, pc} - nop -_021D7600: .word UNK_020F2B8C - thumb_func_end MOD52_021D75E8 - - thumb_func_start MOD52_021D7604 -MOD52_021D7604: ; 0x021D7604 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - str r0, [sp] - add r0, r5, #0 - add r6, r2, #0 - bl Sav2_SysInfo_get - bl Sav2_SysInfo_InitFromSystem - add r0, r5, #0 - bl Sav2_SysInfo_RTC_get - bl Sav2_SysInfo_RTC_init - add r0, r5, #0 - bl FUN_0202881C - add r4, r0, #0 - bl MTRandom - add r2, r0, #0 - add r0, r4, #0 - mov r1, #1 - bl FUN_02028788 - add r0, r5, #0 - bl FUN_0206007C - add r0, r5, #0 - bl Sav2_PlayerData_GetProfileAddr - add r4, r0, #0 - bl MTRandom - add r7, r0, #0 - cmp r6, #0 - beq _021D7656 - add r0, r4, #0 - add r1, r7, #0 - bl PlayerProfile_SetTrainerID -_021D7656: - add r0, r4, #0 - bl PlayerProfile_GetTrainerGender - add r1, r0, #0 - add r0, r7, #0 - mov r2, #0 - bl FUN_02053678 - add r1, r0, #0 - lsl r1, r1, #0x18 - add r0, r4, #0 - lsr r1, r1, #0x18 - bl PlayerProfile_SetAvatar - add r0, r5, #0 - bl FUN_02024ECC - ldr r1, [sp] - ldr r2, _021D7684 ; =0x021D76F8 - mov r3, #0x76 - bl FUN_020250C4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_021D7684: .word MOD52_021D76F8 - thumb_func_end MOD52_021D7604 - - thumb_func_start MOD52_021D7688 -MOD52_021D7688: ; 0x021D7688 - push {r3, lr} - add r0, r1, #0 - bl FUN_020226FC - cmp r0, #0 - bne _021D769A - mov r0, #0 - bl OS_ResetSystem -_021D769A: - pop {r3, pc} - thumb_func_end MOD52_021D7688 - - thumb_func_start MOD52_021D769C -MOD52_021D769C: ; 0x021D769C - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl Sav2_InitDynamicRegion - add r0, r4, #0 - bl FUN_020377E0 - add r0, r4, #0 - bl Sav2_PlayerData_GetProfileAddr - ldr r1, _021D76C4 ; =0x00000BB8 - bl PlayerProfile_SetMoney - add r0, r4, #0 - bl SavArray_Flags_get - bl FUN_0205ECD4 - pop {r4, pc} - .align 2, 0 -_021D76C4: .word 0x00000BB8 - thumb_func_end MOD52_021D769C - - .rodata - .global MOD52_021D76C8 -MOD52_021D76C8: ; 0x021D76C8 - .word MOD52_021D757C, MOD52_021D7594, MOD52_021D75E8, 0xFFFFFFFF - - .global MOD52_021D76D8 -MOD52_021D76D8: ; 0x021D76D8 - .word MOD52_021D7528, MOD52_021D7540, MOD52_021D7560, 0xFFFFFFFF - - .global MOD52_021D76E8 -MOD52_021D76E8: ; 0x021D76E8 - .word MOD52_021D74E0, MOD52_021D74F8, MOD52_021D750C, 0xFFFFFFFF - - .global MOD52_021D76F8 -MOD52_021D76F8: ; 0x021D76F8 - .byte 0x9B, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00 - .byte 0x9B, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00 - .byte 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x02, 0x00, 0x9E, 0x00, 0x01, 0x00, 0xA7, 0x00, 0x02, 0x00 - .byte 0xA7, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00 - .byte 0x9B, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00 - .byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00 - .byte 0x9B, 0x00, 0x01, 0x00, 0xA5, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x02, 0x00, 0xA4, 0x00, 0x02, 0x00 - .byte 0xA5, 0x00, 0x02, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00 - .byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00 - .byte 0xA6, 0x00, 0x01, 0x00, 0x9F, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00 - .byte 0xA4, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00 - .byte 0xA0, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00 - .byte 0xA3, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00 - .byte 0xAE, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00 - .byte 0xA8, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00 - .byte 0xA6, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0xA3, 0x00, 0x01, 0x00 - .byte 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00 - .byte 0x96, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0x97, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00 - .byte 0xA0, 0x00, 0x01, 0x00, 0xA1, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00 - .byte 0x9F, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00 - .byte 0xA1, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xA0, 0x00, 0x02, 0x00, 0xA1, 0x00, 0x02, 0x00 - .byte 0xA2, 0x00, 0x02, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x03, 0x00 - .byte 0xA6, 0x00, 0x03, 0x00, 0xA7, 0x00, 0x03, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00 - .byte 0xAC, 0x00, 0x02, 0x00, 0xAC, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0xAA, 0x00, 0x01, 0x00 - .byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00 - .byte 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00 - .byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00 - .byte 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x9A, 0x00, 0x01, 0x00 - .byte 0xAB, 0x00, 0x02, 0x00, 0xAD, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00 - .byte 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00 - - .data - .bss diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h new file mode 100644 index 00000000..4c47a82d --- /dev/null +++ b/arm9/modules/52/include/module_52.h @@ -0,0 +1,42 @@ +#ifndef POKEDIAMOND_MODULE_52_H +#define POKEDIAMOND_MODULE_52_H + +#include "global.h" +#include "event_data.h" +#include "main.h" +#include "math_util.h" +#include "options.h" +#include "overlay_manager.h" +#include "player_data.h" +#include "sav_system_info.h" +#include "save_block_2.h" +#include "unk_02024E64.h" +#include "unk_020286F8.h" + +const u8 MOD52_021D76F8[]; + +THUMB_FUNC int MOD52_021D74E0(); +THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0); +THUMB_FUNC int MOD52_021D750C(); + +THUMB_FUNC int MOD52_021D7528(); +THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0); +THUMB_FUNC int MOD52_021D7560(); + +THUMB_FUNC int MOD52_021D757C(); +THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0); +THUMB_FUNC int MOD52_021D75E8(); + +THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid); +THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2); +THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2); + +struct MOD52_Struct +{ + int (*func1)(void); + int (*func2)(struct UnkStruct_02006234 *param0); + int (*func3)(void); + u32 terminator; +}; + +#endif // POKEDIAMOND_MODULE_52_H
\ No newline at end of file diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c new file mode 100644 index 00000000..1f74c77f --- /dev/null +++ b/arm9/modules/52/src/module_52.c @@ -0,0 +1,647 @@ +#include "module_52.h" +#include "heap.h" +#include "unk_0205FA2C.h" + + +extern struct Unk21DBE18 UNK_020FD144; +extern struct Unk21DBE18 UNK_020F2B7C; +extern struct Unk21DBE18 UNK_020F2B8C; + +extern void FUN_02015E3C(struct IGT *igt); +extern int FUN_02053678(u32 random, u32 gender, u32 param2); +extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3); +extern void FUN_020377E0(struct SaveBlock2 *sav2); +extern void FUN_0205ECD4(struct ScriptState *script_state); + +THUMB_FUNC int MOD52_021D74E0() +{ + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0) +{ + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + MOD52_021D769C(0x4d, sav2); + + return 1; +} + +THUMB_FUNC int MOD52_021D750C() +{ + FUN_020168D0(0x4d); + RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144); + + return 1; +} + +THUMB_FUNC int MOD52_021D7528() +{ + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0) +{ + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + MOD52_021D7604(0x4d, sav2, 1); + struct IGT *igt = Sav2_PlayerData_GetIGTAddr(sav2); + FUN_02015E3C(igt); + + return 1; +} + +THUMB_FUNC int MOD52_021D7560() +{ + FUN_020168D0(0x4d); + RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C); + + return 1; +} + +THUMB_FUNC int MOD52_021D757C() +{ + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0) +{ + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2); + + MOD52_021D7688(0x4d, sav2); + Options_SetButtonModeOnMain(sav2, 0); + + if (!Sav2_SysInfo_MacAddressIsMine(sav2_info) || !Sav2_SysInfo_RTCOffsetIsMine(sav2_info)) + { + FUN_020238A4(Sav2_SysInfo_RTC_get(sav2)); + Sav2_SysInfo_InitFromSystem(sav2_info); + } + + FUN_02015E3C(Sav2_PlayerData_GetIGTAddr(sav2)); + + return 1; +} + +THUMB_FUNC int MOD52_021D75E8() +{ + FUN_020168D0(0x4d); + RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C); + + return 1; +} + +THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid) +{ + Sav2_SysInfo_InitFromSystem(Sav2_SysInfo_get(sav2)); + Sav2_SysInfo_RTC_init(Sav2_SysInfo_RTC_get(sav2)); + + struct UnkSaveStruct_020286F8 *unk_sav2 = FUN_0202881C(sav2); + + FUN_02028788(unk_sav2, 1, MTRandom()); + FUN_0206007C(sav2); + + struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); + u32 trainerid = MTRandom(); + + if (set_trainerid) + { + PlayerProfile_SetTrainerID(player_data, trainerid); + } + + u32 gender = PlayerProfile_GetTrainerGender(player_data); + int avatar = FUN_02053678(trainerid, gender, 0); + + PlayerProfile_SetAvatar(player_data, (u8)avatar); + + FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, 0x76); +} + +THUMB_FUNC void MOD52_021D7688(u32 unused, struct SaveBlock2 *sav2) +{ +#pragma unused(unused) + + if (FUN_020226FC(sav2)) + { + return; + } + + OS_ResetSystem(0); +} + +THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2) +{ +#pragma unused(unused) + + Sav2_InitDynamicRegion(sav2); + FUN_020377E0(sav2); + struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); + PlayerProfile_SetMoney(player_data, 3000); + FUN_0205ECD4(SavArray_Flags_get(sav2)); +} + +const struct MOD52_Struct MOD52_021D76C8 = { + MOD52_021D757C, + MOD52_021D7594, + MOD52_021D75E8, + 0xFFFFFFFF, +}; + +const struct MOD52_Struct MOD52_021D76D8 = { + MOD52_021D7528, + MOD52_021D7540, + MOD52_021D7560, + 0xFFFFFFFF, +}; + +const struct MOD52_Struct MOD52_021D76E8 = { + MOD52_021D74E0, + MOD52_021D74F8, + MOD52_021D750C, + 0xFFFFFFFF, +}; + +const u8 MOD52_021D76F8[] = { + 0x9B, + 0x00, + 0x01, + 0x00, + 0x95, + 0x00, + 0x01, + 0x00, + 0x96, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x02, + 0x00, + 0xA5, + 0x00, + 0x02, + 0x00, + 0x95, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x02, + 0x00, + 0x9E, + 0x00, + 0x01, + 0x00, + 0xA7, + 0x00, + 0x02, + 0x00, + 0xA7, + 0x00, + 0x02, + 0x00, + 0xAA, + 0x00, + 0x01, + 0x00, + 0x95, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x01, + 0x00, + 0x98, + 0x00, + 0x01, + 0x00, + 0x98, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x01, + 0x00, + 0x95, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x01, + 0x00, + 0x9B, + 0x00, + 0x01, + 0x00, + 0xA5, + 0x00, + 0x01, + 0x00, + 0xA6, + 0x00, + 0x02, + 0x00, + 0xA4, + 0x00, + 0x02, + 0x00, + 0xA5, + 0x00, + 0x02, + 0x00, + 0xA8, + 0x00, + 0x02, + 0x00, + 0x9A, + 0x00, + 0x01, + 0x00, + 0x96, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x01, + 0x00, + 0x9C, + 0x00, + 0x01, + 0x00, + 0xA6, + 0x00, + 0x01, + 0x00, + 0xA6, + 0x00, + 0x01, + 0x00, + 0x9F, + 0x00, + 0x01, + 0x00, + 0x99, + 0x00, + 0x01, + 0x00, + 0x99, + 0x00, + 0x01, + 0x00, + 0xA4, + 0x00, + 0x01, + 0x00, + 0xA8, + 0x00, + 0x01, + 0x00, + 0x9E, + 0x00, + 0x01, + 0x00, + 0x96, + 0x00, + 0x01, + 0x00, + 0xA0, + 0x00, + 0x01, + 0x00, + 0xA2, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0x99, + 0x00, + 0x01, + 0x00, + 0xA3, + 0x00, + 0x01, + 0x00, + 0xAD, + 0x00, + 0x01, + 0x00, + 0x9E, + 0x00, + 0x01, + 0x00, + 0x99, + 0x00, + 0x01, + 0x00, + 0xAE, + 0x00, + 0x01, + 0x00, + 0x9D, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0xA8, + 0x00, + 0x01, + 0x00, + 0xA8, + 0x00, + 0x01, + 0x00, + 0xA8, + 0x00, + 0x01, + 0x00, + 0x9C, + 0x00, + 0x01, + 0x00, + 0x9C, + 0x00, + 0x01, + 0x00, + 0xA6, + 0x00, + 0x01, + 0x00, + 0xA6, + 0x00, + 0x01, + 0x00, + 0xA2, + 0x00, + 0x01, + 0x00, + 0xA3, + 0x00, + 0x01, + 0x00, + 0x98, + 0x00, + 0x01, + 0x00, + 0x98, + 0x00, + 0x01, + 0x00, + 0x95, + 0x00, + 0x01, + 0x00, + 0x9E, + 0x00, + 0x01, + 0x00, + 0x96, + 0x00, + 0x01, + 0x00, + 0xA9, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x02, + 0x00, + 0xA5, + 0x00, + 0x02, + 0x00, + 0xA0, + 0x00, + 0x01, + 0x00, + 0xA1, + 0x00, + 0x01, + 0x00, + 0x98, + 0x00, + 0x01, + 0x00, + 0x9C, + 0x00, + 0x01, + 0x00, + 0x9F, + 0x00, + 0x01, + 0x00, + 0xA8, + 0x00, + 0x02, + 0x00, + 0x9A, + 0x00, + 0x01, + 0x00, + 0x97, + 0x00, + 0x01, + 0x00, + 0xA1, + 0x00, + 0x01, + 0x00, + 0xAC, + 0x00, + 0x01, + 0x00, + 0xA0, + 0x00, + 0x02, + 0x00, + 0xA1, + 0x00, + 0x02, + 0x00, + 0xA2, + 0x00, + 0x02, + 0x00, + 0xAB, + 0x00, + 0x01, + 0x00, + 0x9E, + 0x00, + 0x02, + 0x00, + 0xA5, + 0x00, + 0x03, + 0x00, + 0xA6, + 0x00, + 0x03, + 0x00, + 0xA7, + 0x00, + 0x03, + 0x00, + 0xA9, + 0x00, + 0x01, + 0x00, + 0xA9, + 0x00, + 0x01, + 0x00, + 0xAC, + 0x00, + 0x02, + 0x00, + 0xAC, + 0x00, + 0x02, + 0x00, + 0xAA, + 0x00, + 0x01, + 0x00, + 0xAA, + 0x00, + 0x01, + 0x00, + 0xAE, + 0x00, + 0x01, + 0x00, + 0xAE, + 0x00, + 0x01, + 0x00, + 0xAB, + 0x00, + 0x01, + 0x00, + 0xAB, + 0x00, + 0x01, + 0x00, + 0xA9, + 0x00, + 0x01, + 0x00, + 0xA9, + 0x00, + 0x01, + 0x00, + 0xAC, + 0x00, + 0x01, + 0x00, + 0xAC, + 0x00, + 0x01, + 0x00, + 0xAE, + 0x00, + 0x01, + 0x00, + 0xAE, + 0x00, + 0x01, + 0x00, + 0xAD, + 0x00, + 0x01, + 0x00, + 0xAD, + 0x00, + 0x01, + 0x00, + 0xAB, + 0x00, + 0x01, + 0x00, + 0xAB, + 0x00, + 0x01, + 0x00, + 0x9D, + 0x00, + 0x01, + 0x00, + 0x9A, + 0x00, + 0x01, + 0x00, + 0xAB, + 0x00, + 0x02, + 0x00, + 0xAD, + 0x00, + 0x02, + 0x00, + 0xAA, + 0x00, + 0x02, + 0x00, + 0xAA, + 0x00, + 0x02, + 0x00, + 0xAD, + 0x00, + 0x01, + 0x00, + 0xAD, + 0x00, + 0x01, + 0x00, +};
\ No newline at end of file diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index f55e7c99..b4fd4d80 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -22,8 +22,8 @@ _021D74F6: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -462,7 +462,7 @@ _021D78DA: sub r2, r2, #1 bne _021D78DA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1289,10 +1289,10 @@ _021D7F74: blt _021D7F74 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x64 pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 2091a0c6..904d1c7f 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -22,8 +22,8 @@ _021D74F6: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -428,7 +428,7 @@ _021D787E: sub r2, r2, #1 bne _021D787E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1045,10 +1045,10 @@ _021D7D4C: str r0, [sp, #0x38] mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index b6f57d67..0d96ce13 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -29,8 +29,8 @@ MOD55_021D7504: ; 0x021D7504 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -385,11 +385,11 @@ _021D7808: .word 0x00003FF8 thumb_func_start MOD55_021D780C MOD55_021D780C: ; 0x021D780C - ldr r3, _021D7814 ; =FUN_0201E66C + ldr r3, _021D7814 ; =GX_SetBanks ldr r0, _021D7818 ; =0x021DA458 bx r3 nop -_021D7814: .word FUN_0201E66C +_021D7814: .word GX_SetBanks _021D7818: .word MOD55_021DA458 thumb_func_end MOD55_021D780C @@ -1198,7 +1198,7 @@ _021D7EB8: blt _021D7E56 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} thumb_func_end MOD55_021D7DA0 @@ -4017,7 +4017,7 @@ MOD55_021D9574: ; 0x021D9574 bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021D95D8 ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -5576,11 +5576,11 @@ MOD55_021DA27C: ; 0x021DA27C lsl r1, r4, #0x18 mov r0, #0xf lsr r1, r1, #0x18 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers lsl r1, r4, #0x18 mov r0, #1 lsr r1, r1, #0x18 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r4, pc} .align 2, 0 thumb_func_end MOD55_021DA27C diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 97d746da..d1046c7b 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -253,8 +253,8 @@ MOD56_02211FD4: ; 0x02211FD4 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -385,10 +385,10 @@ _022120BE: str r2, [r4, r1] mov r0, #0xf mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0xf mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 bl MOD56_0221244C add r0, r4, #0 @@ -603,7 +603,7 @@ _022122BE: sub r2, r2, #1 bne _022122BE add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -930,19 +930,19 @@ MOD56_0221257C: ; 0x0221257C ldr r4, [r0] mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r2, #0 str r2, [sp] mov r0, #0x36 @@ -1293,7 +1293,7 @@ _02212848: blt _02212848 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x5c pop {r4, r5, r6, r7, pc} thumb_func_end MOD56_022127D4 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 2e0c7acd..39e977cc 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -14,8 +14,8 @@ MOD57_021D74E0: ; 0x021D74E0 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -635,7 +635,7 @@ _021D7A1E: sub r2, r2, #1 bne _021D7A1E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1208,10 +1208,10 @@ MOD57_021D7EDC: ; 0x021D7EDC add r4, r0, #0 mov r0, #0x1f mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x13 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #7 bl FUN_020178A0 @@ -3730,7 +3730,7 @@ _021D92CE: bl NARC_dtor mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x3c pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 3e04165c..93c1c39d 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -28,8 +28,8 @@ _021D9A36: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -315,7 +315,7 @@ _021D9CE6: sub r2, r2, #1 bne _021D9CE6 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1008,10 +1008,10 @@ MOD58_021DA1C4: ; 0x021DA1C4 bl FUN_02020238 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x5c pop {r3, r4, pc} .align 2, 0 diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index cd947e57..c86d2c94 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -42,8 +42,8 @@ _021D7592: add r0, r6, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -66,7 +66,7 @@ _021D7592: ldr r0, _021D76BC ; =MOD59_021D7724 add r1, r4, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #1 str r0, [r5] b _021D76AC @@ -181,7 +181,7 @@ MOD59_021D76C0: ; 0x021D76C0 bl FUN_02024EB4 ldr r1, [r4, #0x74] ldr r1, [r1, #0x18] - bl FUN_02024EF4 + bl RivalsNameToU16Array ldr r0, [r4, #0x70] bl FUN_02077AC4 ldr r0, [r4, #0x74] @@ -278,7 +278,7 @@ _021D7798: sub r2, r2, #1 bne _021D7798 add r0, sp, #0x50 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0x40 diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s index 3a2ba4ad..6d2d6e6b 100644 --- a/arm9/modules/59/asm/mod59_021D9868.s +++ b/arm9/modules/59/asm/mod59_021D9868.s @@ -67,8 +67,8 @@ _021D98C6: add r0, r6, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -89,7 +89,7 @@ _021D98C6: ldr r0, _021D99F0 ; =MOD59_021D9A14 add r1, r4, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x3c str r0, [r4, #0x24] mov r0, #1 @@ -229,7 +229,7 @@ _021D9A2C: sub r2, r2, #1 bne _021D9A2C add r0, sp, #0x90 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0x80 diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c index 9fccfd95..4d7a4a98 100644 --- a/arm9/modules/59/src/mod59_021D74E0_src.c +++ b/arm9/modules/59/src/mod59_021D74E0_src.c @@ -2,8 +2,9 @@ #include "player_data.h" #include "overlay_manager.h" #include "mod59_021D74E0.h" +#include "heap.h" + -extern void FUN_0201681C(u32 param0, u32 heap_id, u32 param2); extern u32 FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options); THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0) diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index d55b37fc..418fa446 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -369,7 +369,7 @@ _021D77BE: sub r2, r2, #1 bne _021D77BE add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -438,8 +438,8 @@ _021D7848: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -478,7 +478,7 @@ _021D78A2: bl FUN_0201C24C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers bl FUN_02033F20 ldr r0, _021D78E4 ; =MOD60_021D77D4 add r1, r4, #0 @@ -551,8 +551,8 @@ _021D7946: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index bcb6e9b6..3afc1e03 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -557,8 +557,8 @@ _021D78FA: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -593,7 +593,7 @@ _021D794E: bl Main_SetVBlankIntrCB mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0 bl FUN_0200E394 mov r1, #4 @@ -681,8 +681,8 @@ _021D79FC: mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -907,7 +907,7 @@ _021D7BBA: sub r2, r2, #1 bne _021D7BBA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 86eebba7..d65fb117 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -1755,7 +1755,7 @@ MOD62_0222E2DC: ; 0x0222E2DC push {r3, lr} mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0222E348 ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -3734,13 +3734,13 @@ _0222F26C: .word 0x0000FFFF thumb_func_start MOD62_0222F270 MOD62_0222F270: ; 0x0222F270 push {r3, lr} - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, pc} thumb_func_end MOD62_0222F270 @@ -6022,10 +6022,10 @@ _0223042E: bl FUN_02003210 mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #7 mov r1, #1 bl FUN_020178BC @@ -6111,7 +6111,7 @@ _0223050A: ; jump table _0223051A: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r3, #0 str r3, [sp] mov r0, #0xa @@ -6296,7 +6296,7 @@ _02230692: bl MOD08_02229A2C mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD62_0223021C mov r0, #0x3e @@ -6395,7 +6395,7 @@ _0223072C: bl MOD62_0222F7E0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0xf7 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -6462,7 +6462,7 @@ _0223081A: _0223081C: mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #1 bl MOD62_022300DC @@ -6582,7 +6582,7 @@ _022308E4: bl MOD62_022300DC mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0xf7 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -6655,7 +6655,7 @@ _0223093E: _022309B4: mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0xf7 lsl r0, r0, #2 ldr r1, [r4, r0] @@ -6791,7 +6791,7 @@ _02230AC2: _02230AD4: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r3, #0 str r3, [sp] mov r0, #0x10 @@ -6850,7 +6850,7 @@ _02230B40: bl FUN_020178BC mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #0 bl MOD62_0222F738 @@ -7322,8 +7322,8 @@ MOD62_02230F3C: ; 0x02230F3C add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -7355,7 +7355,7 @@ MOD62_02230F80: ; 0x02230F80 push {r4, r5, lr} sub sp, #0xfc add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers ldr r5, _022310B8 ; =MOD62_02231238 add r3, sp, #0x10 mov r2, #5 @@ -7365,7 +7365,7 @@ _02230F90: sub r2, r2, #1 bne _02230F90 add r0, sp, #0x10 - bl FUN_0201E66C + bl GX_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 @@ -7441,7 +7441,7 @@ _02230FF0: orr r2, r0 strh r2, [r1] add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _022310C8 ; =MOD62_022312E8 add r3, sp, #0x38 mov r2, #0xe @@ -7484,7 +7484,7 @@ _02231052: bl FUN_02018744 mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0xfc pop {r4, r5, pc} nop diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index df0624f9..a323b642 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -23,8 +23,8 @@ MOD63_021D74E0: ; 0x021D74E0 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -69,7 +69,7 @@ MOD63_021D74E0: ; 0x021D74E0 ldr r0, _021D7598 ; =MOD63_021D782C add r1, r4, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #1 pop {r4, pc} .align 2, 0 @@ -251,7 +251,7 @@ _021D76D4: strh r3, [r4, r1] mov r1, #0 str r0, [r2, #0x6c] - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 mov r1, #0x3c bl FUN_020053CC @@ -420,7 +420,7 @@ _021D7842: sub r2, r2, #1 bne _021D7842 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -795,28 +795,28 @@ MOD63_021D7A48: ; 0x021D7A48 bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 @@ -841,28 +841,28 @@ MOD63_021D7B9C: ; 0x021D7B9C add r4, r0, #0 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4, #4] mov r1, #4 bl FUN_020178A0 @@ -1031,7 +1031,7 @@ _021D7C52: ldr r0, _021D7D70 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay mov r0, #2 str r0, [r5, #4] mov r0, #1 @@ -1085,13 +1085,13 @@ _021D7DA4: ; jump table _021D7DB8: mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r1, _021D80F0 ; =0x00000116 add r0, r6, #0 strh r0, [r4, r1] @@ -1663,16 +1663,16 @@ _021D81DC: bne _021D824E mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #0x5a add r0, #0xa8 @@ -1736,22 +1736,22 @@ _021D8272: bl FUN_0201F05C mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 add r1, r4, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl FUN_0200E394 mov r0, #1 @@ -1791,19 +1791,19 @@ _021D82FC: bne _021D831A mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers b _021D8330 _021D831A: cmp r0, #0x10 bne _021D8330 mov r0, #1 add r1, r4, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers b _021D8330 _021D8328: mov r0, #1 add r1, r4, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _021D8330: add r0, r5, #0 add r0, #0xa8 @@ -1855,7 +1855,7 @@ MOD63_021D8360: ; 0x021D8360 strh r0, [r2] ldr r0, _021D83A4 ; =gMain + 0x60 strb r3, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index 9c8b1d22..e501157b 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -16,7 +16,7 @@ _021D889A: sub r2, r2, #1 bne _021D889A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -36,7 +36,7 @@ _021D88BA: sub r2, r2, #1 bne _021D88BA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -56,7 +56,7 @@ _021D88DA: sub r2, r2, #1 bne _021D88DA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -578,8 +578,8 @@ MOD63_021D8D10: ; 0x021D8D10 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #4 mov r1, #8 bl FUN_0201669C @@ -606,7 +606,7 @@ MOD63_021D8D10: ; 0x021D8D10 strb r1, [r4, r0] ldr r0, _021D8D94 ; =gMain + 0x60 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay bl GetLCRNGSeed str r0, [r4, #0x14] mov r0, #0 @@ -985,10 +985,10 @@ MOD63_021D8F38: ; 0x021D8F38 bl FUN_02006930 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x10 str r0, [sp] ldr r0, _021D90C8 ; =0x04000050 @@ -1010,7 +1010,7 @@ MOD63_021D8F38: ; 0x021D8F38 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 - bl FUN_0201E788 + bl GX_BothDispOn add sp, #0x10 pop {r4, pc} nop @@ -1089,10 +1089,10 @@ _021D9148: blt _021D9208 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x10 str r0, [sp] ldr r0, _021D9220 ; =0x04000050 @@ -1109,10 +1109,10 @@ _021D9148: bl G2x_SetBlendAlpha_ mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r2, #0 strb r2, [r4, #7] strb r2, [r4, #6] @@ -1546,7 +1546,7 @@ MOD63_021D9498: ; 0x021D9498 str r0, [r5, #0x40] ldr r0, _021D9588 ; =gMain + 0x60 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r6, _021D958C ; =MOD63_021DBDE8 ldr r7, _021D9590 ; =MOD63_021DBAD0 mov r4, #0 @@ -1886,10 +1886,10 @@ _021D96F8: bl MOD63_021DABCC mov r0, #0xe mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 bl FUN_0200E394 mov r0, #1 @@ -2171,7 +2171,7 @@ _021D9A42: blt _021D9B0C mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 str r0, [sp] mov r0, #8 @@ -2197,14 +2197,14 @@ _021D9A7A: bne _021D9A88 mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _021D9A88: ldr r0, _021D9DD0 ; =0x000003C5 cmp r5, r0 blt _021D9B0C mov r0, #7 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x12 str r0, [sp] mov r1, #1 @@ -2319,13 +2319,13 @@ _021D9B72: bl G2x_SetBlendAlpha_ mov r0, #6 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0 ldr r0, [r4, #0x10] add r2, r1, #0 @@ -2526,7 +2526,7 @@ _021D9D48: bl MOD63_021DAD18 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x10] mov r1, #0 mov r2, #1 @@ -2610,7 +2610,7 @@ _021D9DF8: bl MOD63_021D9EA8 mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 str r0, [sp] mov r1, #1 @@ -3172,13 +3172,13 @@ _021DA192: bl FUN_020068C8 mov r0, #0xe mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4, #0xc] mov r1, #3 mov r2, #1 @@ -3532,11 +3532,11 @@ MOD63_021DA588: ; 0x021DA588 strb r2, [r0, #3] mov r2, #0 strb r2, [r0, #1] - ldr r3, _021DA59C ; =FUN_0201E6E4 + ldr r3, _021DA59C ; =GX_EngineAToggleLayers add r0, r1, #0 bx r3 nop -_021DA59C: .word FUN_0201E6E4 +_021DA59C: .word GX_EngineAToggleLayers thumb_func_end MOD63_021DA588 thumb_func_start MOD63_021DA5A0 @@ -3610,7 +3610,7 @@ _021DA618: blo _021DA630 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers _021DA630: add sp, #4 pop {r3, r4, r5, r6, pc} diff --git a/arm9/modules/63/asm/mod63_021DA640.s b/arm9/modules/63/asm/mod63_021DA640.s index dbfc4e75..6095d832 100644 --- a/arm9/modules/63/asm/mod63_021DA640.s +++ b/arm9/modules/63/asm/mod63_021DA640.s @@ -460,7 +460,7 @@ _021DA9DC: blt _021DA9DC mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s index 81d1816a..52b453e2 100644 --- a/arm9/modules/63/asm/mod63_021DAE5C.s +++ b/arm9/modules/63/asm/mod63_021DAE5C.s @@ -338,10 +338,10 @@ _021DB040: bl FUN_02009CF0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x14 pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 645c9569..0ade6b6c 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -79,10 +79,10 @@ _021D755E: bl MOD64_021D7970 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7A54 @@ -404,7 +404,7 @@ _021D7846: sub r2, r2, #1 bne _021D7846 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -962,10 +962,10 @@ MOD64_021D7C74: ; 0x021D7C74 str r0, [r5, r1] mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD64_021D7C74 @@ -1940,7 +1940,7 @@ _021D8400: bl MOD64_021D8864 mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index 890b3348..229a9214 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -114,8 +114,8 @@ _021D75A4: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -221,8 +221,8 @@ _021D7684: mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -740,7 +740,7 @@ _021D7A76: sub r2, r2, #1 bne _021D7A76 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -2574,10 +2574,10 @@ MOD65_021D8850: ; 0x021D8850 _021D8908: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x54 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -2771,8 +2771,8 @@ _021D8A88: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -2882,8 +2882,8 @@ _021D8B68: mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -3055,7 +3055,7 @@ _021D8CC2: sub r2, r2, #1 bne _021D8CC2 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -3491,7 +3491,7 @@ MOD65_021D8FB0: ; 0x021D8FB0 _021D9040: mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x44 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -5354,7 +5354,7 @@ MOD65_021D9E98: ; 0x021D9E98 bl MOD65_021DA000 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _021D9F4C ; =0x04000008 mov r0, #3 ldrh r2, [r1] diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index 65c5c857..e0b21bf2 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -169,7 +169,7 @@ _021D7612: sub r2, r2, #1 bne _021D7612 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -193,8 +193,8 @@ _021D763C: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -319,10 +319,10 @@ MOD66_021D7750: ; 0x021D7750 bl FUN_0201CD04 mov r0, #0x1f mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x1f mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB @@ -3630,10 +3630,10 @@ MOD66_021D913C: ; 0x021D913C add r4, r0, #0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r1, [r4, #4] mov r0, #0x20 bl FUN_0201C24C diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index a72ccebc..4982fa30 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -11,8 +11,8 @@ MOD67_021D74E0: ; 0x021D74E0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] @@ -80,11 +80,11 @@ MOD67_021D74E0: ; 0x021D74E0 ldr r0, _021D75CC ; =MOD67_021D7660 add r1, r4, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn bl FUN_02033E74 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0 mov r0, #0x43 add r2, r1, #0 @@ -201,7 +201,7 @@ _021D768A: sub r2, r2, #1 bne _021D768A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -312,7 +312,7 @@ _021D7778: .word MOD67_021D9794 MOD67_021D777C: ; 0x021D777C push {r4, lr} add r4, r0, #0 - bl FUN_0201E6D8 + bl GX_DisableEngineALayers add r0, r4, #0 mov r1, #3 bl FUN_020178A0 @@ -1248,7 +1248,7 @@ _021D7E32: add r4, r0, #0 ldr r0, [sp, #0x14] lsr r0, r0, #0x13 - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -1685,7 +1685,7 @@ MOD67_021D8208: ; 0x021D8208 b _021D832E _021D822A: ldrh r0, [r0, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r1, _021D8338 ; =0x0000017E mov r0, #0x1a @@ -1774,7 +1774,7 @@ _021D82EA: _021D82F2: add r0, sp, #0x10 ldrh r0, [r0, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r4, #0x54] mov r1, #0 @@ -2423,7 +2423,7 @@ MOD67_021D87E4: ; 0x021D87E4 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2674,7 +2674,7 @@ MOD67_021D89E0: ; 0x021D89E0 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2717,7 +2717,7 @@ MOD67_021D8A3C: ; 0x021D8A3C bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2760,7 +2760,7 @@ MOD67_021D8A98: ; 0x021D8A98 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2803,7 +2803,7 @@ MOD67_021D8AF4: ; 0x021D8AF4 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2846,7 +2846,7 @@ MOD67_021D8B50: ; 0x021D8B50 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2889,7 +2889,7 @@ MOD67_021D8BAC: ; 0x021D8BAC bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2932,7 +2932,7 @@ MOD67_021D8C08: ; 0x021D8C08 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -2975,7 +2975,7 @@ MOD67_021D8C64: ; 0x021D8C64 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -3018,7 +3018,7 @@ MOD67_021D8CC0: ; 0x021D8CC0 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -3061,7 +3061,7 @@ MOD67_021D8D1C: ; 0x021D8D1C bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 @@ -3104,7 +3104,7 @@ MOD67_021D8D78: ; 0x021D8D78 bl NewString_ReadMsgData add r7, r0, #0 ldrh r0, [r4, #2] - bl FUN_02034824 + bl MapHeader_GetMapSec add r2, r0, #0 ldr r0, [r5, #0x54] mov r1, #0 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index dfab7ef8..5c2c1740 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -11,8 +11,8 @@ MOD68_021D74E0: ; 0x021D74E0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -93,7 +93,7 @@ MOD68_021D74E0: ; 0x021D74E0 bl FUN_02033F20 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 @@ -213,7 +213,7 @@ _021D76AA: sub r2, r2, #1 bne _021D76AA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -308,7 +308,7 @@ MOD68_021D7774: ; 0x021D7774 add r4, r0, #0 mov r0, #0xf mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #3 bl FUN_020178A0 @@ -1447,7 +1447,7 @@ MOD68_021D7FD8: ; 0x021D7FD8 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _021D8068 ; =0x04000008 mov r0, #3 ldrh r2, [r1] diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 0e218fd3..33fafb4f 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -738,7 +738,7 @@ MOD69_0222DBAC: ; 0x0222DBAC bl FUN_02016B94 str r0, [r4, #0x10] ldr r0, _0222DCF4 ; =0x0222F8CC - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0222DCF8 ; =0x04000304 ldr r0, _0222DCFC ; =0xFFFF7FFF ldrh r1, [r2] @@ -964,7 +964,7 @@ MOD69_0222DD54: ; 0x0222DD54 bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0222DDF8 ; =0x04000008 mov r1, #3 ldrh r2, [r0] @@ -1115,7 +1115,7 @@ MOD69_0222DE98: ; 0x0222DE98 bl MOD69_0222DF0C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x1c pop {r3, r4, pc} .align 2, 0 diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index ef7b18bd..a0966fec 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -803,7 +803,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 sub sp, #0x10 add r5, r0, #0 ldr r0, _021D7BF8 ; =0x021D8284 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _021D7BFC ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -909,7 +909,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 bl G2x_SetBlendAlpha_ mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index e7f0b24d..ac2559a6 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -12,8 +12,8 @@ MOD71_0222D5C0: ; 0x0222D5C0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -131,7 +131,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0x5d lsl r1, r1, #2 ldr r1, [r4, r1] @@ -323,7 +323,7 @@ MOD71_0222D820: ; 0x0222D820 bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 mov r1, #1 bl FUN_0201797C @@ -338,7 +338,7 @@ MOD71_0222D820: ; 0x0222D820 bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers bl MOD71_0222EA38 add r0, r4, #0 bl MOD71_0222EA68 @@ -1175,7 +1175,7 @@ _0222DF92: str r0, [r4, #0x4c] mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0222E0F8 ; =0x00002218 mov r1, #0 ldr r0, [r4, r0] @@ -1220,7 +1220,7 @@ _0222DFD6: bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] @@ -1276,7 +1276,7 @@ _0222E054: bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4, #0x4c] add r0, r0, #1 str r0, [r4, #0x4c] @@ -1856,7 +1856,7 @@ _0222E562: sub r2, r2, #1 bne _0222E562 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index b4e14758..d5105d7e 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -325,7 +325,7 @@ _021D76D4: bl FUN_02033E74 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _021D7804 ; =0x00001420 ldr r0, [r5, r0] cmp r0, #1 @@ -968,13 +968,13 @@ _021D7CD2: bl MOD73_021DA730 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0xae mov r1, #0 lsl r0, r0, #2 @@ -2233,7 +2233,7 @@ MOD73_021D8630: ; 0x021D8630 ldr r0, _021D8758 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay add sp, #8 pop {r4, pc} .align 2, 0 @@ -2302,7 +2302,7 @@ MOD73_021D875C: ; 0x021D875C ldr r0, _021D880C ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay pop {r4, pc} .align 2, 0 _021D87EC: .word 0x0000063C @@ -2425,7 +2425,7 @@ _021D88CE: sub r2, r2, #1 bne _021D88CE add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -2453,7 +2453,7 @@ MOD73_021D88E4: ; 0x021D88E4 bl FUN_02016BBC mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0 mov r1, #2 bl FUN_020178BC @@ -2537,10 +2537,10 @@ MOD73_021D89AC: ; 0x021D89AC bl MOD73_021D92EC mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers pop {r3, pc} .align 2, 0 thumb_func_end MOD73_021D89AC @@ -5857,10 +5857,10 @@ _021DA266: bl MOD73_021DA374 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 str r0, [r5, #0x28] pop {r4, r5, r6, pc} @@ -6067,10 +6067,10 @@ MOD73_021DA408: ; 0x021DA408 blt _021DA432 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 @@ -6117,10 +6117,10 @@ _021DA446: bl CopyWindowToVram mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 @@ -6150,10 +6150,10 @@ MOD73_021DA4AC: ; 0x021DA4AC beq _021DA4D0 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x2c] bl FUN_0200CAB4 mov r0, #0 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 14dc995b..1fce128e 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -190,8 +190,8 @@ _021D7644: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -289,8 +289,8 @@ _021D7722: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -329,7 +329,7 @@ _021D776E: sub r2, r2, #1 bne _021D776E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1746,7 +1746,7 @@ MOD74_021D8200: ; 0x021D8200 bl FUN_0200BD20 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 87c9c55a..1a9861c9 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -12,8 +12,8 @@ MOD75_021E6BA0: ; 0x021E6BA0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] @@ -558,7 +558,7 @@ _021E703E: sub r2, r2, #1 bne _021E703E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -732,10 +732,10 @@ MOD75_021E71BC: ; 0x021E71BC add r4, r0, #0 mov r0, #0x1f mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x1b mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #7 bl FUN_020178A0 @@ -9844,10 +9844,10 @@ MOD75_021EB9B4: ; 0x021EB9B4 add r4, r0, #0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x20 mov r1, #6 bl FUN_0201C24C diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index d81a7697..13ddf00c 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -179,8 +179,8 @@ MOD76_021D7638: ; 0x021D7638 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -275,7 +275,7 @@ _021D771A: sub r2, r2, #1 bne _021D771A add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -370,7 +370,7 @@ MOD76_021D77E4: ; 0x021D77E4 add r4, r0, #0 mov r0, #0x17 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #2 bl FUN_020178A0 @@ -2397,7 +2397,7 @@ MOD76_021D8758: ; 0x021D8758 bl FUN_0200BF60 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x4c pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 8ed82bcb..a5eaa94b 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -13,8 +13,8 @@ MOD77_021D74E0: ; 0x021D74E0 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -79,7 +79,7 @@ _021D7540: bl FUN_02016B94 ldr r1, _021D75F4 ; =0x0000C010 str r0, [r5, r1] - bl FUN_0201E788 + bl GX_BothDispOn bl FUN_0201BD5C ldr r2, [r5] mov r0, #8 @@ -97,7 +97,7 @@ _021D7540: ldr r0, _021D7600 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay mov r0, #4 mov r1, #8 bl FUN_0201669C @@ -185,16 +185,16 @@ _021D764C: bl FUN_0200E1D0 mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #1 str r0, [r5] b _021D7B66 @@ -805,16 +805,16 @@ MOD77_021D7BAC: ; 0x021D7BAC mov r0, #4 mov r1, #0 ldr r5, [r4] - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, _021D7C14 ; =0x0000C2CC ldr r0, [r4, r0] bl FUN_0201EB70 @@ -857,7 +857,7 @@ _021D7C2E: sub r2, r2, #1 bne _021D7C2E add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s index 6a0d80b3..5d9f4625 100644 --- a/arm9/modules/78/asm/module_78.s +++ b/arm9/modules/78/asm/module_78.s @@ -271,8 +271,8 @@ MOD78_021D7708: ; 0x021D7708 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -295,7 +295,7 @@ MOD78_021D7708: ; 0x021D7708 strh r0, [r2] ldr r0, _021D7768 ; =0x021D7888 bl G3X_SetEdgeColorTable - bl FUN_0201E7A0 + bl GX_SwapDisplay pop {r3, pc} nop _021D7758: .word 0xFFFFE0FF @@ -318,7 +318,7 @@ _021D7776: sub r2, r2, #1 bne _021D7776 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 128c6280..f0b34ee0 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -1375,8 +1375,8 @@ _0222DFE4: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -1739,7 +1739,7 @@ _0222E322: sub r2, r2, #1 bne _0222E322 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -2162,10 +2162,10 @@ MOD80_0222E614: ; 0x0222E614 bl FUN_02008AA4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x2c pop {r3, r4, pc} thumb_func_end MOD80_0222E614 @@ -2725,10 +2725,10 @@ MOD80_0222EA04: ; 0x0222EA04 bl FUN_02017F18 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x9c pop {r4, r5, pc} nop @@ -2767,13 +2767,13 @@ MOD80_0222EB40: ; 0x0222EB40 add r4, r0, #0 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0222EB68 ; =0x00000D5C mov r1, #0 ldr r0, [r4, r0] @@ -3128,13 +3128,13 @@ MOD80_0222EE24: ; 0x0222EE24 beq _0222EE5A mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #7 mov r2, #0xb @@ -8739,10 +8739,10 @@ MOD80_02231AB0: ; 0x02231AB0 bl FUN_02017F18 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x9c pop {r4, r5, pc} nop @@ -14322,10 +14322,10 @@ MOD80_02234780: ; 0x02234780 bl FUN_02017F18 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x9c pop {r4, r5, pc} nop @@ -14411,7 +14411,7 @@ MOD80_022348CC: ; 0x022348CC bl FUN_0201797C mov r0, #0x10 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _02234944: ldr r0, [r5, #0x20] cmp r0, #9 @@ -17776,16 +17776,16 @@ MOD80_02236284: ; 0x02236284 bl MOD80_02236580 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4] ldr r0, [r0, #0x20] bl FUN_02033288 @@ -17889,7 +17889,7 @@ MOD80_02236378: ; 0x02236378 bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #0 bl FUN_02018744 @@ -17910,7 +17910,7 @@ MOD80_02236378: ; 0x02236378 bl FUN_02016C18 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _0223645C ; =0x02237654 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -17928,7 +17928,7 @@ MOD80_02236378: ; 0x02236378 bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 bl FUN_02018744 @@ -17949,7 +17949,7 @@ MOD80_02236378: ; 0x02236378 bl FUN_02016C18 mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 mov r1, #0x20 add r2, r0, #0 @@ -17962,7 +17962,7 @@ MOD80_02236378: ; 0x02236378 bl FUN_02017F18 mov r0, #0x10 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x70 pop {r3, r4, r5, pc} nop diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index b7492d39..94767f70 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -153,8 +153,8 @@ _02237F22: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -2151,7 +2151,7 @@ MOD81_02238E44: ; 0x02238E44 sub sp, #0x1c add r4, r0, #0 ldr r0, _02239040 ; =0x0223D054 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _02239044 ; =0x04000304 ldr r0, _02239048 ; =0xFFFF7FFF ldrh r1, [r2] @@ -2176,7 +2176,7 @@ MOD81_02238E44: ; 0x02238E44 bl FUN_02016C18 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r2, _02239058 ; =0x04000008 mov r0, #3 ldrh r3, [r2] @@ -2344,10 +2344,10 @@ MOD81_02238E44: ; 0x02238E44 bl MOD81_02238B40 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 bl MOD81_022393F4 ldr r0, _02239064 ; =0x04000050 @@ -3634,7 +3634,7 @@ MOD81_022399FC: ; 0x022399FC sub sp, #0x10 add r4, r0, #0 ldr r0, _02239C78 ; =0x0223D0EC - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _02239C7C ; =0x04000304 ldr r0, _02239C80 ; =0xFFFF7FFF ldrh r1, [r2] @@ -3872,10 +3872,10 @@ _02239C02: bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 add r0, #0xc0 mov r1, #3 @@ -4013,7 +4013,7 @@ MOD81_02239CDC: ; 0x02239CDC bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _02239DDC ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -5703,7 +5703,7 @@ MOD81_0223AA68: ; 0x0223AA68 sub sp, #0x14 add r4, r0, #0 ldr r0, _0223ABAC ; =0x0223D158 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0223ABB0 ; =0x04000304 ldr r0, _0223ABB4 ; =0xFFFF7FFF ldrh r1, [r2] @@ -5846,10 +5846,10 @@ _0223AAE8: bl FUN_020179E0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -5930,7 +5930,7 @@ MOD81_0223ABD8: ; 0x0223ABD8 bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _0223ACCC ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -6725,7 +6725,7 @@ MOD81_0223B264: ; 0x0223B264 sub sp, #0x10 add r4, r0, #0 ldr r0, _0223B45C ; =0x0223D1EC - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0223B460 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -6936,10 +6936,10 @@ MOD81_0223B264: ; 0x0223B264 bl MOD81_0223B4B0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -7212,7 +7212,7 @@ MOD81_0223B670: ; 0x0223B670 sub sp, #0x14 add r4, r0, #0 ldr r0, _0223B7C0 ; =0x0223D258 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0223B7C4 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -7355,10 +7355,10 @@ _0223B6F0: bl FUN_020179E0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers bl FUN_02033E74 mov r0, #1 mov r1, #0x39 @@ -7442,7 +7442,7 @@ MOD81_0223B7E8: ; 0x0223B7E8 bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _0223B8E8 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -8374,7 +8374,7 @@ MOD81_0223BF74: ; 0x0223BF74 sub sp, #0x10 add r4, r0, #0 ldr r0, _0223C18C ; =0x0223D2EC - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0223C190 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -8596,10 +8596,10 @@ _0223C14A: bl FUN_0201797C mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -8694,7 +8694,7 @@ MOD81_0223C1DC: ; 0x0223C1DC bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _0223C2E0 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -9208,7 +9208,7 @@ MOD81_0223C658: ; 0x0223C658 sub sp, #0x1c add r4, r0, #0 ldr r0, _0223C808 ; =0x0223D374 - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _0223C80C ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb @@ -9228,7 +9228,7 @@ MOD81_0223C658: ; 0x0223C658 bl FUN_02016C18 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r2, _0223C81C ; =0x04000008 mov r0, #3 ldrh r3, [r2] @@ -9369,10 +9369,10 @@ MOD81_0223C658: ; 0x0223C658 bl MOD81_0223CBE0 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 str r0, [sp] ldr r0, _0223C824 ; =0x04000050 diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index 925315fb..b9d0df31 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -625,8 +625,8 @@ _0222DA48: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -926,7 +926,7 @@ _0222DCEE: sub r2, r2, #1 bne _0222DCEE add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -1194,10 +1194,10 @@ _0222DED4: blt _0222DED4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers bl FUN_02033E74 add sp, #0x5c pop {r4, r5, r6, r7, pc} @@ -1382,16 +1382,16 @@ MOD82_0222E050: ; 0x0222E050 bl MOD82_0222E35C mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r4] ldr r0, [r0, #0xc] bl FUN_02033288 @@ -1506,7 +1506,7 @@ MOD82_0222E15C: ; 0x0222E15C bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #0 bl FUN_02018744 @@ -1527,7 +1527,7 @@ MOD82_0222E15C: ; 0x0222E15C bl FUN_02016C18 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r5, _0222E238 ; =0x0222F8B0 add r3, sp, #0x1c ldmia r5!, {r0, r1} @@ -1545,7 +1545,7 @@ MOD82_0222E15C: ; 0x0222E15C bl FUN_02016C18 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r0, r4, #0 mov r1, #4 bl FUN_02018744 @@ -1566,7 +1566,7 @@ MOD82_0222E15C: ; 0x0222E15C bl FUN_02016C18 mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0 mov r1, #0x20 add r2, r0, #0 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 92b5807e..7e36aa68 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -449,13 +449,13 @@ _0222D8B2: bl FUN_020186B4 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0x1e add r0, r1, #0 add r0, #0xfe @@ -500,13 +500,13 @@ _0222D94A: _0222D974: mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x45 mov r1, #0xf lsl r0, r0, #2 @@ -624,7 +624,7 @@ _0222DA5C: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, sp, #0x18 - bl FUN_0201E66C + bl GX_SetBanks add r0, sp, #8 bl FUN_02016BBC mov r1, #0 @@ -2511,7 +2511,7 @@ _0222E960: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, sp, #0x20 - bl FUN_0201E66C + bl GX_SetBanks add r0, sp, #0x10 bl FUN_02016BBC mov r1, #0 @@ -3250,10 +3250,10 @@ _0222EFC2: bl MOD83_0222EA88 mov r0, #1 add r1, r0, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r1, #0xc6 lsl r1, r1, #6 ldr r0, [r4, #4] @@ -3453,7 +3453,7 @@ MOD83_0222F074: ; 0x0222F074 bl FUN_0202AC98 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, [r5, #4] add r1, r4, #0 bl MOD83_022391EC @@ -6306,7 +6306,7 @@ MOD83_022307B4: ; 0x022307B4 _022307C8: mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r5] mov r1, #0 bl FUN_02018744 @@ -6517,8 +6517,8 @@ MOD83_02230954: ; 0x02230954 mov r0, #0x56 bl FUN_02016B94 str r0, [r4] - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers bl MOD83_022331C0 ldr r0, [r4] bl MOD83_02230258 @@ -7606,10 +7606,10 @@ _022312EC: bl MOD83_022302B4 mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add r1, r4, #0 ldr r0, [r4] add r1, #0xdc @@ -10478,7 +10478,7 @@ _0223299E: bl FUN_020054C8 mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _02232B7C ; =0x00002B70 mov r1, #0 add r0, r4, r0 @@ -10544,7 +10544,7 @@ _02232A20: bl MOD83_0223243C mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0xa str r0, [r5] b _02232CF4 @@ -10570,7 +10570,7 @@ _02232A56: bl FUN_0200CCA4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 bl MOD83_022324A0 mov r0, #5 @@ -11433,7 +11433,7 @@ _022331CA: sub r2, r2, #1 bne _022331CA add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 @@ -15840,7 +15840,7 @@ MOD83_022351F8: ; 0x022351F8 bl FUN_02008AA4 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #0x2c pop {pc} thumb_func_end MOD83_022351F8 @@ -17524,13 +17524,13 @@ _02235F48: sub r2, r2, #1 bne _02235F48 add r0, sp, #0x10 - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4, #0x20] bl MOD83_02235E68 ldr r0, _02235FB8 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay bl FUN_0201BD5C mov r1, #0x1e mov r0, #0 @@ -17865,7 +17865,7 @@ _02236148: bl FUN_02017CD0 mov r0, #2 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #7 mov r0, #0 lsl r1, r1, #6 @@ -17945,7 +17945,7 @@ _022362C2: blt _022362C2 mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, _0223632C ; =0x00000498 add r0, r6, r0 bl MOD83_02236298 @@ -18094,7 +18094,7 @@ _022363E2: ldr r0, _0223644C ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] - bl FUN_0201E7A0 + bl GX_SwapDisplay ldr r0, [r6, #0x20] mov r1, #0 bl FUN_020178A0 @@ -18671,7 +18671,7 @@ _022368BA: bl Main_SetVBlankIntrCB mov r0, #0x10 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #4] cmp r0, #1 bne _022368FA @@ -18898,7 +18898,7 @@ _02236A88: bl Main_SetVBlankIntrCB mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add r0, r4, #0 mov r1, #0 bl MOD83_02235C4C @@ -23555,12 +23555,12 @@ _02238CA8: bne _02238D1A mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers b _02238D22 _02238D1A: mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers _02238D22: ldr r0, _02238D34 ; =MOD83_02238F00 mov r1, #0 diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index 405c33ef..53dfe036 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -38,8 +38,8 @@ _021D7516: add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -565,7 +565,7 @@ MOD84_021D7968: ; 0x021D7968 bl FUN_02016B94 str r0, [r4, #4] ldr r0, _021D7A60 ; =0x021DA68C - bl FUN_0201E66C + bl GX_SetBanks ldr r2, _021D7A64 ; =0x04000304 ldr r0, _021D7A68 ; =0xFFFF7FFF ldrh r1, [r2] @@ -768,7 +768,7 @@ MOD84_021D7AC8: ; 0x021D7AC8 bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r1, _021D7B50 ; =0x04000008 mov r0, #3 ldrh r2, [r1] @@ -1348,10 +1348,10 @@ MOD84_021D7F94: ; 0x021D7F94 bl FUN_020200D8 mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers add sp, #0x30 pop {r4, pc} thumb_func_end MOD84_021D7F94 diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 048adbf9..66e7a196 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -1314,7 +1314,7 @@ _021D8AEC: ; jump table _021D8AF4: mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0 mov r0, #3 add r2, r1, #0 @@ -1362,7 +1362,7 @@ _021D8B4E: beq _021D8B66 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #4 mov r0, #1 pop {r3, r4, pc} @@ -1611,10 +1611,10 @@ _021D8D24: ; jump table _021D8D2C: mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r1, #0 mov r0, #3 add r2, r1, #0 @@ -1692,10 +1692,10 @@ _021D8DC8: beq _021D8DE6 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #1 pop {r3, r4, r5, pc} _021D8DE6: @@ -2473,7 +2473,7 @@ _021D93F4: ; jump table _021D93FC: mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0 mov r0, #3 add r2, r1, #0 @@ -2521,7 +2521,7 @@ _021D9456: beq _021D946E mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #4 mov r0, #1 pop {r3, r4, pc} @@ -3346,7 +3346,7 @@ _021D9AB4: ; jump table _021D9ABC: mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r1, #0 mov r0, #3 add r2, r1, #0 @@ -3394,7 +3394,7 @@ _021D9B16: beq _021D9B2E mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers add sp, #4 mov r0, #1 pop {r3, r4, pc} @@ -3989,7 +3989,7 @@ _021D9FBE: beq _021DA068 mov r0, #1 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers ldr r0, [r4, #0x10] mov r1, #0 bl FUN_020200A0 diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index 2fe33d18..adb49508 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -12,8 +12,8 @@ MOD85_021D74E0: ; 0x021D74E0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl FUN_02015F1C - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #2 mov r0, #3 mov r1, #0x4f @@ -273,34 +273,34 @@ MOD85_021D76FC: ; 0x021D76FC bl MOD85_021D7930 mov r0, #1 add r1, r0, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #2 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E6E4 + bl GX_EngineAToggleLayers mov r0, #1 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #2 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #4 mov r1, #0 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #8 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers mov r0, #0x10 mov r1, #1 - bl FUN_0201E74C + bl GX_EngineBToggleLayers ldr r0, _021D77D0 ; =0x04000008 mov r2, #3 ldrh r1, [r0] @@ -383,7 +383,7 @@ _021D7802: sub r2, r2, #1 bne _021D7802 add r0, sp, #0 - bl FUN_0201E66C + bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s index e3a93e0f..08651acb 100644 --- a/arm9/modules/86/asm/module_86.s +++ b/arm9/modules/86/asm/module_86.s @@ -43,8 +43,8 @@ MOD86_021D74E0: ; 0x021D74E0 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 - bl FUN_0201E6D8 - bl FUN_0201E740 + bl GX_DisableEngineALayers + bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -65,7 +65,7 @@ MOD86_021D74E0: ; 0x021D74E0 ldr r0, _021D7588 ; =MOD86_021D76E0 add r1, r4, #0 bl Main_SetVBlankIntrCB - bl FUN_0201E788 + bl GX_BothDispOn mov r0, #1 pop {r3, r4, r5, pc} nop @@ -262,7 +262,7 @@ _021D76F8: sub r2, r2, #1 bne _021D76F8 add r0, sp, #0x2c - bl FUN_0201E66C + bl GX_SetBanks ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0x1c diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c new file mode 100644 index 00000000..ce188876 --- /dev/null +++ b/arm9/src/GX_layers.c @@ -0,0 +1,110 @@ +#include "GX_layers.h" + + +struct GX_LayerData layer_data; + +THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks) +{ + GX_ResetBankForBG(); + GX_ResetBankForBGExtPltt(); + GX_ResetBankForSubBG(); + FUN_020C6034(); + GX_ResetBankForOBJ(); + GX_ResetBankForOBJExtPltt(); + FUN_020C605C(); + GX_ResetBankForSubOBJ(); + GX_ResetBankForTex(); + GX_ResetBankForTexPltt(); + + GX_SetBankForBG(banks->bg); + GX_SetBankForBGExtPltt(banks->bgextpltt); + GX_SetBankForSubBG(banks->subbg); + GX_SetBankForSubBGExtPltt(banks->subbgextpltt); + GX_SetBankForOBJ(banks->obj); + GX_SetBankForOBJExtPltt(banks->objextpltt); + GX_SetBankForSubOBJ(banks->subobj); + GX_SetBankForSubOBJExtPltt(banks->subobjextpltt); + GX_SetBankForTex(banks->tex); + GX_SetBankForTexPltt(banks->texpltt); +} + + +THUMB_FUNC void GX_DisableEngineALayers() +{ + layer_data.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) + { + return; + } + } + else + { + if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) == 0) + { + return; + } + } + + reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8; +} + +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; +} + +THUMB_FUNC void GX_DisableEngineBLayers() +{ + layer_data.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) + { + return; + } + } + else + { + if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) == 0) + { + return; + } + } + + reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8; +} + +THUMB_FUNC void GX_BothDispOn() +{ + GX_DispOn(); + + reg_GXS_DB_DISPCNT |= 0x10000; +} + +THUMB_FUNC void GX_SwapDisplay() +{ + if (gMain.unk65 == 0) + { + reg_GX_POWCNT |= 0x8000; //send display A to lower screen + } + else + { + reg_GX_POWCNT &= 0xFFFF7FFF; // sned display A to upper screen + } +} + +THUMB_FUNC u32 GX_GetEngineALayers() +{ + return layer_data.EngineA_DISPCNT_LayerMask; +} diff --git a/arm9/src/error_handling.c b/arm9/src/error_handling.c index 9052773f..a01894f6 100644 --- a/arm9/src/error_handling.c +++ b/arm9/src/error_handling.c @@ -1,8 +1,8 @@ #include "global.h" #include "error_handling.h" +#include "error_message_reset.h" extern u32 FUN_02031810(void); -extern void PrintErrorMessageAndReset(void); THUMB_FUNC void ErrorHandling(void) { diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c new file mode 100644 index 00000000..3a727924 --- /dev/null +++ b/arm9/src/error_message_reset.c @@ -0,0 +1,142 @@ +#include "error_message_reset.h" +#include "GX_layers.h" + +const u32 UNK_020FF49C[2] = { 0x1a030300, 0x00230112 }; + +const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 }; + +const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 }; + +const u32 UNK_020FF4BC[7] = { 0x00, 0x00, 0x0800, 0x00, 0x06000001, 0x0100, 0x00 }; + +const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 }; + +u32 sErrorMessagePrinterLock; + +extern void FUN_0200E3A0(PMLCDTarget, int); +extern u32 *FUN_02016B94(u32 param0); +extern void FUN_02016BBC(const struct GraphicsModes *modes); +extern void FUN_02016C18(u32 *param0, u32 param1, void *param2, u32 param3); +extern void FUN_02018744(u32 *param0, u32 param1); +extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); +extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); +extern void FUN_02017FE4(u32 param0, u32 param1); +extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2); +extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16); +extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); +extern void FUN_0200E394(u32 param0); +extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); +extern BOOL FUN_02032DAC(void); +extern BOOL FUN_0202FB80(void); +extern BOOL FUN_02033678(void); +extern void FUN_02019178(u32 *param0); + +THUMB_FUNC void VBlankHandler() +{ + *(vu32 *)HW_INTR_CHECK_BUF |= 1; + + MI_WaitDma(3); +} + +THUMB_FUNC void PrintErrorMessageAndReset() +{ + + u32 *ptr; + u32 buf[4]; + + if (sErrorMessagePrinterLock != 1) + { + sErrorMessagePrinterLock = 1; + 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); + FUN_0200E3A0(PM_LCD_TOP, 0); + FUN_0200E3A0(PM_LCD_BOTTOM, 0); + + OS_DisableIrqMask(1); + OS_SetIrqFunction(1, &VBlankHandler); + OS_EnableIrqMask(1); + + Main_SetVBlankIntrCB(NULL, NULL); + + FUN_02015F34(NULL, NULL); + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); + + reg_GX_DISPCNT &= 0xFFFFE0FF; + reg_GXS_DB_DISPCNT &= 0xFFFFE0FF; + + FUN_0201669C(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; + + GX_SetBanks(&UNK_020FF4D8); + ptr = FUN_02016B94(0); + FUN_02016BBC(&UNK_020FF4AC); + + FUN_02016C18(ptr, 0, UNK_020FF4BC, 0); + FUN_02018744(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); + + 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); + FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90); + FUN_0200CCA4(buf, 0, 0x1f7, 2); + + ReadMsgDataIntoString(msg_data, 3, str); + + AddTextPrinterParameterized((u32)buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf + + String_dtor(str); + GX_BothDispOn(); + FUN_0200E394(0); + FUN_0200E394(1); + FUN_0200A274(0, 0x3f, 3); + FUN_02032DAC(); + + lid: + HandleDSLidAction(); + FUN_0202FB80(); + if (!FUN_02033678()) + { + OS_WaitIrq(1, 1); + goto lid; + } + + + lid2: + HandleDSLidAction(); + if (!((u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^ 0x2FFF) & 0x2FFF) & 1)) + { + OS_WaitIrq(1, 1); + goto lid2; + } + + FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); + FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); + + FUN_02019178(buf); + + DestroyMsgData(msg_data); + FreeToHeap(ptr); + + OS_ResetSystem(0); + } +} diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index 327c66c6..a7508fab 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -4,16 +4,15 @@ #include "main.h" #include "FS_rom.h" #include "PAD_pad.h" -#include "heap.h" #include "MWC_string.h" #include "tp.h" #include "unk_0201B4E8.h" #include "game_init.h" #include "registers.h" +#include "heap.h" #pragma thumb on -extern void FUN_020166C8(const u32 (*)[2], int, int, int); extern void FUN_02022450(void); typedef volatile struct @@ -142,7 +141,7 @@ void FUN_02015FC8(void) { csum++; } - FUN_020166C8(UNK_020EDB10, 4, 92, (int)csum); + FUN_020166C8((u32 *)UNK_020EDB10, 4, 92, (int)csum); } void InitSystemForTheGame(void) diff --git a/arm9/src/heap.c b/arm9/src/heap.c new file mode 100644 index 00000000..84abc834 --- /dev/null +++ b/arm9/src/heap.c @@ -0,0 +1,380 @@ +#include "heap.h" +#include "error_message_reset.h" + +extern void *tempName_NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2); +extern void *tempName_NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2); +extern void thunk_FUN_020adc8c(); +extern void FUN_020ADDF0(void *ptr1, void *ptr2); +extern u32 FUN_02031810(void); +extern u32 FUN_020ADDC8(void *param0); +extern void FUN_020AE82C(u32 param0, void *param1, u32 param2); +extern u32 FUN_020ADDC0(void *param0); +extern void FUN_020ADE2C(void *ptr1, void *ptr2, u32 param2); + + +struct UnkStruct_020166C8 UNK_021C4D28; + + +THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size) +{ + u32 unk_size = param1 + 24; + + if (param2 < unk_size) + { + param2 = unk_size; + } + if (pre_size != 0) + { + while (pre_size % 4 != 0) + { + 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) + { + void *ptr; + if (param0[1] == 0 || param0[1] != 2) + { + ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, param0[0], 4); + } + else + { + ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, param0[0], 4); + } + + if (ptr != 0) + { + + UNK_021C4D28.unk00[r7] = tempName_NNS_FndCreateExpHeapEx(ptr, param0[0], 0); + UNK_021C4D28.unk10[r7] = (u8)r7; + } + else + { + ErrorHandling(); + } + + param0 += 2; + r7++; + } + + while (param1 < unk_size + 1) + { + UNK_021C4D28.unk00[param1] = 0; + UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a; + + param1++; + } + + while (param1 < param2) + { + UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a; + + param1++; + } + + for (param1 = 0; param1 < param2; param1++) + { + UNK_021C4D28.unk0c[param1] = 0; + } +} + +THUMB_FUNC s32 FUN_020167F4() +{ + s32 i = UNK_021C4D28.unk16; + s32 j = UNK_021C4D28.unk18; + + if (i < j) + { + void **ptr = UNK_021C4D28.unk00 + i; + do + { + if (*ptr == 0) + { + return i; + } + i++; + ptr++; + } while (i < j); + } + + return -1; +} + +THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 param1, u32 param2) +{ + return FUN_02016834(param0, param1, param2, 4); +} + +THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2) +{ + return FUN_02016834(param0, param1, param2, -4); +} + +THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3) +{ + GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ); + + u8 *ptr = UNK_021C4D28.unk10; + if (UNK_021C4D28.unk1a == ptr[param1]) + { + void *ptr2 = UNK_021C4D28.unk00[ptr[param0]]; + if (ptr2 != 0) + { + void *ptr3 = tempName_NNS_FndAllocFromExpHeapEx(ptr2, param2, param3); + if (ptr3 != 0) + { + param3 = FUN_020167F4(); + if (param3 >= 0) + { + UNK_021C4D28.unk00[param3] = tempName_NNS_FndCreateExpHeapEx(ptr3, param2, 0); + + + if (UNK_021C4D28.unk00[param3] != 0) + { + UNK_021C4D28.unk04[param3] = ptr2; + UNK_021C4D28.unk08[param3] = ptr3; + UNK_021C4D28.unk10[param1] = (u8)param3; + + return 1; + } + else + { + ErrorHandling(); + } + } + else + { + ErrorHandling(); + } + } + else + { + ErrorHandling(); + } + } + else + { + ErrorHandling(); + } + } + else + { + ErrorHandling(); + } + return 0; +} + +THUMB_FUNC void FUN_020168D0(u32 heap_id) +{ + GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + + if (UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] != 0) + { + thunk_FUN_020adc8c(); + + u8 index = UNK_021C4D28.unk10[heap_id]; + void *ptr1 = UNK_021C4D28.unk04[index]; + void *ptr2 = UNK_021C4D28.unk08[index]; + if (ptr1 != 0 && ptr2 != 0) + { + FUN_020ADDF0(ptr1, ptr2); + } + else + { + ErrorHandling(); + } + + 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; + + UNK_021C4D28.unk10[heap_id] = (u8)UNK_021C4D28.unk1a; + } +} + +THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3) +{ + GF_ASSERT(param0); + + OSIntrMode intr_mode = OS_DisableInterrupts(); + param1 += 16; + u32 *ptr = (u32 *)tempName_NNS_FndAllocFromExpHeapEx(param0, param1, param2); + + OS_RestoreInterrupts(intr_mode); + if (ptr != 0) + { + ptr[3] = (ptr[3] & ~0xff) | (param3 & 0xff); + + ptr += 4; + } + + return ptr; +} + +THUMB_FUNC void FUN_02016988() +{ + if (FUN_02031810() != 0) + { + PrintErrorMessageAndReset(); + } +} + +void *AllocFromHeap(u32 heap_id, u32 size) +{ + void *ptr = 0; + if (heap_id < UNK_021C4D28.unk14) + { + u8 index = UNK_021C4D28.unk10[heap_id]; + ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, 4, heap_id); + } + if (ptr != 0) + { + UNK_021C4D28.unk0c[heap_id]++; + } + else + { + FUN_02016988(); + } + + return ptr; +} + +void *AllocFromHeapAtEnd(u32 heap_id, u32 size) +{ + void *ptr = 0; + if (heap_id < UNK_021C4D28.unk14) + { + u8 index = UNK_021C4D28.unk10[heap_id]; + ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, -4, heap_id); + } + + if (ptr != 0) + { + UNK_021C4D28.unk0c[heap_id]++; + } + else + { + FUN_02016988(); + } + + return ptr; +} + +void FreeToHeap(void *ptr) +{ + u8 heap_id = (u8)((u32 *)ptr)[-1]; + + if ((u16)heap_id < UNK_021C4D28.unk14) + { + u8 index = UNK_021C4D28.unk10[heap_id]; + void *ptr2 = UNK_021C4D28.unk00[index]; + GF_ASSERT(ptr2); + + if (UNK_021C4D28.unk0c[heap_id] == 0) + { + FUN_02016B90(heap_id); + } + GF_ASSERT(UNK_021C4D28.unk0c[heap_id]); + + UNK_021C4D28.unk0c[heap_id]--; + OSIntrMode intr_mode = OS_DisableInterrupts(); + FUN_020ADDF0(ptr2, ptr - 16); + OS_RestoreInterrupts(intr_mode); + return; + } + + ErrorHandling(); +} + +void FUN_02016A8C(u32 param0, void *param1) +{ + GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + + if (param0 < UNK_021C4D28.unk14) + { + u8 index = UNK_021C4D28.unk10[param0]; + void *ptr = UNK_021C4D28.unk00[index]; + GF_ASSERT (ptr ); + + u8 heap_id = (u8)((u32 *)param1)[-1]; + GF_ASSERT (heap_id == param0); + + FUN_020ADDF0(ptr, param1 - 16); + GF_ASSERT (UNK_021C4D28.unk0c[param0]); + + UNK_021C4D28.unk0c[param0]--; + return; + } + + ErrorHandling(); +} + +THUMB_FUNC u32 FUN_02016AF8(u32 param0) +{ + if (param0 < UNK_021C4D28.unk14) + { + u8 index = UNK_021C4D28.unk10[param0]; + return FUN_020ADDC8(UNK_021C4D28.unk00[index]); + } + + ErrorHandling(); + return 0; +} + +THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2) +{ + if (param1 < UNK_021C4D28.unk14) + { + + u8 index = UNK_021C4D28.unk10[param1]; + FUN_020AE82C(param0, UNK_021C4D28.unk00[index], param2); + return; + } + + ErrorHandling(); +} + +THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1) +{ + GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); + + param1 += 16; + if (FUN_020ADDC0(ptr - 16) >= param1) + { + u8 heap_id = (u8)((u32 *)ptr)[-1]; + + u8 index = UNK_021C4D28.unk10[heap_id]; + + FUN_020ADE2C(UNK_021C4D28.unk00[index], ptr - 16, param1); + return; + } + ErrorHandling(); +} + +THUMB_FUNC u32 FUN_02016B90(u32 param0) +{ +#pragma unused(param0) + return 1; +} diff --git a/arm9/src/main.c b/arm9/src/main.c index 86f0f6af..c50fbaff 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -11,6 +11,7 @@ #include "poke_overlay.h" #include "player_data.h" #include "sound.h" +#include "timer3.h" FS_EXTERN_OVERLAY(MODULE_52); FS_EXTERN_OVERLAY(MODULE_63); @@ -34,7 +35,6 @@ extern void FUN_02002C14(void); extern void FUN_02002C50(int, int); extern struct SaveBlock2 * SaveBlock2_new(void); extern void * FUN_02029EF8(struct SaveBlock2 *); -extern void FUN_02020AFC(void); extern int FUN_020337E8(int); extern void FUN_02034188(int, int); extern int FUN_020227FC(struct SaveBlock2 *); @@ -75,7 +75,7 @@ THUMB_FUNC void NitroMain(void) gBacklightTop.unk18 = -1; gBacklightTop.unk20 = SaveBlock2_new(); InitSoundData(FUN_02029EF8(gBacklightTop.unk20), Sav2_PlayerData_GetOptionsAddr(gBacklightTop.unk20)); - FUN_02020AFC(); + Init_Timer3(); if (FUN_020337E8(3) == 3) FUN_02034188(3, 0); if (FUN_020227FC(gBacklightTop.unk20) == 0) diff --git a/arm9/src/map_header.c b/arm9/src/map_header.c index 0a5b8987..644a590b 100644 --- a/arm9/src/map_header.c +++ b/arm9/src/map_header.c @@ -605,23 +605,23 @@ u32 MapNumberBoundsCheck(u32 mapno) return mapno; } -u8 FUN_02034724(u32 mapno) +u8 MapHeader_GetAreaDataBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk0; + return sMapHeaders[mapno].area_data_bank; } -u8 FUN_02034738(u32 mapno) +u8 MapHeader_GetField1(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); return sMapHeaders[mapno].unk1; } -u16 FUN_0203474C(u32 mapno) +u16 MapHeader_GetMatrixId(u32 mapno) { u16 ret; mapno = MapNumberBoundsCheck(mapno); - ret = sMapHeaders[mapno].unk2; + ret = sMapHeaders[mapno].matrix_id; // Spear Pillar if (ret == 22 && gGameVersion == VERSION_PEARL) ret = 23; @@ -631,94 +631,94 @@ u16 FUN_0203474C(u32 mapno) u16 MapHeader_GetMsgBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk8; + return sMapHeaders[mapno].msg_bank; } -u16 MapHeader_GetScrSeqReleaseNo(u32 mapno) +u16 MapHeader_GetScriptsBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk4; + return sMapHeaders[mapno].scripts_bank; } -u16 FUN_0203479C(u32 mapno) +u16 MapHeader_GetLevelScriptsBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk6; + return sMapHeaders[mapno].level_scripts_bank; } -u16 FUN_020347B0(u32 mapno) +u16 MapHeader_GetDayMusicId(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unkA; + return sMapHeaders[mapno].day_music_id; } -u16 FUN_020347C4(u32 mapno) +u16 MapHeader_GetNightMusicId(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unkC; + return sMapHeaders[mapno].night_music_id; } -BOOL FUN_020347D8(u32 mapno) +BOOL MapHeader_HasWildEncounters(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unkE != 0xFFFF; + return sMapHeaders[mapno].wild_encounter_bank != 0xFFFF; } -u16 FUN_020347FC(u32 mapno) +u16 MapHeader_GetWildEncounterBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unkE; + return sMapHeaders[mapno].wild_encounter_bank; } -u16 FUN_02034810(u32 mapno) +u16 MapHeader_GetEventsBank(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk10; + return sMapHeaders[mapno].events_bank; } -u16 FUN_02034824(u32 mapno) +u16 MapHeader_GetMapSec(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); return sMapHeaders[mapno].mapsec; } -u8 FUN_02034838(u32 mapno) +u8 MapHeader_GetWeatherType(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk14; + return sMapHeaders[mapno].weather_type; } -u8 FUN_0203484C(u32 mapno) +u8 MapHeader_GetCameraType(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk15; + return sMapHeaders[mapno].camera_type; } -u8 FUN_02034860(u32 mapno) +u8 MapHeader_GetField17_0(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); return sMapHeaders[mapno].unk17_0; } -u8 FUN_0203487C(u32 mapno) +u8 MapHeader_GetField17_6(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); return sMapHeaders[mapno].unk17_6; } -u8 FUN_02034898(u32 mapno) +u8 MapHeader_IsFlyAllowed(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk17_7; + return sMapHeaders[mapno].is_fly_allowed; } -u8 FUN_020348B4(u32 mapno) +u8 MapHeader_IsBikeAllowed(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); - return sMapHeaders[mapno].unk17_4; + return sMapHeaders[mapno].is_bike_allowed; } -u8 FUN_020348D0(u32 mapno) +u8 MapHeader_GetField16(u32 mapno) { mapno = MapNumberBoundsCheck(mapno); return sMapHeaders[mapno].unk16; @@ -726,36 +726,36 @@ u8 FUN_020348D0(u32 mapno) BOOL FUN_020348E4(u32 mapno) { - if (!FUN_02034898(mapno)) + if (!MapHeader_IsFlyAllowed(mapno)) return FALSE; - if (FUN_020348D0(mapno) != 1) + if (MapHeader_GetField16(mapno) != 1) return TRUE; return FALSE; } -BOOL FUN_02034908(u32 mapno) +BOOL MapHeader_MapIsOnOverworldMatrix(u32 mapno) { - return !FUN_0203474C(mapno); + return MapHeader_GetMatrixId(mapno) == 0; } BOOL FUN_0203491C(u32 mapno) { - return FUN_020348D0(mapno) == 5; + return MapHeader_GetField16(mapno) == 5; } BOOL FUN_02034930(u32 mapno) { - return FUN_020348D0(mapno) == 3; + return MapHeader_GetField16(mapno) == 3; } BOOL FUN_02034944(u32 mapno) { - return FUN_020348D0(mapno) == 4 || FUN_020348D0(mapno) == 5; + return MapHeader_GetField16(mapno) == 4 || MapHeader_GetField16(mapno) == 5; } BOOL FUN_02034964(u32 mapno) { - return FUN_020348D0(mapno) == 1 || FUN_020348D0(mapno) == 2; + return MapHeader_GetField16(mapno) == 1 || MapHeader_GetField16(mapno) == 2; } BOOL FUN_02034984(u32 mapno) diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index 397f1f69..8520f2c1 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -14,10 +14,10 @@ #include "pokedex.h" #include "seal.h" #include "unk_020139D8.h" +#include "unk_02024E64.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); -extern u32 FUN_02024E64(void); extern u32 FUN_02034D80(void); extern u32 FUN_02025954(void); extern u32 FUN_02023AC8(void); @@ -39,7 +39,6 @@ extern u32 FUN_0202BE98(void); extern u32 FUN_0202C0E0(void); extern void FUN_0202AC28(void *); extern void FUN_02034D98(void *); -extern void FUN_02024E6C(void *); extern void FUN_02034D88(void *); extern void FUN_0202597C(void *); extern void FUN_02023AD8(void *); diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c new file mode 100644 index 00000000..4ad17e51 --- /dev/null +++ b/arm9/src/scrcmd.c @@ -0,0 +1,1300 @@ +#include "scrcmd.h" +#include "unk_0204639C.h" +#include "main.h" +#include "options.h" +#include "player_data.h" +#include "text.h" + +extern void *FUN_02039438(struct UnkSavStruct80* arg, u32 id); +extern void *CreateScriptContext(struct UnkSavStruct80* arg, u16 id); +extern u8 FUN_02058448(u32 param0); +extern void FlagSet(struct UnkSavStruct80 *arg, u16 flag); +extern void FlagClear(struct UnkSavStruct80 *arg, u16 flag); +extern u8 FlagCheck(struct UnkSavStruct80 *arg, u16 flag); +extern void TrainerFlagSet(struct UnkSavStruct80 *arg, u16 flag); +extern void TrainerFlagClear(struct UnkSavStruct80 *arg, u16 flag); +extern u8 TrainerFlagCheck(struct UnkSavStruct80 *arg, u16 flag); +extern void MOD05_ShowMessageInField(struct ScriptContext *ctx, struct MsgData *msgData, u16 id); +extern void MOD05_021E2BD0(struct ScriptContext *ctx, struct MsgData *msgData, u16 msgId, u32 param4, void *param5); +extern void MOD05_021E2C58(struct ScriptContext *ctx, u16 typ, u16 id, u16 word1, s16 word2, u8 param5); +extern struct ScrStrBufs *MOD06_02244210(struct SaveBlock2 *sav, u16 poke, u16 sex, u8 flag, u8 *unk); +extern void MOD05_021E2CBC(struct ScriptContext *ctx, struct ScrStrBufs *str, u8 param2, u32 param3); +extern void MOD05_021E2BB8(void *param0, struct ScriptContext *ctx); +extern BOOL FUN_020546C8(u8 param0); +extern u32 FUN_02058488(u32 param0); +extern BOOL FUN_02030F40(void); +extern void FUN_02055304(u32 param0, u32 param1); +extern void FUN_02039460(struct UnkSavStruct80 *arg); +extern void FUN_020545B8(u32 param0, u8 *param1, u32 param2); +extern void FUN_02054608(u8 *param0, struct Options *options); +extern void FUN_0200D0E0(u32 *param0, u32 param1); +extern void FUN_02019178(u32 *param0); +extern void FUN_020179E0(u32 param0, u32 param1, u32 param2, u16 val); +extern u32 FUN_02058510(u32 param0, u32 param1); +extern void MOD05_021E8128(u32 param0, u8 type, u16 map); +extern void MOD05_021E8130(u32 param0, u32 param1); +extern void MOD05_021E8158(struct UnkSavStruct80 *unk80); +extern u32 MOD05_021E8140(u32 param0); +extern BOOL MOD05_021E8148(u32 param0); +extern u8 FUN_02054658(u32 param0, struct String *str, struct Options *opt, u32 param3); +extern void MOD05_021E8144(u32 param0); +extern void FUN_0200CB00(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); +extern u32 Std_CreateYesNoMenu(u32 param0, u8 **param1, u32 param2, u32 param3, u32 param4); +extern u32 FUN_020021AC(u32 param0, u32 param1); +extern u32 FUN_0200D858(u32 *param0, u32 param1); +extern void FUN_0200DBFC(u32 param0); +extern u32 MOD05_021E1BF8(struct UnkSavStruct80 *arg, u8 param1, u8 param2, u8 param3, u8 param4, u16 *param5, u32 param6, u32 *param7, struct MsgData *msgData); +extern void MOD05_021E1C4C(u32 param0, u32 param1, u32 param2); +extern void MOD05_021E1C54(u32 param0); +extern u32 FUN_02052714(u32 param0); +extern void MOD05_021E1ECC(u32 param0); +extern u32 MOD05_021E1F34(struct UnkSavStruct80 *arg, u8 param1, u8 param2, u8 param3, u8 param4, u16 *param5, u32 param6, u32 *param7, struct MsgData *msgData); +extern void MOD05_021E1F58(u32 param0, u8 param1, u8 param2, u8 param3); +extern void MOD05_021E1F60(u32 param0); +extern void MOD05_021E26CC(u32 param0, u8 param1); +extern void MOD05_021E2B80(u32 param0, u8 param1); +extern void MOD05_021E2B9C(u32 param0, u8 param1); + +extern u8 *UNK_020F34E0; + +static BOOL RunPauseTimer(struct ScriptContext *ctx); +static u32 Compare(u16 a, u16 b); +static BOOL FUN_02039CC8(struct ScriptContext *ctx); +/*static*/ BOOL FUN_0203A2F0(struct ScriptContext *ctx); +static BOOL FUN_0203A46C(struct ScriptContext *ctx); +static BOOL FUN_0203A4AC(struct ScriptContext *ctx); +static BOOL FUN_0203A4E0(struct ScriptContext *ctx); +static BOOL FUN_0203A570(struct ScriptContext *ctx); +static BOOL FUN_0203A6C8(struct ScriptContext *ctx); +static BOOL FUN_0203A8A0(struct ScriptContext *ctx); +static BOOL FUN_0203A94C(struct ScriptContext *ctx); +static BOOL FUN_0203AA0C(struct ScriptContext *ctx); +static BOOL FUN_0203AB00(struct ScriptContext *ctx); +static BOOL FUN_0203AD2C(struct ScriptContext *ctx); +static BOOL FUN_0203AD78(struct ScriptContext *ctx); + +extern u8 sScriptConditionTable[6][3]; + +THUMB_FUNC BOOL ScrCmd_Nop(struct ScriptContext *ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Dummy(struct ScriptContext *ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_End(struct ScriptContext *ctx) +{ + StopScript(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Wait(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *arg = ctx->unk80; + u16 num = ScriptReadHalfword(ctx); + u16 wk = ScriptReadHalfword(ctx); + u16* VarPointer = GetVarPointer(arg, wk); + *VarPointer = num; + ctx->data[0] = wk; + SetupNativeScript(ctx, RunPauseTimer); + return TRUE; +} + +THUMB_FUNC static BOOL RunPauseTimer(struct ScriptContext *ctx) +{ + u16* VarPointer = GetVarPointer(ctx->unk80, (u16)ctx->data[0]); + *VarPointer = (u16)(*VarPointer - 1); + return !(*VarPointer); +} + +THUMB_FUNC BOOL ScrCmd_DebugWatch(struct ScriptContext *ctx) +{ + u16 wk = ScriptReadHalfword(ctx); + VarGet(ctx->unk80, wk); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_LoadByte(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + ctx->data[index] = ScriptReadByte(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_LoadWord(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + ctx->data[index] = ScriptReadWord(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_LoadByteFromAddr(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + ctx->data[index] = *(u8 *)ScriptReadWord(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_WriteByteToAddr(struct ScriptContext *ctx) +{ + u8* ptr = (u8*)ScriptReadWord(ctx); + *ptr = ScriptReadByte(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetPtrByte(struct ScriptContext *ctx) +{ + u8* ptr = (u8*)ScriptReadWord(ctx); + *ptr = (u8)ctx->data[ScriptReadByte(ctx)]; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CopyLocal(struct ScriptContext *ctx) +{ + u8 index_store = ScriptReadByte(ctx); + u8 index_load = ScriptReadByte(ctx); + ctx->data[index_store] = ctx->data[index_load]; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CopyByte(struct ScriptContext *ctx) +{ + u8 *target = (u8 *)ScriptReadWord(ctx); + u8 *source = (u8 *)ScriptReadWord(ctx); + *target = *source; + return FALSE; +} + +THUMB_FUNC static u32 Compare(u16 a, u16 b) +{ + if (a < b) + { + return 0; + } + else if (a == b) + { + return 1; + } + else + { + return 2; + } +} + +THUMB_FUNC BOOL ScrCmd_CompareLocalToLocal(struct ScriptContext *ctx) +{ + u8 a = (u8)ctx->data[ScriptReadByte(ctx)]; + u8 b = (u8)ctx->data[ScriptReadByte(ctx)]; + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareLocalToValue(struct ScriptContext *ctx) +{ + u8 a = (u8)ctx->data[ScriptReadByte(ctx)]; + u8 b = ScriptReadByte(ctx); + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareLocalToAddr(struct ScriptContext *ctx) +{ + u8 a = (u8)ctx->data[ScriptReadByte(ctx)]; + u8 b = *(u8*)ScriptReadWord(ctx); + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareAddrToLocal(struct ScriptContext *ctx) +{ + u8 a = *(u8*)ScriptReadWord(ctx); + u8 b = (u8)ctx->data[ScriptReadByte(ctx)]; + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareAddrToValue(struct ScriptContext *ctx) +{ + u8 a = *(u8*)ScriptReadWord(ctx); + u8 b = (u8)ScriptReadByte(ctx); + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext *ctx) +{ + u8 a = *(u8*)ScriptReadWord(ctx); + u8 b = *(u8*)ScriptReadWord(ctx); + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareVarToValue(struct ScriptContext *ctx) +{ + u16 a = *GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 b = ScriptReadHalfword(ctx); + ctx->comparisonResult = (u8)Compare(a, b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CompareVarToVar(struct ScriptContext *ctx) +{ + u16 *a = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 *b = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + ctx->comparisonResult = (u8)Compare(*a, *b); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_RunScript(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 *unk1 = (u8 *)FUN_02039438(unk80, 0x7); + u32 **unk2 = (u32 **)FUN_02039438(unk80, 0xe); + u16 id = ScriptReadHalfword(ctx); + + *unk2 = CreateScriptContext(unk80, id); + *unk1 = (u8)(*unk1 + 1); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_RunScriptWait(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 *unk1 = (u8 *)FUN_02039438(unk80, 0x5); + u8 *unk2 = (u8 *)FUN_02039438(unk80, 0x7); + u32 **unk3 = (u32 **)FUN_02039438(unk80, 0xe); + + u16 id = ScriptReadHalfword(ctx); + *unk1 = 1; + *unk3 = CreateScriptContext(unk80, id); + *unk2 = (u8)(*unk2 + 1); + + SetupNativeScript(ctx, FUN_02039CC8); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_02039CC8(struct ScriptContext *ctx) +{ + u8* unk = FUN_02039438(ctx->unk80, 0x5); + + if (*unk == 0) + { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_RestartCurrentScript(struct ScriptContext *ctx) +{ + u8* unk = (u8 *)FUN_02039438(ctx->unk80, 0x5); + + *unk = 0; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GoTo(struct ScriptContext *ctx) +{ + s32 offset = (s32)ScriptReadWord(ctx); + ScriptJump(ctx, ctx->scriptPtr + offset); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_ObjectGoTo(struct ScriptContext *ctx) +{ + u32* unk = FUN_02039438(ctx->unk80, 0xa); + u8 id = ScriptReadByte(ctx); + s32 offset = (s32)ScriptReadWord(ctx); + if (FUN_02058448(*unk) == id) + { + ScriptJump(ctx, ctx->scriptPtr + offset); + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_BgGoTo(struct ScriptContext *ctx) +{ + u32 bgId = FUN_02046534(ctx->unk74); + u8 id = ScriptReadByte(ctx); + s32 offset = (s32)ScriptReadWord(ctx); + + if (bgId == id) + { + ScriptJump(ctx, ctx->scriptPtr + offset); + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_DirectionGoTo(struct ScriptContext *ctx) +{ + u32 *playerDirection = FUN_02039438(ctx->unk80, 0x9); + u8 dir = ScriptReadByte(ctx); + s32 offset = (s32)ScriptReadWord(ctx); + + if (*playerDirection == dir) + { + ScriptJump(ctx, ctx->scriptPtr + offset); + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Call(struct ScriptContext *ctx) +{ + s32 offset = (s32)ScriptReadWord(ctx); + ScriptCall(ctx, ctx->scriptPtr + offset); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Return(struct ScriptContext *ctx) +{ + ScriptReturn(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GoToIf(struct ScriptContext *ctx) +{ + u8 compareType = ScriptReadByte(ctx); + s32 offset = (s32)ScriptReadWord(ctx); + + if (sScriptConditionTable[compareType][ctx->comparisonResult] == TRUE) + { + ScriptJump(ctx, ctx->scriptPtr + offset); + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CallIf(struct ScriptContext *ctx) +{ + u8 compareType = ScriptReadByte(ctx); + s32 offset = (s32)ScriptReadWord(ctx); + + if (sScriptConditionTable[compareType][ctx->comparisonResult] == TRUE) + { + ScriptCall(ctx, ctx->scriptPtr + offset); + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = ScriptReadHalfword(ctx); + FlagSet(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_ClearFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = ScriptReadHalfword(ctx); + FlagClear(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CheckFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = ScriptReadHalfword(ctx); + ctx->comparisonResult = FlagCheck(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CheckFlagVar(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 *wk2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *wk2 = FlagCheck(unk80, *wk1); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetFlagVar(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 *wk = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + FlagSet(unk80, *wk); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetTrainerFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + TrainerFlagSet(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_ClearTrainerFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + TrainerFlagClear(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CheckTrainerFlag(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + ctx->comparisonResult = TrainerFlagCheck(unk80, flag); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_AddVar(struct ScriptContext *ctx) +{ + u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + *wk1 = (u16)(*wk1 + wk2); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SubVar(struct ScriptContext *ctx) +{ + u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + *wk1 = (u16)(*wk1 - wk2); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetVar(struct ScriptContext *ctx) +{ + u16 *wk = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *wk = ScriptReadHalfword(ctx); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CopyVar(struct ScriptContext *ctx) +{ + u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 *wk2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *wk1 = *wk2; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_SetOrCopyVar(struct ScriptContext *ctx) +{ + u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + *wk1 = wk2; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Message(struct ScriptContext *ctx) +{ + u8 id = ScriptReadByte(ctx); + MOD05_ShowMessageInField(ctx, ctx->msgData, id); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_MessageFrom(struct ScriptContext *ctx) +{ + u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32); + MOD05_ShowMessageInField(ctx, msgData, msg); + DestroyMsgData(msgData); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_MessageFrom2(struct ScriptContext *ctx) +{ + u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32); + MOD05_021E2BD0(ctx, msgData, msg, 1, NULL); + DestroyMsgData(msgData); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FC(struct ScriptContext *ctx) +{ + u16 typ = ScriptReadHalfword(ctx); + u16 id = ScriptReadHalfword(ctx); + u16 word1 = ScriptReadHalfword(ctx); + s16 word2 = (s16)ScriptReadHalfword(ctx); + + MOD05_021E2C58(ctx, typ, id, word1, word2, 0xff); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FD(struct ScriptContext *ctx) +{ + u16 typ = ScriptReadHalfword(ctx); + u16 id = ScriptReadHalfword(ctx); + u16 word1 = ScriptReadHalfword(ctx); + s16 word2 = (s16)ScriptReadHalfword(ctx); + + MOD05_021E2C58(ctx, typ, id, word1, word2, 1); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FE(struct ScriptContext *ctx) +{ + u8 id = ScriptReadByte(ctx); + + if (ctx->unk80->unkA8 == NULL) + { + return FALSE; + } + + u16 *unkArr = ctx->unk80->unkA8->unk90[id].unk0; + if (unkArr[0] == 0xFFFF) + { + struct MsgData *msgdata = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0x22b, 32); + MOD05_021E2BD0(ctx, msgdata, unkArr[1], 1, NULL); + DestroyMsgData(msgdata); + } + else + { + MOD05_021E2C58(ctx, unkArr[0], unkArr[1], unkArr[2], (s16)unkArr[3], 1); + } + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FF(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 msg = ScriptReadByte(ctx); + u16 poke = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 sex = ScriptReadHalfword(ctx); + u8 flag = ScriptReadByte(ctx); + u8 unk = 0; + + struct ScrStrBufs *str = MOD06_02244210(unk80->saveBlock2, poke, sex, flag, &unk); + MOD05_021E2CBC(ctx, str, (u8)(msg + unk), 1); + ScrStrBufs_delete(str); + + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk026D(struct ScriptContext *ctx) //message unown font? +{ + struct UnkStruct_0203A288 myLocalStruct; + u16 msg = ScriptReadHalfword(ctx); + + MOD05_021E2BB8(&myLocalStruct, ctx); + myLocalStruct.unk2 = 3; + + MOD05_021E2BD0(ctx, ctx->msgData, msg, 0, &myLocalStruct); + SetupNativeScript(ctx, FUN_0203A2F0); + + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk002C(struct ScriptContext *ctx) +{ + u8 msg = ScriptReadByte(ctx); + MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC /*static*/ BOOL FUN_0203A2F0(struct ScriptContext *ctx) +{ + u8 *unk = (u8 *)FUN_02039438(ctx->unk80, 3); + return FUN_020546C8(*unk); +} + +THUMB_FUNC BOOL ScrCmd_Unk002D(struct ScriptContext *ctx) +{ + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 1, NULL); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02C0(struct ScriptContext *ctx) +{ + struct UnkStruct_0203A288 myLocalStruct; + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + MOD05_021E2BB8(&myLocalStruct, ctx); + myLocalStruct.unk1 = 1; + + MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 1, &myLocalStruct); + SetupNativeScript(ctx, FUN_0203A2F0); + + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk002E(struct ScriptContext *ctx) +{ + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 0, NULL); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk020C(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0xa); + u8 msg = (u8)FUN_02058488(*unk); + MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk002F(struct ScriptContext *ctx) +{ + u8 msg = ScriptReadByte(ctx); + + if (!FUN_02030F40()) + { + MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL); + } + else + { + struct UnkStruct_0203A288 myLocalStruct; + MOD05_021E2BB8(&myLocalStruct, ctx); + myLocalStruct.unk0 = 1; + myLocalStruct.unk1 = 1; + MOD05_021E2BD0(ctx, ctx->msgData, msg, 0, &myLocalStruct); + } + + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_WaitButtonAB(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, FUN_0203A46C); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A46C(struct ScriptContext *ctx) +{ +#pragma unused(ctx) + if (gMain.unk48 & 0x3) // Mask (A | B) ? + { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_WaitButtonABTime(struct ScriptContext *ctx) +{ + ctx->data[0] = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + SetupNativeScript(ctx, FUN_0203A4AC); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A4AC(struct ScriptContext *ctx) +{ + if (gMain.unk48 & 0x3) // Mask (A | B) ? + { + return TRUE; + } + ctx->data[0] = ctx->data[0] - 1; + + if (ctx->data[0] == 0) + { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_WaitButton(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, FUN_0203A4E0); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A4E0(struct ScriptContext *ctx) +{ + if (gMain.unk48 & 3) + { + return TRUE; + } + else if (gMain.unk48 & 0x40) + { + FUN_02055304(ctx->unk80->unk38, 0); + } + else if (gMain.unk48 & 0x80) + { + FUN_02055304(ctx->unk80->unk38, 1); + } + else if (gMain.unk48 & 0x20) + { + FUN_02055304(ctx->unk80->unk38, 2); + } + else if (gMain.unk48 & 0x10) + { + FUN_02055304(ctx->unk80->unk38, 3); + } + else if (gMain.unk48 & 0x400) + { + FUN_02039460(ctx->unk80); + } + else + { + return FALSE; + } + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0032(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, FUN_0203A570); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A570(struct ScriptContext *ctx) +{ +#pragma unused(ctx) + if (gMain.unk48 & 0x3) + { + return TRUE; + } + else if (gMain.unk48 & 0xf0) + { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0033(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 *unk = (u8 *)FUN_02039438(unk80, 6); + FUN_020545B8(unk80->unk08, FUN_02039438(unk80, 1), 3); + FUN_02054608(FUN_02039438(unk80, 1), Sav2_PlayerData_GetOptionsAddr(ctx->unk80->saveBlock2)); + *unk = 1; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0034(struct ScriptContext* ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0x1); //windowID? + u8 *unk2 = FUN_02039438(unk80, 0x6); + FUN_0200D0E0(unk, 0); //clear window? + FUN_02019178(unk); + *unk2 = 0; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0035(struct ScriptContext* ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0x1); //windowID? + u8 *unk2 = FUN_02039438(unk80, 0x6); + FUN_02019178(unk); + *unk2 = 0; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_ScrollBg(struct ScriptContext* ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 *xval = FUN_02039438(unk80, 0x31); + u16 *xcnt = FUN_02039438(unk80, 0x2d); + u16 *xdir = FUN_02039438(unk80, 0x32); + u16 *yval = FUN_02039438(unk80, 0x33); + u16 *ycnt = FUN_02039438(unk80, 0x2e); + u16 *ydir = FUN_02039438(unk80, 0x34); + + *xval = ScriptReadByte(ctx); + *xcnt = ScriptReadByte(ctx); + *xdir = ScriptReadByte(ctx); + *yval = ScriptReadByte(ctx); + *ycnt = ScriptReadByte(ctx); + *ydir = ScriptReadByte(ctx); + + SetupNativeScript(ctx, FUN_0203A6C8); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 *xval = FUN_02039438(unk80, 0x31); + u16 *xdir = FUN_02039438(unk80, 0x32); + u16 *yval = FUN_02039438(unk80, 0x33); + u16 *ydir = FUN_02039438(unk80, 0x34); + u16 *xcnt = FUN_02039438(unk80, 0x2d); + u16 *ycnt = FUN_02039438(unk80, 0x2e); + + if (*xcnt == 0 && *ycnt == 0) + { + return TRUE; + } + + if (*xval != 0) + { + if (*xdir == 0) + { + FUN_020179E0(unk80->unk08, 3, 1, *xval); + } + else + { + FUN_020179E0(unk80->unk08, 3, 2, *xval); + } + } + + if (*yval != 0) + { + if (*ydir == 0) + { + FUN_020179E0(unk80->unk08, 3, 4, *yval); + } + else + { + FUN_020179E0(unk80->unk08, 3, 5, *yval); + } + } + + if (*xcnt != 0) + { + *xcnt = (u16)(*xcnt - 1); + } + + if (*ycnt != 0) + { + *ycnt = (u16)(*ycnt - 1); + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CreateMessageBox(struct ScriptContext* ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + struct String **unk1 = FUN_02039438(unk80, 0x11); + struct String **unk2 = FUN_02039438(unk80, 0x10); + struct ScrStrBufs **unk3 = FUN_02039438(unk80, 0x0f); + u8 typ, msg; + u16 wk, map; + + msg = ScriptReadByte(ctx); + typ = ScriptReadByte(ctx); + map = ScriptReadHalfword(ctx); + wk = ScriptReadHalfword(ctx); + + if (map == 0) + { + u32 *unk4 = FUN_02039438(unk80, 10); + map = (u16)FUN_02058510(*unk4, 0); + } + + MOD05_021E8128(unk80->unk60, typ, map); + MOD05_021E8130(unk80->unk60, 1); + MOD05_021E8158(unk80); + ReadMsgDataIntoString(ctx->msgData, msg, *unk1); + StringExpandPlaceholders(*unk3, *unk2, *unk1); + AddTextPrinterParameterized(MOD05_021E8140(unk80->unk60), 1, (u16 *)*unk2, 0, 0, 0, NULL); + + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0037(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 typ = ScriptReadByte(ctx); + u16 map = ScriptReadHalfword(ctx); + + MOD05_021E8128(unk80->unk60, typ, map); + MOD05_021E8130(unk80->unk60, 1); + + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0038(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 req = ScriptReadByte(ctx); + MOD05_021E8130(unk80->unk60, req); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0039(struct ScriptContext *ctx) +{ + if (MOD05_021E8148(ctx->unk80->unk60) == TRUE) + { + return FALSE; + } + + SetupNativeScript(ctx, FUN_0203A8A0); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A8A0(struct ScriptContext *ctx) +{ + if (MOD05_021E8148(ctx->unk80->unk60) == TRUE) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk003A(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 *unk1 = FUN_02039438(unk80, 3); + struct String **unk2 = FUN_02039438(unk80, 17); + struct String **unk3 = FUN_02039438(unk80, 16); + struct ScrStrBufs **unk4 = FUN_02039438(unk80, 15); + + u8 msg = ScriptReadByte(ctx); + u16 wk = ScriptReadHalfword(ctx); + + ReadMsgDataIntoString(ctx->msgData, msg, *unk2); + StringExpandPlaceholders(*unk4, *unk3, *unk2); + + *unk1 = FUN_02054658(MOD05_021E8140(unk80->unk60), *unk3, Sav2_PlayerData_GetOptionsAddr(ctx->unk80->saveBlock2), 1); + ctx->data[0] = wk; + SetupNativeScript(ctx, FUN_0203A94C); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203A94C(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u8 *unk1 = FUN_02039438(unk80, 3); + u16 *varPtr = GetVarPointer(unk80, (u16)ctx->data[0]); + MOD05_021E8144(unk80->unk60); + + u32 tmp = 0xFFFF; + if (FUN_020546C8(*unk1) == TRUE) + { + *varPtr = 2; + return TRUE; + } + + if (gMain.unk48 & 0x40) + { + tmp = 0; + } + else if (gMain.unk48 & 0x80) + { + tmp = 1; + } + else if (gMain.unk48 & 0x20) + { + tmp = 2; + } + else if (gMain.unk48 & 0x10) + { + tmp = 3; + } + + if (tmp != 0xFFFF) + { + FUN_0201BD7C(*unk1); + FUN_02055304(ctx->unk80->unk38, tmp); + *varPtr = 0; + return TRUE; + } + else + { + if (gMain.unk48 & 0x400) + { + FUN_0201BD7C(*unk1); + *varPtr = 1; + return TRUE; + } + return FALSE; + } +} + +THUMB_FUNC BOOL ScrCmd_Unk003B(struct ScriptContext *ctx) +{ + ctx->data[0] = ScriptReadHalfword(ctx); + + SetupNativeScript(ctx, FUN_0203AA0C); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203AA0C(struct ScriptContext *ctx) +{ + u16 *unk = GetVarPointer(ctx->unk80, (u16)ctx->data[0]); + + u32 tmp = 0xFFFF; + if (gMain.unk48 & 0x3) + { + *unk = 0; + return TRUE; + } + else if (gMain.unk48 & 0x40) + { + tmp = 0; + } + else if (gMain.unk48 & 0x80) + { + tmp = 1; + } + else if (gMain.unk48 & 0x20) + { + tmp = 2; + } + else if (gMain.unk48 & 0x10) + { + tmp = 3; + } + + if (tmp != 0xFFFF) + { + FUN_02055304(ctx->unk80->unk38, tmp); + *unk = 0; + return TRUE; + } + else + { + if (gMain.unk48 & 0x400) + { + *unk = 1; + return TRUE; + } + else + { + return FALSE; + } + } +} + +THUMB_FUNC BOOL ScrCmd_Menu(struct ScriptContext *ctx) +{ + FUN_02039460(ctx->unk80); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_YesNoMenu(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 2); + u16 wk = ScriptReadHalfword(ctx); + FUN_0200CB00(unk80->unk08, 3, 985, 11, 0, 4); + *unk = Std_CreateYesNoMenu(unk80->unk08, &UNK_020F34E0, 985, 11, 4); + ctx->data[0] = wk; + SetupNativeScript(ctx, FUN_0203AB00); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203AB00(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 2); + u16 *ptr = GetVarPointer(unk80, (u16)ctx->data[0]); + u32 unk2 = FUN_020021AC(*unk, 4); + + if (unk2 == -1) + { + return FALSE; + } + + if (unk2 == 0) + { + *ptr = 0; + } + else + { + *ptr = 1; + } + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_ShowSaveClock(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 1); + u32 *unk2 = FUN_02039438(ctx->unk80, 18); + *unk2 = FUN_0200D858(unk, 994); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HideSaveClock(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 18); + FUN_0200DBFC(*unk); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0040(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0); + u32 *unk2 = FUN_02039438(unk80, 15); + u8 unk3 = ScriptReadByte(ctx); + u8 unk4 = ScriptReadByte(ctx); + u8 unk5 = ScriptReadByte(ctx); + u8 unk6 = ScriptReadByte(ctx); + u16 unk7 = ScriptReadHalfword(ctx); + u16 *ptr = GetVarPointer(unk80, unk7); + u32 *unk8 = FUN_02039438(ctx->unk80, 1); + *unk = MOD05_021E1BF8(unk80, unk3, unk4, unk5, unk6, ptr, *unk2, unk8, NULL); + ctx->data[0] = unk7; + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0041(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0); + u32 *unk2 = FUN_02039438(unk80, 15); + u8 unk3 = ScriptReadByte(ctx); + u8 unk4 = ScriptReadByte(ctx); + u8 unk5 = ScriptReadByte(ctx); + u8 unk6 = ScriptReadByte(ctx); + u16 unk7 = ScriptReadHalfword(ctx); + u16 *ptr = GetVarPointer(unk80, unk7); + u32 *unk8 = FUN_02039438(ctx->unk80, 1); + *unk = MOD05_021E1BF8(unk80, unk3, unk4, unk5, unk6, ptr, *unk2, unk8, ctx->msgData); + ctx->data[0] = unk7; + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0042(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + u8 unk2 = ScriptReadByte(ctx); + u8 unk3 = ScriptReadByte(ctx); + MOD05_021E1C4C(*unk, unk2, unk3); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk029D(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + MOD05_021E1C4C(*unk, unk2, unk3); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0043(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E1C54(*unk); + SetupNativeScript(ctx, FUN_0203AD2C); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203AD2C(struct ScriptContext *ctx) +{ + u16 *varPtr = GetVarPointer(ctx->unk80, (u16)ctx->data[0]); + if (*varPtr == 0xEEEE) + { + return FALSE; + } + else + { + return TRUE; + } +} + +THUMB_FUNC BOOL ScrCmd_Unk02B9(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E1C54(*unk); + SetupNativeScript(ctx, FUN_0203AD78); + return TRUE; +} + +THUMB_FUNC static BOOL FUN_0203AD78(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u16 *varPtr = GetVarPointer(unk80, (u16)ctx->data[0]); + u32 *unk = FUN_02039438(unk80, 0); + + if (*varPtr == 0xEEEE) + { + if (FUN_02052714(unk80->unk78)) + { + *varPtr = 8; + MOD05_021E1ECC(*unk); + return TRUE; + } + else + { + return FALSE; + } + } + else + { + return TRUE; + } +} + +THUMB_FUNC BOOL ScrCmd_Unk0044(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0); + u32 *unk2 = FUN_02039438(unk80, 15); + u8 unk3 = ScriptReadByte(ctx); + u8 unk4 = ScriptReadByte(ctx); + u8 unk5 = ScriptReadByte(ctx); + u8 unk6 = ScriptReadByte(ctx); + + u16 halfWord = ScriptReadHalfword(ctx); + u16 *varPtr = GetVarPointer(unk80, halfWord); + u32 *unk7 = FUN_02039438(ctx->unk80, 1); + *unk = MOD05_021E1F34(unk80, unk3, unk4, unk5, unk6, varPtr, *unk2, unk7, NULL); + ctx->data[0] = halfWord; + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0045(struct ScriptContext *ctx) +{ + struct UnkSavStruct80 *unk80 = ctx->unk80; + u32 *unk = FUN_02039438(unk80, 0); + u32 *unk2 = FUN_02039438(unk80, 15); + u8 unk3 = ScriptReadByte(ctx); + u8 unk4 = ScriptReadByte(ctx); + u8 unk5 = ScriptReadByte(ctx); + u8 unk6 = ScriptReadByte(ctx); + + u16 halfWord = ScriptReadHalfword(ctx); + u16 *varPtr = GetVarPointer(unk80, halfWord); + u32 *unk7 = FUN_02039438(ctx->unk80, 1); + *unk = MOD05_021E1F34(unk80, unk3, unk4, unk5, unk6, varPtr, *unk2, unk7, ctx->msgData); + ctx->data[0] = halfWord; + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0046(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk4 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + MOD05_021E1F58(*unk, (u8)unk2, (u8)unk3, (u8)unk4); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0047(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E1F60(*unk); + SetupNativeScript(ctx, FUN_0203AD2C); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0048(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E26CC(*unk, ScriptReadByte(ctx)); + SetupNativeScript(ctx, FUN_0203AD2C); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E2B80(*unk, ScriptReadByte(ctx)); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx) +{ + u32 *unk = FUN_02039438(ctx->unk80, 0); + MOD05_021E2B9C(*unk, ScriptReadByte(ctx)); + return TRUE; +} diff --git a/arm9/src/scrcmd_11.c b/arm9/src/scrcmd_11.c new file mode 100644 index 00000000..8553adfa --- /dev/null +++ b/arm9/src/scrcmd_11.c @@ -0,0 +1,120 @@ +#include "scrcmd.h" +#include "unk_02029FB0.h" + +extern void* FUN_02039438(struct UnkSavStruct80*, int idx); + +extern void FUN_0202A0E8(struct UnkStruct_02029FB0*, int); +extern void FUN_0202A170(struct UnkStruct_02029FB0*, int); +extern u8 FUN_0204B5FC(struct UnkSavStruct80*, void*); +extern void FUN_0204B57C(struct UnkSavStruct80*, void*, int); +extern u16 FUN_0204B63C(struct UnkSavStruct80*, void*); +extern u16 FUN_0204B660(struct UnkSavStruct80*, void*); +extern u16 FUN_0204B684(struct UnkSavStruct80*, void*); +extern u16 FUN_0204B6A4(struct UnkSavStruct80*, void*); +extern void FUN_0204B9CC(struct UnkSavStruct80*); +extern void FUN_0204B5A8(struct UnkSavStruct80*, void*, u16); +extern void FUN_0204B9A0(struct UnkSavStruct80*); +extern void FUN_0204B4FC(struct UnkSavStruct80*, void*); + +THUMB_FUNC BOOL ScrCmd_Unk017D(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void** unk = FUN_02039438(ctx->unk80, 10); + + *ret_ptr = FUN_0204B5FC(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk017E(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = FUN_0204B63C(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk017F(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = FUN_0204B660(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0180(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = FUN_0204B684(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0181(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = FUN_0204B6A4(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0182(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_0204B57C(ctx->unk80, *unk, unk2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0183(struct ScriptContext* ctx) +{ + void** unk = FUN_02039438(ctx->unk80, 10); + struct UnkStruct_02029FB0* unk2 = FUN_02029FC8(ctx->unk80->saveBlock2); + u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_0204B5A8(ctx->unk80, *unk, unk3); + FUN_0202A0E8(unk2, 3); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0184(struct ScriptContext* ctx) +{ + u16 unk = ScriptReadHalfword(ctx); + + switch (unk) + { + case 0: + FUN_0204B9A0(ctx->unk80); + break; + case 1: + FUN_0204B9CC(ctx->unk80); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0185(struct ScriptContext* ctx) +{ + struct UnkStruct_02029FB0* unk = FUN_02029FC8(ctx->unk80->saveBlock2); + void** unk2 = FUN_02039438(ctx->unk80, 10); + + FUN_0204B4FC(ctx->unk80, *unk2); + FUN_0202A170(unk, 0); + + return FALSE; +} diff --git a/arm9/src/scrcmd_13.c b/arm9/src/scrcmd_13.c new file mode 100644 index 00000000..3b21facc --- /dev/null +++ b/arm9/src/scrcmd_13.c @@ -0,0 +1,111 @@ +#include "scrcmd.h" +#include "event_data.h" +#include "heap.h" +#include "pokedex.h" +#include "pokemon_storage_system.h" +#include "unk_0202C144.h" + +extern struct PCStorage* GetStoragePCPointer(struct SaveBlock2* sav2); +extern void* FUN_02022528(struct SaveBlock2* sav2); +extern void FUN_0202BEDC(struct Pokemon* pokemon); +extern void FUN_0202BFD8(void* a0, s32 a1, struct Pokemon* pokemon); +extern u16 FUN_0202C000(struct Pokemon* pokemon); +extern void FUN_0204B9EC(struct UnkSavStruct80*); +extern u32 FUN_0204BA1C(struct UnkSavStruct80*); +extern u16 FUN_0204BAC4(struct UnkSavStruct80*); +extern u16 FUN_0204BAD4(struct UnkSavStruct80*); +extern u16 FUN_0204BAE4(struct UnkSavStruct80*); +extern void FUN_0205F224(struct ScriptState* state); +extern void FUN_0205F234(struct ScriptState* state); +extern void FUN_0208089C(struct Pokemon* pokemon, struct PlayerData* player, u32 a2, u32 a3, u32 heap_id); + +THUMB_FUNC BOOL ScrCmd_Unk0253(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + if (unk == 0) + { + FUN_0205F224(state); + FUN_0204B9EC(ctx->unk80); + } + else if (unk == 1) + { + FUN_0205F234(state); + FUN_0204BA1C(ctx->unk80); + } + else + { + GF_ASSERT(FALSE); + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0254(struct ScriptContext* ctx) +{ + void* unk = FUN_02022528(ctx->unk80->saveBlock2); + struct Pokemon* pokemon = AllocMonZeroed(32); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 eggs = FUN_0202C000(unk); + if (eggs == 6) { + *ret_ptr = 1; + } else { + *ret_ptr = 0; + } + + FreeToHeap(pokemon); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0255(struct ScriptContext* ctx) +{ + void* unk = FUN_02022528(ctx->unk80->saveBlock2); + struct PCStorage* pc = GetStoragePCPointer(ctx->unk80->saveBlock2); + struct Pokemon* pokemon = AllocMonZeroed(32); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); // unused + + for (s32 i = 0; i < PARTY_SIZE; i++) + { + FUN_0202BFD8(unk, i, pokemon); + FUN_0208089C(pokemon, player, 2, 0, 32); + + struct BoxPokemon* box_mon = FUN_020690E4(pokemon); + GF_ASSERT(PCStorage_PlaceMonInFirstEmptySlotInAnyBox(pc, box_mon)); + + FUN_0202C144(ctx->unk80->saveBlock2, pokemon); + } + + FreeToHeap(pokemon); + FUN_0202BEDC(unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0256(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + switch (unk) + { + case 0: + *ret_ptr = FUN_0204BAC4(ctx->unk80); + break; + case 1: + *ret_ptr = FUN_0204BAD4(ctx->unk80); + break; + case 2: + *ret_ptr = FUN_0204BAE4(ctx->unk80); + break; + case 3: + // For some reason, mwcc puts the FUN_0204BAD4 call before the FUN_0204BAC4 and FUN_0204BAE4 calls. + *ret_ptr = (u16)(FUN_0204BAC4(ctx->unk80) + FUN_0204BAE4(ctx->unk80) + FUN_0204BAD4(ctx->unk80)); + break; + } + + return FALSE; +} diff --git a/arm9/src/scrcmd_18_c.c b/arm9/src/scrcmd_18_c.c index b8bbbcdd..d4437c5f 100644 --- a/arm9/src/scrcmd_18_c.c +++ b/arm9/src/scrcmd_18_c.c @@ -6,19 +6,17 @@ #include "map_header.h"
#include "scrcmd.h"
-extern u16 VarGet(struct UnkStruct_0204639C* arg, u16 wk);
-extern u16 *GetVarPointer(struct UnkStruct_0204639C* arg, u16);
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)
+THUMB_FUNC BOOL ScrCmd_GiveMon(struct ScriptContext* ctx)
{
- u32 mapSec = FUN_02034824(*(ctx->unk80->unk1C));
- struct UnkStruct_0204639C *savePtr = ctx->unk80;
+ 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((struct SaveBlock2 *) savePtr->unkC);
- *varPtr = (u16)GiveMon(11, (struct SaveBlock2 *) savePtr->unkC, species, (u8)level, item, mapSec, 12);
+ 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_19.c b/arm9/src/scrcmd_19.c new file mode 100644 index 00000000..b0a201b7 --- /dev/null +++ b/arm9/src/scrcmd_19.c @@ -0,0 +1,86 @@ +#include "scrcmd.h" +#include "bag.h" + +const u16 UNK_020F450C[7][2] = { + { 0x0067, 0x008E }, + { 0x0065, 0x008A }, + { 0x0066, 0x008C }, + { 0x0063, 0x0159 }, + { 0x0064, 0x015B }, + { 0x0068, 0x019A }, + { 0x0069, 0x0198 }, +}; + +THUMB_FUNC BOOL ScrCmd_Unk01F1(struct ScriptContext * ctx) +{ + struct UnkSavStruct80 * sav_ptr = ctx->unk80; + + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u8 i; + u16 total; + for (i = 0, total = 0; i < 7; i++) + { + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + } + + *ret_ptr = total; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F4(struct ScriptContext * ctx) +{ + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = 0; + + for (u16 i = 0; i < 7; i++) + { + if (UNK_020F450C[i][0] == unk) + { + *ret_ptr = UNK_020F450C[i][1]; + break; + } + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F5(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 needed_amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr1 = 0; + *ret_ptr2 = 0; + + u8 i = 0; + u16 total = 0; + for (; i < 7; i++) + { + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + if (total >= needed_amount) + { + *ret_ptr1 = UNK_020F450C[i][0]; + *ret_ptr2 = i; + break; + } + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F2(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01F3(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} diff --git a/arm9/src/scrcmd_20.c b/arm9/src/scrcmd_20.c new file mode 100644 index 00000000..882126a0 --- /dev/null +++ b/arm9/src/scrcmd_20.c @@ -0,0 +1,35 @@ +#include "scrcmd.h" + +const u16 UNK_020F452A[19][2] = { + { 0x00FB, 0x03E8 }, + { 0x0109, 0x03E8 }, + { 0x0114, 0x03E8 }, + { 0x0115, 0x03E8 }, + { 0x01A1, 0x07D0 }, + { 0x0181, 0x07D0 }, + { 0x0192, 0x0FA0 }, + { 0x0167, 0x0FA0 }, + { 0x0173, 0x1770 }, + { 0x01A0, 0x1770 }, + { 0x0151, 0x1770 }, + { 0x0162, 0x1F40 }, + { 0x015C, 0x1F40 }, + { 0x016A, 0x2710 }, + { 0x015F, 0x2710 }, + { 0x0154, 0x2710 }, + { 0x0164, 0x2710 }, + { 0x0191, 0x3A98 }, + { 0x018B, 0x4E20 }, +}; + +THUMB_FUNC BOOL ScrCmd_Unk02A6(struct ScriptContext * ctx) +{ + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr1 = UNK_020F452A[idx][0]; + *ret_ptr2 = UNK_020F452A[idx][1]; + + return FALSE; +} diff --git a/arm9/src/scrcmd_23.c b/arm9/src/scrcmd_23.c new file mode 100644 index 00000000..0c9907a5 --- /dev/null +++ b/arm9/src/scrcmd_23.c @@ -0,0 +1,169 @@ +#include "scrcmd.h" + +extern BOOL FUN_02025D6C(void*, u16); +extern BOOL FUN_02025D94(void*, u16); +extern BOOL FUN_02026298(void*, u16); +extern void* FUN_02026CC4(struct SaveBlock2* sav2); +extern BOOL FUN_020260C4(void*, u16, u16); + +THUMB_FUNC BOOL ScrCmd_Unk0083(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk2 = FUN_02026CC4(sav2); + + *ret_ptr = (u16)FUN_02025D6C(unk2, unk1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0084(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0085(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk2 = FUN_02026CC4(sav2); + + *ret_ptr = (u16)FUN_02025D94(unk2, unk1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0086(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0087(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk2 = FUN_02026CC4(sav2); + + *ret_ptr = (u16)FUN_02026298(unk2, unk1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0088(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0089(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008A(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008B(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unused3 = FUN_02026CC4(sav2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008C(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008D(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008E(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk008F(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk3 = FUN_02026CC4(sav2); + + *ret_ptr = (u16)FUN_020260C4(unk3, unk1, unk2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0090(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0091(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0092(struct ScriptContext* ctx) +{ + u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + return FALSE; +} diff --git a/arm9/src/scrcmd_25.c b/arm9/src/scrcmd_25.c new file mode 100644 index 00000000..5124ad9a --- /dev/null +++ b/arm9/src/scrcmd_25.c @@ -0,0 +1,27 @@ +#include "scrcmd.h" + +THUMB_FUNC BOOL ScrCmd_Unk023F(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + GF_ASSERT(FALSE); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0240(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + GF_ASSERT(FALSE); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0241(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0242(struct ScriptContext * ctx) +{ +#pragma unused(ctx) + return FALSE; +} diff --git a/arm9/src/scrcmd_coins.c b/arm9/src/scrcmd_coins.c new file mode 100644 index 00000000..59638c83 --- /dev/null +++ b/arm9/src/scrcmd_coins.c @@ -0,0 +1,136 @@ +#include "scrcmd.h" +#include "coins.h" + +extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx); + +extern u32 MOD05_021E2950(struct UnkSavStruct80* arg, u8, u8); +extern MOD05_021E29B4(); +extern MOD05_021E29C8(); + +THUMB_FUNC BOOL ScrCmd_Unk0075(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 ** unk_ret_ptr = FUN_02039438(sav_ptr, 0x26); + + u32 unk3 = MOD05_021E2950(ctx->unk80, (u8)unk1, (u8)unk2); + *unk_ret_ptr = (u16 *)unk3; + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0076(struct ScriptContext * ctx) +{ + u16 ** unk = FUN_02039438(ctx->unk80, 0x26); + MOD05_021E29B4(*unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0077(struct ScriptContext * ctx) +{ + u16 ** unk = FUN_02039438(ctx->unk80, 0x26); + MOD05_021E29C8(ctx->unk80, *unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = CheckCoins(coins_ptr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + GiveCoins(coins_ptr, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + TakeCoins(coins_ptr, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * amount = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + TakeCoins(coins_ptr, *amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + // Created, but discarded. + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = ScriptReadWord(ctx); + u16 coins = CheckCoins(coins_ptr); + + if (coins < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext * ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + // Created, but discarded + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 amount = *(u16*)GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 coins = CheckCoins(coins_ptr); + + if (coins < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CanGiveCoins(struct ScriptContext * ctx) +{ + u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)CanGiveCoins(coins_ptr, amount); + + return FALSE; +} diff --git a/arm9/src/scrcmd_daycare.c b/arm9/src/scrcmd_daycare.c new file mode 100644 index 00000000..4e2f925e --- /dev/null +++ b/arm9/src/scrcmd_daycare.c @@ -0,0 +1,192 @@ +#include "scrcmd.h" +#include "daycare.h" +#include "party.h" +#include "script_buffers.h" + +extern void* FUN_02039438(struct UnkSavStruct80*, int idx); + +extern void MOD05_021EC57C(struct PlayerParty* party, u8 idx, struct DayCare* daycare, struct SaveBlock2* sav2); +extern u16 MOD05_021EC71C(struct PlayerParty* party, struct ScrStrBufs* mgr, struct DayCare* daycare, u8 idx); +extern u16 MOD05_021EC854(struct DayCare* daycare, u8 idx, struct ScrStrBufs* mgr); +extern u8 MOD05_021EC864(struct DayCare* daycare, int idx, struct ScrStrBufs* mgr); +extern void MOD05_021ECD64(struct DayCare* daycare); +extern void MOD05_DayCare_GiveEggToPlayer(struct DayCare* daycare, struct PlayerParty* party, struct PlayerData* player); +extern void MOD05_021ED4E0(struct DayCare* daycare, struct ScrStrBufs* mgr); +extern void MOD05_021ED52C(struct DayCare* daycare, u8 idx1, u8 idx2, u8 idx3, u8 idx4, struct ScrStrBufs* mgr); +extern u16 MOD05_021ED5C4(struct PlayerParty* party, int idx, struct ScrStrBufs* mgr); +extern u16 MOD05_021ED5EC(struct DayCare* daycare); +extern u32 MOD05_021ED644(struct DayCare* daycare); + +THUMB_FUNC BOOL ScrCmd_Unk016D(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + struct DayCare* daycare = Sav2_DayCare_get(sav2); + + MOD05_021ED4E0(daycare, *mgr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk016E(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2* sav2 = sav_ptr->saveBlock2; + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + + *ret_ptr = MOD05_021ED5EC(daycare); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx) +{ + struct DayCare* daycare = SavArray_get(ctx->unk80->saveBlock2, 8); + MOD05_021ECD64(daycare); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct DayCare* daycare = SavArray_get(sav_ptr->saveBlock2, 8); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2); + + MOD05_DayCare_GiveEggToPlayer(daycare, party, player); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + struct SaveBlock2* sav2 = sav_ptr->saveBlock2; + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + + *ret_ptr = MOD05_021EC71C(party, *mgr, daycare, (u8)idx); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + struct SaveBlock2* sav2 = sav_ptr->saveBlock2; + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + + *ret_ptr = MOD05_021EC854(daycare, (u8)idx, *mgr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + + *ret_ptr = MOD05_021EC864(daycare, idx, *mgr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u16 unused = ScriptReadHalfword(ctx); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + + *ret_ptr = MOD05_021ED5C4(party, idx, *mgr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2* sav2 = sav_ptr->saveBlock2; + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + struct DayCare* daycare = SavArray_get(sav2, 8); + + MOD05_021EC57C(party, (u8)idx, daycare, sav2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u16 idx1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx4 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = Sav2_DayCare_get(sav2); + + MOD05_021ED52C(daycare, (u8)idx1, (u8)idx2, (u8)idx3, (u8)idx4, *mgr); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + + *ret_ptr = (u16)MOD05_021ED644(daycare); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx) +{ + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct DayCare* daycare = SavArray_get(sav2, 8); + + *ret_ptr = (u16)Sav2_DayCare_GetEggPID(daycare); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A5(struct ScriptContext* ctx) +{ + u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A6(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01A7(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx) +{ + u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + return FALSE; +} diff --git a/arm9/src/scrcmd_items.c b/arm9/src/scrcmd_items.c new file mode 100644 index 00000000..0184d02e --- /dev/null +++ b/arm9/src/scrcmd_items.c @@ -0,0 +1,96 @@ +#include "scrcmd.h" +#include "bag.h" + +extern BOOL FUN_02054CB0(u16 item_id); + +THUMB_FUNC BOOL ScrCmd_GiveItem(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* item_was_added = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2); + + *item_was_added = (u16)Bag_AddItem(bag, item_id, quantity, 4); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeItem(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* item_was_taken = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2); + + *item_was_taken = (u16)Bag_TakeItem(bag, item_id, quantity, 4); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasSpaceForItem(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* has_space = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2); + + *has_space = (u16)Bag_HasSpaceForItem(bag, item_id, quantity, 4); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasItem(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* has_item = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2); + + *has_item = (u16)Bag_HasItem(bag, item_id, quantity, 11); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_ItemIdIsTMOrHM(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* is_tm_or_hm = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *is_tm_or_hm = (u16)FUN_02054CB0(item_id); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + + u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* pocket = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *pocket = (u16)GetItemAttr(item_id, ITEMATTR_POCKET, 11); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0081(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0082(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} diff --git a/arm9/src/scrcmd_money.c b/arm9/src/scrcmd_money.c new file mode 100644 index 00000000..d2254844 --- /dev/null +++ b/arm9/src/scrcmd_money.c @@ -0,0 +1,111 @@ +#include "scrcmd.h" +#include "player_data.h" + +extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx); + +extern u32 MOD05_021E27E8(struct UnkSavStruct80* arg, u8, u8); +extern void MOD05_021E288C(u32 *); +extern void MOD05_021E28A0(struct UnkSavStruct80* arg, u32 *); + +THUMB_FUNC BOOL ScrCmd_GiveMoney(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = ScriptReadWord(ctx); + PlayerProfile_AddMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = ScriptReadWord(ctx); + PlayerProfile_SubMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + + u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + PlayerProfile_SubMoney(player, amount); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = ScriptReadWord(ctx); + u32 money = PlayerProfile_GetMoney(player); + + if (money < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext * ctx) +{ + struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2); + u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 money = PlayerProfile_GetMoney(player); + + if (money < amount) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 1; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0072(struct ScriptContext * ctx) +{ + struct UnkSavStruct80 * sav_ptr = ctx->unk80; + u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 *unk_ret_ptr = FUN_02039438(sav_ptr, 0x27); + + *unk_ret_ptr = MOD05_021E27E8(ctx->unk80, (u8)unk1, (u8)unk2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0073(struct ScriptContext * ctx) +{ + u32 ** unk = FUN_02039438(ctx->unk80, 0x27); + MOD05_021E288C(*unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0074(struct ScriptContext * ctx) +{ + u32 ** unk = FUN_02039438(ctx->unk80, 0x27); + MOD05_021E28A0(ctx->unk80, *unk); + + return FALSE; +} diff --git a/arm9/src/scrcmd_names.c b/arm9/src/scrcmd_names.c new file mode 100644 index 00000000..cf721328 --- /dev/null +++ b/arm9/src/scrcmd_names.c @@ -0,0 +1,540 @@ +#include "scrcmd.h" +#include "event_data.h" +#include "itemtool.h" +#include "nutdata.h" +#include "party.h" +#include "player_data.h" +#include "script_buffers.h" +#include "unk_02024E64.h" +#include "unk_02064E4C.h" +#include "unk_0207FC5C.h" + +extern void* FUN_02039438(struct UnkSavStruct80* sav_ptr, int idx); + +extern u32 FUN_020536D0(u32 gender, u32 avatar, u32 a2); +extern u32 FUN_0205F388(struct ScriptState* state); +extern u32 FUN_0205F398(struct ScriptState* state); +extern struct PCStorage* GetStoragePCPointer(struct SaveBlock2* sav2); +extern u32 FUN_0205F3C0(struct ScriptState* state); +extern u32 FUN_02054C14(u32 number); + +THUMB_FUNC BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2); + + BufferPlayersName(*mgr, idx, player); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetRivalName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + + BufferRivalsName(*mgr, idx, sav_ptr->saveBlock2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetFriendName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + + BufferFriendsName(*mgr, idx, sav_ptr->saveBlock2); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00D0(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + struct Pokemon* mon = GetPartyMonByIndex(party, mon_idx); + + BufferBoxMonSpeciesName(*mgr, idx, &mon->box); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetItemName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferItemName(*mgr, idx, item); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetPocketName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 pocket = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferPocketName(*mgr, idx, pocket); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetTMHMMoveName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 tmhm = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 move = TMHMGetMove(tmhm); + + BufferMoveName(*mgr, idx, move); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetMoveName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 move = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferMoveName(*mgr, idx, move); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00D5(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 digits = FUN_02054C14(unk); + + BufferIntegerAsString(*mgr, idx, unk, digits, 1, TRUE); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0280(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u8 unk2 = ScriptReadByte(ctx); + u8 digits = ScriptReadByte(ctx); + if (unk2 == 0) + { + digits = (u8)FUN_02054C14(unk); + } + + BufferIntegerAsString(*mgr, idx, unk, digits, unk2, TRUE); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00D6(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); + + BufferBoxMonNickname(*mgr, idx, &pokemon->box); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0251(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct PCStorage* pc = GetStoragePCPointer(sav_ptr->saveBlock2); + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 box_mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + s32 box_no = box_mon_idx / 30; + s32 slot_no = box_mon_idx % 30; + struct BoxPokemon* box_mon = PCStorage_GetMonByIndexPair(pc, box_no, slot_no); + + BufferBoxMonNickname(*mgr, idx, box_mon); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetPoketchAppName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 app = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferPoketchAppName(*mgr, idx, app); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetTrainerClassName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 trainer_class = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferTrainerClassName(*mgr, idx, trainer_class); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00D9(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2); + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u32 gender = PlayerProfile_GetTrainerGender(player); + u32 avatar = PlayerProfile_GetAvatar(player); + u32 trainer_class = FUN_020536D0(gender, avatar, 2); + + BufferTrainerClassNameWithArticle(*mgr, idx, trainer_class); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00DA(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 msg_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk1 = ScriptReadHalfword(ctx); + u8 unk2 = ScriptReadByte(ctx); + struct String* str = FUN_02040AE4(msg_no, 4); + + BufferString(*mgr, idx, str, unk1, unk2, 2); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC struct String* FUN_02040AE4(u32 msg_no, u32 heap_id) +{ + struct MsgData* msg_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 362, heap_id); + struct String* ret = NewString_ReadMsgData(msg_data, msg_no); + DestroyMsgData(msg_data); + + return ret; +} + +THUMB_FUNC BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u32 msg_no = FUN_0205F388(state); + struct String* str = FUN_02040AE4(msg_no, 4); + + BufferString(*mgr, idx, str, 0, 1, 2); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u32 msg_no = FUN_0205F398(state); + struct String* str = FUN_02040AE4(msg_no, 4); + + BufferString(*mgr, idx, str, 0, 1, 2); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00DD(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u32 msg_no = FUN_0205F3C0(state); + struct String* str = FUN_02040AE4(msg_no, 4); + + BufferString(*mgr, idx, str, 0, 1, 2); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetDecorationName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 decoration = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferDecorationName(*mgr, idx, decoration); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetUndergroundTrapName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 underground_trap = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferUndergroundTrapName(*mgr, idx, underground_trap); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetUndergroundItemName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 underground_item = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferUndergroundItemName(*mgr, idx, underground_item); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx) +{ + struct String* str = String_ctor(22, 4); + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 map_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_02064E60(map_no, 4, str); + BufferString(*mgr, idx, str, 0, 1, 2); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk017B(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 berry = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct String* nut_name = GetNutName((u16)(berry - FIRST_BERRY_IDX), 32); + + BufferString(*mgr, idx, nut_name, 0, unk < 2, 2); + String_dtor(nut_name); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetNatureName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 nature = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferNatureName(*mgr, idx, nature); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetFashionName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 fashion = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferFashionName(*mgr, idx, fashion); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0272(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + struct String* str = String_ctor(11, 11); + struct UnkStruct_02024E64* unk = FUN_02024EB4(ctx->unk80->saveBlock2); + u16* unk_buffer = FUN_02024F0C(unk); + + CopyU16ArrayToString(str, unk_buffer); + BufferString(*mgr, idx, str, 0, 0, gGameLanguage); + String_dtor(str); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetPokemonMoveName(struct ScriptContext* ctx) +{ + struct UnkSavStruct80* sav_ptr = ctx->unk80; + struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); + u8 idx = ScriptReadByte(ctx); + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 mon_move_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2); + struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); + u16 move = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + mon_move_idx, NULL); + + BufferMoveName(*mgr, idx, move); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0232(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u8 unk = (u8)VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 ribbon = (u16)FUN_0207FC5C(unk, 3); + + BufferRibbonNameOrDesc(*mgr, idx, ribbon); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetSealName(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 seal = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferSealName(*mgr, idx, (u16)(seal - 1)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetItemNameWithIndefArticle(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferItemNameWithIndefArticle(*mgr, idx, item); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetItemNamePlural(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferItemNamePlural(*mgr, idx, item); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetDecorationNameWithArticle(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 decoration = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferDecorationNameWithArticle(*mgr, idx, decoration); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetUndergroundTrapNameWithArticle(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 underground_trap = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferUndergroundTrapNameWithArticle(*mgr, idx, underground_trap); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetUndergroundItemNameWithArticle(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 underground_item = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferUndergroundItemNameWithArticle(*mgr, idx, underground_item); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02C9(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused1 = ScriptReadHalfword(ctx); + u8 unused2 = ScriptReadByte(ctx); + + BufferSpeciesNameWithArticle(*mgr, idx, species); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02CA(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u32 species = FUN_0205F3C0(state); + + BufferSpeciesNameWithArticle(*mgr, idx, species); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetFashionNameWithArticle(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 fashion = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferFashionNameWithArticle(*mgr, idx, fashion); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 trainer_class = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferTrainerClassNameWithArticle(*mgr, idx, trainer_class); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + u16 seal = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferSealNamePlural(*mgr, idx, (u16)(seal - 1)); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + u8 idx = ScriptReadByte(ctx); + + ScrStrBufs_UpperFirstChar(*mgr, idx); + + return FALSE; +} diff --git a/arm9/src/script.c b/arm9/src/script.c index a5a5a6e4..2fa80058 100644 --- a/arm9/src/script.c +++ b/arm9/src/script.c @@ -17,7 +17,7 @@ THUMB_FUNC void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, u32 for (i = 0; i < NELEMS(ctx->stack); i++)
ctx->stack[i] = NULL;
- ctx->unk74 = 0;
+ ctx->unk74 = NULL;
}
THUMB_FUNC u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
@@ -27,7 +27,7 @@ THUMB_FUNC u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr) return 1;
}
-THUMB_FUNC void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *))
+THUMB_FUNC void SetupNativeScript(struct ScriptContext *ctx, BOOL (*ptr)(struct ScriptContext *))
{
ctx->mode = 2;
ctx->nativePtr = ptr;
@@ -39,9 +39,9 @@ THUMB_FUNC void StopScript(struct ScriptContext *ctx) ctx->scriptPtr = 0;
}
-THUMB_FUNC void FUN_02038B6C(struct ScriptContext *ctx, s32 r1)
+THUMB_FUNC void FUN_02038B6C(struct ScriptContext *ctx, struct UnkStruct_0204639C *r1)
{
- ctx->unk74 = (u32)r1;
+ ctx->unk74 = r1;
}
THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx)
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index 431f63b4..e9a55051 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -11,11 +11,10 @@ #include "unk_0201B8B8.h" #include "trainer_data.h" #include "script_buffers.h" +#include "unk_02024E64.h" #pragma thumb on -extern void * FUN_02024EC0(struct SaveBlock2 * sav2); -extern u16 * FUN_02024EE8(void *); extern u32 GetCityNamesMsgdataIdByCountry(u32); extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1); extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src); @@ -131,7 +130,7 @@ void BufferPlayersName(struct ScrStrBufs * mgr, u32 idx, struct PlayerData * dat void BufferRivalsName(struct ScrStrBufs * mgr, u32 idx, struct SaveBlock2 * sav2) { - u16 * name = FUN_02024EE8(FUN_02024EC0(sav2)); + u16 * name = GetRivalNamePtr(FUN_02024EC0(sav2)); CopyU16ArrayToString(mgr->tmpbuf, name); SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL); } diff --git a/arm9/src/text.c b/arm9/src/text.c index 6207d913..aadb84c0 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -416,93 +416,7 @@ THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadow *(current++) = (shadow12) | temp; } #else -THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) //TODO use asm preprocessor -{ - asm { - // push {r3-r7, lr} - sub sp, #0x30 - ldr r3, =UNK_021C570C - mov r5, #0x0 - str r5, [sp, #0x20] - str r0, [sp, #0x24] - str r2, [sp, #0x28] - str r1, [sp, #0x2c] - strh r1, [r3, #0x6] - strh r0, [r3, #0x2] - add r0, sp, #0x20 - strh r2, [r3, #0x4] - str r5, [sp, #0x14] - str r0, [sp, #0x8] - mov r12, r0 - mov lr, r0 - str r0, [sp, #0x18] - _0201C07E: - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x18] - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r0, [r0, #0x0] - str r0, [sp, #0x1c] - _0201C08C: - mov r0, #0x0 - str r0, [sp, #0xc] - mov r0, lr - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x0] - lsl r7, r0, #0x4 - _0201C09A: - ldr r0, [sp, #0x0] - mov r3, #0x0 - ldr r0, [r0, #0x0] - mov r4, r12 - lsl r6, r0, #0x8 - _0201C0A4: - ldr r0, [r4, #0x0] - add r1, r7, #0x0 - lsl r0, r0, #0xc - orr r0, r6 - orr r1, r0 - ldr r0, [sp, #0x1c] - add r3, r3, #0x1 - add r2, r0, #0x0 - orr r2, r1 - lsl r1, r5, #0x1 - ldr r0, =UNK_021C5734 - add r5, r5, #0x1 - add r4, r4, #0x4 - strh r2, [r0, r1] - cmp r3, #0x4 - blt _0201C0A4 - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, #0x4 - blt _0201C09A - ldr r0, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x10] - add r0, r0, #0x1 - str r0, [sp, #0x10] - cmp r0, #0x4 - blt _0201C08C - ldr r0, [sp, #0x8] - add r0, r0, #0x4 - str r0, [sp, #0x8] - ldr r0, [sp, #0x14] - add r0, r0, #0x1 - str r0, [sp, #0x14] - cmp r0, #0x4 - blt _0201C07E - add sp, #0x30 - // pop {r3-r7, pc} - } -} +GLOBAL_ASM("asm/nonmatchings/GenerateFontHalfRowLookupTable.s") #endif THUMB_FUNC void DecompressGlyphTile(const u16 *src, u16 *dst) diff --git a/arm9/src/timer3.c b/arm9/src/timer3.c new file mode 100644 index 00000000..1799fd24 --- /dev/null +++ b/arm9/src/timer3.c @@ -0,0 +1,66 @@ +#include "timer3.h" + +struct Timer3Data timer3_data; + + +THUMB_FUNC void Init_Timer3() +{ + timer3_data.Timer3Counter = 0; + timer3_data.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_SetIrqFunction(0x40, &CountUpTimer3); + OS_EnableIrqMask(0x40); // irq on timer3 overflow +} + + +THUMB_FUNC void CountUpTimer3() +{ + timer3_data.Timer3Counter++; + + if (timer3_data.NeedReset) + { + reg_OS_TM3CNT_H = 0; + reg_OS_TM3CNT_L = 0; + reg_OS_TM3CNT_H = 0xc1; + timer3_data.NeedReset = FALSE; + } + + *(vu32 *)HW_INTR_CHECK_BUF |= 0x40; + + OS_SetIrqFunction(0x40, &CountUpTimer3); +} + +THUMB_FUNC u64 internal_GetTimer3Count() +{ + OSIntrMode intr_mode = OS_DisableInterrupts(); + + vu16 timer3 = reg_OS_TM3CNT_L; + vu64 timer3_counter = timer3_data.Timer3Counter & 0x0000ffffffffffff; + + if (reg_OS_IF & 0x40 && !(timer3 & 0x8000)) + { + timer3_counter++; + } + + OS_RestoreInterrupts(intr_mode); + return (timer3_counter << 16) | timer3; +} + +THUMB_FUNC u64 GetTimer3Count() +{ + return internal_GetTimer3Count(); +} + +THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count) +{ + return (count *64) / 33514; +} + +THUMB_FUNC u64 Timer3CountToSeconds(u64 count) +{ + return (count *64) / HW_SYSTEM_CLOCK; +} diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c index 7af4b2ce..f161b302 100644 --- a/arm9/src/trainer_data.c +++ b/arm9/src/trainer_data.c @@ -6,11 +6,10 @@ #include "proto.h" #include "msgdata.h" #include "constants/trainer_classes.h" +#include "unk_02024E64.h" #pragma thumb on -extern void * FUN_02024EC0(struct SaveBlock2 *); -extern u16 * FUN_02024EE8(void *); // Loads all battle opponents, including multi-battle partner if exists. void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 * sav2, u32 heap_id) @@ -23,7 +22,7 @@ void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 // FIXME: String formatting in files/msgdata/msg/narc_0559.txt is abnormal. msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, heap_id); - rivalName = FUN_02024EE8(FUN_02024EC0(sav2)); + rivalName = GetRivalNamePtr(FUN_02024EC0(sav2)); for (i = 0; i < 4; i++) { if (enemies->trainer_idxs[i] != 0) diff --git a/arm9/src/unk_02015E30.c b/arm9/src/unk_02015E30.c new file mode 100644 index 00000000..8be466fb --- /dev/null +++ b/arm9/src/unk_02015E30.c @@ -0,0 +1,35 @@ + +#include "unk_02015E30.h" + +struct UnkStruct_02015E30 UNK_021C4898; + +THUMB_FUNC void FUN_02015E30() +{ + UNK_021C4898.unk00 = 0; +} + +THUMB_FUNC void FUN_02015E3C(struct IGT *igt) +{ + struct UnkStruct_02015E30 *unk1 = &UNK_021C4898; + UNK_021C4898.unk00 = 1; + UNK_021C4898.unk10 = 0; + UNK_021C4898.unk14 = 0; + UNK_021C4898.unk08 = 0; + UNK_021C4898.unk04 = igt; + + UNK_021C4898.unk18 = GetTimer3Count(); +} + +THUMB_FUNC void FUN_02015E60() +{ + if (UNK_021C4898.unk00 != 0) + { + u64 res = Timer3CountToSeconds(GetTimer3Count() - UNK_021C4898.unk18); + + if (UNK_021C4898.unk08 < res) + { + AddIGTSeconds(UNK_021C4898.unk04, (u32)(res - UNK_021C4898.unk08)); + UNK_021C4898.unk08 = res; + } + } +} diff --git a/arm9/src/unk_02024E64.c b/arm9/src/unk_02024E64.c new file mode 100644 index 00000000..d8682531 --- /dev/null +++ b/arm9/src/unk_02024E64.c @@ -0,0 +1,62 @@ +#include "unk_02024E64.h" + +extern void FUN_020250A4(void *param0); +extern void FUN_02025484(void *param0); + +THUMB_FUNC u32 FUN_02024E64() +{ + return sizeof(struct UnkStruct_02024E64); +} + +THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0) +{ + MIi_CpuClearFast(0, param0, sizeof(struct UnkStruct_02024E64)); + + FUN_020250A4(param0->unk0); + + FUN_02025484(param0->unk700); + + MIi_CpuClear16(0xFFFF, param0->rival_name_buf, sizeof(param0->rival_name_buf) / sizeof(u16)); + MIi_CpuClear16(0xFFFF, param0->unk734, sizeof(param0->unk734) / sizeof(u16)); +} + +THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 0xa); +} + +THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2) +{ + return FUN_02022634(sav2, 0xa); +} + +THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 0xa); +} + +THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2) +{ + struct UnkStruct_02024E64 *res = SavArray_get(sav2, 0xa); + return res->unk700; +} + +THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk) +{ + return unk->rival_name_buf; +} + +THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str) +{ + CopyStringToU16Array(str, unk->rival_name_buf, sizeof(unk->rival_name_buf) / sizeof(u16)); +} + +THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk) +{ + return unk->unk734; +} + +THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str) +{ + CopyStringToU16Array(str, unk->unk734, sizeof(unk->unk734) / sizeof(u16)); +} diff --git a/arm9/src/unk_02025484.c b/arm9/src/unk_02025484.c new file mode 100644 index 00000000..733ac23a --- /dev/null +++ b/arm9/src/unk_02025484.c @@ -0,0 +1,27 @@ +#include "global.h" +#include "MI_memory.h" +#include "error_handling.h" +#include "unk_02025484.h" + +THUMB_FUNC void FUN_02025484(struct unk_2025484 *r0, u32 r1) +{ + MI_CpuFill8(r0, 0, sizeof(struct unk_2025484)); +} + +THUMB_FUNC u32 *FUN_02025490(struct unk_2025484 *r0, u32 r1) +{ + FUN_02025484(r0, r1); + r0->unk0 = r1; + return &r0->unk4; +} + +THUMB_FUNC u32 *FUN_020254A0(struct unk_2025484 *r0, u32 r1) +{ + GF_ASSERT(r0->unk0 == r1); + return &r0->unk4; +} + +THUMB_FUNC u32 FUN_020254B4(struct unk_2025484 *r0) +{ + return r0->unk0; +} diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c new file mode 100644 index 00000000..23a7de85 --- /dev/null +++ b/arm9/src/unk_0202F150.c @@ -0,0 +1,2478 @@ +#include "unk_0202F150.h" +struct +{ + u8 unk00; + struct UnkStruct0202F150 *unk04; +} UNK_021C59F4; + +vu8 UNK_02105D58 = 4; +vu8 UNK_02105D59 = 4; + +extern int FUN_02033534(); +extern u32 FUN_0202D858(u16 param0); +extern void FUN_02031480(u32 param0); +extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2); +extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); +extern void FUN_0202D394(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2); +extern void FUN_0202D804(u8 *param0); +extern u32 FUN_0202E5F8(u32 param0, u32 param1, u32 param2); +extern void FUN_0202D330(void (*param0)(int)); +extern u32 FUN_0202E66C(u32 param0, u32 param1); +extern void MOD04_021D83C0(); +extern u32 FUN_0202E784(); +extern void FUN_020314D0(); +extern void FUN_0202DBA4(); +extern void FUN_0200CAB4(u32 param0); +extern void FUN_0202D824(u8 *param0); +extern u32 FUN_0202E9E8(u32 param0); +extern u32 FUN_0202F03C(); +extern u32 FUN_0202EE24(); +extern void FUN_02031CDC(); +extern void FUN_0202EBD0(u16 param0); +extern void FUN_0202ED70(u32 param0); +extern void FUN_020335F4(u32 param0); +extern void FUN_020315A4(); +extern void FUN_0202E538(); +extern u32 MOD04_021D78FC(void *param0, u32 param1); +extern u32 FUN_0202CBD4(); +extern void FUN_0202D4BC(void *param0); +extern int FUN_0202D400(struct UnkStruct0202F150_sub1 *param0, void *param1, u32 param2); +extern u32 FUN_0202D0D0(u8 *param0, u16 param1, u32 param2, void (*param3)(u32)); +extern u32 MOD04_021D79B4(void *param0, u32 param1); +extern void FUN_0202D3A4(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2, u32 param3); +extern int FUN_0202D498(void *param0); +extern u16 FUN_0202CB8C(); +extern s64 _ll_mul(s64, s64); +extern u32 FUN_0202D4E4(u8 *param0); +extern u32 FUN_0202D760(u8 *param0, int *param1, u32 param2); +extern u32 FUN_0202D684(u8 *param0, u32 param1, u8 *param2, u32 param3, u32 param4, u32 param5); +extern void FUN_0202D934(u32 param0, u32 param1, u32 param2, void *param3); +extern int FUN_0202D478(struct UnkStruct0202F150_sub1 *param0); +extern u32 FUN_0202D41C(struct UnkStruct0202F150_sub1 *param0); +extern s16 FUN_0202D9A0(u32 param0); +extern u32 FUN_0202DA04(u32 param0); +extern void *FUN_0202DA40(u32 param0, u32 param1, u16 param2); +extern u32 MOD04_021D8018(); +extern u32 FUN_0202EDF8(); +extern u16 FUN_0202D19C(); +extern void FUN_020334E8(u32 param0, u32 param1); +extern u32 FUN_0202EE60(); +extern u32 FUN_0202D884(u16 param0); +extern void FUN_0202F05C(); +extern void GF_RTC_CopyDateTime(RTCDate *, RTCTime *); +extern void FUN_0202D830(u8 *param0, u32 param1); +extern u32 MOD04_021D8624(); + +THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1) +{ + u32 r4 = 0; + UNK_021C59F4.unk00 = 0; + if (param0 != 0) + { + u32 res = FUN_0202D858((u16)FUN_02033534()) + 1; + + if (UNK_021C59F4.unk04 != 0) + { + return 1; + } + + FUN_02031480(0xf); + struct UnkStruct0202F150 *ptr = + (struct UnkStruct0202F150 *)AllocFromHeap(0xf, sizeof(struct UnkStruct0202F150)); + UNK_021C59F4.unk04 = ptr; + MI_CpuFill8(ptr, 0, 0x68C); + + UNK_021C59F4.unk04->unk658 = param1 + 0x40; + UNK_021C59F4.unk04->unk67D = 0; + UNK_021C59F4.unk04->unk67E = 0x1b; + + UNK_021C59F4.unk04->unk45C = AllocFromHeap(0xf, UNK_021C59F4.unk04->unk658 << 1); + + UNK_021C59F4.unk04->unk460 = AllocFromHeap(0xf, UNK_021C59F4.unk04->unk658); + + UNK_021C59F4.unk04->unk458 = AllocFromHeap(0xf, res * UNK_021C59F4.unk04->unk658); + + UNK_021C59F4.unk04->unk454 = AllocFromHeap(0xf, res * UNK_021C59F4.unk04->unk658); + + if (FUN_02033534() == 0xa) + { + FUN_0202D7D8(UNK_021C59F4.unk04->unk54C, 0x64, &UNK_021C59F4.unk04->unk464); + FUN_0202D7D8(UNK_021C59F4.unk04->unk56C, 0x32 << 4, &UNK_021C59F4.unk04->unk4DC); + } + else + { + FUN_0202D7D8(UNK_021C59F4.unk04->unk54C, 0x14, &UNK_021C59F4.unk04->unk464); + FUN_0202D7D8(UNK_021C59F4.unk04->unk56C, 0x1b + 0xfd, &UNK_021C59F4.unk04->unk4DC); + } + } + else + { + + r4 = 1; + if (UNK_021C59F4.unk04 == 0) + { + ErrorHandling(); + } + } + + UNK_021C59F4.unk04->unk65C = 0; + + for (int i = 0; i < 4; i++) + { + UNK_021C59F4.unk04->unk677[i] = 0xff; + } + + if (r4 == 0) + { + FUN_0202F2F0(); + } + + FUN_020312BC(UNK_021C59F4.unk04->unk5F8); + + if (r4 == 0) + { + u32 res2 = FUN_0200CA60(FUN_0202FB20, 0, 0); + + UNK_021C59F4.unk04->unk548 = res2; + } + + UNK_021C59F4.unk04->unk687 = 0; + + return 1; +} + +THUMB_FUNC void FUN_0202F2F0() +{ + UNK_021C59F4.unk04->unk62C = 0; + UNK_021C59F4.unk04->unk62D = 0; + UNK_021C59F4.unk04->unk67F = 0; + UNK_021C59F4.unk04->unk680 = 0; + + int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + + MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res); + + int i; + for (i = 0; i < res; i++) + { + FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[i], + UNK_021C59F4.unk04->unk458 + i * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + } + + MI_CpuFill8(UNK_021C59F4.unk04->unk454, 0, UNK_021C59F4.unk04->unk658 * res); + + for (i = 0; i < res; i++) + { + FUN_0202D394(&UNK_021C59F4.unk04->unk47C[i], + UNK_021C59F4.unk04->unk454 + i * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + } + + MI_CpuFill8(&UNK_021C59F4.unk04->unk2D4, 0, 6 << 6); + FUN_0202D394(&UNK_021C59F4.unk04->unk4DC, UNK_021C59F4.unk04->unk2D4, 6 << 6); + + for (i = 0; i < 0xc0; i++) + { + UNK_021C59F4.unk04->unk154[0][i] = 0xee; + UNK_021C59F4.unk04->unk154[1][i] = 0xee; + } + + MI_CpuFill8(&UNK_021C59F4.unk04->unk04c, 0, 0x42 << 2); + FUN_0202D394(&UNK_021C59F4.unk04->unk464, UNK_021C59F4.unk04->unk04c, 0x42 << 2); + + UNK_021C59F4.unk04->unk000[0][0] = 0xff; + UNK_021C59F4.unk04->unk000[1][0] = 0xff; + + for (i = 1; i < 0x26; i++) + { + UNK_021C59F4.unk04->unk000[0][i] = 0xee; + UNK_021C59F4.unk04->unk000[1][i] = 0xee; + } + + MI_CpuFill8(UNK_021C59F4.unk04->unk45C, 0, UNK_021C59F4.unk04->unk658 << 1); + + FUN_0202D394( + &UNK_021C59F4.unk04->unk470, UNK_021C59F4.unk04->unk45C, UNK_021C59F4.unk04->unk658 * 2); + + UNK_021C59F4.unk04->unk684 = 0; + UNK_021C59F4.unk04->unk685 = 0; + + for (i = 0; i < 8; i++) + { + UNK_021C59F4.unk04->unk65F[i] = 0; + UNK_021C59F4.unk04->unk667[i] = 1; + UNK_021C59F4.unk04->unk66F[i] = 1; + UNK_021C59F4.unk04->unk610[i] = 0; + + UNK_021C59F4.unk04->unk58C[i].unk0a = 0xee; + UNK_021C59F4.unk04->unk58C[i].unk08 = 0xffff; + UNK_021C59F4.unk04->unk58C[i].unk04 = 0; + UNK_021C59F4.unk04->unk58C[i].unk00 = 0; + + UNK_021C59F4.unk04->unk638[i] = 0; + } + + UNK_021C59F4.unk04->unk634 = 0; + UNK_021C59F4.unk04->unk630 = 1; + UNK_021C59F4.unk04->unk5F6 = 0xee; + UNK_021C59F4.unk04->unk5F4 = 0xffff; + UNK_021C59F4.unk04->unk5F0 = 0; + UNK_021C59F4.unk04->unk5EC = 0; + UNK_021C59F4.unk04->unk682 = 1; + UNK_021C59F4.unk04->unk683 = 1; + + UNK_02105D59 = 4; + UNK_02105D58 = 4; + + FUN_0202D804(UNK_021C59F4.unk04->unk54C); + FUN_0202D804(UNK_021C59F4.unk04->unk56C); + + UNK_021C59F4.unk04->unk688 = 0; +} + +THUMB_FUNC void FUN_0202F5A4() +{ + UNK_021C59F4.unk04->unk62C = 0; + UNK_021C59F4.unk04->unk62D = 0; + + int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + + MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res); + + int i; + for (i = 0; i < res; i++) + { + FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[i], + UNK_021C59F4.unk04->unk458 + i * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + } + + MI_CpuFill8(UNK_021C59F4.unk04->unk454, 0, UNK_021C59F4.unk04->unk658 * res); + + for (i = 0; i < res; i++) + { + FUN_0202D394(&UNK_021C59F4.unk04->unk47C[i], + UNK_021C59F4.unk04->unk454 + i * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + } + + MI_CpuFill8(&UNK_021C59F4.unk04->unk2D4, 0, 6 << 6); + FUN_0202D394(&UNK_021C59F4.unk04->unk4DC, UNK_021C59F4.unk04->unk2D4, 6 << 6); + + for (i = 0; i < 0xc0; i++) + { + UNK_021C59F4.unk04->unk154[0][i] = 0xee; + UNK_021C59F4.unk04->unk154[1][i] = 0xee; + } + + MI_CpuFill8(&UNK_021C59F4.unk04->unk04c, 0, 0x42 << 2); + FUN_0202D394(&UNK_021C59F4.unk04->unk464, UNK_021C59F4.unk04->unk04c, 0x42 << 2); + + UNK_021C59F4.unk04->unk000[0][0] = 0xff; + UNK_021C59F4.unk04->unk000[1][0] = 0xff; + + for (i = 1; i < 0x26; i++) + { + UNK_021C59F4.unk04->unk000[0][i] = 0xee; + UNK_021C59F4.unk04->unk000[1][i] = 0xee; + } + + MI_CpuFill8(UNK_021C59F4.unk04->unk45C, 0, UNK_021C59F4.unk04->unk658 << 1); + FUN_0202D394( + &UNK_021C59F4.unk04->unk470, UNK_021C59F4.unk04->unk45C, UNK_021C59F4.unk04->unk658 * 2); + + UNK_021C59F4.unk04->unk684 = 0; + UNK_021C59F4.unk04->unk685 = 0; + + for (i = 0; i < 8; i++) + { + UNK_021C59F4.unk04->unk65F[i] = 0; + UNK_021C59F4.unk04->unk667[i] = 1; + UNK_021C59F4.unk04->unk66F[i] = 1; + UNK_021C59F4.unk04->unk610[i] = 0; + + UNK_021C59F4.unk04->unk58C[i].unk0a = 0xee; + UNK_021C59F4.unk04->unk58C[i].unk08 = 0xffff; + UNK_021C59F4.unk04->unk58C[i].unk04 = 0; + UNK_021C59F4.unk04->unk58C[i].unk00 = 0; + } + + UNK_021C59F4.unk04->unk630 = 1; + UNK_021C59F4.unk04->unk5F6 = 0xee; + UNK_021C59F4.unk04->unk5F4 = 0xffff; + UNK_021C59F4.unk04->unk5F0 = 0; + UNK_021C59F4.unk04->unk5EC = 0; + UNK_021C59F4.unk04->unk682 = 1; + UNK_021C59F4.unk04->unk683 = 1; + + FUN_0202D804(UNK_021C59F4.unk04->unk54C); + FUN_0202D804(UNK_021C59F4.unk04->unk56C); + + UNK_021C59F4.unk04->unk688 = 0; +} + +THUMB_FUNC void FUN_0202F820(int param0) +{ + UNK_021C59F4.unk04->unk65F[param0] = 0; + + UNK_021C59F4.unk04->unk667[param0] = 1; + + UNK_021C59F4.unk04->unk638[param0] = 0; + + UNK_021C59F4.unk04->unk66F[param0] = 1; + + FUN_0202D394(&UNK_021C59F4.unk04->unk47C[param0], + UNK_021C59F4.unk04->unk454 + param0 * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + + FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[param0], + UNK_021C59F4.unk04->unk458 + param0 * UNK_021C59F4.unk04->unk658, + UNK_021C59F4.unk04->unk658); + + UNK_021C59F4.unk04->unk58C[param0].unk0a = 0xee; + UNK_021C59F4.unk04->unk58C[param0].unk08 = 0xffff; + UNK_021C59F4.unk04->unk58C[param0].unk04 = 0; + UNK_021C59F4.unk04->unk58C[param0].unk00 = 0; +} + +THUMB_FUNC void FUN_0202F8D4() +{ + for (int i = 1; i < 8; i++) + { + if (FUN_02030E7C((u16)i) == 0 && UNK_021C59F4.unk04->unk667[i] == 0 && FUN_02031280() == 0) + { + FUN_0202F820(i); + } + } +} + +THUMB_FUNC void FUN_0202F910(int param0) +{ + FUN_0202F820(param0); +} + +THUMB_FUNC u32 FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3) +{ + u32 ret = 1; + if (FUN_02033534() < 0x13) + { + ret = FUN_0202E5F8(param0, param1, param3); + FUN_0202D330(FUN_0202F910); + } + + FUN_0202F150(param0, param2); + + return ret; +} + +THUMB_FUNC u32 FUN_0202F950(u32 param0, u32 param1, u32 param2) +{ + u32 ret = 1; + if (FUN_02033534() < 0x13) + { + ret = FUN_0202E66C(param0, param1); + } + + FUN_0202F150(param0, param2); + + UNK_02105D58 = 4; + + return ret; +} + +THUMB_FUNC void FUN_0202F984() +{ + u32 r4 = 0; + if (FUN_02031190() == 0) + { + if (UNK_02105D59 != 4) + { + return; + } + } + else + { + if (UNK_02105D58 != 4) + { + return; + } + } + + if (UNK_021C59F4.unk04->unk67D == 2) + { + UNK_021C59F4.unk04->unk67D = 0; + r4 = 1; + } + + if (UNK_021C59F4.unk04->unk67D == 3) + { + UNK_021C59F4.unk04->unk67D = 1; + r4 = 1; + } + + if (r4 != 0) + { + FUN_0202F5A4(); + } + FUN_02031088(); +} + +THUMB_FUNC void FUN_0202F9E0(u32 param0) +{ + u8 r2 = UNK_021C59F4.unk04->unk67D; + if (r2 == 0 && param0 == 1) + { + UNK_021C59F4.unk04->unk67D = 3; + } + else if (r2 == 1 && param0 == 0) + { + UNK_021C59F4.unk04->unk67D = 2; + } +} + +THUMB_FUNC void FUN_0202FA10() +{ + FUN_0202F9E0(1); +} + +THUMB_FUNC void FUN_0202FA1C() +{ + FUN_0202F9E0(0); +} + +THUMB_FUNC u8 FUN_0202FA28() +{ + u8 ret = UNK_021C59F4.unk04->unk67D; + if (ret == 2) + { + return 1; + } + else if (ret == 3) + { + return 0; + } + + return ret; +} + +THUMB_FUNC u32 FUN_0202FA48() +{ + if (FUN_0202FA28() == 1) + { + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_0202FA5C() +{ + u32 r4 = 0; + if (UNK_021C59F4.unk04 != 0) + { + if (FUN_02033534() >= 0x13) + { + MOD04_021D83C0(); + r4 = 1; + } + else + { + if (FUN_0202E784() != 0) + { + r4 = 1; + } + } + } + + if (r4 != 0) + { + FUN_020314D0(); + FUN_0202DBA4(); + UNK_021C59F4.unk00 = 0; + + FUN_0200CAB4(UNK_021C59F4.unk04->unk548); + UNK_021C59F4.unk04->unk548 = 0; + FreeToHeap(UNK_021C59F4.unk04->unk45C); + FreeToHeap(UNK_021C59F4.unk04->unk460); + FreeToHeap(UNK_021C59F4.unk04->unk458); + FreeToHeap(UNK_021C59F4.unk04->unk454); + FUN_0202D824(UNK_021C59F4.unk04->unk56C); + FUN_0202D824(UNK_021C59F4.unk04->unk54C); + FreeToHeap(UNK_021C59F4.unk04); + UNK_021C59F4.unk04 = NULL; + } +} + +THUMB_FUNC u32 FUN_0202FB18(u32 param0) +{ + return FUN_0202E9E8(param0); +} + +THUMB_FUNC void FUN_0202FB20() +{ + if (UNK_021C59F4.unk00 != 0) + { + FUN_0203050C(); + if ((FUN_02031190() == 0 && FUN_02030E7C(0) != 0) || FUN_02031280() != 0) + { + FUN_0202FEEC(); + } + + UNK_021C59F4.unk00 = 0; + } +} + +THUMB_FUNC void FUN_0202FB58() +{ + if (FUN_0202F03C() != 0) + { + if (FUN_02031190() == 0) + { + if (FUN_0202EE24() == 0) + { + FUN_0202FA5C(); + } + } + else + { + FUN_0202FA5C(); + } + } +} + +THUMB_FUNC u32 FUN_0202FB80() +{ + FUN_02031CDC(); + + if (UNK_021C59F4.unk04 != NULL) + { + if (UNK_021C59F4.unk04->unk68A == 0) + { + UNK_021C59F4.unk00 = 0; + FUN_0202F984(); + UNK_021C59F4.unk04->unk628 |= gMain.unk44 & 0x7FFF; + FUN_02030674(); + FUN_0202FCCC(); + + UNK_021C59F4.unk04->unk628 &= 2 << 0xe; + if (FUN_0202FA28() == 0) + { + FUN_02030DA4(); + } + + if ((FUN_02031190() == 0 && FUN_02030E7C(0) != 0) || FUN_02031280() != 0) + { + FUN_02030074(); + } + + if (FUN_02031190() == 0 || FUN_0202FA28() == 1 || FUN_02031280() != 0) + { + FUN_02030DFC(); + } + + UNK_021C59F4.unk00 = 1; + } + + FUN_0202ED70(UNK_021C59F4.unk04->unk65C); + + if (FUN_02031190() == 0) + { + FUN_0202F8D4(); + } + + FUN_0202FB58(); + } + else + { + FUN_0202ED70(0); + } + + FUN_020335F4(0); + FUN_020315A4(); + + return 1; +} + +THUMB_FUNC void FUN_0202FC60() +{ + u8 r4 = UNK_021C59F4.unk00; + + UNK_021C59F4.unk00 = 0; + + if (UNK_021C59F4.unk04 != NULL) + { + FUN_0202F2F0(); + } + + UNK_021C59F4.unk00 = r4; +} + +THUMB_FUNC void FUN_0202FC80() +{ + u8 r4 = UNK_021C59F4.unk00; + + UNK_021C59F4.unk00 = 0; + + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk67D = 1; + FUN_0202F2F0(); + } + + UNK_021C59F4.unk00 = r4; +} + +THUMB_FUNC void FUN_0202FCA8() +{ + u8 r4 = UNK_021C59F4.unk00; + + UNK_021C59F4.unk00 = 0; + + if (UNK_021C59F4.unk04 != NULL) + { + FUN_0202F2F0(); + FUN_0202E538(); + } + + UNK_021C59F4.unk00 = r4; +} + +THUMB_FUNC void FUN_0202FCCC() +{ + if (UNK_021C59F4.unk04->unk683 != 0) + { + if (FUN_02033534() >= 0x13) + { + if (UNK_021C59F4.unk04->unk687 == 0 || MOD04_021D78FC(UNK_021C59F4.unk04, 0x26) == 0) + { + return; + } + + UNK_021C59F4.unk04->unk683 = 0; + return; + } + + if (FUN_0202CBD4() != 4 || FUN_02030E7C(FUN_02031190()) == 0) + { + if (FUN_02031280() == 0) + { + return; + } + } + + UNK_02105D58 = 0; + FUN_0203050C(); + if (UNK_02105D58 == 0) + { + return; + } + + UNK_021C59F4.unk04->unk683 = 0; + return; + } + + if (FUN_02033534() >= 0x13) + { + if (UNK_021C59F4.unk04->unk687 == 0) + { + return; + } + + if (UNK_021C59F4.unk04->unk630 != 0) + { + if ((int)UNK_021C59F4.unk04->unk634 > 3) + { + return; + } + + if (UNK_02105D58 == 4) + { + FUN_02030930(UNK_021C59F4.unk04->unk000[0]); + UNK_02105D58 = 2; + } + } + else + { + if (UNK_02105D58 == 4) + { + if (FUN_02030930(UNK_021C59F4.unk04->unk000[0]) == 0) + { + return; + } + + UNK_02105D58 = 2; + } + } + + if (MOD04_021D78FC(UNK_021C59F4.unk04, 0x26) == 0) + { + return; + } + + UNK_02105D58 = 4; + UNK_021C59F4.unk04->unk634++; + return; + } + + if (FUN_0202CBD4() != 4 || FUN_02030E7C(FUN_02031190()) == 0) + { + if (FUN_02031280() == 0) + { + return; + } + } + + if (UNK_02105D58 != 4) + { + return; + } + + // nonmatching + if ((int)UNK_021C59F4.unk04->unk634 > 3) + { + return; + } + + FUN_02030930(UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F]); + + FUN_02030930(UNK_021C59F4.unk04->unk000[1 - UNK_021C59F4.unk04->unk67F]); + + UNK_02105D58 = 0; + FUN_0203050C(); +} + +#ifdef NONMATCHING +THUMB_FUNC u32 FUN_0202FE2C(int param0) +{ + + // these 3 variables are shuffled on the stack, everything else matches + int st4 = 0; + int stc = FUN_02031228(FUN_02033534()); + int st8 = FUN_0202D858(FUN_02033534()) + 1; + + for (int r7 = 0; r7 < st8; r7++) + { + + FUN_0202D4BC(&UNK_021C59F4.unk04->unk47C[r7]); + + if (FUN_02030E7C(r7) != 0) + { + UNK_021C59F4.unk04->unk154[param0][r7 * stc] = 0xe; + } + + FUN_0202D400( + &UNK_021C59F4.unk04->unk47C[r7], &UNK_021C59F4.unk04->unk154[param0][r7 * stc], stc); + + if (UNK_021C59F4.unk04->unk154[param0][r7 * stc] == 0xe) + { + st4++; + } + } + + if (st4 == st8) + { + return 0; + } + + return 1; +} +#else +THUMB_FUNC asm u32 FUN_0202FE2C(int param0) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x10 + str r0, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02031228 + str r0, [sp, #0xc] + bl FUN_02033534 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0202D858 + add r0, r0, #0x1 + mov r7, #0x0 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _0202FED0 + ldr r0, [sp, #0x0] + mov r1, #0xc0 + add r6, r0, #0x0 + add r4, r7, #0x0 + add r5, r7, #0x0 + mul r6, r1 +_0202FE66: + ldr r0, =UNK_021C59F4 + ldr r1, [r0, #0x4] + ldr r0, =0x0000047C + add r0, r1, r0 + add r0, r0, r4 + bl FUN_0202D4BC + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0x0 + beq _0202FE90 + ldr r0, =UNK_021C59F4 + mov r1, #0xe + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r2, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + strb r1, [r2, r0] +_0202FE90: + ldr r0, =UNK_021C59F4 + mov r2, #0x55 + ldr r1, [r0, #0x4] + ldr r0, =0x0000047C + lsl r2, r2, #0x2 + add r0, r1, r0 + add r1, r1, r2 + add r1, r1, r6 + ldr r2, [sp, #0xc] + add r0, r0, r4 + add r1, r1, r5 + bl FUN_0202D400 + ldr r0, =UNK_021C59F4 + ldr r0, [r0, #0x4] + add r0, r6, r0 + add r1, r5, r0 + mov r0, #0x55 + lsl r0, r0, #0x2 + ldrb r0, [r1, r0] + cmp r0, #0xe + bne _0202FEC2 + ldr r0, [sp, #0x4] + add r0, r0, #0x1 + str r0, [sp, #0x4] +_0202FEC2: + ldr r0, [sp, #0xc] + add r7, r7, #0x1 + add r5, r5, r0 + ldr r0, [sp, #0x8] + add r4, #0xc + cmp r7, r0 + blt _0202FE66 +_0202FED0: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x8] + cmp r1, r0 + bne _0202FEDE + add sp, #0x10 + mov r0, #0x0 + pop {r3-r7, pc} +_0202FEDE: + mov r0, #0x1 + add sp, #0x10 + pop {r3-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC void FUN_0202FEEC() +{ + if (UNK_021C59F4.unk04 == NULL || FUN_02033534() >= 0x13) + { + return; + } + + int st0 = FUN_02031228((u16)FUN_02033534()); + int r6 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + + if (UNK_02105D59 == 2 || UNK_02105D59 == 0) + { + + UNK_02105D59++; + + if (FUN_0202FA28() == 1) + { + FUN_0202FE2C(UNK_021C59F4.unk04->unk680); + } + + if (FUN_0202CBD4() == 4 && FUN_02031280() == 0) + { + + if (FUN_0202D0D0(UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680], + 0xc0, + 0xe, + FUN_020304F0) == 0) + { + UNK_02105D59--; + } + } + + int i; + if (UNK_02105D59 == 1 || UNK_02105D59 == 3) + { + for (i = 0; i < r6; i++) + { + if (FUN_02030E7C((u16)i) != 0) + { + UNK_021C59F4.unk04->unk638[i]++; + } + else if (FUN_02031280() != 0 && i == 0) + { + UNK_021C59F4.unk04->unk638[i]++; + } + } + + FUN_0203026C(0, UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680], 0xc0); + + UNK_021C59F4.unk04->unk680 = (u8)(1 - UNK_021C59F4.unk04->unk680); + } + + for (i = 0; i < r6; i++) + { + if (FUN_02030E7C((u16)i) == 0 && FUN_0202FA28() == 1) + { + UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680][i * st0] = 0xff; + } + } + + if (FUN_0202CBD4() != 4 || FUN_02031280() != 0) + { + UNK_02105D59++; + } + } +} + +THUMB_FUNC void FUN_02030074() +{ + if (UNK_021C59F4.unk04->unk683 != 0) + { + if (FUN_02033534() >= 0x13) + { + if (FUN_02030E7C(0) != 0 && MOD04_021D79B4(UNK_021C59F4.unk04->unk154, 0x4c) != 0) + { + UNK_021C59F4.unk04->unk683 = 0; + return; + } + } + else if (FUN_0202CBD4() == 4 || FUN_02031280() != 0) + { + FUN_0202FEEC(); + if (UNK_02105D59 == 2) + { + UNK_021C59F4.unk04->unk683 = 0; + return; + } + } + } + + if (FUN_02033534() >= 0x13) + { + if (FUN_02030E7C(0) != 0) + { + if (UNK_021C59F4.unk04->unk630 != 0) + { + if ((int)UNK_021C59F4.unk04->unk638[1] > 3 || + (int)UNK_021C59F4.unk04->unk638[0] > 3) + { + return; + } + + if (UNK_02105D59 == 4) + { + if (FUN_0202FA28() == 1) + { + FUN_0202FE2C(0); + } + + UNK_02105D59 = 2; + } + } + else + { + if (UNK_02105D59 == 4) + { + if (FUN_0202FA28() == 1) + { + if (FUN_0202FE2C(0) == 0) + { + return; + } + } + } + + UNK_02105D59 = 2; + } + + if (MOD04_021D79B4(UNK_021C59F4.unk04->unk154, 0x4c) == 0) + { + return; + } + + UNK_02105D59 = 4; + UNK_021C59F4.unk04->unk638[0]++; + UNK_021C59F4.unk04->unk638[1]++; + } + } + else if (FUN_0202CBD4() == 4 || FUN_02031280() != 0) + { + if (UNK_02105D59 == 4) + { + for (int r4 = 1; r4 < 8; r4++) + { + if (FUN_02030E7C((u16)r4) != 0) + { + if ((int)UNK_021C59F4.unk04->unk638[r4] > 3) + { + return; + } + } + else if (r4 == 0) + { + if (FUN_02031280() != 0) + { + if ((int)UNK_021C59F4.unk04->unk638[0] > 3) + { + return; + } + } + } + } + + if (FUN_0202FA28() == 0) + { + FUN_02030A00(UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680]); + FUN_02030A00(UNK_021C59F4.unk04->unk154[1 - UNK_021C59F4.unk04->unk680]); + } + + UNK_02105D59 = 0; + FUN_0202FEEC(); + } + } +} + +THUMB_FUNC void FUN_02030238(u32 param0, void *param1, u32 param2) +{ + if (UNK_021C59F4.unk04->unk66F[0] != 0) + { + UNK_021C59F4.unk04->unk634--; + UNK_021C59F4.unk04->unk66F[0] = 0; + return; + } + + FUN_0203026C(param0, param1, param2); +} + +THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2) +{ +#pragma unused(param0) +#pragma unused(param2) + UNK_021C59F4.unk04->unk634--; + if (param1 == 0) + { + return; + } + + if (param1[0] == 0xb) + { + if (FUN_0202FA28() == 1) + { + return; + } + param1++; + } + else + { + if (FUN_0202FA28() == 0) + { + return; + } + } + + if (UNK_021C59F4.unk04->unk682 != 0) + { + if ((param1[0] & 1) != 0) + { + return; + } + } + + UNK_021C59F4.unk04->unk682 = 0; + if (FUN_0202FA28() == 1) + { + int r6 = FUN_02031228((u16)FUN_02033534()); + int st4 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + + int r4 = 0; + while (r4 < st4) + { + + if (param1[0] == 0xff) + { + UNK_021C59F4.unk04->unk65C &= ~(1 << r4); + } + else + { + UNK_021C59F4.unk04->unk65C |= (1 << r4); + } + + if (param1[0] == 0xff) + { + param1 += r6; + } + else if (param1[0] == 0xe) + { + param1 += r6; + } + else if (UNK_021C59F4.unk04->unk667[r4] != 0 && (param1[0] & 1) != 0) + { + param1 += r6; + } + else + { + param1++; + FUN_0202D3A4(&UNK_021C59F4.unk04->unk4E8[r4], param1, (u32)(r6 - 1), 0x5E6); + + param1 += r6 - 1; + UNK_021C59F4.unk04->unk667[r4] = 0; + } + + r4++; + } + + return; + } + + UNK_021C59F4.unk04->unk65C = param1[1]; + UNK_021C59F4.unk04->unk65C <<= 8; + + UNK_021C59F4.unk04->unk65C += param1[2]; + FUN_0202D3A4(&UNK_021C59F4.unk04->unk470, param1 + 4, param1[3], 0x5FF); +} + +THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2) +{ + if (UNK_021C59F4.unk04->unk66F[param0] != 0) + { + + UNK_021C59F4.unk04->unk638[param0]--; + UNK_021C59F4.unk04->unk66F[param0] = 0; + return; + } + + FUN_020303F4(param0, param1, param2); +} + +THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u16 param2) +{ +#pragma unused(param2) + UNK_021C59F4.unk04->unk638[param0]--; + if (param1 == 0) + { + return; + } + + if (UNK_021C59F4.unk04->unk667[param0] != 0 && (param1[0] & 1) != 0) + { + return; + } + + UNK_021C59F4.unk04->unk667[param0] = 0; + if (FUN_0202FA28() == 1) + { + int r6 = FUN_02031228((u16)FUN_02033534()); + FUN_0202D858((u16)FUN_02033534()); + + if ((param1[0] & 2) == 0) + { + FUN_0202D3A4(&UNK_021C59F4.unk04->unk47C[param0], param1, (u32)r6, 0x65E); + } + + UNK_021C59F4.unk04->unk65F[param0]++; + return; + } + + FUN_020307E4(param1, param0); + + if ((param1[0] & 2) == 0 && FUN_0202D498(&UNK_021C59F4.unk04->unk4E8[param0]) >= 0xb) + { + FUN_0202D3A4(&UNK_021C59F4.unk04->unk4E8[param0], param1 + 1, 0xb, 0x66E); + } +} + +THUMB_FUNC void FUN_020304D4(u32 param0) +{ + if (param0 != 0) + { + UNK_02105D58++; + return; + } + + ErrorHandling(); +} + +THUMB_FUNC void FUN_020304F0(u32 param0) +{ + if (param0 != 0) + { + UNK_02105D59++; + return; + } + + ErrorHandling(); +} + +THUMB_FUNC void FUN_0203050C() +{ + if (UNK_021C59F4.unk04 == 0 || FUN_02033534() >= 0x13) + { + return; + } + + int r4 = FUN_02031228((u16)FUN_02033534()); + FUN_0202D858((u16)FUN_02033534()); + + if (FUN_02031280() != 0 && (UNK_02105D58 == 2 || UNK_02105D58 == 0)) + { + UNK_02105D58++; + FUN_020304D4(1); + + FUN_020303F4(0, UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F], (u16)r4); + + UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F); + UNK_021C59F4.unk04->unk634++; + return; + } + + if (FUN_0202CBD4() != 4) + { + return; + } + + if (FUN_02030E7C(FUN_02031190()) == 0) + { + FUN_02031190(); + return; + } + + if (UNK_02105D58 != 2 && UNK_02105D58 != 0) + { + return; + } + + if (FUN_02031190() != 0) + { + UNK_02105D58++; + + if (FUN_0202D0D0(UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F], + (u16)r4, + 0xe, + FUN_020304D4) == 0) + { + UNK_02105D58--; + return; + } + + UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F); + UNK_021C59F4.unk04->unk634++; + return; + } + + if ((FUN_0202CB8C() & 0xFFFE) != 0) + { + UNK_02105D58++; + FUN_020304D4(1); + + FUN_020303F4(0, UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F], (u16)r4); + + UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F); + UNK_021C59F4.unk04->unk634++; + } +} + +#ifdef NONMATCHING +THUMB_FUNC void FUN_02030674() +{ + u16 r4 = 0; + if (UNK_021C59F4.unk04->unk62C == 0 || (UNK_021C59F4.unk04->unk628 & 0xf0) == 0) + { + return; + } + + if (UNK_021C59F4.unk04->unk62C == 2) + { + if ((UNK_021C59F4.unk04->unk628 & 0x20) != 0) + { + r4 = r4 | 0x10; + } + + if ((UNK_021C59F4.unk04->unk628 & 0x10) != 0) + { + r4 = r4 | 0x20; + } + + if ((UNK_021C59F4.unk04->unk628 & 0x40) != 0) + { + r4 = r4 | 0x80; + } + + if ((UNK_021C59F4.unk04->unk628 & 0x80) != 0) + { + r4 = r4 | 0x40; + } + } + else + { + if (UNK_021C59F4.unk04->unk62E != 0) + { + r4 = UNK_021C59F4.unk04->unk62E; + UNK_021C59F4.unk04->unk62D--; + + if (UNK_021C59F4.unk04->unk62D < 0) + { + UNK_021C59F4.unk04->unk62E = 0; + } + } + else + { + UNK_021C59F4.unk04->unk5F8[0] = + UNK_021C59F4.unk04->unk5F8[1] * UNK_021C59F4.unk04->unk5F8[0] + + UNK_021C59F4.unk04->unk5F8[2]; + + switch ((u32)(UNK_021C59F4.unk04->unk5F8[0] >> 0x3E) | (0 << 2)) + { + case 0: + r4 = 0x20; + break; + case 1: + r4 = 0x10; + break; + case 2: + r4 = 0x40; + break; + case 3: + r4 = 0x80; + break; + } + + UNK_021C59F4.unk04->unk5F8[0] = + UNK_021C59F4.unk04->unk5F8[2] + + UNK_021C59F4.unk04->unk5F8[1] * UNK_021C59F4.unk04->unk5F8[0]; + UNK_021C59F4.unk04->unk62D = UNK_021C59F4.unk04->unk5F8[0] >> 0x3c | (0 << 4); + UNK_021C59F4.unk04->unk62E = r4; + } + } + + UNK_021C59F4.unk04->unk628 &= ~0xf0; + UNK_021C59F4.unk04->unk628 += r4; +} +#else +THUMB_FUNC asm void FUN_02030674() +{ + // clang-format off + push {r3-r7, lr} + ldr r7, =UNK_021C59F4 + mov r6, #0x0 + ldr r5, [r7, #0x4] + ldr r2, =0x0000062C + add r4, r6, #0x0 + ldrb r0, [r5, r2] + cmp r0, #0x0 + beq _02030690 + sub r1, r2, #0x4 + ldrh r1, [r5, r1] + mov r3, #0xf0 + tst r3, r1 + bne _02030692 +_02030690: + b _02030794 +_02030692: + cmp r0, #0x2 + bne _020306D0 + mov r0, #0x20 + tst r0, r1 + beq _020306A4 + mov r0, #0x10 + orr r0, r6 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306A4: + mov r0, #0x10 + tst r0, r1 + beq _020306B2 + mov r0, #0x20 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306B2: + mov r0, #0x40 + tst r0, r1 + beq _020306C0 + mov r0, #0x80 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 +_020306C0: + mov r0, #0x80 + tst r0, r1 + beq _0203077E + mov r0, #0x40 + orr r0, r4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + b _0203077E +_020306D0: + add r0, r2, #0x2 + ldrh r0, [r5, r0] + cmp r0, #0x0 + beq _020306F2 + add r4, r0, #0x0 + add r0, r2, #0x1 + ldrsb r0, [r5, r0] + sub r1, r0, #0x1 + add r0, r2, #0x1 + strb r1, [r5, r0] + ldr r1, [r7, #0x4] + ldrsb r0, [r1, r0] + cmp r0, #0x0 + bge _0203077E + add r0, r2, #0x2 + strh r6, [r1, r0] + b _0203077E +_020306F2: + add r0, r2, #0x0 + sub r0, #0x34 + add r6, r5, r0 + sub r2, #0x34 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r5, r2] + ldr r3, [r6, #0x4] + bl _ll_mul + add r3, r0, #0x0 + add r2, r1, #0x0 + ldr r0, [r6, #0x10] + ldr r1, [r6, #0x14] + add r0, r0, r3 + adc r1, r2 + ldr r2, =0x000005F8 + str r0, [r5, r2] + mov r2, #0x0 + str r1, [r6, #0x4] + lsr r0, r1, #0x1e + lsl r1, r2, #0x2 + orr r1, r0 + cmp r1, #0x3 + bhi _02030746 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02030730: // jump table (using 16-bit offset) + // huge hack to get the correct jump offset. Is there a way to write constants? + lsl r6, r0, #0x0 // case 0 + lsl r2, r1, #0x0 // case 1 + lsl r6, r1, #0x0 // case 2 + lsl r2, r2, #0x0 // case 3 + + // intended jump offset + // .short _02030738 - _02030730 - 2; case 0 + // .short _0203073C - _02030730 - 2; case 1 + // .short _02030740 - _02030730 - 2; case 2 + // .short _02030744 - _02030730 - 2; case 3 +_02030738: + mov r4, #0x20 + b _02030746 +_0203073C: + mov r4, #0x10 + b _02030746 +_02030740: + mov r4, #0x40 + b _02030746 +_02030744: + mov r4, #0x80 +_02030746: + ldr r0, =UNK_021C59F4 + ldr r5, [r0, #0x4] + ldr r0, =0x000005F8 + add r6, r5, r0 + ldr r0, [r6, #0x8] + ldr r1, [r6, #0xc] + ldr r2, [r6, #0x0] + ldr r3, [r6, #0x4] + bl _ll_mul + ldr r3, [r6, #0x10] + ldr r2, [r6, #0x14] + add r0, r3, r0 + adc r2, r1 + ldr r1, =0x000005F8 + mov r3, #0x0 + str r0, [r5, r1] + str r2, [r6, #0x4] + lsr r0, r2, #0x1c + lsl r2, r3, #0x4 + orr r2, r0 + add r0, r1, #0x0 + add r0, #0x35 + strb r2, [r5, r0] + ldr r0, =UNK_021C59F4 + add r1, #0x36 + ldr r0, [r0, #0x4] + strh r4, [r0, r1] +_0203077E: + ldr r2, =UNK_021C59F4 + ldr r1, =0x00000628 + ldr r5, [r2, #0x4] + mov r0, #0xf0 + ldrh r3, [r5, r1] + bic r3, r0 + strh r3, [r5, r1] + ldr r2, [r2, #0x4] + ldrh r0, [r2, r1] + add r0, r0, r4 + strh r0, [r2, r1] +_02030794: + pop {r3-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC void FUN_020307A8() +{ + UNK_021C59F4.unk04->unk62C = 1; +} + +THUMB_FUNC void FUN_020307BC() +{ + UNK_021C59F4.unk04->unk62C = 2; +} + +THUMB_FUNC void FUN_020307D0() +{ + UNK_021C59F4.unk04->unk62C = 0; +} + +THUMB_FUNC u32 FUN_020307E4(u8 *param0, u32 param1) +{ + UNK_021C59F4.unk04->unk610[param1] = 0; + + int r7 = param0[0] & 0x10; + if (r7 == 0x10) + { + + u8 r5 = (u8)(param0[0] & 0xc); + if (r5 == 0) + { + UNK_021C59F4.unk04->unk610[param1] |= 0x40; + } + else if (r5 == 4) + { + UNK_021C59F4.unk04->unk610[param1] |= 0x80; + } + else if (r5 == 8) + { + UNK_021C59F4.unk04->unk610[param1] |= 0x20; + } + else if (r5 == 0xc) + { + UNK_021C59F4.unk04->unk610[param1] |= 0x10; + } + + UNK_021C59F4.unk04->unk620[param1] = (u8)((param0[0] >> 5) & 0x7); + } + + return 1; +} + +THUMB_FUNC void FUN_0203086C() +{ +} + +THUMB_FUNC u32 FUN_02030870(u8 *param0) +{ + if (UNK_021C59F4.unk04->unk62A != 0) + { + return 0; + } + + if (FUN_02030FE0() == 0) + { + return 0; + } + + if (UNK_021C59F4.unk04->unk681 != 0) + { + UNK_021C59F4.unk04->unk681--; + } + + if ((UNK_021C59F4.unk04->unk628 & 0x40) != 0) + { + param0[0] |= 0x10; + UNK_021C59F4.unk04->unk681 = 8; + } + else if ((UNK_021C59F4.unk04->unk628 & 0x80) != 0) + { + param0[0] |= 0x14; + UNK_021C59F4.unk04->unk681 = 8; + } + else if ((UNK_021C59F4.unk04->unk628 & 0x20) != 0) + { + param0[0] |= 0x18; + UNK_021C59F4.unk04->unk681 = 8; + } + else if ((UNK_021C59F4.unk04->unk628 & 0x10) != 0) + { + param0[0] |= 0x1c; + UNK_021C59F4.unk04->unk681 = 8; + } + + param0[0] |= UNK_021C59F4.unk04->unk62B << 5; + + return 0; +} + +THUMB_FUNC u32 FUN_02030930(u8 *param0) +{ + int r5 = FUN_02031228((u16)FUN_02033534()); + FUN_0202D858((u16)FUN_02033534()); + + if (UNK_021C59F4.unk04->unk684 == 0) + { + param0[0] = 0; + } + else + { + param0[0] = 1; + } + + if (FUN_0202FA28() == 0) + { + FUN_02030870(param0); + } + + UNK_021C59F4.unk04->unk684 = 0; + + if (FUN_0202D4E4(UNK_021C59F4.unk04->unk54C) != 0) + { + param0[0] |= 2; + if (param0[0] == 2) + { + return 0; + } + } + else + { + int st0[2]; + st0[1] = r5 - 1; + st0[0] = (int)param0 + 1; + if (FUN_0202D760(UNK_021C59F4.unk04->unk54C, st0, 1) == 0) + { + UNK_021C59F4.unk04->unk684 = 1; + } + + if (FUN_0202FA28() == 1) + { + UNK_021C59F4.unk04->unk65E++; + + param0[0] |= UNK_021C59F4.unk04->unk65E << 4 & 0xf0; + } + } + + return 1; +} + +THUMB_FUNC void FUN_02030A00(u8 *param0) +{ + param0[0] = 0xb; + if (UNK_021C59F4.unk04->unk685 == 0) + { + param0[1] = 0; + } + else + { + param0[1] = 1; + } + + u16 res = FUN_0202CB8C(); + param0[2] = (u8)(res >> 8); + param0[3] = (u8)res; + + int st0[2]; + st0[1] = 0xbb; + st0[0] = (int)param0 + 5; + if (FUN_0202D760(UNK_021C59F4.unk04->unk56C, st0, 0) != 0) + { + UNK_021C59F4.unk04->unk685 = 0; + param0[4] = (u8)(0xbb - st0[1]); + + return; + } + + UNK_021C59F4.unk04->unk685 = 1; + param0[4] = 0xbb; +} + +THUMB_FUNC u32 FUN_02030A78(u32 param0, u8 *param1, u32 param2) +{ + if (FUN_02030E7C(FUN_02031190()) == 0 && FUN_02031280() == 0) + { + return 0; + } + + if (FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 0) != 0) + { + return 1; + } + + if (FUN_02033534() == 0xa) + { + FUN_02031454(); + } + + return 0; +} + +THUMB_FUNC u32 FUN_02030ADC(u32 param0, u8 *param1, u32 param2) +{ + if (FUN_02030E7C(FUN_02031190()) == 0 && FUN_02031280() == 0) + { + return 0; + } + + if (FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 1) != 0) + { + return 1; + } + + if (FUN_02033534() == 0xa) + { + FUN_02031454(); + } + + return 0; +} + +THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2) +{ + if (FUN_02031190() != 0) + { + ErrorHandling(); + return 0; + } + + if (FUN_02030E7C(0) == 0 && FUN_02031280() == 0) + { + return 0; + } + + if (FUN_0202FA28() == 1) + { + return FUN_02030A78(param0, param1, param2); + } + + if (FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 0) != 0) + { + return 1; + } + + if (FUN_02033534() == 0xa) + { + FUN_02031454(); + } + + return 0; +} + +THUMB_FUNC u32 FUN_02030BC4(u32 param0, u8 *param1, u32 param2) +{ + if (FUN_02031190() != 0) + { + FUN_02031454(); + return 0; + } + + if (FUN_02030E7C(0) == 0 && FUN_02031280() == 0) + { + return 0; + } + + if (FUN_0202FA28() == 1) + { + return FUN_02030ADC(param0, param1, param2); + } + + if (FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 1) != 0) + { + return 1; + } + + if (FUN_02033534() == 0xa) + { + FUN_02031454(); + } + + return 0; +} + +THUMB_FUNC u32 FUN_02030C4C(u32 param0, u8 *param1) +{ + return FUN_02030BC4(param0, param1, 0); +} + +THUMB_FUNC int FUN_02030C58() +{ + return FUN_0202D498(&UNK_021C59F4.unk04->unk464); +} + +THUMB_FUNC void FUN_02030C70( + u32 param0, u32 param1, u32 param2, void *param3, struct UnkStruct0202F150_sub2 *param4) +{ + FUN_0202D934(param0, param1, param2, param3); + param4->unk0a = 0xee; + param4->unk08 = 0xffff; + param4->unk04 = 0; + param4->unk00 = 0; +} + +THUMB_FUNC void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0, + u32 param1, + void *param2, + u32 param3, + struct UnkStruct0202F150_sub2 *param4) +{ +#pragma unused(param3) + while (FUN_0202D478(param0) != 0) + { + + u32 r7 = param4->unk0a; + if (r7 == 0xee) + { + r7 = FUN_0202D41C(param0); + if (r7 == 0xee) + { + continue; + } + } + + int st10 = param0->unk04; + param4->unk0a = (u8)r7; + int r4 = param4->unk08; + if (r4 == 0xffff) + { + r4 = FUN_0202D9A0(r7); + + if (UNK_021C59F4.unk04->unk689 != 0) + { + return; + } + + if (r4 == 0xffff) + { + if (FUN_0202D478(param0) < 1) + { + param0->unk04 = (s16)st10; + return; + } + + r4 = (int)FUN_0202D41C(param0) << 8; + r4 += FUN_0202D41C(param0); + + st10 = param0->unk04; + } + + param4->unk08 = (u16)r4; + } + + if (FUN_0202DA04(r7) != 0) + { + if (param4->unk04 == 0) + { + param4->unk04 = FUN_0202DA40(r7, param1, param4->unk08); + } + + int stc = FUN_0202D400(param0, param2, r4 - param4->unk00); + + if (param4->unk04 != 0) + { + MI_CpuCopy8(param2, param4->unk04 + param4->unk00, (u32)stc); + } + + if ((int)(param4->unk00 += stc) < (int)r4) + { + continue; + } + + FUN_02030C70(param1, r7, (u32)r4, param4->unk04, param4); + } + else + { + if (FUN_0202D478(param0) >= r4) + { + FUN_0202D400(param0, param2, (u32)r4); + FUN_02030C70(param1, r7, (u32)r4, param2, param4); + } + else + { + param0->unk04 = (s16)st10; + return; + } + } + } +} + +THUMB_FUNC void FUN_02030DA4() +{ + if (UNK_021C59F4.unk04 != NULL) + { + if (UNK_021C59F4.unk04->unk68B == 0) + { + FUN_0202D4BC(&UNK_021C59F4.unk04->unk470); + if (FUN_0202D478(&UNK_021C59F4.unk04->unk470) > 0) + { + FUN_02030C8C(&UNK_021C59F4.unk04->unk470, + 0, + UNK_021C59F4.unk04->unk460, + 1, + (struct UnkStruct0202F150_sub2 *)&UNK_021C59F4.unk04->unk5EC); + } + } + } +} + +THUMB_FUNC void FUN_02030DFC() +{ + if (UNK_021C59F4.unk04 != NULL) + { + if (UNK_021C59F4.unk04->unk68B == 0) + { + int r7 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int r4; + for (r4 = 0; r4 < r7; r4++) + { + FUN_0202D4BC(&UNK_021C59F4.unk04->unk4E8[r4]); + if (FUN_0202D478(&UNK_021C59F4.unk04->unk4E8[r4]) > 0) + { + + FUN_02030C8C(&UNK_021C59F4.unk04->unk4E8[r4], + (u32)r4, + UNK_021C59F4.unk04->unk460, + 0, + &UNK_021C59F4.unk04->unk58C[r4]); + } + } + } + } +} + +THUMB_FUNC u32 FUN_02030E7C(u16 param0) +{ + if (UNK_021C59F4.unk04 == NULL) + { + return 0; + } + + if (FUN_02033534() >= 0x13) + { + if (UNK_021C59F4.unk04->unk687 != 0 && MOD04_021D8018() != 0xffffffff) + { + if (param0 == 0) + { + return 1; + } + + if (param0 == 1) + { + return 1; + } + } + + return 0; + } + + if (FUN_02030F40() == 0) + { + return 0; + } + + if (FUN_0202CBD4() != 4) + { + return 0; + } + + if (FUN_02031190() == param0) + { + return 1; + } + + if (FUN_02031190() == 0) + { + u16 r0 = FUN_0202CB8C(); + + if ((r0 & (1 << param0)) != 0) + { + return 1; + } + } + else + { + if ((UNK_021C59F4.unk04->unk65C & (1 << param0)) != 0) + { + return 1; + } + } + + return 0; +} + +THUMB_FUNC u32 FUN_02030F20() +{ + u32 r4 = 0; + for (int i = 0; i < 8; i++) + { + if (FUN_02030E7C((u16)i) != 0) + { + r4++; + } + } + + return r4; +} + +THUMB_FUNC u32 FUN_02030F40() +{ + if (UNK_021C59F4.unk04 != NULL && FUN_02033534() >= 0x13) + { + return 1; + } + + return FUN_0202EDF8(); +} + +THUMB_FUNC void FUN_02030F60(u8 param0) +{ + UNK_021C59F4.unk04->unk62B = param0; +} + +THUMB_FUNC u8 FUN_02030F74(u32 param0) +{ + return UNK_021C59F4.unk04->unk620[param0]; +} + +THUMB_FUNC u32 FUN_02030F88(u32 param0) +{ + if (UNK_021C59F4.unk04 == NULL) + { + return 0; + } + + u32 ret = UNK_021C59F4.unk04->unk610[param0]; + UNK_021C59F4.unk04->unk610[param0] = 0; + + return ret; +} + +THUMB_FUNC void FUN_02030FA8() +{ + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk628 |= 0x8000; + } +} + +THUMB_FUNC void FUN_02030FC8() +{ + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk628 = 0; + } +} + +THUMB_FUNC u32 FUN_02030FE0() +{ + if (UNK_021C59F4.unk04 != NULL) + { + return (u32)(UNK_021C59F4.unk04->unk628 & 0x8000); + } + + return 1; +} + +THUMB_FUNC void FUN_02031000(u32 param0, u8 *param1, u32 param2) +{ + if (FUN_0202FA28() == 1) + { + FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 0); + return; + } + + FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 0); +} + +THUMB_FUNC void FUN_0203105C(u32 param0, u8 *param1, u32 param2) +{ + FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 0, 0); +} + +THUMB_FUNC void FUN_02031088() +{ + if (UNK_021C59F4.unk04 != NULL) + { + if (UNK_021C59F4.unk04->unk67B != 1) + { + if (UNK_021C59F4.unk04->unk67B != 3) + { + return; + } + } + else + { + u32 res; + if (FUN_0202FA28() == 1) + { + res = FUN_020311D0(0xb, &UNK_021C59F4.unk04->unk67C); + } + else + { + res = FUN_02030BC4(0xb, &UNK_021C59F4.unk04->unk67C, 1); + } + + if (res == 0) + { + return; + } + UNK_021C59F4.unk04->unk67B = 2; + return; + } + + if (FUN_020311D0(0xc, &UNK_021C59F4.unk04->unk67C) != 0) + { + FUN_0202F9E0(UNK_021C59F4.unk04->unk67C); + UNK_021C59F4.unk04->unk67B = 0; + } + } +} + +THUMB_FUNC void FUN_0203110C(u32 param0, u32 param1, u8 *param2) +{ +#pragma unused(param0) +#pragma unused(param1) + if (FUN_02031190() == 0) + { + UNK_021C59F4.unk04->unk67B = 1; + UNK_021C59F4.unk04->unk67C = param2[0]; + } +} + +THUMB_FUNC void FUN_02031134(u32 param0, u32 param1, u8 *param2) +{ +#pragma unused(param0) +#pragma unused(param1) + if (FUN_02031190() != 0) + { + UNK_021C59F4.unk04->unk67C = param2[0]; + UNK_021C59F4.unk04->unk67B = 3; + } +} + +THUMB_FUNC void FUN_0203115C(u32 param0, u32 param1, u8 *param2) +{ +#pragma unused(param0) +#pragma unused(param1) + if (FUN_02031190() == 0 && UNK_021C59F4.unk04->unk67B == 2) + { + FUN_0202F9E0(*param2); + UNK_021C59F4.unk04->unk67B = 0; + } +} + +THUMB_FUNC u16 FUN_02031190() +{ + if (UNK_021C59F4.unk04 != NULL) + { + if (FUN_02033534() >= 0x13) + { + u32 res = MOD04_021D8018(); + if (res != 0xffffffff) + { + return (u16)res; + } + } + else + { + if (FUN_02031280() != 0) + { + return 0; + } + + return FUN_0202D19C(); + } + } + + return 0; +} + +THUMB_FUNC u32 FUN_020311D0(u32 param0, u8 *param1) +{ + return FUN_02030ADC(param0, param1, 0); +} + +THUMB_FUNC u32 FUN_020311DC(u32 param0) +{ + return FUN_02030ADC(param0, 0, 0); +} + +THUMB_FUNC u32 FUN_020311E8() +{ + return FUN_0202EE24(); +} + +THUMB_FUNC u32 FUN_020311F0() +{ + if (FUN_02031280() != 0) + { + return 0; + } + + if (UNK_021C59F4.unk04 != NULL && UNK_021C59F4.unk04->unk689 != 0) + { + FUN_020334E8(1, 1); + return 1; + } + + return FUN_0202EE60(); +} + +THUMB_FUNC int FUN_02031228(u16 param0) +{ + if (FUN_0202D858(param0) >= 5) + { + return 0xc; + } + + if (FUN_0202FA28() == 0) + { + return 0xc; + } + + return 0x26; +} + +THUMB_FUNC u32 FUN_02031248(u32 param0) +{ + return FUN_0202D858((u16)param0) + 1; +} + +THUMB_FUNC u32 FUN_02031258(u32 param0) +{ + return FUN_0202D884((u16)param0) + 1; +} + +THUMB_FUNC void FUN_02031268(u8 param0) +{ + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk686 = param0; + } +} + +THUMB_FUNC u8 FUN_02031280() +{ + if (UNK_021C59F4.unk04 != NULL) + { + return UNK_021C59F4.unk04->unk686; + } + + return 0; +} + +THUMB_FUNC void FUN_0203129C() +{ + if (FUN_0202F03C() == 0 && FUN_02031190() == 0) + { + u8 st0; + FUN_02030C4C(2, &st0); + } + + FUN_0202F05C(); +} + +#ifdef NONMATCHING +THUMB_FUNC void FUN_020312BC(s64 *param0) +{ + RTCDate st10; + RTCTime st4; + GF_RTC_CopyDateTime(&st10, &st4); + + gMain.unk2C + st4.second; + u32 r6 = st10.year << 4 + st10.month; + u32 r5 = 0 << 4 | st10.year >> 0x1c; + st4.second; + + u32 st0 = st10.day; + st4.hour; + st4.minute; + + 0x00000000; + (0x00000000 + r5) << 5; +} +#else +THUMB_FUNC asm void FUN_020312BC(s64 *param0) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x20 + add r4, r0, #0x0 + add r0, sp, #0x10 + add r1, sp, #0x4 + bl GF_RTC_CopyDateTime + ldr r0, =gMain + ldr r6, [sp, #0x10] + mov r5, #0x0 + lsr r7, r6, #0x1c + lsl r5, r5, #0x4 + ldr r1, [sp, #0xc] + ldr r0, [r0, #0x2c] + lsl r6, r6, #0x4 + add r3, r1, r0 + ldr r0, [sp, #0x18] + orr r5, r7 + str r0, [sp, #0x0] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r6, r0, r6 + ldr r0, =0x00000000 + ldr r2, [sp, #0x8] + adc r0, r5 + lsr r5, r6, #0x1b + lsl r0, r0, #0x5 + orr r0, r5 + ldr r5, [sp, #0x0] + lsl r6, r6, #0x5 + add r6, r5, r6 + ldr r5, =0x00000000 + adc r5, r0 + lsr r0, r6, #0x1b + lsl r5, r5, #0x5 + orr r5, r0 + lsl r0, r6, #0x5 + add r6, r1, r0 + ldr r1, =0x00000000 + adc r1, r5 + lsr r0, r6, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + lsl r0, r6, #0x6 + add r5, r2, r0 + ldr r2, =0x00000000 + adc r2, r1 + lsr r0, r5, #0x1a + lsl r1, r2, #0x6 + orr r1, r0 + lsl r0, r5, #0x6 + add r2, r3, r0 + ldr r0, =0x00000000 + str r2, [r4, #0x0] + adc r0, r1 + str r0, [r4, #0x4] + ldr r1, =0x6C078965 + ldr r0, =0x5D588B65 + str r1, [r4, #0x8] + str r0, [r4, #0xc] + ldr r0, =0x00269EC3 + str r0, [r4, #0x10] + mov r0, #0x0 + str r0, [r4, #0x14] + add sp, #0x20 + pop {r3-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC void FUN_02031354(u32 param0) +{ + FUN_0202D830(UNK_021C59F4.unk04->unk56C, param0); +} + +THUMB_FUNC u32 FUN_02031370() +{ + return FUN_0202D4E4(UNK_021C59F4.unk04->unk56C); +} + +THUMB_FUNC u32 FUN_02031388() +{ + return FUN_0202D4E4(UNK_021C59F4.unk04->unk54C); +} + +THUMB_FUNC void FUN_020313A0(u8 param0) +{ + UNK_021C59F4.unk04->unk687 = param0; +} + +THUMB_FUNC void FUN_020313B4(u8 param0, u32 param1) +{ + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk677[param1] = param0; + } +} + +THUMB_FUNC u32 FUN_020313CC(u32 param0) +{ + if (UNK_021C59F4.unk04 != NULL) + { + if (UNK_021C59F4.unk04->unk677[param0] != 0xff) + { + return UNK_021C59F4.unk04->unk677[param0]; + } + } + + return param0; +} + +THUMB_FUNC u32 FUN_020313EC() +{ + if (FUN_02033534() < 0x13) + { + return 0; + } + + return MOD04_021D8624(); +} + +THUMB_FUNC void FUN_02031400(u32 param0) +{ + if (FUN_02033534() >= 0x13) + { + UNK_021C59F4.unk04->unk630 = param0; + if (param0 != 0) + { + UNK_021C59F4.unk04->unk634 = 0; + UNK_021C59F4.unk04->unk638[0] = 0; + UNK_021C59F4.unk04->unk638[1] = 0; + } + } +} + +THUMB_FUNC u32 FUN_02031438() +{ + if (UNK_021C59F4.unk04->unk681 != 0) + { + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_02031454() +{ + UNK_021C59F4.unk04->unk689 = 1; +} + +THUMB_FUNC void FUN_02031468() +{ + if (UNK_021C59F4.unk04 != NULL) + { + UNK_021C59F4.unk04->unk68A = 1; + } +}
\ No newline at end of file diff --git a/arm9/src/unk_0204AEA8.c b/arm9/src/unk_0204AEA8.c new file mode 100644 index 00000000..9c572a8e --- /dev/null +++ b/arm9/src/unk_0204AEA8.c @@ -0,0 +1,43 @@ +#include "global.h" +#include "heap.h" +#include "unk_0204639C.h" +#include "unk_0204AEA8.h" + +extern void MOD05_021E3444(u32, struct UnkStruct_0204639C *, u32); +extern void FUN_0200433C(u32, u16, u32); + +THUMB_FUNC BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0) +{ + struct UnkStruct_0204639C *v0 = FUN_02046528(a0); + u32 *v1 = FUN_0204652C(a0); + + switch (v1[0]) + { + case 0: + MOD05_021E3444(v1[2], v0, (u32)v1 + 4); + FUN_0200433C(5, (u16)v1[3], 1); + v1[0]++; + break; + case 1: + if (v1[1] == 1) + { + FreeToHeap(v1); + return TRUE; + } + break; + } + + return FALSE; +} + +THUMB_FUNC void FUN_0204AEF8(struct UnkStruct_0204639C *a0, u32 a1, u32 a2) +{ + u32 *v0 = AllocFromHeapAtEnd(11, 4 * sizeof(u32)); + + v0[0] = 0; + v0[1] = 0; + v0[2] = a1; + v0[3] = a2; + + FUN_0204640C(a0, FUN_0204AEA8, v0); +} diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c new file mode 100644 index 00000000..7bcdf950 --- /dev/null +++ b/arm9/src/unk_0205FA2C.c @@ -0,0 +1,543 @@ +#include "unk_0205FA2C.h" + +extern void *UNK_020F96DC; +extern void *UNK_020FA6E8; +extern u32 FUN_02079C70(struct SaveBlock2 *sav2); +extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]); +extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data); +extern u32 FUN_0203384C(u32 *param0); +extern u32 *FUN_02038790(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); +extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); +extern u32 FUN_02031190(); +extern u32 FUN_020316E0(u32 param0); +extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u32 param1); +extern u16 MOD06_022446BC(struct UnkStruct_0204639C *param0, u32 param1); +extern u16 MOD06_022446E0(struct UnkStruct_0204639C *param0, u32 param1); +extern void FUN_0202A5CC(u32 param0, u32 param1); +extern u32 FUN_0202A5D0(u32 param0); +extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); +extern u32 FUN_0202A8D8(struct SaveBlock2 *sav2); +extern u32 FUN_0202A578(u32 param0, u32 param1, u32 param2); +extern u32 FUN_02026CC4(struct SaveBlock2 *sav2); +extern u32 FUN_02025D94(u32 param0, u32 param1); +extern u32 FUN_0202A8CC(struct SaveBlock2 *sav2); +extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2); +extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2); +extern int FUN_0202A538(u32 param0, u16 param1, u32 param2); + +const u8 UNK_020F7454[] = { + 0x00, + 0x01, + 0x02, + 0x04, + 0x03, + 0x05, + 0x06, + 0x07, + 0x08, +}; + +THUMB_FUNC u32 FUN_0205FA2C( + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) +{ + struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)AllocFromHeapAtEnd( + heap_id, sizeof(struct UnkPlayerStruct1_0205FA2C)); + + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); + MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct1_0205FA2C)); + + ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2); + + ptr->player_party = SavArray_PlayerParty_get(sav2); + + ptr->bag = Sav2_Bag_get(sav2); + + ptr->unk21 = 0; + ptr->unk20 = param0->unk08; + ptr->unk32 = param0->unk0a; + ptr->unk322 = param0->unk0b; + ptr->unk33 = param0->unk0c; + ptr->unk22 = param0->unk0d; + + for (u8 i = 0; i < 6; i++) + { + ptr->unk2c[i] = param0->unk0e[i]; + } + + FUN_020373D4(param1, (u32)&UNK_020F96DC, (u32)ptr); + + *param0->unk14 = ptr; + + return 1; +} + +THUMB_FUNC u32 FUN_0205FAD8( + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) +{ + if (FUN_0204647C(param1)) + { + return 1; + } + + struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)*param0->unk14; + + u8 r1 = ptr->unk22; + if (r1 != 6) + { + if (r1 == 7) + { + param0->unk00 = 0; + return 4; + } + } + else + { + param0->unk00 = 1; + return 4; + } + + MI_CpuCopy8(ptr->unk2c, param0->unk0e, 6); + + param0->unk0d = ptr->unk22; + FreeToHeap(ptr); + + *param0->unk14 = NULL; + + return 2; +} + +THUMB_FUNC u32 FUN_0205FB34( + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) +{ + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); + + struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)AllocFromHeapAtEnd( + heap_id, sizeof(struct UnkPlayerStruct2_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct2_0205FA2C)); + + ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2); + ptr->player_party = SavArray_PlayerParty_get(sav2); + ptr->IsNatDex = SavArray_IsNatDexEnabled(sav2); + ptr->unk2c = FUN_02079C70(sav2); + + ptr->unk11 = 1; + ptr->unk14 = param0->unk0d; + + ptr->party_count = (u8)GetPartyCount(ptr->player_party); + + ptr->unk18 = 0; + ptr->unk12 = param0->unk09; + + ptr->unk20 = FUN_0202A918(sav2); + + FUN_0207B000(ptr, UNK_020F7454); + + FUN_0207C2A4(ptr, Sav2_PlayerData_GetProfileAddr(sav2)); + + FUN_020373D4(param1, (u32)&UNK_020FA6E8, (u32)ptr); + + *param0->unk14 = ptr; + + return 3; +} + +THUMB_FUNC u32 FUN_0205FBC0( + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) +{ + if (FUN_0204647C(param1)) + { + return 3; + } + + struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)*param0->unk14; + param0->unk0d = ptr->unk14; + FreeToHeap(ptr); + + *param0->unk14 = NULL; + + return 0; +} + +THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkCallbackStruct1_0205FA2C *res2 = + (struct UnkCallbackStruct1_0205FA2C *)FUN_0204652C(param0); + switch (res2->unk04) + { + case 0: + res2->unk04 = FUN_0205FA2C(res2, res, 0xb); + break; + case 1: + res2->unk04 = FUN_0205FAD8(res2, res); + break; + case 2: + res2->unk04 = FUN_0205FB34(res2, res, 0xb); + break; + case 3: + res2->unk04 = FUN_0205FBC0(res2, res); + break; + case 4: + FreeToHeap(res2); + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, + void **param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6, + u8 param7) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + + struct UnkCallbackStruct1_0205FA2C *ptr = (struct UnkCallbackStruct1_0205FA2C *)AllocFromHeap( + 0xb, sizeof(struct UnkCallbackStruct1_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct1_0205FA2C)); + + ptr->unk08 = param2; + ptr->unk09 = param3; + ptr->unk0a = param4; + ptr->unk0b = param5; + ptr->unk0c = param6; + ptr->unk0d = param7; + ptr->unk14 = param1; + + FUN_0204640C(res->unk10, &FUN_0205FBE8, (u32 *)ptr); +} + +THUMB_FUNC u32 FUN_0205FC9C( + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) +{ + if (FUN_0203384C(param1->unkC)) + { + + param0->unk08 = FUN_02038790(param1, param0->unk12, param0->unk14); + return 1; + } + + param0->unk00 = 1; + return 2; +} + +THUMB_FUNC u32 FUN_0205FCC4( + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) +{ + if (FUN_0204647C(param1)) + { + return 1; + } + + param0->unk00 = param0->unk08[8]; + FreeToHeap(param0->unk08); + + return 2; +} + +THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkCallbackStruct2_0205FA2C *res2 = + (struct UnkCallbackStruct2_0205FA2C *)FUN_0204652C(param0); + + switch (res2->unk04) + { + case 0: + res2->unk04 = FUN_0205FC9C(res2, res); + break; + case 1: + res2->unk04 = FUN_0205FCC4(res2, res); + break; + case 2: + u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2->unk10); + *var = (u16)res2->unk00; + FreeToHeap(res2); + + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkCallbackStruct2_0205FA2C *ptr = (struct UnkCallbackStruct2_0205FA2C *)AllocFromHeap( + 0xb, sizeof(struct UnkCallbackStruct2_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct2_0205FA2C)); + + ptr->unk12 = param1; + ptr->unk14 = param3; + ptr->unk10 = param2; + + FUN_0204640C(res->unk10, &FUN_0205FCE8, (u32 *)ptr); +} + +THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + u16 *res2 = (u16 *)FUN_0204652C(param0); + u32 res3 = FUN_020316E0(1 - FUN_02031190()); + if (res3 == 0) + { + return 0; + } + + u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2[1]); + switch (res2[0]) + { + case 0: + *var = MOD06_02244660(res, res3); + break; + case 1: + *var = MOD06_022446BC(res, res3); + + break; + case 2: + *var = MOD06_022446E0(res, res3); + + break; + } + + FreeToHeap(res2); + + return 1; +} + +THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2) +{ + struct UnkStruct_0204639C *res = FUN_02046528(param0); + + u16 *ptr = AllocFromHeap(0xb, 2 * sizeof(u16)); + MI_CpuFill8(ptr, 0, 2 * sizeof(u16)); + + ptr[0] = param1; + ptr[1] = param2; + + FUN_0204640C(res->unk10, &FUN_0205FD70, (u32 *)ptr); +} + +THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) +{ + + u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35); + if (res < 20) + { + return 0; + } + + u32 res2 = FUN_0202A8D8(sav2); + + u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); + u8 res4 = (u8)FUN_0202A578(res2, 0, 0); + u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + + u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); + u8 res7 = (u8)FUN_0202A578(res2, 2, 0); + u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + + if (res3 != 0 && res4 != 0 && res5 != 0) + { + return 0; + } + + u32 res9 = FUN_02026CC4(sav2); + if (res3 == 0) + { + if (FUN_02025D94(res9, 0x55) != 0) + { + FUN_0202A578(res2, 0xd, 1); + return 1; + } + + if (res6 == 0) + { + FUN_0202A578(res2, 0xe, 1); + } + + return 4; + } + + if (res < 50) + { + return 0; + } + + if (res4 == 0) + { + if (FUN_02025D94(res9, 0x56) != 0) + { + FUN_0202A578(res2, 0, 1); + return 2; + } + + if (res7 == 0) + { + FUN_0202A578(res2, 2, 1); + } + + return 4; + } + + if (res < 100 || res5 != 0) + { + return 0; + } + + if (FUN_02025D94(res9, 0x57) != 0) + { + FUN_0202A578(res2, 1, 1); + return 3; + } + + if (res8 == 0) + { + FUN_0202A578(res2, 3, 1); + } + + return 4; +} + +THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) +{ + u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35); + if (res < 20) + { + return 0; + } + + u32 res2 = FUN_0202A8D8(sav2); + + u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); + u8 res4 = (u8)FUN_0202A578(res2, 0, 0); + u8 res5 = (u8)FUN_0202A578(res2, 1, 0); + + u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); + u8 res7 = (u8)FUN_0202A578(res2, 2, 0); + u8 res8 = (u8)FUN_0202A578(res2, 3, 0); + + if (res3 != 0 && res4 != 0 && res5 != 0) + { + return 0; + } + + if (res3 == 0) + { + if (res6 != 0) + { + return 4; + } + + return 1; + } + + if (res < 50) + { + return 0; + } + + if (res4 == 0) + { + if (res7 != 0) + { + return 5; + } + + return 2; + } + + if (res < 100) + { + return 0; + } + + if (res5 != 0) + { + return 0; + } + + if (res8 != 0) + { + return 6; + } + + return 3; +} + +THUMB_FUNC void FUN_02060044(u16 **param0, u32 *param1) +{ + u16 *ptr = param0[42]; + + ptr[18] += param1[0]; + ptr[20] += param1[1]; + ptr[19] += param1[2]; +} + +THUMB_FUNC u32 FUN_02060064(u32 param0) +{ + return param0 * 0x02E90EDD + 1; +} + +THUMB_FUNC u32 FUN_02060070(u32 param0) +{ + return param0 * 0x5D588B65 + 1; +} + +THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2) +{ + u32 res = FUN_02060070(FUN_020287A4(FUN_0202881C(sav2))); + + FUN_0202A5CC(FUN_0202A8D8(sav2), res); + + return res; +} + +THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2) +{ + u32 res = FUN_0202A8D8(sav2); + + u32 res2 = FUN_02060070(FUN_0202A5D0(res)); + + FUN_0202A5CC(res, res2); + u32 res3 = FUN_02060064(res2); + + FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + + return res3; +} + +THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2) +{ + u32 res = FUN_0202A8D8(sav2); + + u32 res2 = FUN_0202A8CC(sav2); + + u32 res3 = FUN_02060064(FUN_0202A5D0(res)); + + int i = 0; + int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18; + + for (i = 0; i < res4; i++) + { + res3 = FUN_02060064(res3); + } + + FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3); + + return res3; +} + +THUMB_FUNC BOOL FUN_02060144(u32 **param0) +{ + if (param0[7][0] == SPECIES_ARCEUS) + { + return TRUE; + } + + return FALSE; +} diff --git a/arm9/src/unk_02064E4C.c b/arm9/src/unk_02064E4C.c index 1e9f8515..90ff8340 100644 --- a/arm9/src/unk_02064E4C.c +++ b/arm9/src/unk_02064E4C.c @@ -16,7 +16,7 @@ void FUN_02064E4C(struct MsgData * msgData, u16 map_sec, struct String * dest) void FUN_02064E60(u32 map_no, u32 heap_id, struct String * dest) { struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 382, heap_id); - u16 map_sec = FUN_02034824(map_no); + u16 map_sec = MapHeader_GetMapSec(map_no); FUN_02064E4C(msgData, map_sec, dest); diff --git a/arm9/src/unk_0206BB28.c b/arm9/src/unk_0206BB28.c index baaecc6a..e7c12793 100644 --- a/arm9/src/unk_0206BB28.c +++ b/arm9/src/unk_0206BB28.c @@ -6,12 +6,12 @@ #pragma thumb on -BOOL FUN_0206BB28(struct SaveBlock2 * sav2) +BOOL SavArray_IsNatDexEnabled(struct SaveBlock2 * sav2) { - return FUN_0206BB34(Sav2_Pokedex_get(sav2)); + return Pokedex_IsNatDexEnabled(Sav2_Pokedex_get(sav2)); } -BOOL FUN_0206BB34(struct Pokedex * pokedex) +BOOL Pokedex_IsNatDexEnabled(struct Pokedex * pokedex) { return Pokedex_GetNatDexFlag(pokedex) == TRUE; } diff --git a/arm9/temp.c b/arm9/temp.c deleted file mode 100644 index e69de29b..00000000 --- a/arm9/temp.c +++ /dev/null |