summaryrefslogtreecommitdiff
path: root/arm9/asm
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm')
-rw-r--r--arm9/asm/pokemon_storage_system.s737
-rw-r--r--arm9/asm/save.s2478
-rw-r--r--arm9/asm/scrcmd.s32
-rw-r--r--arm9/asm/scrcmd_10.s2
-rw-r--r--arm9/asm/scrcmd_13.s2
-rw-r--r--arm9/asm/scrcmd_14.s4
-rw-r--r--arm9/asm/scrcmd_15.s10
-rw-r--r--arm9/asm/scrcmd_16.s2
-rw-r--r--arm9/asm/scrcmd_18.s4
-rw-r--r--arm9/asm/scrcmd_24.s2
-rw-r--r--arm9/asm/scrcmd_3.s2
-rw-r--r--arm9/asm/scrcmd_4.s6
-rw-r--r--arm9/asm/scrcmd_5.s2
-rw-r--r--arm9/asm/unk_02022504.s4
-rw-r--r--arm9/asm/unk_020372D4.s4
-rw-r--r--arm9/asm/unk_020377F0.s14
-rw-r--r--arm9/asm/unk_02038C78.s6
-rw-r--r--arm9/asm/unk_0204653C.s2
-rw-r--r--arm9/asm/unk_020476CC.s8
-rw-r--r--arm9/asm/unk_02048120.s2
-rw-r--r--arm9/asm/unk_0204B0A0.s2
-rw-r--r--arm9/asm/unk_0204CB20.s12
-rw-r--r--arm9/asm/unk_0204FBA8.s6
-rw-r--r--arm9/asm/unk_020520AC.s2
-rw-r--r--arm9/asm/unk_0205CDB4.s6
-rw-r--r--arm9/asm/unk_0205F7A0.s2
-rw-r--r--arm9/asm/unk_020647A4.s8
-rw-r--r--arm9/asm/unk_02064CA8.s10
-rw-r--r--arm9/asm/unk_02064E20.s2
-rw-r--r--arm9/asm/unk_02064E90.s4
-rw-r--r--arm9/asm/unk_020653EC.s10
-rw-r--r--arm9/asm/unk_02080C38.s2
-rw-r--r--arm9/asm/unk_02086084.s6
-rw-r--r--arm9/asm/unk_0208890C.s2
34 files changed, 91 insertions, 3306 deletions
diff --git a/arm9/asm/pokemon_storage_system.s b/arm9/asm/pokemon_storage_system.s
deleted file mode 100644
index 472e04b3..00000000
--- a/arm9/asm/pokemon_storage_system.s
+++ /dev/null
@@ -1,737 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start PCStorage_init
-PCStorage_init: ; 0x0206B16C
- push {r3, lr}
- bl PCStorage_InitializeBoxes
- bl SaveSetDirtyBit
- pop {r3, pc}
-
- thumb_func_start PCStorage_sizeof
-PCStorage_sizeof: ; 0x0206B178
- ldr r0, _0206B17C ; =0x000121C8
- bx lr
- .balign 4
-_0206B17C: .word 0x000121C8
-
- thumb_func_start PCStorage_InitializeBoxes
-PCStorage_InitializeBoxes: ; 0x0206B180
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- mov r7, #0x0
- add r6, r0, #0x4
-_0206B188:
- mov r4, #0x0
- add r5, r6, #0x0
-_0206B18C:
- add r0, r5, #0x0
- bl ZeroBoxMonData
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x1e
- blo _0206B18C
- mov r0, #0xff
- lsl r0, r0, #0x4
- add r7, r7, #0x1
- add r6, r6, r0
- cmp r7, #0x12
- blo _0206B188
- mov r3, #0x0
- ldr r1, _0206B200 ; =0x000121B4
- add r4, r3, #0x0
- add r2, r3, #0x0
-_0206B1AE:
- ldr r0, [sp, #0x0]
- add r0, r0, r3
- strb r4, [r0, r1]
- add r4, r4, #0x1
- cmp r4, #0x10
- blo _0206B1BC
- add r4, r2, #0x0
-_0206B1BC:
- add r3, r3, #0x1
- cmp r3, #0x12
- blo _0206B1AE
- ldr r1, _0206B204 ; =0x000121C6
- ldr r0, [sp, #0x0]
- mov r3, #0x0
- strb r3, [r0, r1]
- mov r0, #0x1
- mov r1, #0x1a
- mov r2, #0xe
- bl NewMsgDataFromNarc
- add r6, r0, #0x0
- beq _0206B1F8
- ldr r1, _0206B208 ; =0x00011EE4
- ldr r0, [sp, #0x0]
- mov r5, #0x0
- add r4, r0, r1
-_0206B1E0:
- add r0, r6, #0x0
- add r1, r5, #0x6
- add r2, r4, #0x0
- bl ReadMsgDataIntoU16Array
- add r5, r5, #0x1
- add r4, #0x28
- cmp r5, #0x12
- blo _0206B1E0
- add r0, r6, #0x0
- bl DestroyMsgData
-_0206B1F8:
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x0]
- pop {r3-r7, pc}
- .balign 4
-_0206B200: .word 0x000121B4
-_0206B204: .word 0x000121C6
-_0206B208: .word 0x00011EE4
-
- thumb_func_start PCStorage_PlaceMonInFirstEmptySlotInAnyBox
-PCStorage_PlaceMonInFirstEmptySlotInAnyBox: ; 0x0206B20C
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r4, [r5, #0x0]
- add r6, r1, #0x0
- mov r7, #0x0
-_0206B216:
- add r0, r6, #0x0
- bl RestoreBoxMonPP
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl PCStorage_PlaceMonInBoxFirstEmptySlot
- cmp r0, #0x0
- beq _0206B232
- bl SaveSetDirtyBit
- mov r0, #0x1
- pop {r3-r7, pc}
-_0206B232:
- add r4, r4, #0x1
- cmp r4, #0x12
- blo _0206B23A
- add r4, r7, #0x0
-_0206B23A:
- ldr r0, [r5, #0x0]
- cmp r4, r0
- bne _0206B216
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start PCStorage_PlaceMonInBoxFirstEmptySlot
-PCStorage_PlaceMonInBoxFirstEmptySlot: ; 0x0206B244
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- add r0, r2, #0x0
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- bl RestoreBoxMonPP
- mov r0, #0x0
- mvn r0, r0
- cmp r5, r0
- bne _0206B25E
- ldr r5, [r6, #0x0]
-_0206B25E:
- mov r0, #0xff
- lsl r0, r0, #0x4
- add r1, r6, #0x4
- mul r0, r5
- mov r4, #0x0
- add r5, r1, r0
- str r5, [sp, #0x4]
- mov r6, #0x5
- add r7, r4, #0x0
-_0206B270:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- bne _0206B2A0
- mov r0, #0x88
- add r1, r4, #0x0
- mul r1, r0
- ldr r0, [sp, #0x4]
- mov r3, #0x11
- add r4, r0, r1
-_0206B28A:
- ldr r2, [sp, #0x0]
- sub r3, r3, #0x1
- ldmia r2!, {r0-r1}
- str r2, [sp, #0x0]
- stmia r4!, {r0-r1}
- bne _0206B28A
- bl SaveSetDirtyBit
- add sp, #0x8
- mov r0, #0x1
- pop {r3-r7, pc}
-_0206B2A0:
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x1e
- blo _0206B270
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start PCStorage_PlaceMonInBoxByIndexPair
-PCStorage_PlaceMonInBoxByIndexPair: ; 0x0206B2B0
- push {r3-r7, lr}
- add r7, r3, #0x0
- add r5, r0, #0x0
- add r0, r7, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl RestoreBoxMonPP
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- bne _0206B2CA
- ldr r4, [r5, #0x0]
-_0206B2CA:
- cmp r4, #0x12
- bhs _0206B2F4
- cmp r6, #0x1e
- bhs _0206B2F4
- mov r0, #0xff
- lsl r0, r0, #0x4
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x88
- mul r0, r6
- add r0, r1, r0
- add r3, r0, #0x4
- mov r2, #0x11
-_0206B2E4:
- ldmia r7!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0206B2E4
- bl SaveSetDirtyBit
- mov r0, #0x1
- pop {r3-r7, pc}
-_0206B2F4:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start PCStorage_DeleteBoxMonByIndexPair
-PCStorage_DeleteBoxMonByIndexPair: ; 0x0206B2FC
- push {r3, lr}
- mov r3, #0x0
- mvn r3, r3
- cmp r1, r3
- bne _0206B308
- ldr r1, [r0, #0x0]
-_0206B308:
- cmp r2, #0x1e
- bhs _0206B32A
- cmp r1, #0x12
- bhs _0206B32A
- add r3, r0, #0x4
- mov r0, #0xff
- lsl r0, r0, #0x4
- mul r0, r1
- add r1, r3, r0
- mov r0, #0x88
- mul r0, r2
- add r0, r1, r0
- bl ZeroBoxMonData
- bl SaveSetDirtyBit
- pop {r3, pc}
-_0206B32A:
- bl ErrorHandling
- pop {r3, pc}
-
- thumb_func_start PCStorage_GetActiveBox
-PCStorage_GetActiveBox: ; 0x0206B330
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start PCStorage_FindFirstBoxWithEmptySlot
-PCStorage_FindFirstBoxWithEmptySlot: ; 0x0206B334
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- ldr r6, [r0, #0x0]
- add r0, r0, #0x4
- mov r7, #0xab
- str r0, [sp, #0x4]
-_0206B342:
- mov r0, #0xff
- lsl r0, r0, #0x4
- add r1, r6, #0x0
- mul r1, r0
- ldr r0, [sp, #0x4]
- mov r4, #0x0
- add r5, r0, r1
-_0206B350:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- bne _0206B364
- add sp, #0x8
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_0206B364:
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x1e
- blt _0206B350
- add r6, r6, #0x1
- cmp r6, #0x12
- blt _0206B374
- mov r6, #0x0
-_0206B374:
- ldr r0, [sp, #0x0]
- ldr r0, [r0, #0x0]
- cmp r6, r0
- bne _0206B342
- mov r0, #0x12
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start PCStorage_FindFirstEmptySlot
-PCStorage_FindFirstEmptySlot: ; 0x0206B384
- push {r3-r7, lr}
- add r6, r1, #0x0
- str r2, [sp, #0x0]
- mov r1, #0x0
- ldr r2, [r6, #0x0]
- mvn r1, r1
- cmp r2, r1
- bne _0206B398
- ldr r1, [r0, #0x0]
- str r1, [r6, #0x0]
-_0206B398:
- ldr r1, [sp, #0x0]
- ldr r4, [r6, #0x0]
- ldr r5, [r1, #0x0]
- add r7, r0, #0x4
- b _0206B3C8
-_0206B3A2:
- mov r0, #0xff
- lsl r0, r0, #0x4
- mul r0, r4
- add r1, r7, r0
- mov r0, #0x88
- mul r0, r5
- add r0, r1, r0
- mov r1, #0xab
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- bne _0206B3C6
- ldr r0, [sp, #0x0]
- str r4, [r6, #0x0]
- str r5, [r0, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0206B3C6:
- add r5, r5, #0x1
-_0206B3C8:
- cmp r5, #0x1e
- blt _0206B3A2
- add r4, r4, #0x1
- cmp r4, #0x12
- blt _0206B3D4
- mov r4, #0x0
-_0206B3D4:
- ldr r0, [r6, #0x0]
- cmp r4, r0
- beq _0206B3DE
- mov r5, #0x0
- b _0206B3C8
-_0206B3DE:
- mov r0, #0x12
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start PCStorage_CountMonsAndEggsInAllBoxes
-PCStorage_CountMonsAndEggsInAllBoxes: ; 0x0206B3E4
- push {r3-r7, lr}
- sub sp, #0x8
- mov r6, #0x0
- add r0, r0, #0x4
- str r6, [sp, #0x4]
- str r0, [sp, #0x0]
- mov r7, #0xab
-_0206B3F2:
- ldr r5, [sp, #0x0]
- mov r4, #0x0
-_0206B3F6:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- beq _0206B406
- add r6, r6, #0x1
-_0206B406:
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x1e
- blt _0206B3F6
- mov r0, #0xff
- ldr r1, [sp, #0x0]
- lsl r0, r0, #0x4
- add r0, r1, r0
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- str r0, [sp, #0x4]
- cmp r0, #0x12
- blt _0206B3F2
- add r0, r6, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start PCStorage_SetActiveBox
-PCStorage_SetActiveBox: ; 0x0206B428
- push {r3, lr}
- cmp r1, #0x12
- bhs _0206B436
- str r1, [r0, #0x0]
- bl SaveSetDirtyBit
- pop {r3, pc}
-_0206B436:
- bl ErrorHandling
- pop {r3, pc}
-
- thumb_func_start PCStorage_GetBoxWallpaper
-PCStorage_GetBoxWallpaper: ; 0x0206B43C
- push {r3, lr}
- cmp r1, #0x12
- bhs _0206B44A
- add r1, r0, r1
- ldr r0, _0206B454 ; =0x000121B4
- ldrb r0, [r1, r0]
- pop {r3, pc}
-_0206B44A:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0206B454: .word 0x000121B4
-
- thumb_func_start PCStorage_SetBoxWallpaper
-PCStorage_SetBoxWallpaper: ; 0x0206B458
- push {r3, lr}
- mov r3, #0x0
- mvn r3, r3
- cmp r1, r3
- bne _0206B464
- ldr r1, [r0, #0x0]
-_0206B464:
- cmp r1, #0x12
- bhs _0206B478
- cmp r2, #0x18
- bhs _0206B478
- add r1, r0, r1
- ldr r0, _0206B480 ; =0x000121B4
- strb r2, [r1, r0]
- bl SaveSetDirtyBit
- pop {r3, pc}
-_0206B478:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_0206B480: .word 0x000121B4
-
- thumb_func_start PCStorage_GetBoxName
-PCStorage_GetBoxName: ; 0x0206B484
- push {r3, lr}
- add r3, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r1, r0
- bne _0206B492
- ldr r1, [r3, #0x0]
-_0206B492:
- cmp r1, #0x12
- bhs _0206B4A8
- add r0, r2, #0x0
- ldr r2, _0206B4B0 ; =0x00011EE4
- add r3, r3, r2
- mov r2, #0x28
- mul r2, r1
- add r1, r3, r2
- bl CopyU16ArrayToString
- pop {r3, pc}
-_0206B4A8:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_0206B4B0: .word 0x00011EE4
-
- thumb_func_start PCStorage_SetBoxName
-PCStorage_SetBoxName: ; 0x0206B4B4
- push {r3, lr}
- add r3, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r1, r0
- bne _0206B4C2
- ldr r1, [r3, #0x0]
-_0206B4C2:
- cmp r1, #0x12
- bhs _0206B4DC
- add r0, r2, #0x0
- ldr r2, _0206B4E0 ; =0x00011EE4
- add r3, r3, r2
- mov r2, #0x28
- mul r2, r1
- add r1, r3, r2
- mov r2, #0x14
- bl CopyStringToU16Array
- bl SaveSetDirtyBit
-_0206B4DC:
- pop {r3, pc}
- nop
-_0206B4E0: .word 0x00011EE4
-
- thumb_func_start PCStorage_CountMonsAndEggsInBox
-PCStorage_CountMonsAndEggsInBox: ; 0x0206B4E4
- push {r3-r7, lr}
- mov r2, #0x0
- mvn r2, r2
- cmp r1, r2
- bne _0206B4F0
- ldr r1, [r0, #0x0]
-_0206B4F0:
- cmp r1, #0x12
- bhs _0206B520
- add r2, r0, #0x4
- mov r0, #0xff
- lsl r0, r0, #0x4
- mov r4, #0x0
- mul r0, r1
- add r6, r4, #0x0
- add r5, r2, r0
- mov r7, #0xab
-_0206B504:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- beq _0206B514
- add r4, r4, #0x1
-_0206B514:
- add r6, r6, #0x1
- add r5, #0x88
- cmp r6, #0x1e
- blt _0206B504
- add r0, r4, #0x0
- pop {r3-r7, pc}
-_0206B520:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start PCStorage_CountMonsInBox
-PCStorage_CountMonsInBox: ; 0x0206B528
- push {r3-r7, lr}
- mov r2, #0x0
- mvn r2, r2
- cmp r1, r2
- bne _0206B534
- ldr r1, [r0, #0x0]
-_0206B534:
- cmp r1, #0x12
- bhs _0206B572
- add r2, r0, #0x4
- mov r0, #0xff
- lsl r0, r0, #0x4
- mov r4, #0x0
- mul r0, r1
- add r6, r4, #0x0
- add r5, r2, r0
- mov r7, #0xab
-_0206B548:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- beq _0206B566
- add r0, r5, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl GetBoxMonData
- cmp r0, #0x0
- bne _0206B566
- add r4, r4, #0x1
-_0206B566:
- add r6, r6, #0x1
- add r5, #0x88
- cmp r6, #0x1e
- blt _0206B548
- add r0, r4, #0x0
- pop {r3-r7, pc}
-_0206B572:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start PCStorage_CountMonsInAllBoxes
-PCStorage_CountMonsInAllBoxes: ; 0x0206B57C
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_0206B584:
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl PCStorage_CountMonsInBox
- add r5, r5, #0x1
- add r4, r4, r0
- cmp r5, #0x12
- blo _0206B584
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start PCStorage_SetBoxMonDataByIndexPair
-PCStorage_SetBoxMonDataByIndexPair: ; 0x0206B598
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- cmp r4, #0x12
- blo _0206B5B2
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- beq _0206B5B2
- bl ErrorHandling
-_0206B5B2:
- cmp r6, #0x1e
- blo _0206B5BA
- bl ErrorHandling
-_0206B5BA:
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- bne _0206B5C4
- ldr r4, [r5, #0x0]
-_0206B5C4:
- mov r0, #0xff
- lsl r0, r0, #0x4
- add r1, r5, #0x4
- mul r0, r4
- add r1, r1, r0
- mov r0, #0x88
- mul r0, r6
- add r0, r1, r0
- ldr r2, [sp, #0x18]
- add r1, r7, #0x0
- bl SetBoxMonData
- bl SaveSetDirtyBit
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start PCStorage_GetMonByIndexPair
-PCStorage_GetMonByIndexPair: ; 0x0206B5E4
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x12
- blo _0206B5FC
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- beq _0206B5FC
- bl ErrorHandling
-_0206B5FC:
- cmp r6, #0x1e
- blo _0206B604
- bl ErrorHandling
-_0206B604:
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- bne _0206B60E
- ldr r4, [r5, #0x0]
-_0206B60E:
- mov r0, #0xff
- lsl r0, r0, #0x4
- add r1, r5, #0x4
- mul r0, r4
- add r1, r1, r0
- mov r0, #0x88
- mul r0, r6
- add r0, r1, r0
- pop {r4-r6, pc}
-
- thumb_func_start PCStorage_UnlockBonusWallpaper
-PCStorage_UnlockBonusWallpaper: ; 0x0206B620
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x8
- blo _0206B62E
- bl ErrorHandling
-_0206B62E:
- ldr r0, _0206B640 ; =0x000121C6
- mov r1, #0x1
- ldrb r2, [r5, r0]
- lsl r1, r4
- orr r1, r2
- strb r1, [r5, r0]
- bl SaveSetDirtyBit
- pop {r3-r5, pc}
- .balign 4
-_0206B640: .word 0x000121C6
-
- thumb_func_start PCStorage_IsBonusWallpaperUnlocked
-PCStorage_IsBonusWallpaperUnlocked: ; 0x0206B644
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x8
- blo _0206B652
- bl ErrorHandling
-_0206B652:
- ldr r0, _0206B664 ; =0x000121C6
- ldrb r2, [r5, r0]
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r1, r4
- tst r1, r2
- bne _0206B662
- mov r0, #0x0
-_0206B662:
- pop {r3-r5, pc}
- .balign 4
-_0206B664: .word 0x000121C6
-
- thumb_func_start PCStorage_CountUnlockedBonusWallpapers
-PCStorage_CountUnlockedBonusWallpapers: ; 0x0206B668
- push {r4-r6, lr}
- mov r4, #0x0
- add r6, r0, #0x0
- add r5, r4, #0x0
-_0206B670:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl PCStorage_IsBonusWallpaperUnlocked
- cmp r0, #0x0
- beq _0206B67E
- add r5, r5, #0x1
-_0206B67E:
- add r4, r4, #0x1
- cmp r4, #0x8
- blo _0206B670
- add r0, r5, #0x0
- pop {r4-r6, pc}
diff --git a/arm9/asm/save.s b/arm9/asm/save.s
deleted file mode 100644
index a29733dc..00000000
--- a/arm9/asm/save.s
+++ /dev/null
@@ -1,2478 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020EE6D8
-UNK_020EE6D8: ; 0x020EE6D8
- .word 2
-
- .global UNK_020EE6DC
-UNK_020EE6DC: ; 0x020EE6DC
- .word 36
-
- .global UNK_020EE6E0
-UNK_020EE6E0: ; 0x020EE6E0
- .word 0x00, 0x20, FUN_0202B034, FUN_0202B03C
- .word 0x01, 0x23, FUN_0202AC20, FUN_0202AC28
-
- .global UNK_020EE700
-UNK_020EE700: ; 0x020EE700
- .word 0x00, 0x00, FUN_0202376C, FUN_02023770
- .word 0x01, 0x00, Sav2_PlayerData_sizeof, Sav2_PlayerData_init
- .word 0x02, 0x00, SavArray_Party_sizeof, SavArray_Party_init
- .word 0x03, 0x00, Sav2_Bag_sizeof, Sav2_Bag_init
- .word 0x04, 0x00, SavArray_Flags_sizeof, SavArray_Flags_init
- .word 0x05, 0x00, FUN_0204BE14, FUN_0204BE18
- .word 0x06, 0x00, FUN_02034D7C, FUN_02034D98
- .word 0x07, 0x00, FUN_02023D64, FUN_02024378
- .word 0x08, 0x00, FUN_02023C40, FUN_02023C48
- .word 0x09, 0x00, FUN_020254B8, FUN_020254CC
- .word 0x0A, 0x00, FUN_02024E64, FUN_02024E6C
- .word 0x0B, 0x00, FUN_02034D80, FUN_02034D88
- .word 0x0C, 0x00, FUN_02025954, FUN_0202597C
- .word 0x0D, 0x00, FUN_02023AC8, FUN_02023AD8
- .word 0x0E, 0x00, FUN_02026FD8, FUN_02026F60
- .word 0x0F, 0x00, FUN_02025844, FUN_0202584C
- .word 0x10, 0x00, FUN_02028054, FUN_0202805C
- .word 0x11, 0x00, FUN_020286F8, FUN_02028724
- .word 0x12, 0x00, FUN_02028980, FUN_02028994
- .word 0x13, 0x00, FUN_02029A84, FUN_02029A8C
- .word 0x14, 0x00, FUN_02029FB0, FUN_02029FB8
- .word 0x15, 0x00, FUN_02029C58, FUN_02029C60
- .word 0x16, 0x00, FUN_02029EC4, FUN_02029ECC
- .word 0x17, 0x00, FUN_0202A89C, FUN_0202A8A4
- .word 0x18, 0x00, FUN_0202A8F4, FUN_0202A8F8
- .word 0x19, 0x00, FUN_0202A924, FUN_0202A92C
- .word 0x1A, 0x00, FUN_0202ABC8, FUN_0202ABCC
- .word 0x1B, 0x00, FUN_0202B374, FUN_0202B37C
- .word 0x1C, 0x00, FUN_0202B8B0, FUN_0202B8B8
- .word 0x1D, 0x00, FUN_020281E0, FUN_020281E8
- .word 0x1E, 0x00, FUN_02029AE0, FUN_02029AE8
- .word 0x1F, 0x00, FUN_0202AC20, FUN_0202AC28
- .word 0x20, 0x00, FUN_0202BE98, FUN_0202BEA0
- .word 0x21, 0x00, FUN_0202C0E0, FUN_0202C0E4
- .word 0x22, 0x00, FUN_02013B28, FUN_02013B2C
- .word 0x23, 0x01, PCStorage_sizeof, PCStorage_init
-
- .section .bss
-
- .global UNK_021C59C8
-UNK_021C59C8: ; 0x021C59C8
- .space 0x8
-
- .text
-
- thumb_func_start SaveBlock2_new
-SaveBlock2_new: ; 0x0202254C
- push {r4, lr}
- ldr r1, _020225E0 ; =0x000204A8
- mov r0, #0x1
- bl AllocFromHeap
- add r4, r0, #0x0
- ldr r2, _020225E0 ; =0x000204A8
- mov r0, #0x0
- add r1, r4, #0x0
- bl MIi_CpuClearFast
- ldr r0, _020225E4 ; =UNK_021C59C8
- str r4, [r0, #0x0]
- bl SaveDetectFlash
- str r0, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x4]
- mov r0, #0x1
- str r0, [r4, #0x8]
- str r0, [r4, #0xc]
- add r0, r4, #0x0
- ldr r1, _020225E8 ; =0x00001021
- add r0, #0x14
- bl MATHi_CRC16InitTable
- ldr r0, _020225EC ; =0x00020224
- add r0, r4, r0
- bl SaveBlock2_InitSubstructs
- ldr r0, _020225F0 ; =0x00020464
- ldr r1, _020225EC ; =0x00020224
- add r0, r4, r0
- add r1, r4, r1
- bl FUN_02023160
- ldr r1, _020225F4 ; =0x00020218
- mov r0, #0x0
- add r1, r4, r1
- mov r2, #0x8
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_02022AD8
- str r0, [r4, #0x10]
- cmp r0, #0x3
- bhi _020225DA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020225B8: ; jump table (using 16-bit offset)
- .short _020225D4 - _020225B8 - 2; case 0
- .short _020225C0 - _020225B8 - 2; case 1
- .short _020225C4 - _020225B8 - 2; case 2
- .short _020225D4 - _020225B8 - 2; case 3
-_020225C0:
- mov r0, #0x0
- str r0, [r4, #0xc]
-_020225C4:
- add r0, r4, #0x0
- bl FUN_02022D08
- mov r0, #0x1
- str r0, [r4, #0x4]
- mov r0, #0x0
- str r0, [r4, #0x8]
- b _020225DA
-_020225D4:
- add r0, r4, #0x0
- bl Sav2_InitDynamicRegion
-_020225DA:
- add r0, r4, #0x0
- pop {r4, pc}
- nop
-_020225E0: .word 0x000204A8
-_020225E4: .word UNK_021C59C8
-_020225E8: .word 0x00001021
-_020225EC: .word 0x00020224
-_020225F0: .word 0x00020464
-_020225F4: .word 0x00020218
-
- thumb_func_start FUN_020225F8
-FUN_020225F8: ; 0x020225F8
- push {r3, lr}
- ldr r0, _0202260C ; =UNK_021C59C8
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02022606
- bl ErrorHandling
-_02022606:
- ldr r0, _0202260C ; =UNK_021C59C8
- ldr r0, [r0, #0x0]
- pop {r3, pc}
- .balign 4
-_0202260C: .word UNK_021C59C8
-
- thumb_func_start SavArray_get
-SavArray_get: ; 0x02022610
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x24
- blt _0202261E
- bl ErrorHandling
-_0202261E:
- mov r0, #0x85
- lsl r0, r0, #0x2
- add r2, r5, r0
- lsl r0, r4, #0x4
- add r1, r5, r0
- ldr r0, _02022630 ; =0x0002022C
- ldr r0, [r1, r0]
- add r0, r2, r0
- pop {r3-r5, pc}
- .balign 4
-_02022630: .word 0x0002022C
-
- thumb_func_start FUN_02022634
-FUN_02022634: ; 0x02022634
- ldr r3, _02022638 ; =SavArray_get
- bx r3
- .balign 4
-_02022638: .word SavArray_get
-
- thumb_func_start FUN_0202263C
-FUN_0202263C: ; 0x0202263C
- push {r3-r7, lr}
- mov r1, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x3
- lsl r1, r1, #0xc
- bl AllocFromHeapAtEnd
- add r6, r0, #0x0
- mov r0, #0x1
- bl FUN_02016444
- ldr r1, _020226F4 ; =0x00020220
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, r1]
- cmp r0, #0x0
- bne _02022660
- mov r2, #0x1
- b _02022662
-_02022660:
- mov r2, #0x0
-_02022662:
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- bl FlashClobberChunkFooter
- ldr r1, _020226F8 ; =0x00020221
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, r1]
- cmp r0, #0x0
- bne _02022678
- mov r2, #0x1
- b _0202267A
-_02022678:
- mov r2, #0x0
-_0202267A:
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- bl FlashClobberChunkFooter
- ldr r0, [sp, #0x0]
- ldr r3, _020226F4 ; =0x00020220
- add r2, r0, #0x0
- ldrb r2, [r2, r3]
- mov r1, #0x0
- bl FlashClobberChunkFooter
- ldr r0, [sp, #0x0]
- ldr r3, _020226F8 ; =0x00020221
- add r2, r0, #0x0
- ldrb r2, [r2, r3]
- mov r1, #0x1
- bl FlashClobberChunkFooter
- mov r0, #0x0
- mov r2, #0x1
- mvn r0, r0
- add r1, r6, #0x0
- lsl r2, r2, #0xc
- bl MIi_CpuClearFast
- mov r4, #0x0
- mov r7, #0x1
- add r5, r4, #0x0
- lsl r7, r7, #0xc
-_020226B4:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FlashWriteChunk
- add r0, r4, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FlashWriteChunk
- mov r0, #0x1
- lsl r0, r0, #0xc
- add r4, r4, #0x1
- add r5, r5, r0
- cmp r4, #0x40
- blt _020226B4
- add r0, r6, #0x0
- bl FreeToHeap
- ldr r0, [sp, #0x0]
- bl Sav2_InitDynamicRegion
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- mov r0, #0x1
- bl FUN_02016454
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_020226F4: .word 0x00020220
-_020226F8: .word 0x00020221
-
- thumb_func_start FUN_020226FC
-FUN_020226FC: ; 0x020226FC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- bne _0202270A
- mov r0, #0x0
- pop {r4, pc}
-_0202270A:
- bl FUN_02022D08
- cmp r0, #0x0
- beq _0202271C
- mov r0, #0x1
- str r0, [r4, #0x4]
- mov r1, #0x0
- str r1, [r4, #0x8]
- pop {r4, pc}
-_0202271C:
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02022720
-FUN_02022720: ; 0x02022720
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _0202272E
- mov r0, #0x3
- pop {r4, pc}
-_0202272E:
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- beq _02022784
- mov r0, #0x1
- bl FUN_02016444
- ldr r0, _02022798 ; =0x00020220
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _02022746
- mov r2, #0x1
- b _02022748
-_02022746:
- mov r2, #0x0
-_02022748:
- add r0, r4, #0x0
- mov r1, #0x0
- bl FlashClobberChunkFooter
- ldr r0, _0202279C ; =0x00020221
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _0202275C
- mov r2, #0x1
- b _0202275E
-_0202275C:
- mov r2, #0x0
-_0202275E:
- add r0, r4, #0x0
- mov r1, #0x1
- bl FlashClobberChunkFooter
- ldr r2, _02022798 ; =0x00020220
- add r0, r4, #0x0
- ldrb r2, [r4, r2]
- mov r1, #0x0
- bl FlashClobberChunkFooter
- ldr r2, _0202279C ; =0x00020221
- add r0, r4, #0x0
- ldrb r2, [r4, r2]
- mov r1, #0x1
- bl FlashClobberChunkFooter
- mov r0, #0x1
- bl FUN_02016454
-_02022784:
- add r0, r4, #0x0
- bl FUN_02023044
- cmp r0, #0x2
- bne _02022796
- mov r1, #0x1
- str r1, [r4, #0x4]
- mov r1, #0x0
- str r1, [r4, #0x8]
-_02022796:
- pop {r4, pc}
- .balign 4
-_02022798: .word 0x00020220
-_0202279C: .word 0x00020221
-
- thumb_func_start FUN_020227A0
-FUN_020227A0: ; 0x020227A0
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x2
- blt _020227AE
- bl ErrorHandling
-_020227AE:
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- beq _020227B8
- bl ErrorHandling
-_020227B8:
- ldr r0, [r5, #0x4]
- cmp r0, #0x1
- beq _020227C2
- bl ErrorHandling
-_020227C2:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02022840
-_020227CA:
- add r0, r5, #0x0
- bl FUN_02022854
- cmp r0, #0x0
- beq _020227CA
- cmp r0, #0x1
- beq _020227CA
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start Sav2_InitDynamicRegion
-Sav2_InitDynamicRegion: ; 0x020227DC
- add r2, r0, #0x0
- mov r0, #0x1
- str r0, [r2, #0x8]
- str r0, [r2, #0xc]
- mov r0, #0x85
- ldr r1, _020227F4 ; =0x00020224
- lsl r0, r0, #0x2
- ldr r3, _020227F8 ; =Sav2_InitDynamicRegion_Internal
- add r0, r2, r0
- add r1, r2, r1
- bx r3
- nop
-_020227F4: .word 0x00020224
-_020227F8: .word Sav2_InitDynamicRegion_Internal
-
- thumb_func_start FUN_020227FC
-FUN_020227FC: ; 0x020227FC
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02022800
-FUN_02022800: ; 0x02022800
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start FUN_02022804
-FUN_02022804: ; 0x02022804
- ldr r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02022808
-FUN_02022808: ; 0x02022808
- ldr r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_0202280C
-FUN_0202280C: ; 0x0202280C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02022808
- cmp r0, #0x0
- beq _02022826
- add r0, r4, #0x0
- bl FUN_02022804
- cmp r0, #0x0
- beq _02022826
- mov r0, #0x1
- pop {r4, pc}
-_02022826:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start SaveGetDirtyBit
-SaveGetDirtyBit: ; 0x0202282C
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start SaveSetDirtyBit
-SaveSetDirtyBit: ; 0x02022830
- ldr r0, _0202283C ; =UNK_021C59C8
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- str r1, [r0, #0xc]
- bx lr
- nop
-_0202283C: .word UNK_021C59C8
-
- thumb_func_start FUN_02022840
-FUN_02022840: ; 0x02022840
- add r2, r1, #0x0
- ldr r1, _0202284C ; =0x0002047C
- ldr r3, _02022850 ; =FUN_02022DFC
- add r1, r0, r1
- bx r3
- nop
-_0202284C: .word 0x0002047C
-_02022850: .word FUN_02022DFC
-
- thumb_func_start FUN_02022854
-FUN_02022854: ; 0x02022854
- push {r3-r5, lr}
- ldr r1, _02022878 ; =0x0002047C
- add r5, r0, #0x0
- add r1, r5, r1
- bl FUN_02022E78
- add r4, r0, #0x0
- beq _02022874
- cmp r4, #0x1
- beq _02022874
- ldr r1, _02022878 ; =0x0002047C
- add r0, r5, #0x0
- add r1, r5, r1
- add r2, r4, #0x0
- bl FUN_02022F80
-_02022874:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02022878: .word 0x0002047C
-
- thumb_func_start FUN_0202287C
-FUN_0202287C: ; 0x0202287C
- ldr r1, _02022884 ; =0x0002047C
- ldr r3, _02022888 ; =FUN_02022FF0
- add r1, r0, r1
- bx r3
- .balign 4
-_02022884: .word 0x0002047C
-_02022888: .word FUN_02022FF0
-
- thumb_func_start FUN_0202288C
-FUN_0202288C: ; 0x0202288C
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02022898
-FUN_02022898: ; 0x02022898
- ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT
- add r0, #0x14
- sub r2, #0x14
- bx r3
- .balign 4
-_020228A0: .word MATH_CalcCRC16CCITT
-
- thumb_func_start GetChunkOffsetFromCurrentSaveSlot
-GetChunkOffsetFromCurrentSaveSlot: ; 0x020228A4
- cmp r0, #0x0
- bne _020228AC
- mov r2, #0x0
- b _020228B0
-_020228AC:
- mov r2, #0x1
- lsl r2, r2, #0x12
-_020228B0:
- ldr r0, [r1, #0x4]
- add r0, r2, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020228B8
-FUN_020228B8: ; 0x020228B8
- push {r3-r5, lr}
- ldr r3, _020228DC ; =0x00020464
- add r3, r0, r3
- mov r0, #0xc
- mul r0, r2
- add r5, r3, r0
- ldr r0, [r5, #0x4]
- add r4, r1, r0
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- bne _020228D2
- bl ErrorHandling
-_020228D2:
- ldr r0, [r5, #0x8]
- add r0, r4, r0
- sub r0, #0x14
- pop {r3-r5, pc}
- nop
-_020228DC: .word 0x00020464
-
- thumb_func_start FUN_020228E0
-FUN_020228E0: ; 0x020228E0
- push {r3-r7, lr}
- ldr r4, _02022934 ; =0x00020464
- add r3, r0, #0x0
- add r3, r3, r4
- add r5, r2, #0x0
- mov r4, #0xc
- mul r4, r5
- str r0, [sp, #0x0]
- add r7, r1, #0x0
- add r6, r3, r4
- bl FUN_020228B8
- add r4, r0, #0x0
- ldr r2, [r6, #0x8]
- ldr r0, [r4, #0x8]
- ldr r1, [r6, #0x4]
- cmp r0, r2
- beq _02022908
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022908:
- ldr r3, [r4, #0xc]
- ldr r0, _02022938 ; =0x20060623
- cmp r3, r0
- beq _02022914
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022914:
- ldrb r0, [r4, #0x10]
- cmp r0, r5
- beq _0202291E
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202291E:
- ldr r0, [sp, #0x0]
- add r1, r7, r1
- bl FUN_02022898
- ldrh r1, [r4, #0x12]
- cmp r1, r0
- bne _02022930
- mov r0, #0x1
- pop {r3-r7, pc}
-_02022930:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02022934: .word 0x00020464
-_02022938: .word 0x20060623
-
- thumb_func_start FUN_0202293C
-FUN_0202293C: ; 0x0202293C
- push {r3-r7, lr}
- add r7, r2, #0x0
- add r6, r1, #0x0
- add r5, r0, #0x0
- str r3, [sp, #0x0]
- add r0, r6, #0x0
- add r1, r7, #0x0
- add r2, r3, #0x0
- bl FUN_020228B8
- add r4, r0, #0x0
- ldr r2, [sp, #0x0]
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_020228E0
- str r0, [r5, #0x0]
- ldr r0, [r4, #0x0]
- str r0, [r5, #0x4]
- ldr r0, [r4, #0x4]
- str r0, [r5, #0x8]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02022968
-FUN_02022968: ; 0x02022968
- push {r3-r7, lr}
- ldr r3, _020229AC ; =0x00020464
- add r5, r0, #0x0
- add r7, r2, #0x0
- mov r4, #0xc
- add r3, r5, r3
- mul r4, r7
- str r1, [sp, #0x0]
- add r6, r3, r4
- bl FUN_020228B8
- ldr r2, _020229B0 ; =0x00020214
- add r4, r0, #0x0
- ldr r0, [r5, r2]
- ldr r1, [r6, #0x4]
- add r2, r2, #0x4
- str r0, [r4, #0x0]
- lsl r0, r7, #0x2
- add r0, r5, r0
- ldr r0, [r0, r2]
- ldr r2, [sp, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r6, #0x8]
- add r1, r2, r1
- str r0, [r4, #0x8]
- ldr r0, _020229B4 ; =0x20060623
- str r0, [r4, #0xc]
- strb r7, [r4, #0x10]
- ldr r2, [r6, #0x8]
- add r0, r5, #0x0
- bl FUN_02022898
- strh r0, [r4, #0x12]
- pop {r3-r7, pc}
- .balign 4
-_020229AC: .word 0x00020464
-_020229B0: .word 0x00020214
-_020229B4: .word 0x20060623
-
- thumb_func_start FUN_020229B8
-FUN_020229B8: ; 0x020229B8
- mov r2, #0x0
- mvn r2, r2
- cmp r0, r2
- bne _020229C8
- cmp r1, #0x0
- bne _020229C8
- add r0, r2, #0x0
- bx lr
-_020229C8:
- cmp r0, #0x0
- bne _020229D8
- mov r2, #0x0
- mvn r2, r2
- cmp r1, r2
- bne _020229D8
- mov r0, #0x1
- bx lr
-_020229D8:
- cmp r0, r1
- bls _020229E0
- mov r0, #0x1
- bx lr
-_020229E0:
- cmp r0, r1
- bhs _020229E8
- mov r0, #0x1
- b _020229EA
-_020229E8:
- mov r0, #0x0
-_020229EA:
- neg r0, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020229F0
-FUN_020229F0: ; 0x020229F0
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r6, r1, #0x0
- ldr r0, [r7, #0x4]
- ldr r1, [r6, #0x4]
- add r5, r2, #0x0
- add r4, r3, #0x0
- bl FUN_020229B8
- str r0, [sp, #0x0]
- ldr r0, [r7, #0x8]
- ldr r1, [r6, #0x8]
- bl FUN_020229B8
- ldr r2, [r7, #0x0]
- cmp r2, #0x0
- beq _02022A6A
- ldr r1, [r6, #0x0]
- cmp r1, #0x0
- beq _02022A6A
- ldr r1, [sp, #0x0]
- cmp r1, #0x0
- ble _02022A30
- cmp r0, #0x0
- bgt _02022A26
- bl ErrorHandling
-_02022A26:
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02022A66
-_02022A30:
- bge _02022A44
- cmp r0, #0x0
- blt _02022A3A
- bl ErrorHandling
-_02022A3A:
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02022A66
-_02022A44:
- cmp r0, #0x0
- ble _02022A52
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02022A66
-_02022A52:
- bge _02022A5E
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02022A66
-_02022A5E:
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
-_02022A66:
- mov r0, #0x2
- pop {r3-r7, pc}
-_02022A6A:
- cmp r2, #0x0
- beq _02022A80
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- bne _02022A80
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x2
- str r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_02022A80:
- cmp r2, #0x0
- bne _02022A94
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- beq _02022A94
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r1, #0x2
- str r1, [r4, #0x0]
- pop {r3-r7, pc}
-_02022A94:
- mov r0, #0x2
- str r0, [r5, #0x0]
- str r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02022AA0
-FUN_02022AA0: ; 0x02022AA0
- push {r3-r6}
- mov r4, #0xc
- add r5, r3, #0x0
- mul r5, r4
- add r6, r1, r5
- ldr r5, [r6, #0x4]
- ldr r1, _02022AD4 ; =0x00020214
- str r5, [r0, r1]
- ldr r6, [r6, #0x8]
- add r5, r1, #0x4
- str r6, [r0, r5]
- ldr r5, [sp, #0x10]
- mul r4, r5
- add r2, r2, r4
- ldr r4, [r2, #0x8]
- add r2, r1, #0x0
- add r2, #0x8
- str r4, [r0, r2]
- add r2, r1, #0x0
- add r2, #0xc
- strb r3, [r0, r2]
- add r1, #0xd
- strb r5, [r0, r1]
- pop {r3-r6}
- bx lr
- nop
-_02022AD4: .word 0x00020214
-
- thumb_func_start FUN_02022AD8
-FUN_02022AD8: ; 0x02022AD8
- push {r3-r6, lr}
- sub sp, #0x44
- mov r1, #0x2
- add r5, r0, #0x0
- mov r0, #0x3
- lsl r1, r1, #0x10
- bl AllocFromHeapAtEnd
- mov r1, #0x2
- add r6, r0, #0x0
- mov r0, #0x3
- lsl r1, r1, #0x10
- bl AllocFromHeapAtEnd
- mov r2, #0x2
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r6, #0x0
- lsl r2, r2, #0x10
- bl FlashLoadChunk
- cmp r0, #0x0
- add r0, sp, #0x2c
- beq _02022B20
- add r1, r5, #0x0
- add r2, r6, #0x0
- mov r3, #0x0
- bl FUN_0202293C
- add r0, sp, #0x14
- add r1, r5, #0x0
- add r2, r6, #0x0
- mov r3, #0x1
- bl FUN_0202293C
- b _02022B2A
-_02022B20:
- bl FUN_0202288C
- add r0, sp, #0x14
- bl FUN_0202288C
-_02022B2A:
- mov r0, #0x1
- lsl r0, r0, #0x12
- add r1, r4, #0x0
- lsr r2, r0, #0x1
- bl FlashLoadChunk
- cmp r0, #0x0
- add r0, sp, #0x38
- beq _02022B54
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl FUN_0202293C
- add r0, sp, #0x20
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x1
- bl FUN_0202293C
- b _02022B5E
-_02022B54:
- bl FUN_0202288C
- add r0, sp, #0x20
- bl FUN_0202288C
-_02022B5E:
- add r0, r6, #0x0
- bl FreeToHeap
- add r0, r4, #0x0
- bl FreeToHeap
- add r0, sp, #0x2c
- add r1, sp, #0x38
- add r2, sp, #0x10
- add r3, sp, #0x8
- bl FUN_020229F0
- add r4, r0, #0x0
- add r0, sp, #0x14
- add r1, sp, #0x20
- add r2, sp, #0xc
- add r3, sp, #0x4
- bl FUN_020229F0
- cmp r4, #0x0
- bne _02022B92
- cmp r0, #0x0
- bne _02022B92
- add sp, #0x44
- mov r0, #0x0
- pop {r3-r6, pc}
-_02022B92:
- cmp r4, #0x0
- beq _02022B9A
- cmp r0, #0x0
- bne _02022BA0
-_02022B9A:
- add sp, #0x44
- mov r0, #0x3
- pop {r3-r6, pc}
-_02022BA0:
- cmp r4, #0x2
- bne _02022BE4
- cmp r0, #0x2
- bne _02022BE4
- ldr r3, [sp, #0x10]
- ldr r1, [sp, #0xc]
- mov r2, #0xc
- add r4, r3, #0x0
- mul r4, r2
- add r0, sp, #0x30
- ldr r0, [r0, r4]
- add r4, r1, #0x0
- mul r4, r2
- add r2, sp, #0x18
- ldr r2, [r2, r4]
- cmp r0, r2
- str r1, [sp, #0x0]
- add r1, sp, #0x2c
- bne _02022BD4
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022BD4:
- ldr r3, [sp, #0x8]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022BE4:
- cmp r4, #0x1
- bne _02022C3A
- cmp r0, #0x2
- bne _02022C3A
- ldr r3, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mov r4, #0xc
- add r2, r3, #0x0
- add r6, r0, #0x0
- mul r2, r4
- add r1, sp, #0x30
- ldr r2, [r1, r2]
- mul r6, r4
- add r1, sp, #0x18
- ldr r6, [r1, r6]
- cmp r2, r6
- bne _02022C18
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, sp, #0x2c
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C18:
- ldr r0, [sp, #0x4]
- mul r4, r0
- ldr r1, [r1, r4]
- cmp r2, r1
- bne _02022C34
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, sp, #0x2c
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C34:
- add sp, #0x44
- mov r0, #0x3
- pop {r3-r6, pc}
-_02022C3A:
- cmp r4, #0x2
- bne _02022C7E
- cmp r0, #0x1
- bne _02022C7E
- ldr r3, [sp, #0x10]
- ldr r1, [sp, #0xc]
- mov r2, #0xc
- add r4, r3, #0x0
- mul r4, r2
- add r0, sp, #0x30
- ldr r0, [r0, r4]
- add r4, r1, #0x0
- mul r4, r2
- add r2, sp, #0x18
- ldr r2, [r2, r4]
- cmp r0, r2
- str r1, [sp, #0x0]
- add r1, sp, #0x2c
- bne _02022C6E
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022C6E:
- ldr r3, [sp, #0x8]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C7E:
- cmp r4, #0x1
- bne _02022CBC
- cmp r0, #0x1
- bne _02022CBC
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x10]
- cmp r2, r0
- bne _02022CBC
- add r3, r2, #0x0
- mov r1, #0xc
- mul r3, r1
- add r2, sp, #0x30
- mul r1, r0
- add r0, sp, #0x18
- ldr r2, [r2, r3]
- ldr r0, [r0, r1]
- cmp r2, r0
- beq _02022CA6
- bl ErrorHandling
-_02022CA6:
- ldr r0, [sp, #0xc]
- add r1, sp, #0x2c
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x10]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022CBC:
- ldr r1, [sp, #0x10]
- mov r0, #0xc
- add r2, r1, #0x0
- mul r2, r0
- add r1, sp, #0x30
- ldr r3, [r1, r2]
- ldr r1, [sp, #0xc]
- add r2, r1, #0x0
- mul r2, r0
- add r0, sp, #0x18
- ldr r0, [r0, r2]
- cmp r3, r0
- beq _02022CDA
- bl ErrorHandling
-_02022CDA:
- ldr r0, [sp, #0xc]
- add r1, sp, #0x2c
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x10]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- mov r0, #0x2
- add sp, #0x44
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02022CF0
-FUN_02022CF0: ; 0x02022CF0
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- bl GetChunkOffsetFromCurrentSaveSlot
- ldr r1, [r5, #0x4]
- ldr r2, [r5, #0x8]
- add r1, r4, r1
- bl FlashLoadChunk
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02022D08
-FUN_02022D08: ; 0x02022D08
- ; BOOL FUN_02022D08(struct SaveBlock2 * sav2) {
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, _02022D4C ; =0x00020464 ; unk_20464
- mov r7, #0x85 ; dynamic_region
- mov r4, #0x0
- add r6, r5, r0
- lsl r7, r7, #0x2 ; dynamic_region
-_02022D16: ; for (int i = 0; i < 2; i++) {
- ldr r0, _02022D50 ; =0x00020220 ; unk_20220
- add r1, r5, r4
- ldrb r0, [r1, r0]
- add r1, r6, #0x0
- add r2, r5, r7
- bl FUN_02022CF0 ; if (!FUN_02022CF0(sav2->unk_20220[i], &sav2->unk_20464[i], sav2->dynamic_region)) return FALSE;
- cmp r0, #0x0
- bne _02022D2C
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022D2C:
- add r0, r5, #0x0
- add r1, r5, r7
- add r2, r4, #0x0
- bl FUN_020228E0 ; if (!FUN_020228E0(sav2, sav2->dynamic_region, i)) return FALSE;
- cmp r0, #0x0
- bne _02022D3E
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022D3E:
- add r4, r4, #0x1
- add r6, #0xc
- cmp r4, #0x2
- blt _02022D16 ; }
- mov r0, #0x1 ; return TRUE; }
- pop {r3-r7, pc}
- nop
-_02022D4C: .word 0x00020464
-_02022D50: .word 0x00020220
-
- thumb_func_start FUN_02022D54
-FUN_02022D54: ; 0x02022D54
- push {r4-r6, lr}
- add r3, r1, #0x0
- ldr r1, _02022D90 ; =0x00020464
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r2, r5, r1
- mov r1, #0xc
- mul r1, r3
- add r4, r2, r1
- mov r1, #0x85
- lsl r1, r1, #0x2
- add r1, r5, r1
- add r2, r3, #0x0
- bl FUN_02022968
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl GetChunkOffsetFromCurrentSaveSlot
- mov r1, #0x85
- lsl r1, r1, #0x2
- add r2, r5, r1
- ldr r1, [r4, #0x4]
- add r1, r2, r1
- ldr r2, [r4, #0x8]
- sub r2, #0x14
- bl FlashWriteChunkInternal
- pop {r4-r6, pc}
- nop
-_02022D90: .word 0x00020464
-
- thumb_func_start FUN_02022D94
-FUN_02022D94: ; 0x02022D94
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldr r0, _02022DC4 ; =0x00020464
- add r3, r6, r0
- mov r0, #0xc
- mul r0, r1
- add r4, r3, r0
- add r0, r2, #0x0
- add r1, r4, #0x0
- ldr r5, [r4, #0x8]
- bl GetChunkOffsetFromCurrentSaveSlot
- mov r1, #0x2
- lsl r1, r1, #0x8
- add r2, r6, r1
- ldr r1, [r4, #0x4]
- add r0, r5, r0
- add r1, r2, r1
- sub r0, #0x14
- add r1, r1, r5
- mov r2, #0x14
- bl FlashWriteChunkInternal
- pop {r4-r6, pc}
- .balign 4
-_02022DC4: .word 0x00020464
-
- thumb_func_start FUN_02022DC8
-FUN_02022DC8: ; 0x02022DC8
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldr r0, _02022DF8 ; =0x00020464
- add r3, r6, r0
- mov r0, #0xc
- mul r0, r1
- add r4, r3, r0
- add r0, r2, #0x0
- add r1, r4, #0x0
- ldr r5, [r4, #0x8]
- bl GetChunkOffsetFromCurrentSaveSlot
- mov r1, #0x82
- lsl r1, r1, #0x2
- add r2, r6, r1
- ldr r1, [r4, #0x4]
- add r0, r5, r0
- add r1, r2, r1
- sub r0, #0xc
- add r1, r1, r5
- mov r2, #0x8
- bl FlashWriteChunkInternal
- pop {r4-r6, pc}
- .balign 4
-_02022DF8: .word 0x00020464
-
- thumb_func_start FUN_02022DFC
-FUN_02022DFC: ; 0x02022DFC
- push {r3-r7, lr}
- ldr r7, _02022E70 ; =0x00020218
- add r4, r1, #0x0
- mov r12, r2
- mov r1, #0x0
- add r2, r0, #0x0
- add r3, r4, #0x0
- add r6, r7, #0x0
-_02022E0C:
- ldr r5, _02022E70 ; =0x00020218
- add r1, r1, #0x1
- ldr r5, [r2, r5]
- str r5, [r3, #0x1c]
- ldr r5, [r2, r7]
- add r3, r3, #0x4
- add r5, r5, #0x1
- str r5, [r2, r6]
- add r2, r2, #0x4
- cmp r1, #0x2
- blt _02022E0C
- mov r1, #0x0
- str r1, [r4, #0x14]
- mov r2, r12
- str r1, [r4, #0x0]
- cmp r2, #0x2
- bne _02022E58
- ldr r2, [r0, #0xc]
- cmp r2, #0x0
- beq _02022E4E
- mov r2, #0x1
- str r2, [r4, #0x0]
- ldr r2, _02022E74 ; =0x00020214
- ldr r3, [r0, r2]
- str r3, [r4, #0x18]
- ldr r3, [r0, r2]
- add r3, r3, #0x1
- str r3, [r0, r2]
- str r1, [r4, #0x4]
- str r1, [r4, #0x8]
- mov r0, #0x2
- str r0, [r4, #0xc]
- b _02022E66
-_02022E4E:
- str r1, [r4, #0x4]
- str r1, [r4, #0x8]
- mov r0, #0x1
- str r0, [r4, #0xc]
- b _02022E66
-_02022E58:
- mov r0, r12
- str r0, [r4, #0x4]
- mov r0, r12
- str r0, [r4, #0x8]
- mov r0, r12
- add r0, r0, #0x1
- str r0, [r4, #0xc]
-_02022E66:
- mov r0, #0x1
- bl FUN_02016444
- pop {r3-r7, pc}
- nop
-_02022E70: .word 0x00020218
-_02022E74: .word 0x00020214
-
- thumb_func_start FUN_02022E78
-FUN_02022E78: ; 0x02022E78
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x14]
- cmp r0, #0x5
- bhi _02022F78
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02022E90: ; jump table (using 16-bit offset)
- .short _02022E9C - _02022E90 - 2; case 0
- .short _02022EC0 - _02022E90 - 2; case 1
- .short _02022EDC - _02022E90 - 2; case 2
- .short _02022F00 - _02022E90 - 2; case 3
- .short _02022F2A - _02022E90 - 2; case 4
- .short _02022F4E - _02022E90 - 2; case 5
-_02022E9C:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022EAC
- mov r2, #0x1
- b _02022EAE
-_02022EAC:
- mov r2, #0x0
-_02022EAE:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022D54
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022EC0:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl WaitFlashWrite
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022ED6
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022ED6:
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022EDC:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022EEC
- mov r2, #0x1
- b _02022EEE
-_02022EEC:
- mov r2, #0x0
-_02022EEE:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022DC8
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022F00:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl WaitFlashWrite
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022F16
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022F16:
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- ldr r0, [r4, #0xc]
- cmp r1, r0
- bne _02022F2A
- mov r0, #0x1
- pop {r3-r5, pc}
-_02022F2A:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022F3A
- mov r2, #0x1
- b _02022F3C
-_02022F3A:
- mov r2, #0x0
-_02022F3C:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022D94
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022F4E:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl WaitFlashWrite
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022F64
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022F64:
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- str r1, [r4, #0x8]
- ldr r0, [r4, #0xc]
- cmp r1, r0
- bne _02022F74
- mov r0, #0x2
- pop {r3-r5, pc}
-_02022F74:
- mov r0, #0x0
- str r0, [r4, #0x14]
-_02022F78:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02022F7C: .word 0x00020220
-
- thumb_func_start FUN_02022F80
-FUN_02022F80: ; 0x02022F80
- push {r3-r7, lr}
- add r3, r0, #0x0
- add r0, r1, #0x0
- cmp r2, #0x3
- bne _02022FAA
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02022F96
- ldr r2, [r0, #0x18]
- ldr r1, _02022FE4 ; =0x00020214
- str r2, [r3, r1]
-_02022F96:
- ldr r1, _02022FE8 ; =0x00020218
- mov r4, #0x0
-_02022F9A:
- ldr r2, [r0, #0x1c]
- add r4, r4, #0x1
- str r2, [r3, r1]
- add r0, r0, #0x4
- add r3, r3, #0x4
- cmp r4, #0x2
- blt _02022F9A
- b _02022FDA
-_02022FAA:
- ldr r6, [r0, #0x4]
- ldr r1, [r0, #0xc]
- cmp r6, r1
- bge _02022FD0
- ldr r1, _02022FEC ; =0x00020220
- mov r7, #0x1
- add r2, r1, #0x0
-_02022FB8:
- add r5, r3, r6
- ldrb r4, [r5, r2]
- cmp r4, #0x0
- bne _02022FC4
- add r4, r7, #0x0
- b _02022FC6
-_02022FC4:
- mov r4, #0x0
-_02022FC6:
- strb r4, [r5, r1]
- ldr r4, [r0, #0xc]
- add r6, r6, #0x1
- cmp r6, r4
- blt _02022FB8
-_02022FD0:
- mov r0, #0x1
- str r0, [r3, #0x4]
- mov r0, #0x0
- str r0, [r3, #0x8]
- str r0, [r3, #0xc]
-_02022FDA:
- mov r0, #0x1
- bl FUN_02016454
- pop {r3-r7, pc}
- nop
-_02022FE4: .word 0x00020214
-_02022FE8: .word 0x00020218
-_02022FEC: .word 0x00020220
-
- thumb_func_start FUN_02022FF0
-FUN_02022FF0: ; 0x02022FF0
- push {r3-r5, lr}
- add r4, r1, #0x0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02023000
- ldr r2, [r4, #0x18]
- ldr r1, _0202303C ; =0x00020214
- str r2, [r0, r1]
-_02023000:
- ldr r1, _02023040 ; =0x00020218
- mov r3, #0x0
- add r5, r4, #0x0
-_02023006:
- ldr r2, [r5, #0x1c]
- add r3, r3, #0x1
- str r2, [r0, r1]
- add r5, r5, #0x4
- add r0, r0, #0x4
- cmp r3, #0x2
- blt _02023006
- bl CARD_TryWaitBackupAsync
- cmp r0, #0x0
- bne _02023034
- bl CARD_CancelBackupAsync
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
-_02023034:
- mov r0, #0x1
- bl FUN_02016454
- pop {r3-r5, pc}
- .balign 4
-_0202303C: .word 0x00020214
-_02023040: .word 0x00020218
-
- thumb_func_start FUN_02023044
-FUN_02023044: ; 0x02023044
- push {r3-r6, lr}
- sub sp, #0x24
- add r1, sp, #0x0
- mov r2, #0x2
- add r5, r0, #0x0
- bl FUN_02022DFC
- add r6, sp, #0x0
-_02023054:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02022E78
- add r4, r0, #0x0
- beq _02023054
- cmp r4, #0x1
- beq _02023054
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r4, #0x0
- bl FUN_02022F80
- add r0, r4, #0x0
- add sp, #0x24
- pop {r3-r6, pc}
-
- thumb_func_start FlashClobberChunkFooter
-FlashClobberChunkFooter: ; 0x02023074
- push {r4-r5, lr}
- sub sp, #0x14
- add r4, r2, #0x0
- ldr r2, _020230A8 ; =0x00020464
- add r2, r0, r2
- mov r0, #0xc
- mul r0, r1
- add r5, r2, r0
- add r0, sp, #0x0
- mov r1, #0xff
- mov r2, #0x14
- bl MI_CpuFill8
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl GetChunkOffsetFromCurrentSaveSlot
- ldr r1, [r5, #0x8]
- mov r2, #0x14
- add r0, r1, r0
- sub r0, #0x14
- add r1, sp, #0x0
- bl FlashWriteChunk
- add sp, #0x14
- pop {r4-r5, pc}
- .balign 4
-_020230A8: .word 0x00020464
-
- thumb_func_start SavArray_sizeof
-SavArray_sizeof: ; 0x020230AC
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _020230DC ; =UNK_020EE6DC
- ldr r4, _020230E0 ; =UNK_020EE700
- ldr r0, [r0, #0x0]
- cmp r5, r0
- blt _020230BE
- bl ErrorHandling
-_020230BE:
- lsl r0, r5, #0x4
- add r0, r4, r0
- ldr r0, [r0, #0x8]
- blx r0
- lsr r3, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r3
- mov r1, #0x1e
- ror r2, r1
- add r2, r3, r2
- mov r1, #0x4
- sub r1, r1, r2
- add r0, r0, r1
- pop {r3-r5, pc}
- nop
-_020230DC: .word UNK_020EE6DC
-_020230E0: .word UNK_020EE700
-
- thumb_func_start SaveBlock2_InitSubstructs
-SaveBlock2_InitSubstructs: ; 0x020230E4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, _02023158 ; =UNK_020EE6DC
- ldr r4, _0202315C ; =UNK_020EE700
- ldr r0, [r0, #0x0]
- mov r7, #0x0
- str r0, [sp, #0x0]
- cmp r0, #0x24
- beq _020230FC
- bl ErrorHandling
-_020230FC:
- ldr r0, [sp, #0x0]
- mov r6, #0x0
- cmp r0, #0x0
- ble _02023148
- sub r0, r0, #0x1
- str r0, [sp, #0x4]
-_02023108:
- ldr r0, [r4, #0x0]
- cmp r6, r0
- beq _02023112
- bl ErrorHandling
-_02023112:
- ldr r0, [r4, #0x0]
- str r0, [r5, #0x0]
- add r0, r6, #0x0
- bl SavArray_sizeof
- str r0, [r5, #0x4]
- str r7, [r5, #0x8]
- mov r0, #0x0
- strh r0, [r5, #0xc]
- ldr r0, [r4, #0x4]
- strh r0, [r5, #0xe]
- ldr r0, [r5, #0x4]
- add r7, r7, r0
- ldr r0, [sp, #0x4]
- cmp r6, r0
- beq _0202313A
- ldr r1, [r4, #0x4]
- ldr r0, [r4, #0x14]
- cmp r1, r0
- beq _0202313C
-_0202313A:
- add r7, #0x14
-_0202313C:
- ldr r0, [sp, #0x0]
- add r6, r6, #0x1
- add r4, #0x10
- add r5, #0x10
- cmp r6, r0
- blt _02023108
-_02023148:
- mov r0, #0x2
- lsl r0, r0, #0x10
- cmp r7, r0
- ble _02023154
- bl ErrorHandling
-_02023154:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02023158: .word UNK_020EE6DC
-_0202315C: .word UNK_020EE700
-
- thumb_func_start FUN_02023160
-FUN_02023160: ; 0x02023160
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- mov r12, r0
- add r3, r0, #0x0
- add r6, r0, #0x0
- ldr r0, _020231EC ; =UNK_020EE6DC
- ldr r4, [sp, #0x0]
- ldr r7, [r0, #0x0]
- add r5, r1, #0x0
-_02023178:
- add r2, r4, #0x0
- strb r6, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x8]
- add r2, #0x8
- b _02023190
-_02023184:
- ldr r0, [r5, #0x4]
- ldr r1, [r2, #0x0]
- add r5, #0x10
- add r0, r1, r0
- str r0, [r2, #0x0]
- add r3, r3, #0x1
-_02023190:
- ldrh r0, [r5, #0xe]
- cmp r6, r0
- bne _0202319A
- cmp r3, r7
- blt _02023184
-_0202319A:
- ldr r0, [r4, #0x8]
- add r6, r6, #0x1
- add r0, #0x14
- str r0, [r4, #0x8]
- ldr r0, [sp, #0x4]
- strb r0, [r4, #0x1]
- mov r0, r12
- str r0, [r4, #0x4]
- ldr r1, [r4, #0x8]
- ldr r0, _020231F0 ; =0x00000FFF
- add r0, r1, r0
- lsr r0, r0, #0xc
- strb r0, [r4, #0x2]
- ldrb r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- add r0, r0, r1
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x8]
- mov r1, r12
- add r0, r1, r0
- add r4, #0xc
- mov r12, r0
- cmp r6, #0x2
- blt _02023178
- ldr r0, [sp, #0x0]
- ldrb r1, [r0, #0xd]
- ldrb r0, [r0, #0xe]
- add r1, r1, r0
- ldr r0, [sp, #0x4]
- cmp r0, r1
- beq _020231DC
- bl ErrorHandling
-_020231DC:
- ldr r0, [sp, #0x4]
- cmp r0, #0x20
- ble _020231E6
- bl ErrorHandling
-_020231E6:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_020231EC: .word UNK_020EE6DC
-_020231F0: .word 0x00000FFF
-
- thumb_func_start Sav2_InitDynamicRegion_Internal
-Sav2_InitDynamicRegion_Internal: ; 0x020231F4
- ; r0: &sav2->dynamic_region
- ; r1: &sav2->arraySpecs
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- mov r2, #0x2
- add r5, r1, #0x0
- mov r0, #0x0
- add r1, r6, #0x0
- lsl r2, r2, #0x10
- ldr r4, _02023240 ; =UNK_020EE700
- bl MIi_CpuClearFast
- ldr r0, _02023244 ; =UNK_020EE6DC
- mov r7, #0x0
- ldr r0, [r0, #0x0]
- str r0, [sp, #0x0]
- cmp r0, #0x0
- ble _0202323A
-_02023216:
- ldr r0, [r5, #0x8]
- ldr r2, [r5, #0x4]
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- mov r0, #0x0
- add r1, r6, r1
- bl MIi_CpuClearFast
- ldr r0, [sp, #0x4]
- ldr r1, [r4, #0xc]
- add r0, r6, r0
- blx r1
- ldr r0, [sp, #0x0]
- add r7, r7, #0x1
- add r5, #0x10
- add r4, #0x10
- cmp r7, r0
- blt _02023216
-_0202323A:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02023240: .word UNK_020EE700
-_02023244: .word UNK_020EE6DC
-
- thumb_func_start CreateChunkFooter
-CreateChunkFooter: ; 0x02023248
- ; void CreateChunkFooter(struct SaveBlock2 * sav2, void * data, u16 id, u32 size)
- push {r3-r5, lr}
- ldr r5, _0202326C ; =0x20060623
- add r4, r1, r3
- str r5, [r1, r3]
- ldr r5, _02023270 ; =0x000204A4
- ldr r5, [r0, r5]
- add r0, #0x14
- add r5, r5, #0x1
- str r5, [r4, #0x4]
- str r3, [r4, #0x8]
- add r3, #0xe
- strh r2, [r4, #0xc]
- add r2, r3, #0x0
- bl MATH_CalcCRC16CCITT
- strh r0, [r4, #0xe]
- pop {r3-r5, pc}
- nop
-_0202326C: .word 0x20060623
-_02023270: .word 0x000204A4
-
- thumb_func_start ValidateChunk
-ValidateChunk: ; 0x02023274
- push {r4-r6, lr}
- ldr r6, [r1, r3]
- ldr r5, _020232B0 ; =0x20060623
- add r4, r1, r3
- cmp r6, r5
- beq _02023284
- mov r0, #0x0
- pop {r4-r6, pc}
-_02023284:
- ldr r5, [r4, #0x8]
- cmp r5, r3
- beq _0202328E
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202328E:
- ldrh r5, [r4, #0xc]
- cmp r5, r2
- beq _02023298
- mov r0, #0x0
- pop {r4-r6, pc}
-_02023298:
- add r3, #0xe
- add r0, #0x14
- add r2, r3, #0x0
- bl MATH_CalcCRC16CCITT
- ldrh r1, [r4, #0xe]
- cmp r1, r0
- bne _020232AC
- mov r0, #0x1
- pop {r4-r6, pc}
-_020232AC:
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-_020232B0: .word 0x20060623
-
- thumb_func_start FUN_020232B4
-FUN_020232B4: ; 0x020232B4
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- bx lr
- .balign 4
-
- thumb_func_start WriteSaveFileToFlash
-WriteSaveFileToFlash: ; 0x020232BC
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r0, #0x0
- mov r0, #0x1
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02016444
- ldr r0, _020233FC ; =UNK_020EE6D8
- ldr r0, [r0, #0x0]
- cmp r5, r0
- blt _020232D8
- bl ErrorHandling
-_020232D8:
- ldr r1, _02023400 ; =UNK_020EE6E0
- lsl r0, r5, #0x4
- add r4, r1, r0
- ldr r0, [r1, r0]
- cmp r0, r5
- beq _020232E8
- bl ErrorHandling
-_020232E8:
- ldr r0, [r4, #0x8]
- blx r0
- str r0, [sp, #0x4]
- add r0, #0x10
- str r0, [sp, #0x4]
- ldr r0, _02023404 ; =0x000204A0
- ldr r0, [r7, r0]
- cmp r0, #0x1
- ldr r0, [r4, #0x8]
- bne _0202336E
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl CreateChunkFooter
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashWriteChunk
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl ValidateChunk
- cmp r0, #0x1
- beq _02023330
- bl ErrorHandling
-_02023330:
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl CreateChunkFooter
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashWriteChunk
- ldr r1, [sp, #0x0]
- orr r0, r1
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl ValidateChunk
- cmp r0, #0x1
- beq _020233DE
- bl ErrorHandling
- b _020233DE
-_0202336E:
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl CreateChunkFooter
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashWriteChunk
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl ValidateChunk
- cmp r0, #0x1
- beq _020233A4
- bl ErrorHandling
-_020233A4:
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl CreateChunkFooter
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashWriteChunk
- ldr r1, [sp, #0x0]
- orr r0, r1
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl ValidateChunk
- cmp r0, #0x1
- beq _020233DE
- bl ErrorHandling
-_020233DE:
- ldr r0, [sp, #0x0]
- cmp r0, #0x1
- bne _020233F0
- mov r0, #0x1
- bl FUN_02016454
- add sp, #0x8
- mov r0, #0x2
- pop {r3-r7, pc}
-_020233F0:
- mov r0, #0x1
- bl FUN_02016454
- mov r0, #0x3
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020233FC: .word UNK_020EE6D8
-_02023400: .word UNK_020EE6E0
-_02023404: .word 0x000204A0
-
- thumb_func_start ReadSaveFileFromFlash
-ReadSaveFileFromFlash: ; 0x02023408
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- ldr r0, _02023564 ; =UNK_020EE6D8
- add r7, r2, #0x0
- ldr r0, [r0, #0x0]
- add r6, r1, #0x0
- str r3, [sp, #0x0]
- cmp r7, r0
- blt _02023420
- bl ErrorHandling
-_02023420:
- ldr r1, _02023568 ; =UNK_020EE6E0
- lsl r0, r7, #0x4
- add r4, r1, r0
- ldr r0, [r1, r0]
- cmp r0, r7
- beq _02023430
- bl ErrorHandling
-_02023430:
- ldr r0, [r4, #0x8]
- blx r0
- str r0, [sp, #0x10]
- add r0, #0x10
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x10]
- add r0, r6, #0x0
- bl AllocFromHeap
- add r6, r0, #0x0
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x10]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashLoadChunk
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl ValidateChunk
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x8]
- blx r0
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl FUN_020232B4
- str r0, [sp, #0x8]
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x10]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FlashLoadChunk
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl ValidateChunk
- add r7, r0, #0x0
- ldr r0, [r4, #0x8]
- blx r0
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl FUN_020232B4
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- str r1, [r0, #0x0]
- ldr r0, [sp, #0xc]
- cmp r0, #0x1
- bne _020234CC
- cmp r7, #0x0
- bne _020234CC
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x0
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x8]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- lsl r0, r0, #0xc
- bl FlashLoadChunk
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020234CC:
- ldr r0, [sp, #0xc]
- cmp r0, #0x0
- bne _020234F6
- cmp r7, #0x1
- bne _020234F6
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x1
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x4]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- bl FlashLoadChunk
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020234F6:
- ldr r0, [sp, #0xc]
- cmp r0, #0x1
- bne _0202354C
- cmp r7, #0x1
- bne _0202354C
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- bl FUN_020229B8
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- ldr r0, _0202356C ; =0x000204A0
- beq _0202352E
- mov r1, #0x0
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x8]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- lsl r0, r0, #0xc
- bl FlashLoadChunk
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_0202352E:
- mov r1, #0x1
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x4]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- bl FlashLoadChunk
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_0202354C:
- ldr r0, [sp, #0x0]
- mov r1, #0x2
- str r1, [r0, #0x0]
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x0
- str r1, [r5, r0]
- add r0, r0, #0x4
- str r1, [r5, r0]
- add r0, r6, #0x0
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02023564: .word UNK_020EE6D8
-_02023568: .word UNK_020EE6E0
-_0202356C: .word 0x000204A0
-
- thumb_func_start SaveDetectFlash
-SaveDetectFlash: ; 0x02023570
- push {r3-r5, lr}
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023584
- bl ErrorHandling
-_02023584:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- ldr r0, _020235C8 ; =0x00001302
- bl CARD_IdentifyBackup
- cmp r0, #0x0
- beq _0202359A
- ldr r5, _020235C8 ; =0x00001302
- b _020235AA
-_0202359A:
- ldr r0, _020235CC ; =0x00001202
- bl CARD_IdentifyBackup
- cmp r0, #0x0
- beq _020235A8
- ldr r5, _020235CC ; =0x00001202
- b _020235AA
-_020235A8:
- mov r5, #0x0
-_020235AA:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- cmp r5, #0x0
- beq _020235C2
- mov r0, #0x1
- pop {r3-r5, pc}
-_020235C2:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_020235C8: .word 0x00001302
-_020235CC: .word 0x00001202
-
- thumb_func_start FlashWriteChunk
-FlashWriteChunk: ; 0x020235D0
- push {r3-r5, lr}
- bl FlashWriteChunkInternal
- add r5, r0, #0x0
- add r4, sp, #0x0
-_020235DA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl WaitFlashWrite
- cmp r0, #0x0
- beq _020235DA
- ldr r0, [sp, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FlashLoadChunk
-FlashLoadChunk: ; 0x020235EC
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023608
- bl ErrorHandling
-_02023608:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- mov r3, #0x0
- str r3, [sp, #0x0]
- mov r1, #0x1
- str r1, [sp, #0x4]
- mov r0, #0x6 ; CARD_REQ_READ_BACKUP
- str r0, [sp, #0x8]
- str r1, [sp, #0xc]
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- str r3, [sp, #0x10]
- bl CARDi_RequestStreamCommand
- bl CARD_WaitBackupAsync
- add r5, r0, #0x0
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- cmp r5, #0x0
- bne _02023652
- ldr r0, _02023658 ; =UNK_021C59C8
- ldr r0, [r0, #0x0]
- bl FreeToHeap
- mov r0, #0x1
- bl FUN_02089D90
-_02023652:
- add r0, r5, #0x0
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02023658: .word UNK_021C59C8
-
- thumb_func_start FlashWriteCommandCallback
-FlashWriteCommandCallback: ; 0x0202365C
- ldr r0, _02023664 ; =UNK_021C59C8
- mov r1, #0x1
- str r1, [r0, #0x4]
- bx lr
- .balign 4
-_02023664: .word UNK_021C59C8
-
- thumb_func_start FlashWriteChunkInternal
-FlashWriteChunkInternal: ; 0x02023668
- push {r3-r7, lr}
- sub sp, #0x18
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023684
- bl ErrorHandling
-_02023684:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- mov r1, #0x6 ; CARD_REQ_READ_BACKUP
- str r1, [sp, #0x8]
- mov r1, #0x1
- str r1, [sp, #0xc]
- add r1, sp, #0x14
- mov r2, #0x4
- add r3, r0, #0x0
- str r0, [sp, #0x10]
- bl CARDi_RequestStreamCommand
- cmp r0, #0x0
- bne _020236B2
- add r0, r4, #0x0
- mov r1, #0x1
- bl SaveErrorHandling
-_020236B2:
- ldr r0, _020236DC ; =UNK_021C59C8
- mov r1, #0x0
- str r1, [r0, #0x4]
- str r1, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- mov r0, #0x7 ; CARD_REQ_WRITE_BACKUP
- str r0, [sp, #0x8]
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0x2
- str r0, [sp, #0x10]
- ldr r3, _020236E0 ; =FlashWriteCommandCallback
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r7, #0x0
- bl CARDi_RequestStreamCommand
- add r0, r4, #0x0
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-_020236DC: .word UNK_021C59C8
-_020236E0: .word FlashWriteCommandCallback
-
- thumb_func_start WaitFlashWrite
-WaitFlashWrite: ; 0x020236E4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0202373C ; =UNK_021C59C8
- add r4, r1, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x1
- bne _02023738
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- bl CARD_GetResultCode
- cmp r0, #0x0
- beq _02023714
- cmp r0, #0x4
- beq _0202371E
- cmp r0, #0x6
- beq _02023728
- b _0202371A
-_02023714:
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02023734
-_0202371A:
- bl ErrorHandling
-_0202371E:
- mov r1, #0x0
- add r0, r5, #0x0
- str r1, [r4, #0x0]
- bl SaveErrorHandling
-_02023728:
- mov r0, #0x0
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- mov r1, #0x1
- bl SaveErrorHandling
-_02023734:
- mov r0, #0x1
- pop {r3-r5, pc}
-_02023738:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0202373C: .word UNK_021C59C8
-
- thumb_func_start SaveErrorHandling
-SaveErrorHandling: ; 0x02023740
- push {r3-r5, lr}
- add r5, r0, #0x0
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- add r4, r1, #0x0
- bl CARD_UnlockBackup
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- ldr r0, _02023768 ; =UNK_021C59C8
- ldr r0, [r0, #0x0]
- bl FreeToHeap
- mov r0, #0x1
- add r1, r4, #0x0
- bl FUN_0208A0B8
- pop {r3-r5, pc}
- .balign 4
-_02023768: .word UNK_021C59C8
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 6c2d8674..876bd329 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -7344,12 +7344,12 @@ FUN_0203D3DC: ; 0x0203D3DC
add r0, r5, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, #0x80
str r0, [sp, #0x4]
ldr r0, [r5, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02013B5C
add r5, r0, #0x0
cmp r4, #0x0
@@ -7755,7 +7755,7 @@ FUN_0203D738: ; 0x0203D738
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r4, #0x80
add r5, r0, #0x0
@@ -7782,7 +7782,7 @@ FUN_0203D774: ; 0x0203D774
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, r0, #0x0
add r0, r4, #0x0
@@ -7826,7 +7826,7 @@ FUN_0203D7DC: ; 0x0203D7DC
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, r0, #0x0
add r0, r4, #0x0
@@ -7864,7 +7864,7 @@ FUN_0203D834: ; 0x0203D834
add r5, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r4, r0, #0x0
add r0, r5, #0x0
@@ -7917,7 +7917,7 @@ FUN_0203D8A0: ; 0x0203D8A0
add r5, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r4, r0, #0x0
add r0, r5, #0x0
@@ -10292,8 +10292,8 @@ FUN_0203EB88: ; 0x0203EB88
add sp, #0xc
pop {r4-r7, pc}
- thumb_func_start FUN_0203EBC8
-FUN_0203EBC8: ; 0x0203EBC8
+ thumb_func_start ScrCmd_gameversion
+ScrCmd_gameversion: ; 0x0203EBC8
push {r4, lr}
add r4, r0, #0x0
bl ScriptReadHalfword
@@ -10307,15 +10307,15 @@ FUN_0203EBC8: ; 0x0203EBC8
pop {r4, pc}
.balign 4
- thumb_func_start FUN_0203EBE4
-FUN_0203EBE4: ; 0x0203EBE4
+ thumb_func_start ScrCmd_givewallpaper
+ScrCmd_givewallpaper: ; 0x0203EBE4
push {r3-r7, lr}
sub sp, #0x10
add r5, r0, #0x0
add r0, #0x80
ldr r6, [r0, #0x0]
add r0, r6, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
str r0, [sp, #0x4]
add r0, r5, #0x0
@@ -10327,7 +10327,7 @@ FUN_0203EBE4: ; 0x0203EBE4
bl GetVarPointer
add r4, r0, #0x0
ldr r0, [r6, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
add r6, r0, #0x0
add r0, r5, #0x0
bl ScriptReadHalfword
@@ -10498,8 +10498,8 @@ FUN_0203ED2C: ; 0x0203ED2C
pop {r4-r6, pc}
.balign 4
- thumb_func_start FUN_0203ED70
-FUN_0203ED70: ; 0x0203ED70
+ thumb_func_start ScrCmd_pcfreespace
+ScrCmd_pcfreespace: ; 0x0203ED70
push {r3-r5, lr}
add r5, r0, #0x0
bl ScriptReadHalfword
@@ -10512,7 +10512,7 @@ FUN_0203ED70: ; 0x0203ED70
add r4, r0, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
bl PCStorage_CountMonsAndEggsInAllBoxes
lsl r0, r0, #0x10
lsr r1, r0, #0x10
diff --git a/arm9/asm/scrcmd_10.s b/arm9/asm/scrcmd_10.s
index 0831797b..ea5903d8 100644
--- a/arm9/asm/scrcmd_10.s
+++ b/arm9/asm/scrcmd_10.s
@@ -49,7 +49,7 @@ FUN_02042364: ; 0x02042364
add r0, r5, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0x0
add r2, r6, #0x0
bl MOD06_022434D0
diff --git a/arm9/asm/scrcmd_13.s b/arm9/asm/scrcmd_13.s
index 57061f8b..0a7c9697 100644
--- a/arm9/asm/scrcmd_13.s
+++ b/arm9/asm/scrcmd_13.s
@@ -92,7 +92,7 @@ FUN_02043918: ; 0x02043918
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [sp, #0x8]
mov r0, #0x20
bl AllocMonZeroed
diff --git a/arm9/asm/scrcmd_14.s b/arm9/asm/scrcmd_14.s
index e37228c6..1fd34357 100644
--- a/arm9/asm/scrcmd_14.s
+++ b/arm9/asm/scrcmd_14.s
@@ -165,7 +165,7 @@ FUN_02043B84: ; 0x02043B84
add r0, #0x80
ldr r5, [r0, #0x0]
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetCoinsAddr
@@ -201,7 +201,7 @@ FUN_02043BD0: ; 0x02043BD0
add r0, #0x80
ldr r4, [r0, #0x0]
add r0, r4, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
ldr r0, [r4, #0xc]
bl Sav2_PlayerData_GetCoinsAddr
diff --git a/arm9/asm/scrcmd_15.s b/arm9/asm/scrcmd_15.s
index d33d857b..e5630b08 100644
--- a/arm9/asm/scrcmd_15.s
+++ b/arm9/asm/scrcmd_15.s
@@ -9,7 +9,7 @@ FUN_02043C6C: ; 0x02043C6C
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, r0, #0x0
add r0, r4, #0x0
@@ -26,7 +26,7 @@ FUN_02043C90: ; 0x02043C90
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, r0, #0x0
add r0, r4, #0x0
@@ -43,7 +43,7 @@ FUN_02043CB4: ; 0x02043CB4
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r5, r0, #0x0
add r0, r4, #0x0
@@ -65,7 +65,7 @@ FUN_02043CE4: ; 0x02043CE4
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r6, r0, #0x0
add r0, r4, #0x0
@@ -98,7 +98,7 @@ FUN_02043D28: ; 0x02043D28
add r4, r0, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r6, r0, #0x0
add r0, r4, #0x0
diff --git a/arm9/asm/scrcmd_16.s b/arm9/asm/scrcmd_16.s
index 9b188d47..dba4514e 100644
--- a/arm9/asm/scrcmd_16.s
+++ b/arm9/asm/scrcmd_16.s
@@ -70,7 +70,7 @@ FUN_02043E68: ; 0x02043E68
add r4, #0x80
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r2, r0, #0x0
add r0, r6, #0x0
diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s
index f37a8c62..09cb74b0 100644
--- a/arm9/asm/scrcmd_18.s
+++ b/arm9/asm/scrcmd_18.s
@@ -120,7 +120,7 @@ ScrCmd_checkpartymonotid: ; 0x020443A8
add r0, #0x80
ldr r5, [r0, #0x0]
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0x0
add r0, r4, #0x0
@@ -1113,7 +1113,7 @@ FUN_02044C0C: ; 0x02044C0C
bl GetVarPointer
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [sp, #0x4]
ldr r0, [r7, #0xc]
bl SavArray_PlayerParty_get
diff --git a/arm9/asm/scrcmd_24.s b/arm9/asm/scrcmd_24.s
index 5685ce24..b9569382 100644
--- a/arm9/asm/scrcmd_24.s
+++ b/arm9/asm/scrcmd_24.s
@@ -137,7 +137,7 @@ FUN_02045E74: ; 0x02045E74
add r0, r5, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
str r0, [r4, #0x4]
add r0, r5, #0x0
diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s
index a7879525..475edde8 100644
--- a/arm9/asm/scrcmd_3.s
+++ b/arm9/asm/scrcmd_3.s
@@ -78,7 +78,7 @@ FUN_0203FF10: ; 0x0203FF10
add r0, r5, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r4, r0, #0x0
add r0, r5, #0x0
diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s
index e5e930b2..aede6782 100644
--- a/arm9/asm/scrcmd_4.s
+++ b/arm9/asm/scrcmd_4.s
@@ -20,7 +20,7 @@ FUN_020406CC: ; 0x020406CC
str r0, [r5, #0x8]
ldrb r5, [r1, #0x0]
add r0, r6, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r2, r0, #0x0
ldr r0, [r4, #0x0]
@@ -331,7 +331,7 @@ FUN_02040964: ; 0x02040964
add r0, #0x80
ldr r4, [r0, #0x0]
ldr r0, [r4, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0xf
@@ -426,7 +426,7 @@ FUN_02040A30: ; 0x02040A30
add r0, #0x80
ldr r5, [r0, #0x0]
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r4, r0, #0x0
add r0, r5, #0x0
diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s
index d001fb33..a1aa5216 100644
--- a/arm9/asm/scrcmd_5.s
+++ b/arm9/asm/scrcmd_5.s
@@ -40,7 +40,7 @@ FUN_020411C4: ; 0x020411C4
add r0, #0x80
ldr r7, [r0, #0x0]
ldr r0, [r7, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [sp, #0x20]
add r0, r4, #0x0
bl ScriptReadHalfword
diff --git a/arm9/asm/unk_02022504.s b/arm9/asm/unk_02022504.s
index 6e6c0d06..7f851622 100644
--- a/arm9/asm/unk_02022504.s
+++ b/arm9/asm/unk_02022504.s
@@ -11,8 +11,8 @@ FUN_02022504: ; 0x02022504
nop
_0202250C: .word SavArray_get
- thumb_func_start FUN_02022510
-FUN_02022510: ; 0x02022510
+ thumb_func_start GetStoragePCPointer
+GetStoragePCPointer: ; 0x02022510
ldr r3, _02022518 ; =SavArray_get
mov r1, #0x23
bx r3
diff --git a/arm9/asm/unk_020372D4.s b/arm9/asm/unk_020372D4.s
index cb831ada..c2bab3d0 100644
--- a/arm9/asm/unk_020372D4.s
+++ b/arm9/asm/unk_020372D4.s
@@ -632,7 +632,7 @@ FUN_020377A8: ; 0x020377A8
ldr r0, [r0, #0x8]
bx lr
- thumb_func_start FUN_020377AC
-FUN_020377AC: ; 0x020377AC
+ thumb_func_start ScriptEnvironment_GetSav2Ptr
+ScriptEnvironment_GetSav2Ptr: ; 0x020377AC
ldr r0, [r0, #0xc]
bx lr
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 3c5fc486..ca4520b6 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -1115,7 +1115,7 @@ FUN_02037EF8: ; 0x02037EF8
bl AllocFromHeapAtEnd
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetOptionsAddr
add r1, r0, #0x0
add r0, r5, #0x0
@@ -1140,7 +1140,7 @@ FUN_02037F2C: ; 0x02037F2C
add r4, r1, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
mov r1, #0xb
str r1, [sp, #0x0]
add r1, r4, #0x0
@@ -1164,13 +1164,13 @@ FUN_02037F58: ; 0x02037F58
add r6, r3, #0x0
cmp r5, #0x3
bne _02037F74
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0x0
add r2, r6, #0x0
bl FUN_020855B0
b _02037F82
_02037F74:
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r5, #0x0
add r2, r4, #0x0
add r3, r6, #0x0
@@ -1189,7 +1189,7 @@ FUN_02037F90: ; 0x02037F90
add r4, r1, #0x0
add r6, r2, #0x0
add r5, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0x0
add r2, r6, #0x0
bl FUN_02085578
@@ -1216,7 +1216,7 @@ FUN_02037FC4: ; 0x02037FC4
push {r3-r5, lr}
add r5, r1, #0x0
add r4, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r5, #0x0
bl FUN_02087D00
add r5, r0, #0x0
@@ -2127,7 +2127,7 @@ FUN_020386E0: ; 0x020386E0
bl SavArray_get
str r0, [r4, #0x8]
ldr r0, [r5, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [r4, #0xc]
ldr r0, [r5, #0xc]
bl FUN_02024DA0
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index 352c4094..acb9fd0b 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -731,10 +731,10 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203C5BC
.word FUN_0203C614
.word FUN_0203C680
- .word FUN_0203EBC8
+ .word ScrCmd_gameversion
.word FUN_02044A6C
.word FUN_02044A94
- .word FUN_0203EBE4
+ .word ScrCmd_givewallpaper
.word FUN_0203ECAC
.word FUN_0203ECD8
.word FUN_0203ECF4
@@ -743,7 +743,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_020411C4
.word FUN_02041340
.word FUN_02040964
- .word FUN_0203ED70
+ .word ScrCmd_pcfreespace
.word FUN_0204387C
.word FUN_020438D0
.word FUN_02043918
diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s
index eaeb9036..15eacf44 100644
--- a/arm9/asm/unk_0204653C.s
+++ b/arm9/asm/unk_0204653C.s
@@ -1015,7 +1015,7 @@ _02046D4E:
b _02046D8C
_02046D5C:
ldr r0, [r6, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
str r0, [sp, #0x8]
ldr r0, [r6, #0xc]
bl SavArray_PlayerParty_get
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 39b89324..2d2d2b2d 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -285,7 +285,7 @@ FUN_02047814: ; 0x02047814
add r0, r6, #0x0
bl FreeToHeap
ldr r0, [r5, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
mov r1, #0x45
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -519,7 +519,7 @@ FUN_02047A78: ; 0x02047A78
mov r2, #0x0
bl FUN_02047A64
ldr r0, [r4, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
mov r1, #0x45
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -719,7 +719,7 @@ _02047C98:
bl FUN_02047A64
ldr r0, [sp, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
mov r1, #0x45
lsl r1, r1, #0x2
str r0, [r6, r1]
@@ -903,7 +903,7 @@ _02047E2C:
bl FUN_02047A64
ldr r0, [sp, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_02022510
+ bl GetStoragePCPointer
mov r1, #0x45
lsl r1, r1, #0x2
str r0, [r5, r1]
diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s
index 3aa16280..d94329c4 100644
--- a/arm9/asm/unk_02048120.s
+++ b/arm9/asm/unk_02048120.s
@@ -96,7 +96,7 @@ _0204817A:
add r1, #0xc
bl FUN_02019150
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r2, r0, #0x0
ldr r0, [r4, #0x20]
diff --git a/arm9/asm/unk_0204B0A0.s b/arm9/asm/unk_0204B0A0.s
index 1495eb48..4b658c2b 100644
--- a/arm9/asm/unk_0204B0A0.s
+++ b/arm9/asm/unk_0204B0A0.s
@@ -125,7 +125,7 @@ FUN_0204B1DC: ; 0x0204B1DC
push {r4-r6, lr}
add r4, r1, #0x0
add r5, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r1, r4, #0x0
bl FUN_02025A60
add r0, r5, #0x0
diff --git a/arm9/asm/unk_0204CB20.s b/arm9/asm/unk_0204CB20.s
index f4d8b81a..e95b8c81 100644
--- a/arm9/asm/unk_0204CB20.s
+++ b/arm9/asm/unk_0204CB20.s
@@ -2315,13 +2315,13 @@ FUN_0204DCB4: ; 0x0204DCB4
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CC4
add r4, r0, #0x0
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CB4
ldr r0, _0204DD10 ; =UNK_021C5A68
ldr r1, [r0, #0x0]
@@ -4108,7 +4108,7 @@ _0204E9B8:
cmp r0, #0x0
bne _0204EA7C
ldr r0, [r1, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CB4
add r1, r4, #0x0
bl FUN_02026908
@@ -4644,7 +4644,7 @@ _0204EE36:
str r2, [r3, r0]
ldr r5, [r1, #0x0]
ldr r0, [r5, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CC4
mov r1, #0x29
add r2, r5, r4
@@ -5229,7 +5229,7 @@ FUN_0204F2D8: ; 0x0204F2D8
add r5, r2, #0x0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CB4
add r4, r0, #0x0
ldrb r0, [r5, #0x0]
@@ -5466,7 +5466,7 @@ _0204F4D2:
ldr r0, _0204F5E0 ; =UNK_021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02026CB4
add r4, r0, #0x0
bl FUN_020269A0
diff --git a/arm9/asm/unk_0204FBA8.s b/arm9/asm/unk_0204FBA8.s
index 43c89f86..32c2e3c1 100644
--- a/arm9/asm/unk_0204FBA8.s
+++ b/arm9/asm/unk_0204FBA8.s
@@ -146,7 +146,7 @@ FUN_0204FC5C: ; 0x0204FC5C
ldr r1, [r1, #0x0]
cmp r1, #0x0
bne _0204FC9A
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02031824
add r0, r4, #0x0
bl FUN_0204FBB0
@@ -444,7 +444,7 @@ FUN_0204FEB0: ; 0x0204FEB0
cmp r0, #0x0
bne _0204FEE8
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
mov r1, #0x0
add r3, r5, #0x0
str r1, [sp, #0x0]
@@ -475,7 +475,7 @@ FUN_0204FEF0: ; 0x0204FEF0
cmp r0, #0x0
bne _0204FF28
add r0, r5, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
mov r1, #0x0
add r3, r5, #0x0
str r1, [sp, #0x0]
diff --git a/arm9/asm/unk_020520AC.s b/arm9/asm/unk_020520AC.s
index f620cb87..4ae557da 100644
--- a/arm9/asm/unk_020520AC.s
+++ b/arm9/asm/unk_020520AC.s
@@ -181,7 +181,7 @@ FUN_02052110: ; 0x02052110
mov r0, #0x0
pop {r4-r6, pc}
_0205211E:
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r6, r0, #0x0
bl FUN_02031A7C
mov r1, #0x19
diff --git a/arm9/asm/unk_0205CDB4.s b/arm9/asm/unk_0205CDB4.s
index c12eb45a..65a38f16 100644
--- a/arm9/asm/unk_0205CDB4.s
+++ b/arm9/asm/unk_0205CDB4.s
@@ -24,7 +24,7 @@ UNK_020F7240: ; 0x020F7240
FUN_0205CDB4: ; 0x0205CDB4
push {r4, lr}
add r4, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
bl FUN_020254B4
add r1, r0, #0x0
@@ -43,7 +43,7 @@ _0205CDD4: .word UNK_020F7220
FUN_0205CDD8: ; 0x0205CDD8
push {r4, lr}
add r4, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
bl FUN_020254B4
cmp r0, #0x0
@@ -68,7 +68,7 @@ FUN_0205CE00: ; 0x0205CE00
add r4, r1, #0x0
add r7, r2, #0x0
str r3, [sp, #0x4]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
bl FUN_020254B4
cmp r0, #0x0
diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s
index 73dc567c..43358f72 100644
--- a/arm9/asm/unk_0205F7A0.s
+++ b/arm9/asm/unk_0205F7A0.s
@@ -70,7 +70,7 @@ _0205F806:
str r0, [r5, #0x4]
_0205F812:
ldr r0, [sp, #0x0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
bl PlayerProfile_GetTrainerGender
str r0, [r5, #0xc]
diff --git a/arm9/asm/unk_020647A4.s b/arm9/asm/unk_020647A4.s
index 1abe1353..cba18409 100644
--- a/arm9/asm/unk_020647A4.s
+++ b/arm9/asm/unk_020647A4.s
@@ -47,7 +47,7 @@ FUN_020647A4: ; 0x020647A4
push {r3-r7, lr}
sub sp, #0x30
add r4, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
mov r1, #0x7
bl FUN_020254A0
@@ -137,7 +137,7 @@ _02064868: .word UNK_020F7D4C
FUN_0206486C: ; 0x0206486C
push {r3-r5, lr}
add r4, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r5, r0, #0x0
mov r1, #0x7
@@ -325,7 +325,7 @@ _020649AC: .word 0x00000125
thumb_func_start FUN_020649B0
FUN_020649B0: ; 0x020649B0
push {r3, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
mov r1, #0x7
bl FUN_020254A0
@@ -346,7 +346,7 @@ _020649CC:
FUN_020649D4: ; 0x020649D4
push {r3-r5, lr}
add r5, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
mov r1, #0x7
bl FUN_020254A0
diff --git a/arm9/asm/unk_02064CA8.s b/arm9/asm/unk_02064CA8.s
index 3af0633e..851aec52 100644
--- a/arm9/asm/unk_02064CA8.s
+++ b/arm9/asm/unk_02064CA8.s
@@ -17,7 +17,7 @@ UNK_020F7E54: ; 0x020F7E54
thumb_func_start FUN_02064CA8
FUN_02064CA8: ; 0x02064CA8
push {r4, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
mov r1, #0x1
@@ -33,7 +33,7 @@ FUN_02064CA8: ; 0x02064CA8
FUN_02064CC8: ; 0x02064CC8
push {r3-r5, lr}
add r5, r0, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
mov r1, #0x2
@@ -67,7 +67,7 @@ _02064D08:
thumb_func_start FUN_02064D10
FUN_02064D10: ; 0x02064D10
push {r4-r6, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
mov r1, #0x3
@@ -95,7 +95,7 @@ _02064D48: .word UNK_020F7E54
thumb_func_start FUN_02064D4C
FUN_02064D4C: ; 0x02064D4C
push {r4-r6, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
mov r1, #0x4
@@ -130,7 +130,7 @@ FUN_02064D88: ; 0x02064D88
bl ErrorHandling
_02064D96:
add r0, r7, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
mov r1, #0x5
diff --git a/arm9/asm/unk_02064E20.s b/arm9/asm/unk_02064E20.s
index c3b7b4bc..0665d211 100644
--- a/arm9/asm/unk_02064E20.s
+++ b/arm9/asm/unk_02064E20.s
@@ -6,7 +6,7 @@
thumb_func_start FUN_02064E20
FUN_02064E20: ; 0x02064E20
push {r4, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl FUN_02024ED8
add r4, r0, #0x0
bl FUN_020254B4
diff --git a/arm9/asm/unk_02064E90.s b/arm9/asm/unk_02064E90.s
index e645d179..319e816e 100644
--- a/arm9/asm/unk_02064E90.s
+++ b/arm9/asm/unk_02064E90.s
@@ -14,7 +14,7 @@ FUN_02064E90: ; 0x02064E90
add r0, r6, #0x0
str r3, [sp, #0x1c]
ldr r5, [sp, #0xbc]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
str r0, [sp, #0x20]
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0x0
@@ -218,7 +218,7 @@ _02065074: .word FreeToHeap
thumb_func_start FUN_02065078
FUN_02065078: ; 0x02065078
push {r3-r7, lr}
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r7, r0, #0x0
bl FUN_02029FC8
add r6, r0, #0x0
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index edeab8fa..22b20ee4 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -55,7 +55,7 @@ FUN_020653EC: ; 0x020653EC
bl MI_CpuFill8
add r0, r5, #0x0
str r6, [r4, #0x4]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
mov r1, #0x5b
lsl r1, r1, #0x2
str r5, [r4, r1]
@@ -1807,7 +1807,7 @@ FUN_020661F8: ; 0x020661F8
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl SavArray_PlayerParty_get
add r1, r7, #0x0
bl GetPartyMonByIndex
@@ -2376,19 +2376,19 @@ _02066676:
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl SavArray_PlayerParty_get
str r0, [r4, #0x0]
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_Bag_get
str r0, [r4, #0x4]
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetOptionsAddr
str r0, [r4, #0xc]
mov r0, #0x5b
diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s
index 8eb1213d..51dec0d5 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -111,7 +111,7 @@ _02080CB4:
bl GetPartyMonByIndex
add r7, r0, #0x0
add r0, r6, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
mov r1, #0xb
str r0, [sp, #0x0]
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index c83c9aff..9e58b5cc 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -274,7 +274,7 @@ _020862D6:
bl FUN_02046528
add r6, r0, #0x0
ldr r5, [r4, #0xc]
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
add r7, r0, #0x0
ldr r0, [r6, #0x1c]
@@ -299,7 +299,7 @@ _020862D6:
mov r2, #0x0
bl SetMonData
add r0, r6, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
ldr r1, [r4, #0xc]
bl FUN_0202C144
ldr r0, [r4, #0x4]
@@ -322,7 +322,7 @@ _0208633A:
bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp, #0x0]
mov r0, #0xb
diff --git a/arm9/asm/unk_0208890C.s b/arm9/asm/unk_0208890C.s
index 58ffb9d8..d27130c9 100644
--- a/arm9/asm/unk_0208890C.s
+++ b/arm9/asm/unk_0208890C.s
@@ -56,7 +56,7 @@ FUN_02088960: ; 0x02088960
add r5, r0, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
- bl FUN_020377AC
+ bl ScriptEnvironment_GetSav2Ptr
add r3, r5, #0x0
add r3, #0x98
add r1, r0, #0x0