diff options
30 files changed, 487 insertions, 708 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 39d2ed1e..7aee5d0d 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -194,7 +194,7 @@ Static arm9 Object unk_0204B0A0.o Object unk_0204B34C.o Object unk_0204B9EC.o - Object unk_0204BE14.o + Object poketch.o Object unk_0204C1B4.o Object unk_0204CA80.o Object unk_0204CB20.o @@ -682,6 +682,7 @@ Overlay MODULE_25 Overlay MODULE_26 { + ##Dot Artist## After MODULE_20 Object module_26_sinit.o Object module_26.o diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index 9e33ba2c..1a4dcdcb 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -3955,7 +3955,7 @@ FUN_0203B8A0: ; 0x0203B8A0 bl SavArray_PlayerParty_get add r1, r6, #0x0 bl GetPartyMonByIndex - bl FUN_020690CC + bl GetMonUnownLetter strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} @@ -7129,7 +7129,7 @@ FUN_0203D248: ; 0x0203D248 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0x0 add r0, r5, #0x0 bl ScriptReadHalfword @@ -7139,7 +7139,7 @@ FUN_0203D248: ; 0x0203D248 bl GetVarPointer add r5, r0, #0x0 add r0, r4, #0x0 - bl FUN_0204BEC8 + bl Sav2_Poketch_IsGiven strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -7159,9 +7159,9 @@ FUN_0203D278: ; 0x0203D278 bl VarGet add r5, r0, #0x0 ldr r0, [r4, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r1, r5, #0x0 - bl FUN_0204BED8 + bl Sav2_Poketch_UnlockApp mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -7188,9 +7188,9 @@ FUN_0203D2A4: ; 0x0203D2A4 bl GetVarPointer add r4, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r1, r6, #0x0 - bl FUN_0204BED0 + bl Sav2_Poketch_AppIsUnlocked strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 524c0006..137140a8 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -1374,12 +1374,12 @@ FUN_020437DC: ; 0x020437DC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r0, r4, #0x0 - bl FUN_0204BEC8 + bl Sav2_Poketch_IsGiven pop {r3-r5, pc} .balign 4 @@ -1388,14 +1388,14 @@ FUN_020437F8: ; 0x020437F8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r1, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 - bl FUN_0204BED8 + bl Sav2_Poketch_UnlockApp pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s index 1741c29b..ad61ab32 100644 --- a/arm9/asm/scrcmd_9.s +++ b/arm9/asm/scrcmd_9.s @@ -609,8 +609,8 @@ FUN_020422F4: ; 0x020422F4 FUN_02042304: ; 0x02042304 push {r3, lr} ldr r0, [r0, #0xc] - bl FUN_0204C1A8 - bl FUN_0204BEC8 + bl Sav2_Poketch_get + bl Sav2_Poketch_IsGiven pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_02023C40.s b/arm9/asm/unk_02023C40.s index a759c10a..0de40519 100644 --- a/arm9/asm/unk_02023C40.s +++ b/arm9/asm/unk_02023C40.s @@ -834,7 +834,7 @@ FUN_020241B8: ; 0x020241B8 cmp r4, #0xc9 bne _02024210 add r0, r2, #0x0 - bl FUN_020690CC + bl GetMonUnownLetter lsl r1, r0, #0x18 lsr r3, r1, #0x18 mov r1, #0x43 diff --git a/arm9/asm/unk_0202C144.s b/arm9/asm/unk_0202C144.s index fdda34d3..e6448c07 100644 --- a/arm9/asm/unk_0202C144.s +++ b/arm9/asm/unk_0202C144.s @@ -34,9 +34,9 @@ FUN_0202C144: ; 0x0202C144 add r1, r4, #0x0 bl FUN_02024AF0 add r0, r5, #0x0 - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r1, r4, #0x0 - bl FUN_0204C104 + bl Sav2_Poketch_PokemonHistoryAddMon _0202C194: pop {r3-r7, pc} .balign 4 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 9e1896cf..c03af51e 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -3675,7 +3675,7 @@ FUN_02036E08: ; 0x02036E08 bl FUN_02029FC8 str r0, [sp, #0x34] ldr r0, [r4, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get ldr r1, [sp, #0x2c] str r7, [sp, #0x0] str r1, [sp, #0x4] @@ -3712,7 +3712,7 @@ _02036E9E: bl FUN_02029FC8 str r0, [sp, #0x44] ldr r0, [r4, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get ldr r1, [sp, #0x3c] str r7, [sp, #0x0] str r1, [sp, #0x4] diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 730ffea9..2a9321f1 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -1650,7 +1650,7 @@ _020382F6: bl FUN_02029FC8 str r0, [sp, #0x2c] ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get str r6, [sp, #0x0] ldr r1, [sp, #0x28] str r7, [sp, #0x4] diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index dc4d1c28..9bf1d22a 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -562,7 +562,7 @@ FUN_02047A78: ; 0x02047A78 sub r1, #0x68 str r0, [r5, r1] ldr r0, [r4, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get mov r1, #0x4a lsl r1, r1, #0x2 str r0, [r5, r1] @@ -735,7 +735,7 @@ _02047C98: str r0, [r6, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get mov r1, #0x4a lsl r1, r1, #0x2 str r0, [r6, r1] diff --git a/arm9/asm/unk_0204BE14.s b/arm9/asm/unk_0204BE14.s deleted file mode 100644 index 3234ea05..00000000 --- a/arm9/asm/unk_0204BE14.s +++ /dev/null @@ -1,565 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F486C -UNK_020F486C: ; 0x020F486C - .byte 0x68, 0x98, 0x78, 0x98, 0x88, 0x98, 0x98, 0x98, 0xA8, 0x98, 0xB8, 0x98 - - .text - - thumb_func_start FUN_0204BE14 -FUN_0204BE14: ; 0x0204BE14 - mov r0, #0xe8 - bx lr - - thumb_func_start FUN_0204BE18 -FUN_0204BE18: ; 0x0204BE18 - push {r3-r5, lr} - mov r2, #0x0 - add r3, r2, #0x0 -_0204BE1E: - add r1, r0, r2 - add r2, r2, #0x1 - strb r3, [r1, #0x3] - cmp r2, #0x20 - blt _0204BE1E - strb r3, [r0, #0x1] - strb r3, [r0, #0x2] - ldrb r1, [r0, #0x0] - mov r2, #0x1 - bic r1, r2 - strb r1, [r0, #0x0] - ldrb r4, [r0, #0x0] - mov r1, #0x38 - bic r4, r1 - strb r4, [r0, #0x0] - ldrb r4, [r0, #0x0] - mov r1, #0x2 - bic r4, r1 - strb r4, [r0, #0x0] - str r3, [r0, #0x24] - ldrh r1, [r0, #0x28] - bic r1, r2 - strh r1, [r0, #0x28] - ldrh r2, [r0, #0x28] - mov r1, #0x3e - bic r2, r1 - strh r2, [r0, #0x28] - ldrh r2, [r0, #0x28] - ldr r1, _0204BEB0 ; =0xFFFFF03F - and r1, r2 - strh r1, [r0, #0x28] - add r1, r0, #0x0 - mov r2, #0x1 - add r1, #0xa8 - strb r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0xa4 - str r3, [r1, #0x0] - ldr r1, _0204BEB4 ; =UNK_020F486C - add r2, r0, #0x0 -_0204BE6E: - ldrb r5, [r1, #0x0] - add r4, r2, #0x0 - add r4, #0xa9 - strb r5, [r4, #0x0] - add r4, r2, #0x0 - ldrb r5, [r1, #0x1] - add r4, #0xaa - add r3, r3, #0x1 - strb r5, [r4, #0x0] - add r1, r1, #0x2 - add r2, r2, #0x2 - cmp r3, #0x6 - blt _0204BE6E - mov r4, #0x0 - add r3, r0, #0x0 - add r1, r4, #0x0 -_0204BE8E: - add r2, r3, #0x0 - add r2, #0xb6 - strh r1, [r2, #0x0] - add r2, r3, #0x0 - add r2, #0xb8 - add r4, r4, #0x1 - add r3, r3, #0x4 - strh r1, [r2, #0x0] - cmp r4, #0xc - blt _0204BE8E - ldrb r3, [r0, #0x0] - mov r2, #0x4 - bic r3, r2 - strb r3, [r0, #0x0] - bl FUN_0204BED8 - pop {r3-r5, pc} - .balign 4 -_0204BEB0: .word 0xFFFFF03F -_0204BEB4: .word UNK_020F486C - - thumb_func_start FUN_0204BEB8 -FUN_0204BEB8: ; 0x0204BEB8 - ldrb r2, [r0, #0x0] - mov r1, #0x1 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strb r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0204BEC8 -FUN_0204BEC8: ; 0x0204BEC8 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_0204BED0 -FUN_0204BED0: ; 0x0204BED0 - add r0, r0, r1 - ldrb r0, [r0, #0x3] - bx lr - .balign 4 - - thumb_func_start FUN_0204BED8 -FUN_0204BED8: ; 0x0204BED8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bmi _0204BEE4 - cmp r4, #0x19 - blt _0204BEE8 -_0204BEE4: - bl ErrorHandling -_0204BEE8: - mov r0, #0x1 - ldrsb r1, [r5, r0] - cmp r1, #0x19 - bge _0204BF10 - add r2, r5, #0x3 - ldrb r1, [r2, r4] - cmp r1, #0x0 - bne _0204BF10 - strb r0, [r2, r4] - ldrsb r0, [r5, r0] - add r0, r0, #0x1 - strb r0, [r5, #0x1] - cmp r4, #0x3 - bne _0204BF0C - ldrb r1, [r5, #0x0] - mov r0, #0x2 - orr r0, r1 - strb r0, [r5, #0x0] -_0204BF0C: - mov r0, #0x1 - pop {r3-r5, pc} -_0204BF10: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_0204BF14 -FUN_0204BF14: ; 0x0204BF14 - mov r1, #0x2 - ldrsb r0, [r0, r1] - bx lr - .balign 4 - - thumb_func_start FUN_0204BF1C -FUN_0204BF1C: ; 0x0204BF1C - push {r3-r4} - mov r1, #0x2 - ldrsb r3, [r0, r1] - mov r2, #0x0 - add r4, r3, #0x0 -_0204BF26: - add r3, r3, #0x1 - cmp r3, #0x19 - blt _0204BF2E - add r3, r2, #0x0 -_0204BF2E: - cmp r3, r4 - beq _0204BF3A - add r1, r0, r3 - ldrb r1, [r1, #0x3] - cmp r1, #0x0 - beq _0204BF26 -_0204BF3A: - mov r1, #0x2 - strb r3, [r0, #0x2] - ldrsb r0, [r0, r1] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0204BF44 -FUN_0204BF44: ; 0x0204BF44 - push {r4, lr} - add r4, r0, #0x0 - bne _0204BF4E - bl ErrorHandling -_0204BF4E: - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1a - lsr r0, r0, #0x1d - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0204BF58 -FUN_0204BF58: ; 0x0204BF58 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x0 - bne _0204BF66 - bl ErrorHandling -_0204BF66: - cmp r4, #0x8 - blo _0204BF6E - bl ErrorHandling -_0204BF6E: - ldrb r1, [r5, #0x0] - mov r0, #0x38 - bic r1, r0 - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - lsl r0, r0, #0x1d - lsr r0, r0, #0x1a - orr r0, r1 - strb r0, [r5, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204BF84 -FUN_0204BF84: ; 0x0204BF84 - ldr r0, [r0, #0x24] - bx lr - - thumb_func_start FUN_0204BF88 -FUN_0204BF88: ; 0x0204BF88 - ldrb r2, [r0, #0x0] - lsl r2, r2, #0x1e - lsr r2, r2, #0x1f - beq _0204BF92 - str r1, [r0, #0x24] -_0204BF92: - bx lr - - thumb_func_start FUN_0204BF94 -FUN_0204BF94: ; 0x0204BF94 - ldrh r0, [r0, #0x28] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_0204BF9C -FUN_0204BF9C: ; 0x0204BF9C - ldrh r3, [r0, #0x28] - lsl r3, r3, #0x1a - lsr r3, r3, #0x1b - str r3, [r1, #0x0] - ldrh r0, [r0, #0x28] - lsl r0, r0, #0x14 - lsr r0, r0, #0x1a - str r0, [r2, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_0204BFB0 -FUN_0204BFB0: ; 0x0204BFB0 - push {r4-r5} - ldrh r4, [r0, #0x28] - mov r5, #0x1 - lsl r1, r1, #0x10 - bic r4, r5 - lsr r5, r1, #0x10 - mov r1, #0x1 - and r1, r5 - orr r1, r4 - strh r1, [r0, #0x28] - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - lsl r2, r2, #0x1b - ldrh r1, [r0, #0x28] - mov r4, #0x3e - lsr r2, r2, #0x1a - bic r1, r4 - orr r1, r2 - strh r1, [r0, #0x28] - ldrh r2, [r0, #0x28] - ldr r1, _0204BFEC ; =0xFFFFF03F - and r2, r1 - lsl r1, r3, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1a - lsr r1, r1, #0x14 - orr r1, r2 - strh r1, [r0, #0x28] - pop {r4-r5} - bx lr - .balign 4 -_0204BFEC: .word 0xFFFFF03F - - thumb_func_start FUN_0204BFF0 -FUN_0204BFF0: ; 0x0204BFF0 - push {r3-r4} - add r3, r0, #0x0 - add r3, #0xa8 - ldrb r3, [r3, #0x0] - cmp r3, r1 - bne _0204C016 - add r1, r0, #0x0 - add r1, #0xa4 - ldr r4, [r1, #0x0] - mov r3, #0x1 - sub r1, r2, #0x1 - add r2, r3, #0x0 - lsl r2, r1 - add r1, r4, #0x0 - orr r1, r2 - add r0, #0xa4 - str r1, [r0, #0x0] - pop {r3-r4} - bx lr -_0204C016: - add r3, r0, #0x0 - add r3, #0xa8 - strb r1, [r3, #0x0] - mov r3, #0x1 - sub r1, r2, #0x1 - add r2, r3, #0x0 - lsl r2, r1 - add r0, #0xa4 - str r2, [r0, #0x0] - pop {r3-r4} - bx lr - - thumb_func_start FUN_0204C02C -FUN_0204C02C: ; 0x0204C02C - push {r3-r4} - add r3, r0, #0x0 - add r3, #0xa8 - ldrb r3, [r3, #0x0] - cmp r3, r1 - bne _0204C052 - add r1, r0, #0x0 - add r1, #0xa4 - ldr r4, [r1, #0x0] - mov r3, #0x1 - sub r1, r2, #0x1 - add r2, r3, #0x0 - lsl r2, r1 - mvn r1, r2 - and r1, r4 - add r0, #0xa4 - str r1, [r0, #0x0] - pop {r3-r4} - bx lr -_0204C052: - add r2, r0, #0x0 - add r2, #0xa8 - strb r1, [r2, #0x0] - mov r1, #0x0 - add r0, #0xa4 - str r1, [r0, #0x0] - pop {r3-r4} - bx lr - .balign 4 - - thumb_func_start FUN_0204C064 -FUN_0204C064: ; 0x0204C064 - add r3, r0, #0x0 - add r3, #0xa8 - ldrb r3, [r3, #0x0] - cmp r3, r1 - bne _0204C07C - add r0, #0xa4 - ldr r1, [r0, #0x0] - sub r0, r2, #0x1 - lsr r1, r0 - mov r0, #0x1 - and r0, r1 - bx lr -_0204C07C: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0204C080 -FUN_0204C080: ; 0x0204C080 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r4, #0x6 - blt _0204C092 - bl ErrorHandling -_0204C092: - lsl r1, r4, #0x1 - add r0, r5, r1 - add r0, #0xa9 - strb r6, [r0, #0x0] - add r0, r5, r1 - add r0, #0xaa - strb r7, [r0, #0x0] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0204C0A4 -FUN_0204C0A4: ; 0x0204C0A4 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r4, #0x6 - blt _0204C0B6 - bl ErrorHandling -_0204C0B6: - lsl r1, r4, #0x1 - add r0, r5, r1 - add r0, #0xa9 - ldrb r0, [r0, #0x0] - strb r0, [r6, #0x0] - add r0, r5, r1 - add r0, #0xaa - ldrb r0, [r0, #0x0] - strb r0, [r7, #0x0] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0204C0CC -FUN_0204C0CC: ; 0x0204C0CC - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - bx lr - - thumb_func_start FUN_0204C0D4 -FUN_0204C0D4: ; 0x0204C0D4 - push {r3, lr} - ldrb r2, [r0, #0x0] - lsl r2, r2, #0x1d - lsr r2, r2, #0x1f - beq _0204C0E6 - add r0, #0x2a - mov r2, #0x78 - bl MI_CpuCopy8 -_0204C0E6: - pop {r3, pc} - - thumb_func_start FUN_0204C0E8 -FUN_0204C0E8: ; 0x0204C0E8 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r4, #0x0 - add r1, #0x2a - mov r2, #0x78 - bl MI_CpuCopy8 - ldrb r1, [r4, #0x0] - mov r0, #0x4 - orr r0, r1 - strb r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0204C104 -FUN_0204C104: ; 0x0204C104 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - bl FUN_0204C158 - cmp r0, #0xc - blt _0204C138 - mov r0, #0x0 - add r1, r5, #0x0 -_0204C116: - add r2, r1, #0x0 - add r2, #0xba - ldrh r3, [r2, #0x0] - add r2, r1, #0x0 - add r2, #0xb6 - strh r3, [r2, #0x0] - add r2, r1, #0x0 - add r2, #0xbc - ldrh r3, [r2, #0x0] - add r2, r1, #0x0 - add r2, #0xb8 - add r0, r0, #0x1 - add r1, r1, #0x4 - strh r3, [r2, #0x0] - cmp r0, #0xb - blt _0204C116 - mov r0, #0xb -_0204C138: - lsl r4, r0, #0x2 - add r0, r6, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonData - add r1, r5, r4 - add r1, #0xb6 - strh r0, [r1, #0x0] - add r0, r6, #0x0 - bl FUN_0206B754 - add r1, r5, r4 - add r1, #0xb8 - strh r0, [r1, #0x0] - pop {r4-r6, pc} - - thumb_func_start FUN_0204C158 -FUN_0204C158: ; 0x0204C158 - mov r2, #0x0 -_0204C15A: - add r1, r0, #0x0 - add r1, #0xb6 - ldrh r1, [r1, #0x0] - cmp r1, #0x0 - bne _0204C168 - add r0, r2, #0x0 - bx lr -_0204C168: - add r2, r2, #0x1 - add r0, r0, #0x4 - cmp r2, #0xc - blt _0204C15A - add r0, r2, #0x0 - bx lr - - thumb_func_start FUN_0204C174 -FUN_0204C174: ; 0x0204C174 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - cmp r4, #0xc - blt _0204C186 - bl ErrorHandling -_0204C186: - add r6, r5, #0x0 - lsl r4, r4, #0x2 - add r6, #0xb6 - ldrh r0, [r6, r4] - cmp r0, #0x0 - bne _0204C196 - bl ErrorHandling -_0204C196: - ldrh r0, [r6, r4] - str r0, [r7, #0x0] - add r0, r5, r4 - add r0, #0xb8 - ldrh r1, [r0, #0x0] - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0204C1A8 -FUN_0204C1A8: ; 0x0204C1A8 - ldr r3, _0204C1B0 ; =SavArray_get - mov r1, #0x5 - bx r3 - nop -_0204C1B0: .word SavArray_get diff --git a/arm9/asm/unk_0206B688.s b/arm9/asm/unk_0206B688.s index 9b6e863e..c92d347d 100644 --- a/arm9/asm/unk_0206B688.s +++ b/arm9/asm/unk_0206B688.s @@ -59,7 +59,7 @@ FUN_0206B688: ; 0x0206B688 bl GetBoxMonData add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_0206B754 + bl BoxMon_GetAlternateForme add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 @@ -152,8 +152,8 @@ _0206B748: .word 0x000001EA _0206B74C: .word 0x00000182 _0206B750: .word 0x000001ED - thumb_func_start FUN_0206B754 -FUN_0206B754: ; 0x0206B754 + thumb_func_start BoxMon_GetAlternateForme +BoxMon_GetAlternateForme: ; 0x0206B754 push {r4, lr} mov r1, #0xad mov r2, #0x0 @@ -195,7 +195,7 @@ _0206B794: b _0206B7B4 _0206B79C: add r0, r4, #0x0 - bl FUN_020690D4 + bl GetBoxMonUnownLetter pop {r4, pc} _0206B7A4: add r0, r4, #0x0 @@ -292,7 +292,7 @@ FUN_0206B83C: ; 0x0206B83C bl AcquireBoxMonLock add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_0206B754 + bl BoxMon_GetAlternateForme add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 956f6263..39550e2a 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -1107,7 +1107,7 @@ _0206CFFA: bl FUN_020690E4 add r1, r0, #0x0 ldr r0, [r4, #0x54] - bl FUN_0204C104 + bl Sav2_Poketch_PokemonHistoryAddMon ldr r0, [r4, #0x28] mov r1, #0x4d mov r2, #0x0 @@ -2209,7 +2209,7 @@ _0206D8EA: bl FUN_020690E4 add r1, r0, #0x0 ldr r0, [r4, #0x54] - bl FUN_0204C104 + bl Sav2_Poketch_PokemonHistoryAddMon add r0, r5, #0x0 bl FreeToHeap ldr r0, [r4, #0x4c] diff --git a/arm9/global.inc b/arm9/global.inc index 29501049..c1781cdc 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3582,33 +3582,33 @@ .extern FUN_0204BAC4 .extern FUN_0204BAD4 .extern FUN_0204BAE4 -.extern FUN_0204BE14 -.extern FUN_0204BE18 -.extern FUN_0204BEB8 -.extern FUN_0204BEC8 -.extern FUN_0204BED0 -.extern FUN_0204BED8 -.extern FUN_0204BF14 -.extern FUN_0204BF1C -.extern FUN_0204BF44 -.extern FUN_0204BF58 -.extern FUN_0204BF84 -.extern FUN_0204BF88 -.extern FUN_0204BF94 -.extern FUN_0204BF9C -.extern FUN_0204BFB0 -.extern FUN_0204BFF0 -.extern FUN_0204C02C -.extern FUN_0204C064 -.extern FUN_0204C080 -.extern FUN_0204C0A4 -.extern FUN_0204C0CC -.extern FUN_0204C0D4 -.extern FUN_0204C0E8 -.extern FUN_0204C104 -.extern FUN_0204C158 -.extern FUN_0204C174 -.extern FUN_0204C1A8 +.extern Sav2_Poketch_sizeof +.extern Sav2_Poketch_init +.extern Sav2_Poketch_Give +.extern Sav2_Poketch_IsGiven +.extern Sav2_Poketch_AppIsUnlocked +.extern Sav2_Poketch_UnlockApp +.extern Sav2_Poketch_GetSelectedApp +.extern Sav2_Poketch_CycleNextApp +.extern Sav2_Poketch_GetScreenTint +.extern Sav2_Poketch_SetScreenTint +.extern Sav2_Poketch_GetStepCounter +.extern Sav2_Poketch_SetStepCounter +.extern Sav2_Poketch_GetAlarmState +.extern Sav2_Poketch_GetAlarmSetTime +.extern Sav2_Poketch_SetAlarm +.extern Sav2_Poketch_CalendarDateHighlight +.extern Sav2_Poketch_CalendarDateUnhighlight +.extern Sav2_Poketch_CalendarDateIsHighlighted +.extern Sav2_Poketch_MarkingMapSetPos +.extern Sav2_Poketch_MarkingMapGetPos +.extern Sav2_Poketch_DotArtistIsEnabled +.extern Sav2_Poketch_DotArtistGetDrawing +.extern Sav2_Poketch_DotArtistSetDrawingAndEnable +.extern Sav2_Poketch_PokemonHistoryAddMon +.extern Sav2_Poketch_PokemonHistoryGetFirstEmptySlot +.extern Sav2_Poketch_PokemonHistoryGetSlotN +.extern Sav2_Poketch_get .extern FUN_0204C1B4 .extern FUN_0204C260 .extern FUN_0204C29C @@ -4783,8 +4783,8 @@ .extern FUN_020690AC .extern FUN_020690C4 .extern FUN_020690C8 -.extern FUN_020690CC -.extern FUN_020690D4 +.extern GetMonUnownLetter +.extern GetBoxMonUnownLetter .extern FUN_020690E4 .extern FUN_020690E8 .extern GetMonEvolution @@ -4869,7 +4869,7 @@ .extern FUN_0206B688 .extern FUN_0206B6C8 .extern FUN_0206B6D4 -.extern FUN_0206B754 +.extern BoxMon_GetAlternateForme .extern FUN_0206B7BC .extern FUN_0206B87C .extern FUN_0206B888 diff --git a/arm9/modules/05/asm/mod05_021E3340.s b/arm9/modules/05/asm/mod05_021E3340.s index 264edb7b..8fb0d143 100644 --- a/arm9/modules/05/asm/mod05_021E3340.s +++ b/arm9/modules/05/asm/mod05_021E3340.s @@ -57,7 +57,7 @@ _021E33A0: cmp r0, #0 beq _021E3414 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r6, r0, #0 ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID bl UnloadOverlayByID @@ -65,7 +65,7 @@ _021E33A0: mov r1, #2 bl HandleLoadOverlay add r0, r6, #0 - bl FUN_0204BEB8 + bl Sav2_Poketch_Give mov r0, #1 bl FUN_0200A03C str r0, [sp] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index daf46f68..dabce6d4 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -21362,13 +21362,13 @@ MOD05_021EFAAC: ; 0x021EFAAC sub sp, #4 add r5, r0, #0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0 ldr r0, [r5, #0xc] bl SavArray_Flags_get add r6, r0, #0 add r0, r4, #0 - bl FUN_0204BEC8 + bl Sav2_Poketch_IsGiven cmp r0, #0 beq _021EFAF8 add r0, r6, #0 @@ -21406,13 +21406,13 @@ MOD05_021EFB14: ; 0x021EFB14 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0 ldr r0, [r5, #0xc] bl SavArray_Flags_get add r6, r0, #0 add r0, r4, #0 - bl FUN_0204BEC8 + bl Sav2_Poketch_IsGiven cmp r0, #0 beq _021EFB46 add r0, r6, #0 @@ -21434,13 +21434,13 @@ MOD05_021EFB50: ; 0x021EFB50 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0xc] - bl FUN_0204C1A8 + bl Sav2_Poketch_get add r4, r0, #0 ldr r0, [r5, #0xc] bl SavArray_Flags_get add r6, r0, #0 add r0, r4, #0 - bl FUN_0204BEC8 + bl Sav2_Poketch_IsGiven cmp r0, #0 beq _021EFB94 add r0, r6, #0 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 9c5b85ce..ba099f93 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -3805,7 +3805,7 @@ MOD11_02230F88: ; 0x02230F88 add r4, #0x98 add r1, r0, #0 ldr r0, [r4] - bl FUN_0204C104 + bl Sav2_Poketch_PokemonHistoryAddMon _02230FA4: pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index fbe1a1e2..a42eeb6f 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -35,7 +35,7 @@ MOD20_02252448: ; 0x02252448 ldr r0, [sp] str r6, [r4, #0x5c] str r0, [r4, #0x54] - bl FUN_0204C1A8 + bl Sav2_Poketch_get str r0, [r4, #0x58] ldr r0, [sp, #0x18] str r7, [r4, #0x4c] @@ -114,7 +114,7 @@ _022524FC: pop {r4, pc} _02252502: ldr r0, [r4, #0x58] - bl FUN_0204BF84 + bl Sav2_Poketch_GetStepCounter add r1, r0, #1 ldr r0, _02252530 ; =0x0001869F cmp r1, r0 @@ -122,7 +122,7 @@ _02252502: mov r1, #0 _02252512: ldr r0, [r4, #0x58] - bl FUN_0204BF88 + bl Sav2_Poketch_SetStepCounter mov r0, #1 strb r0, [r4, #7] pop {r4, pc} @@ -295,7 +295,7 @@ _0225262E: cmp r0, #0 beq _02252684 ldr r0, [r4, #0x58] - bl FUN_0204BF14 + bl Sav2_Poketch_GetSelectedApp add r5, r0, #0 add r0, r4, #0 add r1, r5, #0 @@ -388,7 +388,7 @@ _022526E2: cmp r0, #0 beq _022527AA ldr r0, [r4, #0x58] - bl FUN_0204BF1C + bl Sav2_Poketch_CycleNextApp str r0, [r4, #0x20] ldr r0, [r4, #0xc] cmp r0, #0 @@ -457,7 +457,7 @@ _0225276C: bne _0225278C _02252776: ldr r0, [r4, #0x58] - bl FUN_0204BF1C + bl Sav2_Poketch_CycleNextApp str r0, [r4, #0x20] mov r0, #0x1e str r0, [r4, #0x10] @@ -500,7 +500,7 @@ _022527C0: mov r0, #1 strb r0, [r4, #6] ldr r0, [r4, #0x58] - bl FUN_0204BF14 + bl Sav2_Poketch_GetSelectedApp add r5, r0, #0 add r0, r4, #0 add r1, r5, #0 @@ -1363,7 +1363,7 @@ MOD20_02252D7C: ; 0x02252D7C lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD20_02252C3C - bl FUN_0204BF44 + bl Sav2_Poketch_GetScreenTint mov r1, #0x62 lsl r1, r1, #2 add r5, r4, r1 @@ -1388,7 +1388,7 @@ MOD20_02252DB4: ; 0x02252DB4 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD20_02252C3C - bl FUN_0204BF44 + bl Sav2_Poketch_GetScreenTint mov r1, #0x62 lsl r0, r0, #5 lsl r1, r1, #2 @@ -1416,7 +1416,7 @@ MOD20_02252DEC: ; 0x02252DEC lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD20_02252C3C - bl FUN_0204BF44 + bl Sav2_Poketch_GetScreenTint mov r1, #0x62 lsl r1, r1, #2 add r1, r4, r1 @@ -2295,7 +2295,7 @@ MOD20_022534D4: ; 0x022534D4 ldr r0, [r5, r0] add r4, r1, #0 bl MOD20_02252C3C - bl FUN_0204BF44 + bl Sav2_Poketch_GetScreenTint mov r1, #0x62 lsl r0, r0, #5 lsl r1, r1, #2 diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s index 45536bcf..6d8828a0 100644 --- a/arm9/modules/26/asm/module_26.s +++ b/arm9/modules/26/asm/module_26.s @@ -90,7 +90,7 @@ MOD26_022548E8: ; 0x022548E8 add r4, r1, #0 bl MOD20_02252C3C add r6, r0, #0 - bl FUN_0204C0CC + bl Sav2_Poketch_DotArtistIsEnabled cmp r0, #0 beq _0225490E add r0, r5, #0 @@ -114,7 +114,7 @@ MOD26_02254918: ; 0x02254918 lsl r1, r1, #2 add r0, r2, #0 add r1, r5, r1 - bl FUN_0204C0D4 + bl Sav2_Poketch_DotArtistGetDrawing mov r3, #0 mov r7, #0x7d mov ip, r3 @@ -207,7 +207,7 @@ _0225498A: lsl r2, r2, #2 ldr r0, [sp] add r1, r1, r2 - bl FUN_0204C0E8 + bl Sav2_Poketch_DotArtistSetDrawingAndEnable add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD26_0225496C @@ -784,37 +784,26 @@ MOD26_02254DE4: ; 0x02254DE4 .global MOD26_02254DF0 MOD26_02254DF0: ; 0x02254DF0 - .byte 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04 - .byte 0x01, 0x01, 0x04, 0x04, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x04, 0x04, 0x01, 0x04, 0x04 - .byte 0x04, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01 - .byte 0x04, 0x01, 0x04, 0x01, 0x01, 0x01, 0x04, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04 - .byte 0x01, 0x01, 0x04, 0x04, 0x04, 0x01, 0x04, 0x04, 0x04, 0x01, 0x04, 0x04, 0x04, 0x01, 0x04, 0x01 - .byte 0x04, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1 + .byte 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1 + .byte 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 4, 1 + .byte 1, 1, 1, 4, 1, 1, 4, 4, 4, 1, 4, 1, 4, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 1 + .byte 1, 1, 1, 4, 1, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1 + .byte 1, 1, 1, 4, 1, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 1, 4, 1, 4, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 .global MOD26_02254FD0 MOD26_02254FD0: ; 0x02254FD0 diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s index 8bdedda5..7dcd4e3a 100644 --- a/arm9/modules/31/asm/module_31.s +++ b/arm9/modules/31/asm/module_31.s @@ -52,7 +52,7 @@ MOD31_0225489C: ; 0x0225489C mov r0, #1 str r0, [r5, #8] ldr r0, [r5, #0x1c] - bl FUN_0204BF84 + bl Sav2_Poketch_GetStepCounter str r0, [r5, #4] add r0, r5, #0 add r0, #0xc @@ -236,7 +236,7 @@ _022549EE: cmp r0, #0 beq _02254A4C ldr r0, [r4, #0x1c] - bl FUN_0204BF84 + bl Sav2_Poketch_GetStepCounter str r0, [r4, #4] ldr r0, [r4, #0xc] mov r1, #3 @@ -263,7 +263,7 @@ _02254A24: mov r1, #0 str r1, [r4, #4] ldr r0, [r4, #0x1c] - bl FUN_0204BF88 + bl Sav2_Poketch_SetStepCounter ldr r0, [r4, #0xc] mov r1, #2 bl MOD31_02254BBC diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s index 90fc4ebd..713e9ec7 100644 --- a/arm9/modules/40/asm/module_40.s +++ b/arm9/modules/40/asm/module_40.s @@ -50,12 +50,12 @@ MOD40_0225489C: ; 0x0225489C add r6, r2, #0 bl MOD20_02252C3C str r0, [r5, #0x10] - bl FUN_0204BF94 + bl Sav2_Poketch_GetAlarmState strb r0, [r5, #3] ldr r0, [r5, #0x10] add r1, sp, #8 add r2, sp, #4 - bl FUN_0204BF9C + bl Sav2_Poketch_GetAlarmSetTime ldr r0, [sp, #8] strb r0, [r5, #6] ldr r0, [sp, #4] @@ -300,7 +300,7 @@ _02254A60: ldrsb r3, [r4, r3] ldr r0, [r4, #0x10] mov r1, #1 - bl FUN_0204BFB0 + bl Sav2_Poketch_SetAlarm ldr r0, [r4, #8] mov r1, #2 bl MOD40_02254F98 diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index 3e0b6d71..8e41c6cc 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -66,7 +66,7 @@ _022548BE: ldr r3, [sp, #8] add r1, r6, #0 add r2, r7, #0 - bl FUN_0204C0A4 + bl Sav2_Poketch_MarkingMapGetPos ldrb r0, [r4, #0x10] add r7, r7, #4 add r0, #0x10 @@ -205,7 +205,7 @@ _022549D4: add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 - bl FUN_0204C080 + bl Sav2_Poketch_MarkingMapSetPos add r4, r4, #1 add r5, r5, #4 cmp r4, #6 diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s index 5c50d9f1..bf007af4 100644 --- a/arm9/modules/44/asm/module_44.s +++ b/arm9/modules/44/asm/module_44.s @@ -49,7 +49,7 @@ MOD44_0225489C: ; 0x0225489C add r6, r2, #0 bl MOD20_02252C3C str r0, [r5, #0x10] - bl FUN_0204BF44 + bl Sav2_Poketch_GetScreenTint str r0, [r5, #4] strb r0, [r5, #3] add r0, r5, #0 @@ -248,7 +248,7 @@ _02254A02: str r1, [r4, #4] strb r1, [r4, #3] ldr r0, [r4, #0x10] - bl FUN_0204BF58 + bl Sav2_Poketch_SetScreenTint add sp, #8 mov r0, #1 pop {r4, pc} diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s index e3115193..d8d9bf36 100644 --- a/arm9/modules/45/asm/module_45.s +++ b/arm9/modules/45/asm/module_45.s @@ -173,7 +173,7 @@ _0225499A: add r0, #0x98 ldr r0, [r0] ldr r1, [r6] - bl FUN_0204C064 + bl Sav2_Poketch_CalendarDateIsHighlighted strb r0, [r5, #0xf] add r0, r7, r4 strb r0, [r5, #0xe] @@ -362,7 +362,7 @@ _02254AB8: ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 - bl FUN_0204C064 + bl Sav2_Poketch_CalendarDateIsHighlighted cmp r0, #0 beq _02254B08 add r0, r5, #0 @@ -370,7 +370,7 @@ _02254AB8: ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 - bl FUN_0204C02C + bl Sav2_Poketch_CalendarDateUnhighlight b _02254B16 _02254B08: add r0, r5, #0 @@ -378,7 +378,7 @@ _02254B08: ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 - bl FUN_0204BFF0 + bl Sav2_Poketch_CalendarDateHighlight _02254B16: add r3, r5, #0 add r3, #0x13 diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s index 6527f0f7..bce289da 100644 --- a/arm9/modules/49/asm/module_49.s +++ b/arm9/modules/49/asm/module_49.s @@ -50,7 +50,7 @@ MOD49_0225489C: ; 0x0225489C str r2, [sp, #8] bl MOD20_02252C3C str r0, [sp, #0xc] - bl FUN_0204C158 + bl Sav2_Poketch_PokemonHistoryGetFirstEmptySlot mov r6, #0 str r0, [r7, #0x64] cmp r0, #0 @@ -63,7 +63,7 @@ _022548C0: add r1, r6, #0 add r2, r5, #0 add r3, r4, #0 - bl FUN_0204C174 + bl Sav2_Poketch_PokemonHistoryGetSlotN ldr r0, [r7, #0x64] add r6, r6, #1 add r4, #8 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index ca96ae65..d45b6251 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -17449,7 +17449,7 @@ _02235FDE: beq _02236052 ldr r5, [r4] ldr r0, [r5, #0x20] - bl FUN_0204C1A8 + bl Sav2_Poketch_get ldr r1, [r5, #0x3c] ldr r2, [sp, #0x24] str r1, [sp] @@ -17540,7 +17540,7 @@ _022360B6: beq _02236118 ldr r5, [r4] ldr r0, [r5, #0x20] - bl FUN_0204C1A8 + bl Sav2_Poketch_get ldr r1, [r5, #0x3c] ldr r2, [sp, #0x28] str r1, [sp] diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 97be796b..347cb5ac 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -58,7 +58,7 @@ u16 MonEncryptionLCRNG(u32 * seed); u16 CalcMonChecksum(u16 * datap, u32 size); PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u8 which_struct); void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * baseStats); -u8 FUN_020690D4(struct BoxPokemon * boxmon); +u8 GetBoxMonUnownLetter(struct BoxPokemon * boxmon); #define ENCRY_ARGS_PTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.pid #define ENCRY_ARGS_BOX(boxmon) (u16 *)&(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum @@ -2458,12 +2458,12 @@ u32 FUN_020690C8(void) return sizeof(struct BoxPokemon); } -u8 FUN_020690CC(struct Pokemon * pokemon) +u8 GetMonUnownLetter(struct Pokemon * pokemon) { - return FUN_020690D4(&pokemon->box); + return GetBoxMonUnownLetter(&pokemon->box); } -u8 FUN_020690D4(struct BoxPokemon * boxmon) +u8 GetBoxMonUnownLetter(struct BoxPokemon * boxmon) { return (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL); } diff --git a/arm9/src/poketch.c b/arm9/src/poketch.c new file mode 100644 index 00000000..54dff12b --- /dev/null +++ b/arm9/src/poketch.c @@ -0,0 +1,262 @@ +#include "global.h" +#include "MI_memory.h" +#include "pokemon.h" +#include "poketch.h" + +#pragma thumb on + +extern u16 BoxMon_GetAlternateForme(struct BoxPokemon * mon); + +static const u8 sMarkingMapInitialPos[][2] = { + { 0x68, 0x98 }, + { 0x78, 0x98 }, + { 0x88, 0x98 }, + { 0x98, 0x98 }, + { 0xA8, 0x98 }, + { 0xB8, 0x98 }, +}; + +u32 Sav2_Poketch_sizeof(void) +{ + return sizeof(struct SavePoketch); +} + +void Sav2_Poketch_init(struct SavePoketch * poketch) +{ + int i; + + for (i = 0; i < 32; i++) + { + poketch->unlockedApps[i] = 0; + } + poketch->numApps = 0; + poketch->selectedApp = 0; + poketch->isGiven = 0; + poketch->color = 0; + poketch->pedometerActive = 0; + poketch->stepCounter = 0; + poketch->alarmActive = 0; + poketch->alarmHour = 0; + poketch->alarmMinute = 0; + poketch->calendarMonth = 1; // January + poketch->calendarFlags = 0; + for (i = 0; i < 6; i++) + { + poketch->markingMapPos[i][0] = sMarkingMapInitialPos[i][0]; + poketch->markingMapPos[i][1] = sMarkingMapInitialPos[i][1]; + } + for (i = 0; i < 12; i++) + { + poketch->pokemonHistory[i][0] = SPECIES_NONE; + poketch->pokemonHistory[i][1] = 0; + } + poketch->dotArtistEnabled = 0; + Sav2_Poketch_UnlockApp(poketch, POKETCH_DIGITAL_WATCH); +} + +void Sav2_Poketch_Give(struct SavePoketch * poketch) +{ + poketch->isGiven = TRUE; +} + +BOOL Sav2_Poketch_IsGiven(struct SavePoketch * poketch) +{ + return poketch->isGiven; +} + +u8 Sav2_Poketch_AppIsUnlocked(struct SavePoketch * poketch, PoketchApp app) +{ + return poketch->unlockedApps[app]; +} + +BOOL Sav2_Poketch_UnlockApp(struct SavePoketch * poketch, PoketchApp app) +{ + GF_ASSERT(app >= FIRST_POKETCH_APP_ID && app < NUM_POKETCH_APPS); + if (poketch->numApps < NUM_POKETCH_APPS && !poketch->unlockedApps[app]) + { + poketch->unlockedApps[app] = TRUE; + poketch->numApps++; + if (app == POKETCH_PEDOMETER) // pedometer + { + poketch->pedometerActive = TRUE; + } + return TRUE; + } + return FALSE; +} + +PoketchApp Sav2_Poketch_GetSelectedApp(struct SavePoketch * poketch) +{ + return (PoketchApp)poketch->selectedApp; +} + +PoketchApp Sav2_Poketch_CycleNextApp(struct SavePoketch * poketch) +{ + PoketchApp app = (PoketchApp)poketch->selectedApp; + PoketchApp prev = app; + + while (1) + { + if (++app >= NUM_POKETCH_APPS) + app = FIRST_POKETCH_APP_ID; + if (app == prev) + break; + if (poketch->unlockedApps[app]) + break; + } + poketch->selectedApp = (s8)app; + return (PoketchApp)poketch->selectedApp; +} + +u8 Sav2_Poketch_GetScreenTint(struct SavePoketch * poketch) +{ + GF_ASSERT(poketch != NULL); + return poketch->color; +} + +void Sav2_Poketch_SetScreenTint(struct SavePoketch * poketch, u32 color) +{ + GF_ASSERT(poketch != NULL); + GF_ASSERT(color < 8); + poketch->color = (u8)color; +} + +u32 Sav2_Poketch_GetStepCounter(struct SavePoketch * poketch) +{ + return poketch->stepCounter; +} + +void Sav2_Poketch_SetStepCounter(struct SavePoketch * poketch, u32 steps) +{ + if (poketch->pedometerActive) + poketch->stepCounter = steps; +} + +BOOL Sav2_Poketch_GetAlarmState(struct SavePoketch * poketch) +{ + return poketch->alarmActive; +} + +void Sav2_Poketch_GetAlarmSetTime(struct SavePoketch * poketch, u32 * hour_p, u32 * min_p) +{ + *hour_p = poketch->alarmHour; + *min_p = poketch->alarmMinute; +} + +void Sav2_Poketch_SetAlarm(struct SavePoketch * poketch, BOOL enabled, u32 hour, u32 minute) +{ + poketch->alarmActive = enabled; + poketch->alarmHour = hour; + poketch->alarmMinute = minute; +} + +void Sav2_Poketch_CalendarDateHighlight(struct SavePoketch * poketch, u32 month, u32 day) +{ + if (poketch->calendarMonth == month) + { + poketch->calendarFlags |= (1u << (day - 1)); + } + else + { + poketch->calendarMonth = (u8)month; + poketch->calendarFlags = (1u << (day - 1)); + } +} + +void Sav2_Poketch_CalendarDateUnhighlight(struct SavePoketch * poketch, u32 month, u32 day) +{ + if (poketch->calendarMonth == month) + { + poketch->calendarFlags &= ~(1u << (day - 1)); + } + else + { + poketch->calendarMonth = (u8)month; + poketch->calendarFlags = 0; + } +} + +BOOL Sav2_Poketch_CalendarDateIsHighlighted(struct SavePoketch * poketch, u32 month, u32 day) +{ + if (poketch->calendarMonth == month) + { + return (BOOL)((poketch->calendarFlags >> (day - 1)) & 1); + } + else + { + return FALSE; + } +} + +void Sav2_Poketch_MarkingMapSetPos(struct SavePoketch * poketch, s32 mark, u8 x, u8 y) +{ + GF_ASSERT(mark < 6); + poketch->markingMapPos[mark][0] = x; + poketch->markingMapPos[mark][1] = y; +} + +void Sav2_Poketch_MarkingMapGetPos(struct SavePoketch * poketch, s32 mark, u8 * x_p, u8 * y_p) +{ + GF_ASSERT(mark < 6); + *x_p = poketch->markingMapPos[mark][0]; + *y_p = poketch->markingMapPos[mark][1]; +} + +u32 Sav2_Poketch_DotArtistIsEnabled(struct SavePoketch * poketch) +{ + return poketch->dotArtistEnabled; +} + +void Sav2_Poketch_DotArtistGetDrawing(struct SavePoketch * poketch, void * grid) +{ + if (poketch->dotArtistEnabled) + { + MI_CpuCopy8(poketch->dotArtistGrid, grid, DOT_ARTIST_SIZE); + } +} + +void Sav2_Poketch_DotArtistSetDrawingAndEnable(struct SavePoketch * poketch, void * grid) +{ + MI_CpuCopy8(grid, poketch->dotArtistGrid, DOT_ARTIST_SIZE); + poketch->dotArtistEnabled = TRUE; +} + +void Sav2_Poketch_PokemonHistoryAddMon(struct SavePoketch * poketch, struct BoxPokemon * mon) +{ + int i = Sav2_Poketch_PokemonHistoryGetFirstEmptySlot(poketch); + if (i >= 12) + { + for (i = 0; i < 11; i++) + { + poketch->pokemonHistory[i][0] = poketch->pokemonHistory[i + 1][0]; + poketch->pokemonHistory[i][1] = poketch->pokemonHistory[i + 1][1]; + } + i = 11; + } + poketch->pokemonHistory[i][0] = (u16)GetBoxMonData(mon, MON_DATA_SPECIES, NULL); + poketch->pokemonHistory[i][1] = BoxMon_GetAlternateForme(mon); +} + +int Sav2_Poketch_PokemonHistoryGetFirstEmptySlot(struct SavePoketch * poketch) +{ + int i; + for (i = 0; i < 12; i++) + { + if (poketch->pokemonHistory[i][0] == SPECIES_NONE) + return i; + } + return i; +} + +void Sav2_Poketch_PokemonHistoryGetSlotN(struct SavePoketch * poketch, s32 i, u32 * species_p, u32 * forme_p) +{ + GF_ASSERT(i < 12); + GF_ASSERT(poketch->pokemonHistory[i][0] != SPECIES_NONE); + *species_p = poketch->pokemonHistory[i][0]; + *forme_p = poketch->pokemonHistory[i][1]; +} + +struct SavePoketch * Sav2_Poketch_get(struct SaveBlock2 * sav2) +{ + return (struct SavePoketch *)SavArray_get(sav2, 5); +} diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index 58e1ff4c..02dc4a16 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -4,11 +4,12 @@ #include "save_block_2.h" #include "party.h" #include "event_data.h" +#include "pokemon_storage_system.h" +#include "sav_system_info.h" +#include "poketch.h" extern u32 FUN_0202B034(void); extern u32 FUN_0202AC20(void); -extern u32 Sav2_SysInfo_sizeof(void); -extern u32 FUN_0204BE14(void); extern u32 FUN_02034D7C(void); extern u32 FUN_02023D64(void); extern u32 FUN_02023C40(void); @@ -37,11 +38,8 @@ extern u32 FUN_02029AE0(void); extern u32 FUN_0202BE98(void); extern u32 FUN_0202C0E0(void); extern u32 FUN_02013B28(void); -extern u32 PCStorage_sizeof(void); extern void FUN_0202B03C(void *); extern void FUN_0202AC28(void *); -extern void Sav2_SysInfo_init(void *); -extern void FUN_0204BE18(void *); extern void FUN_02034D98(void *); extern void FUN_02024378(void *); extern void FUN_02023C48(void *); @@ -70,7 +68,6 @@ extern void FUN_02029AE8(void *); extern void FUN_0202BEA0(void *); extern void FUN_0202C0E4(void *); extern void FUN_02013B2C(void *); -extern void PCStorage_init(void *); const struct SaveChunkHeader UNK_020EE6E0[] = { { 0, 32, (SAVSIZEFN)FUN_0202B034, (SAVINITFN)FUN_0202B03C }, @@ -83,7 +80,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 2, 0, (SAVSIZEFN)SavArray_Party_sizeof, (SAVINITFN)SavArray_Party_init }, { 3, 0, (SAVSIZEFN)Sav2_Bag_sizeof, (SAVINITFN)Sav2_Bag_init }, { 4, 0, (SAVSIZEFN)SavArray_Flags_sizeof, (SAVINITFN)SavArray_Flags_init }, - { 5, 0, (SAVSIZEFN)FUN_0204BE14, (SAVINITFN)FUN_0204BE18 }, + { 5, 0, (SAVSIZEFN)Sav2_Poketch_sizeof, (SAVINITFN)Sav2_Poketch_init }, { 6, 0, (SAVSIZEFN)FUN_02034D7C, (SAVINITFN)FUN_02034D98 }, { 7, 0, (SAVSIZEFN)FUN_02023D64, (SAVINITFN)FUN_02024378 }, { 8, 0, (SAVSIZEFN)FUN_02023C40, (SAVINITFN)FUN_02023C48 }, diff --git a/include/pokemon.h b/include/pokemon.h index b76bf145..591da2f4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -263,7 +263,7 @@ void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6); void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1); u32 FUN_020690C4(void); u32 FUN_020690C8(void); -u8 FUN_020690CC(struct Pokemon * pokemon); +u8 GetMonUnownLetter(struct Pokemon * pokemon); struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon); u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret); diff --git a/include/poketch.h b/include/poketch.h new file mode 100644 index 00000000..1dcc2bcf --- /dev/null +++ b/include/poketch.h @@ -0,0 +1,95 @@ +#ifndef POKEDIAMOND_POKETCH_H +#define POKEDIAMOND_POKETCH_H + +#include "save_block_2.h" + +#define DOT_ARTIST_SIZE (480 / 4) // 2bpp + +typedef enum PoketchApp +{ + FIRST_POKETCH_APP_ID = 0, + POKETCH_DIGITAL_WATCH = FIRST_POKETCH_APP_ID, + POKETCH_CALCULATOR, + POKETCH_MEMO_PAD, + POKETCH_PEDOMETER, + POKETCH_POKEMON_LIST, + POKETCH_FRIENDSHIP_CHECKER, + POKETCH_DOWSING_MACHINE, + POKETCH_BERRY_SEARCHER, + POKETCH_DAY_CARE_CHECKER, + POKETCH_POKEMON_HISTORY, + POKETCH_COUNTER, + POKETCH_ANALOG_WATCH, + POKETCH_MARKING_MAP, + POKETCH_LINK_SEARCHER, + POKETCH_COIN_TOSS, + POKETCH_MOVE_TESTER, + POKETCH_CALENDAR, + POKETCH_DOT_ARTIST, + POKETCH_ROULETTE, + POKETCH_TRAINER_COUNTER, + POKETCH_KITCHEN_TIMER, + POKETCH_COLOR_CHANGER, + POKETCH_MATCHUP_CHECKER, + POKETCH_STOPWATCH, + POKETCH_ALARM_CLOCK, + NUM_POKETCH_APPS +} +PoketchApp; + +struct SavePoketch +{ + u8 isGiven:1; // set by completing the coupon sidequest in Jubilife + u8 pedometerActive:1; // set when you receive the Pedometer + u8 dotArtistEnabled:1; // set when you access dotArtist for the first time + u8 color:3; // set by Color Changer + // Green, Yellow, Orange, Red, Purple, Blue, Turquoise, White + u8 padding_00_6:2; // silence warnings + s8 numApps; + s8 selectedApp; + u8 unlockedApps[32]; // should be 25, one for each app + u8 filler_23[1]; // silence warnings + u32 stepCounter; // increments while pedometerActive is 1 + u16 alarmActive:1; + u16 alarmHour:5; + u16 alarmMinute:6; + u16 padding_28_C:4; // silence warnings + u8 dotArtistGrid[DOT_ARTIST_SIZE]; + u8 filler_A2[1]; // silence warnings + u32 calendarFlags; // flag X set == day (X + 1) marked + u8 calendarMonth; + // X and Y coordinates for each of six markings + u8 markingMapPos[6][2]; + u8 filler_B5[1]; // silence warnings + u16 pokemonHistory[12][2]; +}; + +u32 Sav2_Poketch_sizeof(void); +void Sav2_Poketch_init(struct SavePoketch * poketch); +void Sav2_Poketch_Give(struct SavePoketch * poketch); +BOOL Sav2_Poketch_IsGiven(struct SavePoketch * poketch); +u8 Sav2_Poketch_AppIsUnlocked(struct SavePoketch * poketch, PoketchApp app); +BOOL Sav2_Poketch_UnlockApp(struct SavePoketch * poketch, PoketchApp app); +PoketchApp Sav2_Poketch_GetSelectedApp(struct SavePoketch * poketch); +PoketchApp Sav2_Poketch_CycleNextApp(struct SavePoketch * poketch); +u8 Sav2_Poketch_GetScreenTint(struct SavePoketch * poketch); +void Sav2_Poketch_SetScreenTint(struct SavePoketch * poketch, u32 color); +u32 Sav2_Poketch_GetStepCounter(struct SavePoketch * poketch); +void Sav2_Poketch_SetStepCounter(struct SavePoketch * poketch, u32 steps); +BOOL Sav2_Poketch_GetAlarmState(struct SavePoketch * poketch); +void Sav2_Poketch_GetAlarmSetTime(struct SavePoketch * poketch, u32 * hour_p, u32 * min_p); +void Sav2_Poketch_SetAlarm(struct SavePoketch * poketch, BOOL enabled, u32 hour, u32 minute); +void Sav2_Poketch_CalendarDateHighlight(struct SavePoketch * poketch, u32 month, u32 day); +void Sav2_Poketch_CalendarDateUnhighlight(struct SavePoketch * poketch, u32 month, u32 day); +BOOL Sav2_Poketch_CalendarDateIsHighlighted(struct SavePoketch * poketch, u32 month, u32 day); +void Sav2_Poketch_MarkingMapSetPos(struct SavePoketch * poketch, s32 mark, u8 x, u8 y); +void Sav2_Poketch_MarkingMapGetPos(struct SavePoketch * poketch, s32 mark, u8 * x_p, u8 * y_p); +u32 Sav2_Poketch_DotArtistIsEnabled(struct SavePoketch * poketch); +void Sav2_Poketch_DotArtistGetDrawing(struct SavePoketch * poketch, void * grid); +void Sav2_Poketch_DotArtistSetDrawingAndEnable(struct SavePoketch * poketch, void * grid); +void Sav2_Poketch_PokemonHistoryAddMon(struct SavePoketch * poketch, struct BoxPokemon * mon); +int Sav2_Poketch_PokemonHistoryGetFirstEmptySlot(struct SavePoketch * poketch); +void Sav2_Poketch_PokemonHistoryGetSlotN(struct SavePoketch * poketch, s32 i, u32 * species_p, u32 * forme_p); +struct SavePoketch * Sav2_Poketch_get(struct SaveBlock2 * sav2); + +#endif //POKEDIAMOND_POKETCH_H |