summaryrefslogtreecommitdiff
path: root/arm9/asm
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm')
-rw-r--r--arm9/asm/CTRDG.s670
-rw-r--r--arm9/asm/CTRDG_backup.s306
-rw-r--r--arm9/asm/CTRDG_flash_AT29LV512_asm.s (renamed from arm9/asm/CTRDG_flash_AT29LV512.s)195
-rw-r--r--arm9/asm/CTRDG_flash_LE26FV10N1TS-10.s29
-rw-r--r--arm9/asm/CTRDG_flash_LE39FW512.s113
-rw-r--r--arm9/asm/CTRDG_flash_MX29L010.s107
-rw-r--r--arm9/asm/CTRDG_flash_MX29L512.s39
-rw-r--r--arm9/asm/CTRDG_flash_common.s90
-rw-r--r--arm9/asm/CTRDG_proc.s14
-rw-r--r--arm9/asm/PXI_fifo.s269
-rw-r--r--arm9/asm/options.s239
-rw-r--r--arm9/asm/scrcmd.s2
-rw-r--r--arm9/asm/scrcmd_7.s6
-rw-r--r--arm9/asm/unk_02001B80.s14
-rw-r--r--arm9/asm/unk_020377F0.s2
-rw-r--r--arm9/asm/unk_02038C78.s36
-rw-r--r--arm9/asm/unk_020476CC.s10
-rw-r--r--arm9/asm/unk_02048904.s4
-rw-r--r--arm9/asm/unk_02054590.s8
-rw-r--r--arm9/asm/unk_0205C598.s2
-rw-r--r--arm9/asm/unk_020625EC.s6
-rw-r--r--arm9/asm/unk_020653EC.s6
-rw-r--r--arm9/asm/unk_0206C700.s8
-rw-r--r--arm9/asm/unk_0206F3FC.s2
-rw-r--r--arm9/asm/unk_02072548.s4
-rw-r--r--arm9/asm/unk_020772F0.s2
-rw-r--r--arm9/asm/unk_02079C70.s4
-rw-r--r--arm9/asm/unk_02085338.s2
-rw-r--r--arm9/asm/unk_020859C0.s2
-rw-r--r--arm9/asm/unk_02086084.s4
-rw-r--r--arm9/asm/unk_02087A6C.s2
-rw-r--r--arm9/asm/unk_02087D00.s4
-rw-r--r--arm9/asm/unk_02089498.s4
33 files changed, 343 insertions, 1862 deletions
diff --git a/arm9/asm/CTRDG.s b/arm9/asm/CTRDG.s
deleted file mode 100644
index dc60582b..00000000
--- a/arm9/asm/CTRDG.s
+++ /dev/null
@@ -1,670 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global UNK_021D6940
-UNK_021D6940: ; 0x021D6940
- .space 0x4
-
- .global UNK_021D6944
-UNK_021D6944: ; 0x021D6944
- .space 0x4
-
- .text
-
- arm_func_start CTRDG_CheckEnabled
-CTRDG_CheckEnabled:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl CTRDG_IsOptionCartridge
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {lr}
- bxne lr
- bl CTRDG_IsEnabled
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {lr}
- bxne lr
- bl OS_Terminate
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDG_Enable
-CTRDG_Enable: ; 0x020DB15C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- bl OS_DisableInterrupts
- ldr r1, _020DB1AC ; =UNK_021D6940
- mov r4, r0
- str r5, [r1, #0x0]
- bl CTRDG_IsOptionCartridge
- cmp r0, #0x0
- bne _020DB198
- cmp r5, #0x0
- movne r1, #0x1000
- moveq r1, #0x5000
- mov r0, #0xf000
- bl OS_SetDPermissionsForProtectionRegion
-_020DB198:
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020DB1AC: .word UNK_021D6940
-
- arm_func_start CTRDG_IsEnabled
-CTRDG_IsEnabled:
- ldr r0, _020DB1BC ; =UNK_021D6940
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-_020DB1BC: .word UNK_021D6940
-
- arm_func_start CTRDGi_AccessCommon
-CTRDGi_AccessCommon: ; 0x020DB1C0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl CTRDG_IsExisting
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,lr}
- bxeq lr
- bl CTRDG_CheckEnabled
- ldr r0, _020DB2BC ; =UNK_021D6944
- ldrh r0, [r0, #0x2]
- bl OS_LockCartridge
- cmp r4, #0x21
- bhi _020DB240
- cmp r4, #0x21
- bhs _020DB270
- cmp r4, #0x11
- bhi _020DB234
- cmp r4, #0x10
- blo _020DB294
- cmp r4, #0x10
- beq _020DB290
- cmp r4, #0x11
- beq _020DB260
- b _020DB294
-_020DB234:
- cmp r4, #0x20
- streqh r6, [r7, #0x0]
- b _020DB294
-_020DB240:
- cmp r4, #0x40
- bhi _020DB254
- cmp r4, #0x40
- streq r6, [r7, #0x0]
- b _020DB294
-_020DB254:
- cmp r4, #0x41
- beq _020DB280
- b _020DB294
-_020DB260:
- cmp r5, #0x0
- ldrneb r0, [r7, #0x0]
- strneb r0, [r5, #0x0]
- b _020DB294
-_020DB270:
- cmp r5, #0x0
- ldrneh r0, [r7, #0x0]
- strneh r0, [r5, #0x0]
- b _020DB294
-_020DB280:
- cmp r5, #0x0
- ldrne r0, [r7, #0x0]
- strne r0, [r5, #0x0]
- b _020DB294
-_020DB290:
- strb r6, [r7, #0x0]
-_020DB294:
- ldr r0, _020DB2BC ; =UNK_021D6944
- ldrh r0, [r0, #0x2]
- bl OS_UnLockCartridge
- bl CTRDG_IsExisting
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020DB2BC: .word UNK_021D6944
-
- arm_func_start CTRDG_Read32
-CTRDG_Read32: ; 0x020DB2C0
- ldr ip, _020DB2D4 ; =CTRDGi_AccessCommon
- mov r2, r1
- mov r1, #0x0
- mov r3, #0x41
- bx r12
- .balign 4
-_020DB2D4: .word CTRDGi_AccessCommon
-
- arm_func_start CTRDGi_CopyCommon
-CTRDGi_CopyCommon: ; 0x020DB2D8
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl CTRDG_IsExisting
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,lr}
- bxeq lr
- bl CTRDG_CheckEnabled
- ldr r0, _020DB42C ; =UNK_021D6944
- ldrh r0, [r0, #0x2]
- bl OS_LockCartridge
- ldr r0, [sp, #0x18]
- ands r0, r0, #0x1
- bne _020DB338
- mov r0, r7
- bl MI_StopDma
- mov r0, r5
- mov r1, r4
- bl DC_FlushRange
-_020DB338:
- ldr r0, [sp, #0x18]
- cmp r0, #0x11
- bhi _020DB36C
- cmp r0, #0x10
- blo _020DB360
- cmp r0, #0x10
- beq _020DB38C
- cmp r0, #0x11
- beq _020DB3BC
- b _020DB404
-_020DB360:
- cmp r0, #0x1
- beq _020DB3E4
- b _020DB404
-_020DB36C:
- cmp r0, #0x20
- bhi _020DB380
- cmp r0, #0x20
- beq _020DB3A4
- b _020DB404
-_020DB380:
- cmp r0, #0x21
- beq _020DB3D0
- b _020DB404
-_020DB38C:
- mov r0, r7
- mov r1, r6
- mov r2, r5
- mov r3, r4
- bl MI_DmaCopy16
- b _020DB404
-_020DB3A4:
- mov r0, r7
- mov r1, r6
- mov r2, r5
- mov r3, r4
- bl MI_DmaCopy32
- b _020DB404
-_020DB3BC:
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl MIi_CpuCopy16
- b _020DB404
-_020DB3D0:
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl MIi_CpuCopy32
- b _020DB404
-_020DB3E4:
- cmp r4, #0x0
- mov r1, #0x0
- bls _020DB404
-_020DB3F0:
- ldrb r0, [r6], #0x1
- add r1, r1, #0x1
- cmp r1, r4
- strb r0, [r5], #0x1
- blo _020DB3F0
-_020DB404:
- ldr r0, _020DB42C ; =UNK_021D6944
- ldrh r0, [r0, #0x2]
- bl OS_UnLockCartridge
- bl CTRDG_IsExisting
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020DB42C: .word UNK_021D6944
-
- arm_func_start CTRDG_CpuCopy32
-CTRDG_CpuCopy32: ; 0x020DB430
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r3, r2
- mov r12, #0x21
- mov r1, r0
- mov r2, lr
- mov r0, #0x0
- str r12, [sp, #0x0]
- bl CTRDGi_CopyCommon
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDG_CpuCopy16
-CTRDG_CpuCopy16: ; 0x020DB464
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r3, r2
- mov r12, #0x11
- mov r1, r0
- mov r2, lr
- mov r0, #0x0
- str r12, [sp, #0x0]
- bl CTRDGi_CopyCommon
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDG_CpuCopy8
-CTRDG_CpuCopy8: ; 0x020DB498
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov lr, r1
- mov r3, r2
- cmp lr, #0x8000000
- blo _020DB4DC
- ldr r2, _020DB500 ; =0x0A010000
- cmp lr, r2
- bhs _020DB4DC
- mov r12, #0x1
- mov r2, r0
- mov r0, #0x0
- str r12, [sp, #0x0]
- bl CTRDGi_CopyCommon
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-_020DB4DC:
- mov r12, #0x1
- mov r1, r0
- mov r2, lr
- mov r0, #0x0
- str r12, [sp, #0x0]
- bl CTRDGi_CopyCommon
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020DB500: .word 0x0A010000
-
- arm_func_start CTRDGi_SendtoPxi
-CTRDGi_SendtoPxi: ; 0x020DB504
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r1, r7
- mov r0, #0xd
- mov r2, #0x0
- bl PXI_SendWordByFifo
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,lr}
- bxeq lr
- mov r6, #0x1
- mov r5, #0xd
- mov r4, #0x0
-_020DB53C:
- mov r0, r6
- bl SVC_WaitByLoop
- mov r0, r5
- mov r1, r7
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0x0
- bne _020DB53C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
-
- arm_func_start CTRDGi_UnlockByProcessor
-CTRDGi_UnlockByProcessor: ; 0x020DB568
- stmdb sp!, {r4,lr}
- mov r4, r1
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- bne _020DB580
- bl OS_UnLockCartridge
-_020DB580:
- ldr r0, [r4, #0x4]
- bl OS_RestoreInterrupts
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start CTRDGi_LockByProcessor
-CTRDGi_LockByProcessor: ; 0x020DB590
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- ldr r5, _020DB60C ; =0x027FFFE8
- mov r4, #0x1
-_020DB5A8:
- bl OS_DisableInterrupts
- str r0, [r6, #0x4]
- mov r0, r5
- bl OS_ReadOwnerOfLockWord
- and r0, r0, #0x40
- str r0, [r6, #0x0]
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r7,lr}
- bxne lr
- mov r0, r7
- bl OS_TryLockCartridge
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,lr}
- bxeq lr
- ldr r0, [r6, #0x4]
- bl OS_RestoreInterrupts
- mov r0, r4
- bl SVC_WaitByLoop
- b _020DB5A8
-_020DB600: ; 0x020DB600
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020DB60C: .word 0x027FFFE8
-
- arm_func_start CTRDGi_RestoreAccessCycle
-CTRDGi_RestoreAccessCycle: ; 0x020DB610
- ldr r3, _020DB640 ; =0x04000204
- ldr r2, [r0, #0x0]
- ldrh r1, [r3, #0x0]
- bic r1, r1, #0xc
- orr r1, r1, r2, lsl #0x2
- strh r1, [r3, #0x0]
- ldrh r1, [r3, #0x0]
- ldr r2, [r0, #0x4]
- bic r0, r1, #0x10
- orr r0, r0, r2, lsl #0x4
- strh r0, [r3, #0x0]
- bx lr
- .balign 4
-_020DB640: .word 0x04000204
-
- arm_func_start CTRDGi_ChangeLatestAccessCycle
-CTRDGi_ChangeLatestAccessCycle: ; 0x020DB644
- ldr r2, _020DB688 ; =0x04000204
- ldrh r1, [r2, #0x0]
- and r1, r1, #0xc
- mov r1, r1, asr #0x2
- str r1, [r0, #0x0]
- ldrh r1, [r2, #0x0]
- and r1, r1, #0x10
- mov r1, r1, asr #0x4
- str r1, [r0, #0x4]
- ldrh r0, [r2, #0x0]
- bic r0, r0, #0xc
- orr r0, r0, #0xc
- strh r0, [r2, #0x0]
- ldrh r0, [r2, #0x0]
- bic r0, r0, #0x10
- strh r0, [r2, #0x0]
- bx lr
- .balign 4
-_020DB688: .word 0x04000204
-
- arm_func_start CTRDG_IsExisting
-CTRDG_IsExisting:
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x10
- ldr r2, _020DB798 ; =0x027FFC30
- ldr r0, _020DB79C ; =0x0000FFFF
- ldrh r1, [r2, #0x0]
- mov r4, #0x1
- cmp r1, r0
- addeq sp, sp, #0x10
- moveq r0, #0x0
- ldmeqia sp!, {r4,lr}
- bxeq lr
- ldrb r0, [r2, #0x5]
- mov r0, r0, lsl #0x1e
- mov r0, r0, lsr #0x1f
- cmp r0, #0x1
- addeq sp, sp, #0x10
- moveq r0, #0x0
- ldmeqia sp!, {r4,lr}
- bxeq lr
- ldr r0, _020DB7A0 ; =UNK_021D6944
- add r1, sp, #0x0
- ldrh r0, [r0, #0x2]
- bl CTRDGi_LockByProcessor
- add r0, sp, #0x8
- bl CTRDGi_ChangeLatestAccessCycle
- mov r0, #0x8000000
- ldrb r2, [r0, #0xb2]
- cmp r2, #0x96
- bne _020DB714
- ldr r1, _020DB798 ; =0x027FFC30
- ldrh r0, [r0, #0xbe]
- ldrh r1, [r1, #0x0]
- cmp r1, r0
- bne _020DB75C
-_020DB714:
- cmp r2, #0x96
- beq _020DB734
- ldr r1, _020DB798 ; =0x027FFC30
- ldr r0, _020DB7A4 ; =0x0801FFFE
- ldrh r1, [r1, #0x0]
- ldrh r0, [r0, #0x0]
- cmp r1, r0
- bne _020DB75C
-_020DB734:
- ldr r2, _020DB798 ; =0x027FFC30
- mov r0, #0x8000000
- ldr r1, [r2, #0x8]
- ldr r0, [r0, #0xac]
- cmp r1, r0
- beq _020DB770
- ldrb r0, [r2, #0x5]
- mov r0, r0, lsl #0x1f
- movs r0, r0, lsr #0x1f
- beq _020DB770
-_020DB75C:
- ldr r1, _020DB798 ; =0x027FFC30
- mov r4, #0x0
- ldrb r0, [r1, #0x5]
- orr r0, r0, #0x2
- strb r0, [r1, #0x5]
-_020DB770:
- add r0, sp, #0x8
- bl CTRDGi_RestoreAccessCycle
- ldr r0, _020DB7A0 ; =UNK_021D6944
- add r1, sp, #0x0
- ldrh r0, [r0, #0x2]
- bl CTRDGi_UnlockByProcessor
- mov r0, r4
- add sp, sp, #0x10
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020DB798: .word 0x027FFC30
-_020DB79C: .word 0x0000FFFF
-_020DB7A0: .word UNK_021D6944
-_020DB7A4: .word 0x0801FFFE
-
- arm_func_start CTRDG_IsPulledOut
-CTRDG_IsPulledOut: ; 0x020DB7A8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r2, _020DB800 ; =0x027FFC30
- ldr r0, _020DB804 ; =0x0000FFFF
- ldrh r1, [r2, #0x0]
- cmp r1, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {lr}
- bxeq lr
- ldrb r0, [r2, #0x5]
- mov r0, r0, lsl #0x1e
- movs r0, r0, lsr #0x1f
- bne _020DB7E4
- bl CTRDG_IsExisting
-_020DB7E4:
- ldr r0, _020DB800 ; =0x027FFC30
- ldrb r0, [r0, #0x5]
- mov r0, r0, lsl #0x1e
- mov r0, r0, lsr #0x1f
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020DB800: .word 0x027FFC30
-_020DB804: .word 0x0000FFFF
-
- arm_func_start CTRDGi_GetAgbMakerCodeAtInit
-CTRDGi_GetAgbMakerCodeAtInit: ; 0x020DB808
- stmdb sp!, {r4,lr}
- mov r4, #0x0
- bl CTRDGi_IsAgbCartridgeAtInit
- cmp r0, #0x0
- ldrne r0, _020DB82C ; =0x027FFC30
- ldrneh r4, [r0, #0x6]
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020DB82C: .word 0x027FFC30
-
- arm_func_start CTRDG_GetAgbMakerCode
-CTRDG_GetAgbMakerCode: ; 0x020DB830
- stmdb sp!, {r4,lr}
- mov r4, #0x0
- bl CTRDG_IsExisting
- cmp r0, #0x0
- beq _020DB84C
- bl CTRDGi_GetAgbMakerCodeAtInit
- mov r4, r0
-_020DB84C:
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start CTRDGi_GetAgbGameCodeAtInit
-CTRDGi_GetAgbGameCodeAtInit: ; 0x020DB858
- stmdb sp!, {r4,lr}
- mov r4, #0x0
- bl CTRDGi_IsAgbCartridgeAtInit
- cmp r0, #0x0
- ldrne r0, _020DB87C ; =0x027FFC30
- ldrne r4, [r0, #0x8]
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020DB87C: .word 0x027FFC30
-
- arm_func_start CTRDG_GetAgbGameCode
-CTRDG_GetAgbGameCode: ; 0x020DB880
- stmdb sp!, {r4,lr}
- mov r4, #0x0
- bl CTRDG_IsExisting
- cmp r0, #0x0
- beq _020DB89C
- bl CTRDGi_GetAgbGameCodeAtInit
- mov r4, r0
-_020DB89C:
- mov r0, r4
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start CTRDGi_IsAgbCartridgeAtInit
-CTRDGi_IsAgbCartridgeAtInit:
- ldr r0, _020DB8BC ; =0x027FFC30
- ldrb r0, [r0, #0x5]
- mov r0, r0, lsl #0x1f
- mov r0, r0, lsr #0x1f
- bx lr
- .balign 4
-_020DB8BC: .word 0x027FFC30
-
- arm_func_start CTRDG_IsOptionCartridge
-CTRDG_IsOptionCartridge:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl CTRDG_IsExisting
- cmp r0, #0x0
- beq _020DB8EC
- bl CTRDGi_IsAgbCartridgeAtInit
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x1
- ldmeqia sp!, {lr}
- bxeq lr
-_020DB8EC:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDG_IsAgbCartridge
-CTRDG_IsAgbCartridge: ; 0x020DB8FC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl CTRDG_IsExisting
- cmp r0, #0x0
- beq _020DB928
- bl CTRDGi_IsAgbCartridgeAtInit
- cmp r0, #0x0
- addne sp, sp, #0x4
- movne r0, #0x1
- ldmneia sp!, {lr}
- bxne lr
-_020DB928:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDGi_InitCommon
-CTRDGi_InitCommon: ; 0x020DB938
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020DB970 ; =UNK_021D6944
- mov r3, #0x0
- ldr r2, _020DB974 ; =0x05000001
- add r0, sp, #0x0
- str r3, [sp, #0x0]
- bl SVC_CpuSet
- bl OS_GetLockID
- ldr r1, _020DB970 ; =UNK_021D6944
- strh r0, [r1, #0x2]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020DB970: .word UNK_021D6944
-_020DB974: .word 0x05000001
diff --git a/arm9/asm/CTRDG_backup.s b/arm9/asm/CTRDG_backup.s
deleted file mode 100644
index e04344b4..00000000
--- a/arm9/asm/CTRDG_backup.s
+++ /dev/null
@@ -1,306 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern CTRDGi_EraseFlash4KBAT
- .extern CTRDGi_EraseFlash4KBAsyncAT
- .extern CTRDGi_EraseFlashChipAT
- .extern CTRDGi_EraseFlashChipAsyncAT
- .extern CTRDGi_EraseFlashChipAsyncLE
- .extern CTRDGi_EraseFlashChipAsyncMX
- .extern CTRDGi_EraseFlashChipLE
- .extern CTRDGi_EraseFlashChipMX
- .extern CTRDGi_EraseFlashSectorAT
- .extern CTRDGi_EraseFlashSectorAsyncAT
- .extern CTRDGi_EraseFlashSectorAsyncLE
- .extern CTRDGi_EraseFlashSectorAsyncMX
- .extern CTRDGi_EraseFlashSectorMX
- .extern CTRDGi_PollingSR1MCOMMON
- .extern CTRDGi_PollingSR512kCOMMON
- .extern CTRDGi_WriteFlash4KBAT
- .extern CTRDGi_WriteFlash4KBAsyncAT
- .extern CTRDGi_WriteFlashSectorAT
- .extern CTRDGi_WriteFlashSectorAsyncAT
- .extern CTRDGi_WriteFlashSectorAsyncLE
- .extern CTRDGi_WriteFlashSectorAsyncMX
- .extern CTRDGi_WriteFlashSectorLE
- .extern CTRDGi_WriteFlashSectorMX
- .extern CTRDGi_WriteFlashSectorAsyncMX5
- .extern CTRDGi_WriteFlashSectorMX5
- .extern UNK_021D6B14
- .extern UNK_021D6B30
- .extern UNK_021D6B28
- .extern UNK_021D6B1C
- .extern UNK_021D6B24
- .extern UNK_021D6B20
- .extern UNK_021D6B0C
- .extern UNK_021D6B34
- .extern UNK_021D6B2C
- .extern UNK_021D6B4C
- .extern UNK_021D6B18
-
- .section .rodata
-
- .global UNK_02103FE4
-UNK_02103FE4: ; 0x02103FE4
- .byte 0x14, 0x00, 0x00, 0x00
-
- .global UNK_02103FE8
-UNK_02103FE8: ; 0x02103FE8
- .word UNK_02104150
- .word UNK_0210408C
- .word UNK_0210418C
-
- .global UNK_02103FF4
-UNK_02103FF4: ; 0x02103FF4
- .word UNK_0210410C
- .word UNK_0210400C
- .word UNK_021041D0
- .word UNK_021040D0
-
- .global UNK_02104004
-UNK_02104004: ; 0x02104004
- .byte 0x0A, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, 0x00
-
- .global UNK_0210400C
-UNK_0210400C: ; 0x0210400C
- .word CTRDGi_WriteFlash4KBAT
- .word CTRDGi_EraseFlashChipAT
- .word CTRDGi_EraseFlash4KBAT
- .word CTRDGi_WriteFlash4KBAsyncAT
- .word CTRDGi_EraseFlashChipAsyncAT
- .word CTRDGi_EraseFlash4KBAsyncAT
- .word CTRDGi_PollingSR512kCOMMON
- .word UNK_02104004
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x3D, 0x00
-
- .global UNK_02104048
-UNK_02104048: ; 0x02104048
- .word CTRDGi_WriteFlashSectorAT
- .word CTRDGi_EraseFlashChipAT
- .word CTRDGi_EraseFlashSectorAT
- .word CTRDGi_WriteFlashSectorAsyncAT
- .word CTRDGi_EraseFlashChipAsyncAT
- .word CTRDGi_EraseFlashSectorAsyncAT
- .word CTRDGi_PollingSR512kCOMMON
- .word UNK_02104004
- .byte 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x3D, 0x00
-
- .global UNK_02104084
-UNK_02104084: ; 0x02104084
- .byte 0x0A, 0x00, 0x0A, 0x00, 0xD0, 0x07, 0x88, 0x13
-
- .global UNK_0210408C
-UNK_0210408C: ; 0x0210408C
- .word CTRDGi_WriteFlashSectorMX
- .word CTRDGi_EraseFlashChipMX
- .word CTRDGi_EraseFlashSectorMX
- .word CTRDGi_WriteFlashSectorAsyncMX
- .word CTRDGi_EraseFlashChipAsyncMX
- .word CTRDGi_EraseFlashSectorAsyncMX
- .word CTRDGi_PollingSR1MCOMMON
- .word UNK_02104084
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x00, 0x13, 0x00
-
- .global UNK_021040C8
-UNK_021040C8: ; 0x021040C8
- .byte 0x0A, 0x00, 0x0A, 0x00, 0x28, 0x00, 0xC8, 0x00
-
- .global UNK_021040D0
-UNK_021040D0: ; 0x021040D0
- .word CTRDGi_WriteFlashSectorLE
- .word CTRDGi_EraseFlashChipLE
- .word CTRDGi_EraseFlashSectorLE
- .word CTRDGi_WriteFlashSectorAsyncLE
- .word CTRDGi_EraseFlashChipAsyncLE
- .word CTRDGi_EraseFlashSectorAsyncLE
- .word CTRDGi_PollingSR512kCOMMON
- .word UNK_021040C8
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_0210410C
-UNK_0210410C: ; 0x0210410C
- .word CTRDGi_WriteFlashSectorLE
- .word CTRDGi_EraseFlashChipLE
- .word CTRDGi_EraseFlashSectorLE
- .word CTRDGi_WriteFlashSectorAsyncLE
- .word CTRDGi_EraseFlashChipAsyncLE
- .word CTRDGi_EraseFlashSectorAsyncLE
- .word CTRDGi_PollingSR512kCOMMON
- .word UNK_021040C8
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xD4, 0x00
-
- .global UNK_02104148
-UNK_02104148: ; 0x02104148
- .byte 0x0A, 0x00, 0x0A, 0x00, 0xD0, 0x07, 0xD0, 0x07
-
- .global UNK_02104150
-UNK_02104150: ; 0x02104150
- .word CTRDGi_WriteFlashSectorMX
- .word CTRDGi_EraseFlashChipMX
- .word CTRDGi_EraseFlashSectorMX
- .word CTRDGi_WriteFlashSectorAsyncMX
- .word CTRDGi_EraseFlashChipAsyncMX
- .word CTRDGi_EraseFlashSectorAsyncMX
- .word CTRDGi_PollingSR1MCOMMON
- .word UNK_02104148
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x09, 0x00
-
- .global UNK_0210418C
-UNK_0210418C: ; 0x0210418C
- .word CTRDGi_WriteFlashSectorMX
- .word CTRDGi_EraseFlashChipMX
- .word CTRDGi_EraseFlashSectorMX
- .word CTRDGi_WriteFlashSectorAsyncMX
- .word CTRDGi_EraseFlashChipAsyncMX
- .word CTRDGi_EraseFlashSectorAsyncMX
- .word CTRDGi_PollingSR1MCOMMON
- .word UNK_02104148
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_021041C8
-UNK_021041C8: ; 0x021041C8
- .byte 0x0A, 0x00, 0x0A, 0x00, 0xF4, 0x01, 0xF4, 0x01
-
- .global UNK_021041D0
-UNK_021041D0: ; 0x021041D0
- .word CTRDGi_WriteFlashSectorMX5
- .word CTRDGi_EraseFlashChipLE
- .word CTRDGi_EraseFlashSectorLE
- .word CTRDGi_WriteFlashSectorAsyncMX5
- .word CTRDGi_EraseFlashChipAsyncLE
- .word CTRDGi_EraseFlashSectorAsyncLE
- .word CTRDGi_PollingSR512kCOMMON
- .word UNK_021041C8
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x1B, 0x00
-
- .section .bss
-
- .text
-
- arm_func_start CTRDG_IdentifyAgbBackup
-CTRDG_IdentifyAgbBackup: ; 0x020DBD50
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- cmp r7, #0x1
- mov r0, #0x1
- bhi _020DBEAC
- bl OS_GetLockID
- ldr r1, _020DBED8 ; =UNK_021D6B0C
- strh r0, [r1, #0x0]
- ldrh r0, [r1, #0x0]
- bl OS_LockCartridge
- ldr r6, _020DBEDC ; =0x04000204
- ldr r1, _020DBEE0 ; =UNK_02103FE4
- ldrh r3, [r6, #0x0]
- ldrh r2, [r6, #0x0]
- ldr r0, _020DBEE4 ; =UNK_021D6B28
- and r4, r3, #0x3
- bic r2, r2, #0x3
- orr r2, r2, #0x3
- strh r2, [r6, #0x0]
- str r1, [r0, #0x0]
- bl CTRDGi_ReadFlashID
- ldr r2, _020DBEDC ; =0x04000204
- mov r6, r0
- ldrh r1, [r2, #0x0]
- cmp r7, #0x0
- ldreq r5, _020DBEE8 ; =UNK_02103FF4
- bic r1, r1, #0x3
- orr r1, r1, r4
- cmp r7, #0x1
- ldr r0, _020DBED8 ; =UNK_021D6B0C
- strh r1, [r2, #0x0]
- ldrh r0, [r0, #0x0]
- ldreq r5, _020DBEEC ; =UNK_02103FE8
- bl OS_UnlockCartridge
- ldr r2, [r5, #0x0]
- mov r0, #0x1
- ldrh r1, [r2, #0x38]
- cmp r1, #0x0
- beq _020DBE14
- and r3, r6, #0xff
-_020DBDF4:
- ldrh r1, [r2, #0x38]
- cmp r3, r1
- moveq r0, #0x0
- beq _020DBE14
- ldr r2, [r5, #0x4]!
- ldrh r1, [r2, #0x38]
- cmp r1, #0x0
- bne _020DBDF4
-_020DBE14:
- ldr r2, [r2, #0x0]
- ldr r1, _020DBEF0 ; =UNK_021D6B14
- ldr r3, _020DBEF4 ; =UNK_021D6B34
- str r2, [r1, #0x0]
- ldr r1, [r5, #0x0]
- ldr r2, _020DBEF8 ; =UNK_021D6B2C
- ldr r4, [r1, #0x4]
- ldr r1, _020DBEFC ; =UNK_021D6B18
- str r4, [r3, #0x0]
- ldr r3, [r5, #0x0]
- ldr r6, _020DBF00 ; =UNK_021D6B1C
- ldr r3, [r3, #0x8]
- ldr r4, _020DBF04 ; =UNK_021D6B30
- str r3, [r2, #0x0]
- ldr r2, [r5, #0x0]
- ldr r3, _020DBF08 ; =UNK_021D6B24
- ldr r7, [r2, #0xc]
- ldr r2, _020DBEE4 ; =UNK_021D6B28
- str r7, [r1, #0x0]
- ldr r7, [r5, #0x0]
- ldr r1, _020DBF0C ; =UNK_021D6B20
- ldr r7, [r7, #0x10]
- add sp, sp, #0x4
- str r7, [r6, #0x0]
- ldr r6, [r5, #0x0]
- ldr r6, [r6, #0x14]
- str r6, [r4, #0x0]
- ldr r4, [r5, #0x0]
- ldr r4, [r4, #0x18]
- str r4, [r3, #0x0]
- ldr r3, [r5, #0x0]
- ldr r3, [r3, #0x1c]
- str r3, [r2, #0x0]
- ldr r2, [r5, #0x0]
- add r2, r2, #0x20
- str r2, [r1, #0x0]
- ldmia sp!, {r4-r7,lr}
- bx lr
-_020DBEAC:
- cmp r7, #0x2
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r7,lr}
- bxne lr
- bl OS_GetLockID
- ldr r1, _020DBF10 ; =UNK_021D6B4C
- strh r0, [r1, #0x0]
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020DBED8: .word UNK_021D6B0C
-_020DBEDC: .word 0x04000204
-_020DBEE0: .word UNK_02103FE4
-_020DBEE4: .word UNK_021D6B28
-_020DBEE8: .word UNK_02103FF4
-_020DBEEC: .word UNK_02103FE8
-_020DBEF0: .word UNK_021D6B14
-_020DBEF4: .word UNK_021D6B34
-_020DBEF8: .word UNK_021D6B2C
-_020DBEFC: .word UNK_021D6B18
-_020DBF00: .word UNK_021D6B1C
-_020DBF04: .word UNK_021D6B30
-_020DBF08: .word UNK_021D6B24
-_020DBF0C: .word UNK_021D6B20
-_020DBF10: .word UNK_021D6B4C
diff --git a/arm9/asm/CTRDG_flash_AT29LV512.s b/arm9/asm/CTRDG_flash_AT29LV512_asm.s
index 33298e6c..7cfa90af 100644
--- a/arm9/asm/CTRDG_flash_AT29LV512.s
+++ b/arm9/asm/CTRDG_flash_AT29LV512_asm.s
@@ -1,13 +1,15 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_0210400C
- .extern UNK_021D6B20
- .extern UNK_021D6B24
- .extern UNK_021D6B0C
- .extern UNK_021D6B38
- .extern UNK_02104048
+ .extern CTRDGi_PollingSR512kCOMMON
+ .extern AgbFlash
+ .extern CTRDGi_PollingSR
+ .extern ctrdgi_flash_lock_id
.extern UNK_021D6B08
+ .extern CTRDGi_EraseFlashChipCoreAT
+ .extern CTRDGi_EraseFlashSectorCoreAT
+ .extern AT29LV512_org
+ .extern AT29LV512_lib
.text
@@ -170,7 +172,7 @@ CTRDGi_WriteFlash4KBCoreAT: ; 0x020DC780
ldrhs r0, _020DC85C ; =0x000080FF
ldmcsia sp!, {r4-r9,lr}
bxcs lr
- ldr r1, _020DC860 ; =UNK_0210400C
+ ldr r1, _020DC860 ; =AT29LV512_lib
mov r0, r0, lsl #0x15
ldr r1, [r1, #0x24]
ldr r4, _020DC864 ; =UNK_021D6B08
@@ -179,7 +181,7 @@ CTRDGi_WriteFlash4KBCoreAT: ; 0x020DC780
ldrh r0, [r4, #0x0]
cmp r0, #0x0
beq _020DC84C
- ldr r0, _020DC868 ; =UNK_02104048
+ ldr r0, _020DC868 ; =AT29LV512_org
ldr r6, [r0, #0x24]
mov r5, #0x2
_020DC7F4:
@@ -214,9 +216,9 @@ _020DC84C:
bx lr
.balign 4
_020DC85C: .word 0x000080FF
-_020DC860: .word UNK_0210400C
+_020DC860: .word AT29LV512_lib
_020DC864: .word UNK_021D6B08
-_020DC868: .word UNK_02104048
+_020DC868: .word AT29LV512_org
arm_func_start CTRDGi_WriteFlashSectorCoreAT
CTRDGi_WriteFlashSectorCoreAT: ; 0x020DC86C
@@ -228,19 +230,19 @@ CTRDGi_WriteFlashSectorCoreAT: ; 0x020DC86C
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DC984 ; =UNK_021D6B0C
+ ldr r0, _020DC984 ; =ctrdgi_flash_lock_id
ldr r1, [r5, #0x0]
ldrh r0, [r0, #0x0]
str r1, [r4, #0x0]
ldr r4, [sp, #0xc]
bl OS_LockCartridge
ldr r5, _020DC988 ; =0x04000204
- ldr r1, _020DC98C ; =UNK_021D6B20
+ ldr r1, _020DC98C ; =AgbFlash
ldrh r0, [r5, #0x0]
ldr r1, [r1, #0x0]
ldrh r2, [r5, #0x0]
ldr r3, [r1, #0x10]
- ldr r1, _020DC990 ; =UNK_02104048
+ ldr r1, _020DC990 ; =AT29LV512_org
bic r2, r2, #0x3
orr r2, r2, r3
strh r2, [r5, #0x0]
@@ -271,7 +273,7 @@ _020DC91C:
bne _020DC91C
_020DC92C:
ldr ip, _020DC994 ; =0x04000208
- ldr r3, _020DC9A0 ; =UNK_021D6B24
+ ldr r3, _020DC9A0 ; =CTRDGi_PollingSR
ldrh r0, [r12, #0x0]
sub r1, r1, #0x1
mov r0, #0x1
@@ -280,7 +282,7 @@ _020DC92C:
ldr r3, [r3, #0x0]
blx r3
ldr r3, _020DC988 ; =0x04000204
- ldr r1, _020DC984 ; =UNK_021D6B0C
+ ldr r1, _020DC984 ; =ctrdgi_flash_lock_id
ldrh r2, [r3, #0x0]
mov r4, r0
bic r0, r2, #0x3
@@ -293,14 +295,14 @@ _020DC92C:
ldmia sp!, {r4-r5,lr}
bx lr
.balign 4
-_020DC984: .word UNK_021D6B0C
+_020DC984: .word ctrdgi_flash_lock_id
_020DC988: .word 0x04000204
-_020DC98C: .word UNK_021D6B20
-_020DC990: .word UNK_02104048
+_020DC98C: .word AgbFlash
+_020DC990: .word AT29LV512_org
_020DC994: .word 0x04000208
_020DC998: .word 0x0A005555
_020DC99C: .word 0x0A002AAA
-_020DC9A0: .word UNK_021D6B24
+_020DC9A0: .word CTRDGi_PollingSR
arm_func_start CTRDGi_EraseFlash4KBCoreAT
CTRDGi_EraseFlash4KBCoreAT: ; 0x020DC9A4
@@ -354,158 +356,3 @@ _020DCA18:
bx lr
.balign 4
_020DCA54: .word 0x000080FF
-
- arm_func_start CTRDGi_EraseFlashSectorCoreAT
-CTRDGi_EraseFlashSectorCoreAT: ; 0x020DCA58
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x24
- mov r5, r0
- ldmia r5!, {r0-r3}
- add r4, sp, #0x0
- stmia r4!, {r0-r3}
- ldmia r5!, {r0-r3}
- stmia r4!, {r0-r3}
- ldr r0, [r5, #0x0]
- ldr r1, _020DCB80 ; =UNK_02104048
- str r0, [r4, #0x0]
- ldr r0, _020DCB84 ; =UNK_021D6B0C
- ldrh r2, [sp, #0x20]
- ldrh r1, [r1, #0x28]
- ldrh r0, [r0, #0x0]
- mov r1, r2, lsl r1
- add r5, r1, #0xa000000
- bl OS_LockCartridge
- ldr r4, _020DCB88 ; =0x04000204
- ldr r1, _020DCB8C ; =UNK_021D6B20
- ldrh r0, [r4, #0x0]
- ldr r2, [r1, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r2, [r2, #0x10]
- ldr r3, _020DCB90 ; =0x04000208
- bic r1, r1, #0x3
- orr r1, r1, r2
- strh r1, [r4, #0x0]
- ldrh r2, [r3, #0x0]
- mov r1, #0x0
- ldr r4, _020DCB94 ; =0x0A005555
- strh r1, [r3, #0x0]
- mov r3, #0xaa
- strb r3, [r4, #0x0]
- ldr r1, _020DCB98 ; =0x0A002AAA
- mov r3, #0x55
- strb r3, [r1, #0x0]
- mov r3, #0xa0
- strb r3, [r4, #0x0]
- ldr r1, _020DCB80 ; =UNK_02104048
- and r4, r0, #0x3
- ldr r1, [r1, #0x24]
- cmp r1, #0x0
- beq _020DCB18
- mov r0, #0xff
-_020DCB0C:
- strb r0, [r5], #0x1
- subs r1, r1, #0x1
- bne _020DCB0C
-_020DCB18:
- ldr ip, _020DCB90 ; =0x04000208
- ldr r3, _020DCB9C ; =UNK_021D6B24
- ldrh r0, [r12, #0x0]
- sub r1, r5, #0x1
- strh r2, [r12, #0x0]
- ldr r3, [r3, #0x0]
- mov r0, #0x1
- mov r2, #0xff
- blx r3
- ldr r2, _020DCB88 ; =0x04000204
- movs r5, r0
- ldrh r1, [r2, #0x0]
- andne r0, r5, #0xff00
- orrne r0, r0, #0x2
- movne r0, r0, lsl #0x10
- bic r1, r1, #0x3
- movne r5, r0, lsr #0x10
- orr r1, r1, r4
- ldr r0, _020DCB84 ; =UNK_021D6B0C
- strh r1, [r2, #0x0]
- ldrh r0, [r0, #0x0]
- bl OS_UnlockCartridge
- mov r0, r5
- add sp, sp, #0x24
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020DCB80: .word UNK_02104048
-_020DCB84: .word UNK_021D6B0C
-_020DCB88: .word 0x04000204
-_020DCB8C: .word UNK_021D6B20
-_020DCB90: .word 0x04000208
-_020DCB94: .word 0x0A005555
-_020DCB98: .word 0x0A002AAA
-_020DCB9C: .word UNK_021D6B24
-
- arm_func_start CTRDGi_EraseFlashChipCoreAT
-CTRDGi_EraseFlashChipCoreAT: ; 0x020DCBA0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r0, _020DCC7C ; =UNK_021D6B0C
- ldrh r0, [r0, #0x0]
- bl OS_LockCartridge
- ldr r4, _020DCC80 ; =0x04000204
- ldr r0, _020DCC84 ; =UNK_021D6B20
- ldrh r3, [r4, #0x0]
- ldr r0, [r0, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r2, [r0, #0x10]
- ldr r0, _020DCC88 ; =0x04000208
- bic r1, r1, #0x3
- orr r1, r1, r2
- strh r1, [r4, #0x0]
- ldrh r4, [r0, #0x0]
- mov r2, #0x0
- ldr r1, _020DCC8C ; =UNK_021D6B38
- strh r2, [r0, #0x0]
- ldr lr, _020DCC90 ; =0x0A005555
- str r4, [r1, #0x0]
- mov r5, #0xaa
- ldr r4, _020DCC94 ; =0x0A002AAA
- strb r5, [lr, #0x0]
- mov r12, #0x55
- strb r12, [r4, #0x0]
- mov r2, #0x80
- strb r2, [lr, #0x0]
- strb r5, [lr, #0x0]
- strb r12, [r4, #0x0]
- mov r2, #0x10
- strb r2, [lr, #0x0]
- ldrh r2, [r0, #0x0]
- ldr r2, [r1, #0x0]
- ldr r1, _020DCC98 ; =UNK_021D6B24
- strh r2, [r0, #0x0]
- ldr r4, [r1, #0x0]
- mov r0, #0x3
- mov r1, #0xa000000
- mov r2, #0xff
- and r5, r3, #0x3
- blx r4
- ldr r3, _020DCC80 ; =0x04000204
- ldr r1, _020DCC7C ; =UNK_021D6B0C
- ldrh r2, [r3, #0x0]
- mov r4, r0
- bic r0, r2, #0x3
- orr r0, r0, r5
- strh r0, [r3, #0x0]
- ldrh r0, [r1, #0x0]
- bl OS_UnlockCartridge
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020DCC7C: .word UNK_021D6B0C
-_020DCC80: .word 0x04000204
-_020DCC84: .word UNK_021D6B20
-_020DCC88: .word 0x04000208
-_020DCC8C: .word UNK_021D6B38
-_020DCC90: .word 0x0A005555
-_020DCC94: .word 0x0A002AAA
-_020DCC98: .word UNK_021D6B24
diff --git a/arm9/asm/CTRDG_flash_LE26FV10N1TS-10.s b/arm9/asm/CTRDG_flash_LE26FV10N1TS-10.s
new file mode 100644
index 00000000..518ac3d7
--- /dev/null
+++ b/arm9/asm/CTRDG_flash_LE26FV10N1TS-10.s
@@ -0,0 +1,29 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .extern CTRDGi_EraseFlashChipAsyncMX
+ .extern CTRDGi_EraseFlashChipMX
+ .extern CTRDGi_EraseFlashSectorAsyncMX
+ .extern CTRDGi_EraseFlashSectorMX
+ .extern CTRDGi_PollingSR1MCOMMON
+ .extern CTRDGi_WriteFlashSectorAsyncMX
+ .extern CTRDGi_WriteFlashSectorMX
+
+ .section .rodata
+
+ .global LeMaxTime
+LeMaxTime: ; 0x02104084
+ .short 10, 10, 2000, 5000
+
+ .global LE26FV10N1TS_10
+LE26FV10N1TS_10: ; 0x0210408C
+ .word CTRDGi_WriteFlashSectorMX
+ .word CTRDGi_EraseFlashChipMX
+ .word CTRDGi_EraseFlashSectorMX
+ .word CTRDGi_WriteFlashSectorAsyncMX
+ .word CTRDGi_EraseFlashChipAsyncMX
+ .word CTRDGi_EraseFlashSectorAsyncMX
+ .word CTRDGi_PollingSR1MCOMMON
+ .word LeMaxTime
+ .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x62, 0x00, 0x13, 0x00
diff --git a/arm9/asm/CTRDG_flash_LE39FW512.s b/arm9/asm/CTRDG_flash_LE39FW512.s
index 77071a6d..26e714c0 100644
--- a/arm9/asm/CTRDG_flash_LE39FW512.s
+++ b/arm9/asm/CTRDG_flash_LE39FW512.s
@@ -1,12 +1,45 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021D6B20
- .extern UNK_021D6B24
- .extern UNK_021D6B0C
- .extern UNK_021D6B38
+ .extern CTRDGi_PollingSR512kCOMMON
+ .extern AgbFlash
+ .extern CTRDGi_PollingSR
+ .extern ctrdgi_flash_lock_id
+ .extern ctrdgi_backup_irq
.extern UNK_021D6B08
+ .section .rodata
+
+ .global leMaxTime
+leMaxTime: ; 0x021040C8
+ .byte 0x0A, 0x00, 0x0A, 0x00, 0x28, 0x00, 0xC8, 0x00
+
+ .global defaultFlash512
+defaultFlash512: ; 0x021040D0
+ .word CTRDGi_WriteFlashSectorLE
+ .word CTRDGi_EraseFlashChipLE
+ .word CTRDGi_EraseFlashSectorLE
+ .word CTRDGi_WriteFlashSectorAsyncLE
+ .word CTRDGi_EraseFlashChipAsyncLE
+ .word CTRDGi_EraseFlashSectorAsyncLE
+ .word CTRDGi_PollingSR512kCOMMON
+ .word leMaxTime
+ .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global LE39FW512
+LE39FW512: ; 0x0210410C
+ .word CTRDGi_WriteFlashSectorLE
+ .word CTRDGi_EraseFlashChipLE
+ .word CTRDGi_EraseFlashSectorLE
+ .word CTRDGi_WriteFlashSectorAsyncLE
+ .word CTRDGi_EraseFlashChipAsyncLE
+ .word CTRDGi_EraseFlashSectorAsyncLE
+ .word CTRDGi_PollingSR512kCOMMON
+ .word leMaxTime
+ .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xD4, 0x00
+
.text
arm_func_start CTRDGi_WriteFlashSectorAsyncLE
@@ -95,13 +128,13 @@ CTRDGi_EraseFlashChipLE: ; 0x020DCD70
arm_func_start CTRDGi_VerifyFlashErase
CTRDGi_VerifyFlashErase: ; 0x020DCD94
stmdb sp!, {r4-r6,lr}
- ldr r2, _020DCE14 ; =UNK_021D6B0C
+ ldr r2, _020DCE14 ; =ctrdgi_flash_lock_id
mov r4, r0
ldrh r0, [r2, #0x0]
mov r5, r1
bl OS_LockCartridge
ldr ip, _020DCE18 ; =0x04000204
- ldr r0, _020DCE1C ; =UNK_021D6B20
+ ldr r0, _020DCE1C ; =AgbFlash
ldrh r3, [r12, #0x0]
ldr r0, [r0, #0x0]
ldrh r1, [r12, #0x0]
@@ -115,7 +148,7 @@ CTRDGi_VerifyFlashErase: ; 0x020DCD94
blx r5
cmp r0, #0x0
ldr r2, _020DCE18 ; =0x04000204
- ldr r0, _020DCE14 ; =UNK_021D6B0C
+ ldr r0, _020DCE14 ; =ctrdgi_flash_lock_id
ldrh r1, [r2, #0x0]
ldrne r4, _020DCE20 ; =0x00008004
bic r1, r1, #0x3
@@ -127,14 +160,14 @@ CTRDGi_VerifyFlashErase: ; 0x020DCD94
ldmia sp!, {r4-r6,lr}
bx lr
.balign 4
-_020DCE14: .word UNK_021D6B0C
+_020DCE14: .word ctrdgi_flash_lock_id
_020DCE18: .word 0x04000204
-_020DCE1C: .word UNK_021D6B20
+_020DCE1C: .word AgbFlash
_020DCE20: .word 0x00008004
arm_func_start CTRDGi_VerifyFlashCoreFF
CTRDGi_VerifyFlashCoreFF: ; 0x020DCE24
- ldr r1, _020DCE54 ; =UNK_021D6B20
+ ldr r1, _020DCE54 ; =AgbFlash
ldr r1, [r1, #0x0]
ldr r2, [r1, #0x4]
cmp r2, #0x0
@@ -149,7 +182,7 @@ _020DCE4C:
mov r0, r2
bx lr
.balign 4
-_020DCE54: .word UNK_021D6B20
+_020DCE54: .word AgbFlash
arm_func_start CTRDGi_WriteFlashSectorCoreLE
CTRDGi_WriteFlashSectorCoreLE: ; 0x020DCE58
@@ -170,7 +203,7 @@ CTRDGi_WriteFlashSectorCoreLE: ; 0x020DCE58
ldrhs r0, _020DD018 ; =0x000080FF
ldmcsia sp!, {r4-r9,lr}
bxcs lr
- ldr r0, _020DD01C ; =UNK_021D6B20
+ ldr r0, _020DD01C ; =AgbFlash
mov r9, #0x0
ldr r0, [r0, #0x0]
ldrh r0, [r0, #0x8]
@@ -214,11 +247,11 @@ _020DCF1C:
cmp r9, r5
bls _020DCF1C
_020DCF38:
- ldr r0, _020DD024 ; =UNK_021D6B0C
+ ldr r0, _020DD024 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r5, _020DD028 ; =0x04000204
- ldr r1, _020DD01C ; =UNK_021D6B20
+ ldr r1, _020DD01C ; =AgbFlash
ldrh r0, [r5, #0x0]
ldr r3, [r1, #0x0]
ldrh r2, [r5, #0x0]
@@ -233,7 +266,7 @@ _020DCF38:
mov r2, #0x0
strh r1, [r7, #0x0]
ldrh r3, [r9, #0x0]
- ldr r1, _020DD034 ; =UNK_021D6B38
+ ldr r1, _020DD034 ; =ctrdgi_backup_irq
and r5, r0, #0x3
strh r2, [r9, #0x0]
ldrh r0, [r7, #0x0]
@@ -256,13 +289,13 @@ _020DCFA0:
bne _020DCFA0
_020DCFD4:
ldr r3, _020DD030 ; =0x04000208
- ldr r0, _020DD034 ; =UNK_021D6B38
+ ldr r0, _020DD034 ; =ctrdgi_backup_irq
ldrh r1, [r3, #0x0]
ldr r0, [r0, #0x0]
ldr r2, _020DD028 ; =0x04000204
strh r0, [r3, #0x0]
ldrh r1, [r2, #0x0]
- ldr r0, _020DD024 ; =UNK_021D6B0C
+ ldr r0, _020DD024 ; =ctrdgi_flash_lock_id
bic r1, r1, #0x3
orr r1, r1, r5
strh r1, [r2, #0x0]
@@ -274,13 +307,13 @@ _020DCFD4:
bx lr
.balign 4
_020DD018: .word 0x000080FF
-_020DD01C: .word UNK_021D6B20
+_020DD01C: .word AgbFlash
_020DD020: .word CTRDGi_VerifyFlashCoreFF
-_020DD024: .word UNK_021D6B0C
+_020DD024: .word ctrdgi_flash_lock_id
_020DD028: .word 0x04000204
_020DD02C: .word UNK_021D6B08
_020DD030: .word 0x04000208
-_020DD034: .word UNK_021D6B38
+_020DD034: .word ctrdgi_backup_irq
arm_func_start CTRDGi_ProgramFlashByteLE
CTRDGi_ProgramFlashByteLE: ; 0x020DD038
@@ -296,7 +329,7 @@ CTRDGi_ProgramFlashByteLE: ; 0x020DD038
mov r0, #0xa0
strb r0, [r12, #0x0]
ldrb r2, [lr, #0x0]
- ldr r3, _020DD094 ; =UNK_021D6B24
+ ldr r3, _020DD094 ; =CTRDGi_PollingSR
mov r0, #0x1
strb r2, [r1, #0x0]
ldrb r2, [lr, #0x0]
@@ -308,7 +341,7 @@ CTRDGi_ProgramFlashByteLE: ; 0x020DD038
.balign 4
_020DD08C: .word 0x0A005555
_020DD090: .word 0x0A002AAA
-_020DD094: .word UNK_021D6B24
+_020DD094: .word CTRDGi_PollingSR
arm_func_start CTRDGi_EraseFlashSectorCoreLE
CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
@@ -328,11 +361,11 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
ldrhs r0, _020DD1B8 ; =0x000080FF
ldmcsia sp!, {r4-r6,lr}
bxcs lr
- ldr r0, _020DD1BC ; =UNK_021D6B0C
+ ldr r0, _020DD1BC ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r6, _020DD1C0 ; =0x04000204
- ldr r1, _020DD1C4 ; =UNK_021D6B20
+ ldr r1, _020DD1C4 ; =AgbFlash
ldrh r3, [r6, #0x0]
ldr r0, [r1, #0x0]
ldrh r2, [r6, #0x0]
@@ -345,7 +378,7 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
ldrh r5, [r0, #0x0]
ldrh r12, [r1, #0x8]
mov r1, #0x0
- ldr r2, _020DD1CC ; =UNK_021D6B38
+ ldr r2, _020DD1CC ; =ctrdgi_backup_irq
strh r1, [r0, #0x0]
mov r6, r4, lsl r12
ldr lr, _020DD1D0 ; =0x0A005555
@@ -364,7 +397,7 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
strb r4, [r1, #0x0]
ldrh r4, [r0, #0x0]
ldr r4, [r2, #0x0]
- ldr r2, _020DD1D8 ; =UNK_021D6B24
+ ldr r2, _020DD1D8 ; =CTRDGi_PollingSR
strh r4, [r0, #0x0]
ldr r4, [r2, #0x0]
mov r0, #0x2
@@ -372,7 +405,7 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
and r5, r3, #0x3
blx r4
ldr r3, _020DD1C0 ; =0x04000204
- ldr r1, _020DD1BC ; =UNK_021D6B0C
+ ldr r1, _020DD1BC ; =ctrdgi_flash_lock_id
ldrh r2, [r3, #0x0]
mov r4, r0
bic r0, r2, #0x3
@@ -386,24 +419,24 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
bx lr
.balign 4
_020DD1B8: .word 0x000080FF
-_020DD1BC: .word UNK_021D6B0C
+_020DD1BC: .word ctrdgi_flash_lock_id
_020DD1C0: .word 0x04000204
-_020DD1C4: .word UNK_021D6B20
+_020DD1C4: .word AgbFlash
_020DD1C8: .word 0x04000208
-_020DD1CC: .word UNK_021D6B38
+_020DD1CC: .word ctrdgi_backup_irq
_020DD1D0: .word 0x0A005555
_020DD1D4: .word 0x0A002AAA
-_020DD1D8: .word UNK_021D6B24
+_020DD1D8: .word CTRDGi_PollingSR
arm_func_start CTRDGi_EraseFlashChipCoreLE
CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
- ldr r0, _020DD2B8 ; =UNK_021D6B0C
+ ldr r0, _020DD2B8 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r4, _020DD2BC ; =0x04000204
- ldr r0, _020DD2C0 ; =UNK_021D6B20
+ ldr r0, _020DD2C0 ; =AgbFlash
ldrh r3, [r4, #0x0]
ldr r0, [r0, #0x0]
ldrh r1, [r4, #0x0]
@@ -414,7 +447,7 @@ CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
strh r1, [r4, #0x0]
ldrh r4, [r0, #0x0]
mov r2, #0x0
- ldr r1, _020DD2C8 ; =UNK_021D6B38
+ ldr r1, _020DD2C8 ; =ctrdgi_backup_irq
strh r2, [r0, #0x0]
ldr lr, _020DD2CC ; =0x0A005555
str r4, [r1, #0x0]
@@ -431,7 +464,7 @@ CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
strb r2, [lr, #0x0]
ldrh r2, [r0, #0x0]
ldr r2, [r1, #0x0]
- ldr r1, _020DD2D4 ; =UNK_021D6B24
+ ldr r1, _020DD2D4 ; =CTRDGi_PollingSR
strh r2, [r0, #0x0]
ldr r4, [r1, #0x0]
mov r0, #0x3
@@ -440,7 +473,7 @@ CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
and r5, r3, #0x3
blx r4
ldr r3, _020DD2BC ; =0x04000204
- ldr r1, _020DD2B8 ; =UNK_021D6B0C
+ ldr r1, _020DD2B8 ; =ctrdgi_flash_lock_id
ldrh r2, [r3, #0x0]
mov r4, r0
bic r0, r2, #0x3
@@ -453,11 +486,11 @@ CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
ldmia sp!, {r4-r5,lr}
bx lr
.balign 4
-_020DD2B8: .word UNK_021D6B0C
+_020DD2B8: .word ctrdgi_flash_lock_id
_020DD2BC: .word 0x04000204
-_020DD2C0: .word UNK_021D6B20
+_020DD2C0: .word AgbFlash
_020DD2C4: .word 0x04000208
-_020DD2C8: .word UNK_021D6B38
+_020DD2C8: .word ctrdgi_backup_irq
_020DD2CC: .word 0x0A005555
_020DD2D0: .word 0x0A002AAA
-_020DD2D4: .word UNK_021D6B24
+_020DD2D4: .word CTRDGi_PollingSR
diff --git a/arm9/asm/CTRDG_flash_MX29L010.s b/arm9/asm/CTRDG_flash_MX29L010.s
index 646121f3..13de7bd7 100644
--- a/arm9/asm/CTRDG_flash_MX29L010.s
+++ b/arm9/asm/CTRDG_flash_MX29L010.s
@@ -1,12 +1,45 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021D6B20
- .extern UNK_021D6B24
- .extern UNK_021D6B0C
- .extern UNK_021D6B38
+ .extern CTRDGi_PollingSR1MCOMMON
+ .extern AgbFlash
+ .extern CTRDGi_PollingSR
+ .extern ctrdgi_flash_lock_id
+ .extern ctrdgi_backup_irq
.extern UNK_021D6B08
+ .section .rodata
+
+ .global MxMaxTime
+MxMaxTime: ; 0x02104148
+ .short 10, 10, 2000, 2000
+
+ .global MX29L010
+MX29L010: ; 0x02104150
+ .word CTRDGi_WriteFlashSectorMX
+ .word CTRDGi_EraseFlashChipMX
+ .word CTRDGi_EraseFlashSectorMX
+ .word CTRDGi_WriteFlashSectorAsyncMX
+ .word CTRDGi_EraseFlashChipAsyncMX
+ .word CTRDGi_EraseFlashSectorAsyncMX
+ .word CTRDGi_PollingSR1MCOMMON
+ .word MxMaxTime
+ .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x09, 0x00
+
+ .global defaultFlash1M
+defaultFlash1M: ; 0x0210418C
+ .word CTRDGi_WriteFlashSectorMX
+ .word CTRDGi_EraseFlashChipMX
+ .word CTRDGi_EraseFlashSectorMX
+ .word CTRDGi_WriteFlashSectorAsyncMX
+ .word CTRDGi_EraseFlashChipAsyncMX
+ .word CTRDGi_EraseFlashSectorAsyncMX
+ .word CTRDGi_PollingSR1MCOMMON
+ .word MxMaxTime
+ .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
.text
arm_func_start CTRDGi_WriteFlashSectorAsyncMX
@@ -102,7 +135,7 @@ CTRDGi_WriteFlashSectorCoreMX: ; 0x020DD3D0
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DD540 ; =UNK_021D6B20
+ ldr r0, _020DD540 ; =AgbFlash
ldr r1, [r5, #0x0]
ldr r0, [r0, #0x0]
str r1, [r4, #0x0]
@@ -120,11 +153,11 @@ CTRDGi_WriteFlashSectorCoreMX: ; 0x020DD3D0
addne sp, sp, #0x28
ldmneia sp!, {r4-r8,lr}
bxne lr
- ldr r0, _020DD548 ; =UNK_021D6B0C
+ ldr r0, _020DD548 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r7, _020DD54C ; =0x04000204
- ldr r0, _020DD540 ; =UNK_021D6B20
+ ldr r0, _020DD540 ; =AgbFlash
ldrh r3, [r7, #0x0]
ldr r2, [r0, #0x0]
ldrh r1, [r7, #0x0]
@@ -136,7 +169,7 @@ CTRDGi_WriteFlashSectorCoreMX: ; 0x020DD3D0
strh r1, [r7, #0x0]
and r7, r3, #0x3
bl CTRDGi_SetFlashBankMx
- ldr r0, _020DD540 ; =UNK_021D6B20
+ ldr r0, _020DD540 ; =AgbFlash
and r1, r5, #0xf
ldr r3, [r0, #0x0]
mov r0, r1, lsl #0x10
@@ -151,7 +184,7 @@ CTRDGi_WriteFlashSectorCoreMX: ; 0x020DD3D0
mov r3, r5, lsl r3
strh r0, [r1, #0x0]
ldrh r1, [r8, #0x0]
- ldr r0, _020DD558 ; =UNK_021D6B38
+ ldr r0, _020DD558 ; =ctrdgi_backup_irq
add r5, r3, #0xa000000
str r2, [r0, #0x0]
cmp r1, #0x0
@@ -172,13 +205,13 @@ _020DD4C8:
bne _020DD4C8
_020DD4FC:
ldr r3, _020DD554 ; =0x04000208
- ldr r0, _020DD558 ; =UNK_021D6B38
+ ldr r0, _020DD558 ; =ctrdgi_backup_irq
ldrh r1, [r3, #0x0]
ldr r0, [r0, #0x0]
ldr r2, _020DD54C ; =0x04000204
strh r0, [r3, #0x0]
ldrh r1, [r2, #0x0]
- ldr r0, _020DD548 ; =UNK_021D6B0C
+ ldr r0, _020DD548 ; =ctrdgi_flash_lock_id
bic r1, r1, #0x3
orr r1, r1, r7
strh r1, [r2, #0x0]
@@ -189,13 +222,13 @@ _020DD4FC:
ldmia sp!, {r4-r8,lr}
bx lr
.balign 4
-_020DD540: .word UNK_021D6B20
+_020DD540: .word AgbFlash
_020DD544: .word 0x000080FF
-_020DD548: .word UNK_021D6B0C
+_020DD548: .word ctrdgi_flash_lock_id
_020DD54C: .word 0x04000204
_020DD550: .word UNK_021D6B08
_020DD554: .word 0x04000208
-_020DD558: .word UNK_021D6B38
+_020DD558: .word ctrdgi_backup_irq
arm_func_start CTRDGi_ProgramFlashByteMX
CTRDGi_ProgramFlashByteMX: ; 0x020DD55C
@@ -211,7 +244,7 @@ CTRDGi_ProgramFlashByteMX: ; 0x020DD55C
mov r0, #0xa0
strb r0, [r12, #0x0]
ldrb r2, [lr, #0x0]
- ldr r3, _020DD5B8 ; =UNK_021D6B24
+ ldr r3, _020DD5B8 ; =CTRDGi_PollingSR
mov r0, #0x1
strb r2, [r1, #0x0]
ldrb r2, [lr, #0x0]
@@ -223,7 +256,7 @@ CTRDGi_ProgramFlashByteMX: ; 0x020DD55C
.balign 4
_020DD5B0: .word 0x0A005555
_020DD5B4: .word 0x0A002AAA
-_020DD5B8: .word UNK_021D6B24
+_020DD5B8: .word CTRDGi_PollingSR
arm_func_start CTRDGi_EraseFlashSectorCoreMX
CTRDGi_EraseFlashSectorCoreMX: ; 0x020DD5BC
@@ -235,7 +268,7 @@ CTRDGi_EraseFlashSectorCoreMX: ; 0x020DD5BC
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DD748 ; =UNK_021D6B20
+ ldr r0, _020DD748 ; =AgbFlash
ldr r1, [r5, #0x0]
ldr r0, [r0, #0x0]
str r1, [r4, #0x0]
@@ -246,11 +279,11 @@ CTRDGi_EraseFlashSectorCoreMX: ; 0x020DD5BC
ldrhs r0, _020DD74C ; =0x000080FF
ldmcsia sp!, {r4-r11,lr}
bxcs lr
- ldr r0, _020DD750 ; =UNK_021D6B0C
+ ldr r0, _020DD750 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r5, _020DD754 ; =0x04000204
- ldr r0, _020DD748 ; =UNK_021D6B20
+ ldr r0, _020DD748 ; =AgbFlash
ldrh r3, [r5, #0x0]
ldr r2, [r0, #0x0]
ldrh r1, [r5, #0x0]
@@ -278,10 +311,10 @@ CTRDGi_EraseFlashSectorCoreMX: ; 0x020DD5BC
mov r4, #0x30
str r0, [sp, #0xc]
_020DD684:
- ldr r0, _020DD748 ; =UNK_021D6B20
+ ldr r0, _020DD748 ; =AgbFlash
ldrh r12, [r8, #0x0]
ldr r0, [r0, #0x0]
- ldr r3, _020DD75C ; =UNK_021D6B38
+ ldr r3, _020DD75C ; =ctrdgi_backup_irq
ldrh r1, [r0, #0x8]
ldr r0, [sp, #0x8]
ldr r2, [sp, #0xc]
@@ -300,10 +333,10 @@ _020DD684:
strb r6, [r3, #0x0]
strb r4, [r1, #0x0]
ldrh r3, [r8, #0x0]
- ldr r3, _020DD75C ; =UNK_021D6B38
+ ldr r3, _020DD75C ; =ctrdgi_backup_irq
ldr r3, [r3, #0x0]
strh r3, [r8, #0x0]
- ldr r3, _020DD768 ; =UNK_021D6B24
+ ldr r3, _020DD768 ; =CTRDGi_PollingSR
ldr r3, [r3, #0x0]
blx r3
str r0, [sp, #0x4]
@@ -316,7 +349,7 @@ _020DD684:
beq _020DD684
_020DD714:
ldr r2, _020DD754 ; =0x04000204
- ldr r1, _020DD750 ; =UNK_021D6B0C
+ ldr r1, _020DD750 ; =ctrdgi_flash_lock_id
ldrh r0, [r2, #0x0]
bic r3, r0, #0x3
ldr r0, [sp, #0x0]
@@ -329,25 +362,25 @@ _020DD714:
ldmia sp!, {r4-r11,lr}
bx lr
.balign 4
-_020DD748: .word UNK_021D6B20
+_020DD748: .word AgbFlash
_020DD74C: .word 0x000080FF
-_020DD750: .word UNK_021D6B0C
+_020DD750: .word ctrdgi_flash_lock_id
_020DD754: .word 0x04000204
_020DD758: .word 0x04000208
-_020DD75C: .word UNK_021D6B38
+_020DD75C: .word ctrdgi_backup_irq
_020DD760: .word 0x0A005555
_020DD764: .word 0x0A002AAA
-_020DD768: .word UNK_021D6B24
+_020DD768: .word CTRDGi_PollingSR
arm_func_start CTRDGi_EraseFlashChipCoreMX
CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
- ldr r0, _020DD848 ; =UNK_021D6B0C
+ ldr r0, _020DD848 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r4, _020DD84C ; =0x04000204
- ldr r0, _020DD850 ; =UNK_021D6B20
+ ldr r0, _020DD850 ; =AgbFlash
ldrh r3, [r4, #0x0]
ldr r0, [r0, #0x0]
ldrh r1, [r4, #0x0]
@@ -358,7 +391,7 @@ CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
strh r1, [r4, #0x0]
ldrh r4, [r0, #0x0]
mov r2, #0x0
- ldr r1, _020DD858 ; =UNK_021D6B38
+ ldr r1, _020DD858 ; =ctrdgi_backup_irq
strh r2, [r0, #0x0]
ldr lr, _020DD85C ; =0x0A005555
str r4, [r1, #0x0]
@@ -375,7 +408,7 @@ CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
strb r2, [lr, #0x0]
ldrh r2, [r0, #0x0]
ldr r2, [r1, #0x0]
- ldr r1, _020DD864 ; =UNK_021D6B24
+ ldr r1, _020DD864 ; =CTRDGi_PollingSR
strh r2, [r0, #0x0]
ldr r4, [r1, #0x0]
mov r0, #0x3
@@ -384,7 +417,7 @@ CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
and r5, r3, #0x3
blx r4
ldr r3, _020DD84C ; =0x04000204
- ldr r1, _020DD848 ; =UNK_021D6B0C
+ ldr r1, _020DD848 ; =ctrdgi_flash_lock_id
ldrh r2, [r3, #0x0]
mov r4, r0
bic r0, r2, #0x3
@@ -397,11 +430,11 @@ CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
ldmia sp!, {r4-r5,lr}
bx lr
.balign 4
-_020DD848: .word UNK_021D6B0C
+_020DD848: .word ctrdgi_flash_lock_id
_020DD84C: .word 0x04000204
-_020DD850: .word UNK_021D6B20
+_020DD850: .word AgbFlash
_020DD854: .word 0x04000208
-_020DD858: .word UNK_021D6B38
+_020DD858: .word ctrdgi_backup_irq
_020DD85C: .word 0x0A005555
_020DD860: .word 0x0A002AAA
-_020DD864: .word UNK_021D6B24
+_020DD864: .word CTRDGi_PollingSR
diff --git a/arm9/asm/CTRDG_flash_MX29L512.s b/arm9/asm/CTRDG_flash_MX29L512.s
index f075c9f0..eac57f63 100644
--- a/arm9/asm/CTRDG_flash_MX29L512.s
+++ b/arm9/asm/CTRDG_flash_MX29L512.s
@@ -1,9 +1,32 @@
.include "asm/macros.inc"
.include "global.inc"
+ .extern CTRDGi_EraseFlashChipAsyncLE
+ .extern CTRDGi_EraseFlashChipLE
+ .extern CTRDGi_EraseFlashSectorAsyncLE
+ .extern CTRDGi_PollingSR512kCOMMON
.extern UNK_021D6B08
- .extern UNK_021D6B20
- .extern UNK_021D6B0C
+ .extern AgbFlash
+ .extern ctrdgi_flash_lock_id
+
+ .section .rodata
+
+ .global PaMaxTime
+PaMaxTime: ; 0x021041C8
+ .byte 0x0A, 0x00, 0x0A, 0x00, 0xF4, 0x01, 0xF4, 0x01
+
+ .global MN63F805MNP
+MN63F805MNP: ; 0x021041D0
+ .word CTRDGi_WriteFlashSectorMX5
+ .word CTRDGi_EraseFlashChipLE
+ .word CTRDGi_EraseFlashSectorLE
+ .word CTRDGi_WriteFlashSectorAsyncMX5
+ .word CTRDGi_EraseFlashChipAsyncLE
+ .word CTRDGi_EraseFlashSectorAsyncLE
+ .word CTRDGi_PollingSR512kCOMMON
+ .word PaMaxTime
+ .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, 0x1B, 0x00
.text
@@ -46,7 +69,7 @@ CTRDGi_WriteFlashSectorCoreMX5: ; 0x020DD8C0
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DD9E8 ; =UNK_021D6B20
+ ldr r0, _020DD9E8 ; =AgbFlash
ldr r1, [r5, #0x0]
ldr r0, [r0, #0x0]
str r1, [r4, #0x0]
@@ -64,11 +87,11 @@ CTRDGi_WriteFlashSectorCoreMX5: ; 0x020DD8C0
addne sp, sp, #0x28
ldmneia sp!, {r4-r8,lr}
bxne lr
- ldr r0, _020DD9F0 ; =UNK_021D6B0C
+ ldr r0, _020DD9F0 ; =ctrdgi_flash_lock_id
ldrh r0, [r0, #0x0]
bl OS_LockCartridge
ldr r7, _020DD9F4 ; =0x04000204
- ldr r0, _020DD9E8 ; =UNK_021D6B20
+ ldr r0, _020DD9E8 ; =AgbFlash
ldrh r3, [r7, #0x0]
ldr r2, [r0, #0x0]
ldrh r1, [r7, #0x0]
@@ -103,7 +126,7 @@ _020DD984:
bne _020DD984
_020DD9B8:
ldr r2, _020DD9F4 ; =0x04000204
- ldr r0, _020DD9F0 ; =UNK_021D6B0C
+ ldr r0, _020DD9F0 ; =ctrdgi_flash_lock_id
ldrh r1, [r2, #0x0]
bic r1, r1, #0x3
orr r1, r1, r7
@@ -115,8 +138,8 @@ _020DD9B8:
ldmia sp!, {r4-r8,lr}
bx lr
.balign 4
-_020DD9E8: .word UNK_021D6B20
+_020DD9E8: .word AgbFlash
_020DD9EC: .word 0x000080FF
-_020DD9F0: .word UNK_021D6B0C
+_020DD9F0: .word ctrdgi_flash_lock_id
_020DD9F4: .word 0x04000204
_020DD9F8: .word UNK_021D6B08
diff --git a/arm9/asm/CTRDG_flash_common.s b/arm9/asm/CTRDG_flash_common.s
index aaef15fb..ed1dd88e 100644
--- a/arm9/asm/CTRDG_flash_common.s
+++ b/arm9/asm/CTRDG_flash_common.s
@@ -7,52 +7,52 @@
UNK_021D6B08: ; 0x021D6B08
.space 0x4
- .global UNK_021D6B0C
-UNK_021D6B0C: ; 0x021D6B0C
+ .global ctrdgi_flash_lock_id
+ctrdgi_flash_lock_id: ; 0x021D6B0C
.space 0x4
.global UNK_021D6B10
UNK_021D6B10: ; 0x021D6B10
.space 0x4
- .global UNK_021D6B14
-UNK_021D6B14: ; 0x021D6B14
+ .global CTRDGi_WriteAgbFlashSector
+CTRDGi_WriteAgbFlashSector: ; 0x021D6B14
.space 0x4
- .global UNK_021D6B18
-UNK_021D6B18: ; 0x021D6B18
+ .global CTRDGi_WriteAgbFlashSectorAsync
+CTRDGi_WriteAgbFlashSectorAsync: ; 0x021D6B18
.space 0x4
- .global UNK_021D6B1C
-UNK_021D6B1C: ; 0x021D6B1C
+ .global CTRDGi_EraseAgbFlashChipAsync
+CTRDGi_EraseAgbFlashChipAsync: ; 0x021D6B1C
.space 0x4
- .global UNK_021D6B20
-UNK_021D6B20: ; 0x021D6B20
+ .global AgbFlash
+AgbFlash: ; 0x021D6B20
.space 0x4
- .global UNK_021D6B24
-UNK_021D6B24: ; 0x021D6B24
+ .global CTRDGi_PollingSR
+CTRDGi_PollingSR: ; 0x021D6B24
.space 0x4
- .global UNK_021D6B28
-UNK_021D6B28: ; 0x021D6B28
+ .global ctrdgi_fl_maxtime
+ctrdgi_fl_maxtime: ; 0x021D6B28
.space 0x4
- .global UNK_021D6B2C
-UNK_021D6B2C: ; 0x021D6B2C
+ .global CTRDGi_EraseAgbFlashSector
+CTRDGi_EraseAgbFlashSector: ; 0x021D6B2C
.space 0x4
- .global UNK_021D6B30
-UNK_021D6B30: ; 0x021D6B30
+ .global CTRDGi_EraseAgbFlashSectorAsync
+CTRDGi_EraseAgbFlashSectorAsync: ; 0x021D6B30
.space 0x4
- .global UNK_021D6B34
-UNK_021D6B34: ; 0x021D6B34
+ .global CTRDGi_EraseAgbFlashChip
+CTRDGi_EraseAgbFlashChip: ; 0x021D6B34
.space 0x4
- .global UNK_021D6B38
-UNK_021D6B38: ; 0x021D6B38
+ .global ctrdgi_backup_irq
+ctrdgi_backup_irq: ; 0x021D6B38
.space 0x4
.global UNK_021D6B3C
@@ -63,8 +63,8 @@ UNK_021D6B3C: ; 0x021D6B3C
UNK_021D6B44: ; 0x021D6B44
.space 0x8
- .global UNK_021D6B4C
-UNK_021D6B4C: ; 0x021D6B4C
+ .global ctrdgi_sram_lock_id
+ctrdgi_sram_lock_id: ; 0x021D6B4C
.space 0x4
.text
@@ -103,14 +103,14 @@ CTRDG_VerifyAgbFlash:
CTRDG_WriteAgbFlashSector:
stmdb sp!, {lr}
sub sp, sp, #0x4
- ldr r2, _020DBF90 ; =UNK_021D6B14
+ ldr r2, _020DBF90 ; =CTRDGi_WriteAgbFlashSector
ldr r2, [r2, #0x0]
blx r2
add sp, sp, #0x4
ldmia sp!, {lr}
bx lr
.balign 4
-_020DBF90: .word UNK_021D6B14
+_020DBF90: .word CTRDGi_WriteAgbFlashSector
arm_func_start CTRDG_ReadAgbFlash
CTRDG_ReadAgbFlash: ; 0x020DBF94
@@ -178,7 +178,7 @@ CTRDGi_VerifyAgbFlashCore: ; 0x020DC04C
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DC128 ; =UNK_021D6B0C
+ ldr r0, _020DC128 ; =ctrdgi_flash_lock_id
ldr r1, [r5, #0x0]
ldrh r0, [r0, #0x0]
str r1, [r4, #0x0]
@@ -187,7 +187,7 @@ CTRDGi_VerifyAgbFlashCore: ; 0x020DC04C
ldr r4, [sp, #0x18]
bl OS_LockCartridge
ldr r3, _020DC12C ; =0x04000204
- ldr r0, _020DC130 ; =UNK_021D6B20
+ ldr r0, _020DC130 ; =AgbFlash
ldrh r2, [r3, #0x0]
ldrh r1, [r3, #0x0]
and r7, r2, #0x3
@@ -205,7 +205,7 @@ CTRDGi_VerifyAgbFlashCore: ; 0x020DC04C
mov r0, r0, lsl #0x10
mov r6, r0, lsr #0x10
_020DC0D4:
- ldr r1, _020DC130 ; =UNK_021D6B20
+ ldr r1, _020DC130 ; =AgbFlash
mov r0, r5
ldr r1, [r1, #0x0]
mov r2, r4
@@ -214,7 +214,7 @@ _020DC0D4:
add r1, r1, #0xa000000
bl CTRDGi_VerifyFlashSectorCore
ldr r3, _020DC12C ; =0x04000204
- ldr r1, _020DC128 ; =UNK_021D6B0C
+ ldr r1, _020DC128 ; =ctrdgi_flash_lock_id
ldrh r2, [r3, #0x0]
mov r4, r0
bic r0, r2, #0x3
@@ -227,9 +227,9 @@ _020DC0D4:
ldmia sp!, {r4-r7,lr}
bx lr
.balign 4
-_020DC128: .word UNK_021D6B0C
+_020DC128: .word ctrdgi_flash_lock_id
_020DC12C: .word 0x04000204
-_020DC130: .word UNK_021D6B20
+_020DC130: .word AgbFlash
arm_func_start CTRDGi_VerifyFlashSectorCore
CTRDGi_VerifyFlashSectorCore: ; 0x020DC134
@@ -259,7 +259,7 @@ CTRDGi_ReadAgbFlashCore: ; 0x020DC168
stmia r4!, {r0-r3}
ldmia r5!, {r0-r3}
stmia r4!, {r0-r3}
- ldr r0, _020DC25C ; =UNK_021D6B0C
+ ldr r0, _020DC25C ; =ctrdgi_flash_lock_id
ldr r1, [r5, #0x0]
ldrh r0, [r0, #0x0]
str r1, [r4, #0x0]
@@ -269,7 +269,7 @@ CTRDGi_ReadAgbFlashCore: ; 0x020DC168
ldr r4, [sp, #0x18]
bl OS_LockCartridge
ldr r3, _020DC260 ; =0x04000204
- ldr r0, _020DC264 ; =UNK_021D6B20
+ ldr r0, _020DC264 ; =AgbFlash
ldrh r2, [r3, #0x0]
ldrh r1, [r3, #0x0]
and r8, r2, #0x3
@@ -287,7 +287,7 @@ CTRDGi_ReadAgbFlashCore: ; 0x020DC168
mov r0, r0, lsl #0x10
mov r7, r0, lsr #0x10
_020DC1F4:
- ldr r0, _020DC264 ; =UNK_021D6B20
+ ldr r0, _020DC264 ; =AgbFlash
cmp r4, #0x0
ldr r0, [r0, #0x0]
sub r4, r4, #0x1
@@ -304,7 +304,7 @@ _020DC218:
bne _020DC218
_020DC22C:
ldr r2, _020DC260 ; =0x04000204
- ldr r0, _020DC25C ; =UNK_021D6B0C
+ ldr r0, _020DC25C ; =ctrdgi_flash_lock_id
ldrh r1, [r2, #0x0]
bic r1, r1, #0x3
orr r1, r1, r8
@@ -316,9 +316,9 @@ _020DC22C:
ldmia sp!, {r4-r8,lr}
bx lr
.balign 4
-_020DC25C: .word UNK_021D6B0C
+_020DC25C: .word ctrdgi_flash_lock_id
_020DC260: .word 0x04000204
-_020DC264: .word UNK_021D6B20
+_020DC264: .word AgbFlash
arm_func_start CTRDGi_PollingSR1MCOMMON
CTRDGi_PollingSR1MCOMMON: ; 0x020DC268
@@ -398,7 +398,7 @@ _020DC33C:
_020DC360: ; 0x020DC360
cmp r7, r0
beq _020DC390
- ldr r0, _020DC3AC ; =UNK_021D6B20
+ ldr r0, _020DC3AC ; =AgbFlash
ldr r0, [r0, #0x0]
ldrh r0, [r0, #0x18]
cmp r0, #0xc2
@@ -418,7 +418,7 @@ _020DC394: ; 0x020DC394
bx lr
.balign 4
_020DC3A8: .word UNK_021D6B10
-_020DC3AC: .word UNK_021D6B20
+_020DC3AC: .word AgbFlash
_020DC3B0: .word 0x0A005555
arm_func_start CTRDGi_ReadSrFunc
@@ -463,7 +463,7 @@ _020DC42C: .word UNK_021D6B10
StartFlashTimer: ; 0x020DC430
stmdb sp!, {lr}
sub sp, sp, #0x4
- ldr r1, _020DC47C ; =UNK_021D6B28
+ ldr r1, _020DC47C ; =ctrdgi_fl_maxtime
ldr r2, _020DC480 ; =UNK_021D6B10
mov r3, #0x0
ldr r1, [r1, #0x0]
@@ -481,7 +481,7 @@ StartFlashTimer: ; 0x020DC430
ldmia sp!, {lr}
bx lr
.balign 4
-_020DC47C: .word UNK_021D6B28
+_020DC47C: .word ctrdgi_fl_maxtime
_020DC480: .word UNK_021D6B10
_020DC484: .word UNK_021D6B3C
_020DC488: .word UNK_021D6B44
@@ -493,7 +493,7 @@ CTRDGi_ReadFlashID: ; 0x020DC48C
ldr r5, _020DC590 ; =0x04000208
mov r0, #0x0
ldrh r2, [r5, #0x0]
- ldr r1, _020DC594 ; =UNK_021D6B38
+ ldr r1, _020DC594 ; =ctrdgi_backup_irq
ldr r4, _020DC598 ; =0x0A005555
strh r0, [r5, #0x0]
str r2, [r1, #0x0]
@@ -527,7 +527,7 @@ _020DC4FC:
orr r4, r0, r4, lsr #0x10
ldrh r2, [r12, #0x0]
mov r0, #0x0
- ldr r1, _020DC594 ; =UNK_021D6B38
+ ldr r1, _020DC594 ; =ctrdgi_backup_irq
strh r0, [r12, #0x0]
ldr r5, _020DC598 ; =0x0A005555
str r2, [r1, #0x0]
@@ -559,7 +559,7 @@ _020DC580:
bx lr
.balign 4
_020DC590: .word 0x04000208
-_020DC594: .word UNK_021D6B38
+_020DC594: .word ctrdgi_backup_irq
_020DC598: .word 0x0A005555
_020DC59C: .word 0x0A002AAA
_020DC5A0: .word UNK_021D6B10
diff --git a/arm9/asm/CTRDG_proc.s b/arm9/asm/CTRDG_proc.s
index 3351aa2b..f9e981d0 100644
--- a/arm9/asm/CTRDG_proc.s
+++ b/arm9/asm/CTRDG_proc.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021D6944
+ .extern CTRDGi_Work
.section .bss
@@ -104,7 +104,7 @@ CTRDGi_CallbackForInitModuleInfo: ; 0x020DBA2C
sub sp, sp, #0x4
and r0, r1, #0x3f
cmp r0, #0x1
- ldreq r0, _020DBA64 ; =UNK_021D6944
+ ldreq r0, _020DBA64 ; =CTRDGi_Work
moveq r1, #0x1
streqh r1, [r0, #0x0]
addeq sp, sp, #0x4
@@ -115,7 +115,7 @@ CTRDGi_CallbackForInitModuleInfo: ; 0x020DBA2C
ldmia sp!, {lr}
bx lr
.balign 4
-_020DBA64: .word UNK_021D6944
+_020DBA64: .word CTRDGi_Work
arm_func_start CTRDGi_InitModuleInfo
CTRDGi_InitModuleInfo: ; 0x020DBA68
@@ -140,7 +140,7 @@ CTRDGi_InitModuleInfo: ; 0x020DBA68
ldr r3, _020DBC58 ; =0x04000208
mov r2, #0x1
ldrh r4, [r3, #0x0]
- ldr r1, _020DBC5C ; =UNK_021D6944
+ ldr r1, _020DBC5C ; =CTRDGi_Work
mov r6, r0
strh r2, [r3, #0x0]
ldrh r0, [r1, #0x2]
@@ -173,7 +173,7 @@ CTRDGi_InitModuleInfo: ; 0x020DBA68
orr r1, r1, r5, lsl #0xf
strh r1, [r2, #0x0]
bl CTRDGi_RestoreAccessCycle
- ldr r0, _020DBC5C ; =UNK_021D6944
+ ldr r0, _020DBC5C ; =CTRDGi_Work
add r1, sp, #0x0
ldrh r0, [r0, #0x2]
bl CTRDGi_UnlockByProcessor
@@ -227,7 +227,7 @@ _020DBBDC:
mov r0, r0, lsl #0x6
orr r0, r0, #0x1
bl CTRDGi_SendtoPxi
- ldr r5, _020DBC5C ; =UNK_021D6944
+ ldr r5, _020DBC5C ; =CTRDGi_Work
ldrh r0, [r5, #0x0]
cmp r0, #0x1
beq _020DBC30
@@ -251,7 +251,7 @@ _020DBC30:
_020DBC50: .word UNK_021D6948
_020DBC54: .word 0x04000300
_020DBC58: .word 0x04000208
-_020DBC5C: .word UNK_021D6944
+_020DBC5C: .word CTRDGi_Work
_020DBC60: .word 0x04000204
_020DBC64: .word UNK_021D6960
_020DBC68: .word 0x08000080
diff --git a/arm9/asm/PXI_fifo.s b/arm9/asm/PXI_fifo.s
deleted file mode 100644
index c1980dea..00000000
--- a/arm9/asm/PXI_fifo.s
+++ /dev/null
@@ -1,269 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .bss
-
- .global UNK_021D5364
-UNK_021D5364: ; 0x021D5364
- .space 0x4
-
- .global UNK_021D5368
-UNK_021D5368: ; 0x021D5368
- .space 0x80
-
- .text
-
- arm_func_start PXIi_HandlerRecvFifoNotEmpty
-PXIi_HandlerRecvFifoNotEmpty: ; 0x020CFBBC
- stmdb sp!, {r4-r10,lr}
- sub sp, sp, #0x8
- ldr sl, _020CFCD4 ; =0x04000184
- ldr r5, _020CFCD8 ; =UNK_021D5368
- ldr r4, _020CFCDC ; =0x04000188
- mov r7, #0x4100000
- mov r6, #0x0
- mvn r8, #0x3
- mvn r9, #0x2
-_020CFBE0:
- ldrh r0, [r10, #0x0]
- ands r0, r0, #0x4000
- ldrneh r0, [r10, #0x0]
- movne r1, r9
- orrne r0, r0, #0xc000
- strneh r0, [r10, #0x0]
- bne _020CFC28
- bl OS_DisableInterrupts
- ldrh r1, [r10, #0x0]
- ands r1, r1, #0x100
- beq _020CFC18
- bl OS_RestoreInterrupts
- mov r1, r8
- b _020CFC28
-_020CFC18:
- ldr r1, [r7, #0x0]
- str r1, [sp, #0x0]
- bl OS_RestoreInterrupts
- mov r1, r6
-_020CFC28:
- cmp r1, r8
- addeq sp, sp, #0x8
- ldmeqia sp!, {r4-r10,lr}
- bxeq lr
- mvn r0, #0x2
- cmp r1, r0
- beq _020CFBE0
- ldr r1, [sp, #0x0]
- mov r0, r1, lsl #0x1b
- movs r0, r0, lsr #0x1b
- beq _020CFBE0
- ldr r3, [r5, r0, lsl #0x2]
- cmp r3, #0x0
- beq _020CFC74
- mov r2, r1, lsl #0x1a
- mov r1, r1, lsr #0x6
- mov r2, r2, lsr #0x1f
- blx r3
- b _020CFBE0
-_020CFC74:
- mov r0, r1, lsl #0x1a
- movs r0, r0, lsr #0x1f
- bne _020CFBE0
- orr r0, r1, #0x20
- str r0, [sp, #0x0]
- ldrh r0, [r10, #0x0]
- ands r0, r0, #0x4000
- ldrneh r0, [r10, #0x0]
- orrne r0, r0, #0xc000
- strneh r0, [r10, #0x0]
- bne _020CFBE0
- bl OS_DisableInterrupts
- ldrh r1, [r10, #0x0]
- ands r1, r1, #0x2
- beq _020CFCB8
- bl OS_RestoreInterrupts
- b _020CFBE0
-_020CFCB8:
- ldr r1, [sp, #0x0]
- str r1, [r4, #0x0]
- bl OS_RestoreInterrupts
- b _020CFBE0
-_020CFCC8:
- add sp, sp, #0x8
- ldmia sp!, {r4-r10, lr}
- bx lr
-_020CFCD4: .word 0x04000184
-_020CFCD8: .word UNK_021D5368
-_020CFCDC: .word 0x04000188
-
- arm_func_start PXI_SendWordByFifo
-PXI_SendWordByFifo:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [sp, #0x0]
- and r0, r0, #0x1f
- bic r3, r3, #0x1f
- orr r12, r3, r0
- bic r3, r12, #0x20
- and r0, r2, #0x1
- orr r3, r3, r0, lsl #0x5
- str r12, [sp, #0x0]
- and r2, r3, #0x3f
- bic r0, r1, #0xfc000000
- orr r0, r2, r0, lsl #0x6
- str r3, [sp, #0x0]
- ldr r2, _020CFD8C ; =0x04000184
- str r0, [sp, #0x0]
- ldrh r0, [r2, #0x0]
- ands r0, r0, #0x4000
- ldrneh r1, [r2, #0x0]
- addne sp, sp, #0x4
- mvnne r0, #0x0
- orrne r1, r1, #0xc000
- strneh r1, [r2, #0x0]
- ldmneia sp!, {lr}
- bxne lr
- bl OS_DisableInterrupts
- ldr r1, _020CFD8C ; =0x04000184
- ldrh r1, [r1, #0x0]
- ands r1, r1, #0x2
- beq _020CFD6C
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- mvn r0, #0x1
- ldmia sp!, {lr}
- bx lr
-_020CFD6C:
- ldr r2, [sp, #0x0]
- ldr r1, _020CFD90 ; =0x04000188
- str r2, [r1, #0x0]
- bl OS_RestoreInterrupts
-_020CFD7C:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmfd sp!, {lr}
- bx lr
-_020CFD8C: .word 0x04000184
-_020CFD90: .word 0x04000188
-
- arm_func_start PXI_IsCallbackReady
-PXI_IsCallbackReady:
- ldr r2, _020CFDB8 ; =0x027FFC00
- mov r3, #0x1
- add r1, r2, r1, lsl #0x2
- mov r2, r3, lsl r0
- ldr r0, [r1, #0x388]
- ands r0, r2, r0
- moveq r3, #0x0
- mov r0, r3
- bx lr
- .balign 4
-_020CFDB8: .word 0x027FFC00
-
- arm_func_start PXI_SetFifoRecvCallback
-PXI_SetFifoRecvCallback: ; 0x020CFDBC
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r0
- mov r5, r1
- bl OS_DisableInterrupts
- ldr r1, _020CFE20 ; =UNK_021D5368
- cmp r5, #0x0
- str r5, [r1, r4, lsl #0x2]
- beq _020CFDF8
- ldr r3, _020CFE24 ; =0x027FFC00
- mov r1, #0x1
- ldr r2, [r3, #0x388]
- orr r1, r2, r1, lsl r4
- str r1, [r3, #0x388]
- b _020CFE10
-_020CFDF8:
- ldr r3, _020CFE24 ; =0x027FFC00
- mov r1, #0x1
- mvn r1, r1, lsl r4
- ldr r2, [r3, #0x388]
- and r1, r2, r1
- str r1, [r3, #0x388]
-_020CFE10:
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020CFE20: .word UNK_021D5368
-_020CFE24: .word 0x027FFC00
-
- arm_func_start PXI_InitFifo
-PXI_InitFifo: ; 0x020CFE28
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- bl OS_DisableInterrupts
- ldr r1, _020CFF18 ; =UNK_021D5364
- mov r4, r0
- ldrh r0, [r1, #0x0]
- cmp r0, #0x0
- bne _020CFF04
- mov r2, #0x1
- ldr r0, _020CFF1C ; =0x027FFC00
- strh r2, [r1, #0x0]
- mov r2, #0x0
- str r2, [r0, #0x388]
- ldr r0, _020CFF20 ; =UNK_021D5368
- mov r1, r2
-_020CFE64:
- str r1, [r0, r2, lsl #0x2]
- add r2, r2, #0x1
- cmp r2, #0x20
- blt _020CFE64
- ldr r2, _020CFF24 ; =0x0000C408
- ldr r1, _020CFF28 ; =0x04000184
- mov r0, #0x40000
- strh r2, [r1, #0x0]
- bl OS_ResetRequestIrqMask
- ldr r1, _020CFF2C ; =PXIi_HandlerRecvFifoNotEmpty
- mov r0, #0x40000
- bl OS_SetIrqFunction
- mov r0, #0x40000
- bl OS_EnableIrqMask
- mov r12, #0x0
- ldr r3, _020CFF30 ; =0x04000180
- mov r1, r12
- mov r2, #0x3e8
-_020CFEAC:
- ldrh r0, [r3, #0x0]
- ands lr, r0, #0xf
- mov r0, lr, lsl #0x8
- strh r0, [r3, #0x0]
- bne _020CFEC8
- cmp r12, #0x4
- bgt _020CFF04
-_020CFEC8:
- ldrh r0, [r3, #0x0]
- mov r5, r2
- and r0, r0, #0xf
- cmp r0, lr
- bne _020CFEFC
-_020CFEDC:
- cmp r5, #0x0
- movle r12, r1
- ble _020CFEFC
- ldrh r0, [r3, #0x0]
- sub r5, r5, #0x1
- and r0, r0, #0xf
- cmp r0, lr
- beq _020CFEDC
-_020CFEFC:
- add r12, r12, #0x1
- b _020CFEAC
-_020CFF04:
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,lr}
- bx lr
- .balign 4
-_020CFF18: .word UNK_021D5364
-_020CFF1C: .word 0x027FFC00
-_020CFF20: .word UNK_021D5368
-_020CFF24: .word 0x0000C408
-_020CFF28: .word 0x04000184
-_020CFF2C: .word PXIi_HandlerRecvFifoNotEmpty
-_020CFF30: .word 0x04000180
diff --git a/arm9/asm/options.s b/arm9/asm/options.s
deleted file mode 100644
index 14d2a449..00000000
--- a/arm9/asm/options.s
+++ /dev/null
@@ -1,239 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
-
- .text
-
- thumb_func_start FUN_02024F30
-FUN_02024F30: ; 0x02024F30
- push {r4, lr}
- mov r1, #0x2
- bl AllocFromHeap
- add r4, r0, #0x0
- bl Options_init
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02024F44
-FUN_02024F44: ; 0x02024F44
- ldr r3, _02024F4C ; =MI_CpuCopy8
- mov r2, #0x2
- bx r3
- nop
-_02024F4C: .word MI_CpuCopy8
-
- thumb_func_start Options_init
-Options_init: ; 0x02024F50
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x2
- bl MI_CpuFill8
- ldrh r1, [r4, #0x0]
- mov r0, #0xf
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x30
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x80
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r0, _02024F94 ; =0xFFFFFCFF
- and r0, r1
- strh r0, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r0, _02024F98 ; =0xFFFF83FF
- and r0, r1
- strh r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02024F94: .word 0xFFFFFCFF
-_02024F98: .word 0xFFFF83FF
-
- thumb_func_start FUN_02024F9C
-FUN_02024F9C: ; 0x02024F9C
- push {r3, lr}
- cmp r0, #0x0
- beq _02024FAC
- bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02025064
- add r1, r0, #0x0
-_02024FAC:
- cmp r1, #0x0
- beq _02024FCA
- cmp r1, #0x1
- beq _02024FBA
- cmp r1, #0x2
- beq _02024FC2
- b _02024FCA
-_02024FBA:
- ldr r0, _02024FD4 ; =gMain
- mov r1, #0x1
- str r1, [r0, #0x34]
- pop {r3, pc}
-_02024FC2:
- ldr r0, _02024FD4 ; =gMain
- mov r1, #0x3
- str r1, [r0, #0x34]
- pop {r3, pc}
-_02024FCA:
- ldr r0, _02024FD4 ; =gMain
- mov r1, #0x0
- str r1, [r0, #0x34]
- pop {r3, pc}
- nop
-_02024FD4: .word gMain
-
- thumb_func_start FUN_02024FD8
-FUN_02024FD8: ; 0x02024FD8
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-
- thumb_func_start FUN_02024FE0
-FUN_02024FE0: ; 0x02024FE0
- ldrh r3, [r0, #0x0]
- mov r2, #0xf
- lsl r1, r1, #0x10
- bic r3, r2
- lsr r2, r1, #0x10
- mov r1, #0xf
- and r1, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02024FF4
-FUN_02024FF4: ; 0x02024FF4
- push {r3, lr}
- bl FUN_02024FD8
- cmp r0, #0x0
- bne _02025002
- mov r0, #0x8
- pop {r3, pc}
-_02025002:
- cmp r0, #0x1
- bne _0202500A
- mov r0, #0x4
- pop {r3, pc}
-_0202500A:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02025010
-FUN_02025010: ; 0x02025010
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1e
- bx lr
-
- thumb_func_start FUN_02025018
-FUN_02025018: ; 0x02025018
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1e
- ldrh r3, [r0, #0x0]
- mov r2, #0x30
- lsr r1, r1, #0x1a
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202502C
-FUN_0202502C: ; 0x0202502C
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02025034
-FUN_02025034: ; 0x02025034
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- ldrh r3, [r0, #0x0]
- mov r2, #0x80
- lsr r1, r1, #0x18
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025048
-FUN_02025048: ; 0x02025048
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02025050
-FUN_02025050: ; 0x02025050
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- ldrh r3, [r0, #0x0]
- mov r2, #0x40
- lsr r1, r1, #0x19
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025064
-FUN_02025064: ; 0x02025064
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- bx lr
-
- thumb_func_start FUN_0202506C
-FUN_0202506C: ; 0x0202506C
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1e
- ldrh r3, [r0, #0x0]
- ldr r2, _02025080 ; =0xFFFFFCFF
- lsr r1, r1, #0x16
- and r2, r3
- orr r1, r2
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-_02025080: .word 0xFFFFFCFF
-
- thumb_func_start FUN_02025084
-FUN_02025084: ; 0x02025084
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1b
- bx lr
-
- thumb_func_start FUN_0202508C
-FUN_0202508C: ; 0x0202508C
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1b
- ldrh r3, [r0, #0x0]
- ldr r2, _020250A0 ; =0xFFFF83FF
- lsr r1, r1, #0x11
- and r2, r3
- orr r1, r2
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-_020250A0: .word 0xFFFF83FF
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 2f0cb3ef..c5ae760b 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -2248,7 +2248,7 @@ FUN_0203AAA0: ; 0x0203AAA0
ldr r1, _0203AAF8 ; =UNK_020F34E0
ldr r2, _0203AAF4 ; =0x000003D9
mov r3, #0xb
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
str r0, [r6, #0x0]
ldr r1, _0203AAFC ; =FUN_0203AB00
add r0, r5, #0x0
diff --git a/arm9/asm/scrcmd_7.s b/arm9/asm/scrcmd_7.s
index 7ae38f49..01c0425f 100644
--- a/arm9/asm/scrcmd_7.s
+++ b/arm9/asm/scrcmd_7.s
@@ -366,7 +366,7 @@ FUN_02041970: ; 0x02041970
add r5, r0, #0x0
ldrh r0, [r4, #0x0]
bl FUN_020395F4
- bl FUN_0203962C
+ bl Field_TrainerIsDoubleBattle
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bne _020419D2
@@ -430,7 +430,7 @@ FUN_020419F8: ; 0x020419F8
add r5, r0, #0x0
ldrh r0, [r4, #0x0]
bl FUN_020395F4
- bl FUN_0203962C
+ bl Field_TrainerIsDoubleBattle
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bne _02041A5A
@@ -478,7 +478,7 @@ FUN_02041A80: ; 0x02041A80
add r5, r0, #0x0
ldrh r0, [r4, #0x0]
bl FUN_020395F4
- bl FUN_0203962C
+ bl Field_TrainerIsDoubleBattle
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s
index ff804a2f..3ad4b3b7 100644
--- a/arm9/asm/unk_02001B80.s
+++ b/arm9/asm/unk_02001B80.s
@@ -755,8 +755,8 @@ FUN_020020B0: ; 0x020020B0
pop {r3-r7, pc}
.balign 4
- thumb_func_start FUN_020020EC
-FUN_020020EC: ; 0x020020EC
+ thumb_func_start CreateYesNoMenu
+CreateYesNoMenu: ; 0x020020EC
push {r3-r7, lr}
sub sp, #0x20
ldr r5, [sp, #0x3c]
@@ -777,13 +777,13 @@ FUN_020020EC: ; 0x020020EC
mov r2, #0x29
mov r3, #0x0
add r6, r0, #0x0
- bl ListMenu_ItemFromMsgData
+ bl ListMenu_ItemFromMsgData ; YES
mov r3, #0x2a
add r2, r3, #0x0
add r0, r6, #0x0
add r1, r4, #0x0
sub r3, #0x2c
- bl ListMenu_ItemFromMsgData
+ bl ListMenu_ItemFromMsgData ; NO
add r0, r4, #0x0
bl DestroyMsgData
add r0, r5, #0x0
@@ -834,15 +834,15 @@ FUN_020020EC: ; 0x020020EC
nop
_02002194: .word 0x00000141
- thumb_func_start FUN_02002198
-FUN_02002198: ; 0x02002198
+ thumb_func_start Std_CreateYesNoMenu
+Std_CreateYesNoMenu: ; 0x02002198
push {r4, lr}
sub sp, #0x8
mov r4, #0x0
str r4, [sp, #0x0]
ldr r4, [sp, #0x10]
str r4, [sp, #0x4]
- bl FUN_020020EC
+ bl CreateYesNoMenu
add sp, #0x8
pop {r4, pc}
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index e7d630f6..9d5e2f32 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -2478,7 +2478,7 @@ FUN_020389CC: ; 0x020389CC
mov r0, #0x0
str r0, [r4, #0x18]
ldr r0, [sp, #0x0]
- bl FUN_02025084
+ bl Options_GetFrame
str r0, [r4, #0x1c]
lsl r1, r6, #0x18
ldr r0, [r5, #0xc]
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index d16d93f2..f35fd58e 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -879,7 +879,7 @@ FUN_02038C78: ; 0x02038C78
add r5, r0, #0x0
add r6, r1, #0x0
add r7, r2, #0x0
- bl FUN_02038E20
+ bl CreateFieldContext
add r4, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -932,7 +932,7 @@ FUN_02038CD8: ; 0x02038CD8
add r5, r3, #0x0
bl FUN_02046528
str r0, [sp, #0x8]
- bl FUN_02038E20
+ bl CreateFieldContext
add r4, r0, #0x0
ldr r0, [sp, #0x8]
ldr r3, [sp, #0x4]
@@ -958,7 +958,7 @@ FUN_02038D10: ; 0x02038D10
add r7, r2, #0x0
bl FUN_02046528
str r0, [sp, #0x4]
- bl FUN_02038E20
+ bl CreateFieldContext
add r4, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -1031,7 +1031,7 @@ _02038DA8:
cmp r0, #0x0
bne _02038DD2
add r0, r6, #0x0
- bl FUN_02038E48
+ bl DeleteScriptContext
ldrb r0, [r4, #0x9]
cmp r0, #0x0
bne _02038DC8
@@ -1081,8 +1081,8 @@ _02038E1A:
add sp, #0x8
pop {r3-r7, pc}
- thumb_func_start FUN_02038E20
-FUN_02038E20: ; 0x02038E20
+ thumb_func_start CreateFieldContext
+CreateFieldContext: ; 0x02038E20
push {r4, lr}
mov r0, #0xb
mov r1, #0xdc
@@ -1102,8 +1102,8 @@ _02038E32:
.balign 4
_02038E44: .word 0x0003643F
- thumb_func_start FUN_02038E48
-FUN_02038E48: ; 0x02038E48
+ thumb_func_start DeleteScriptContext
+DeleteScriptContext: ; 0x02038E48
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x78]
@@ -2139,8 +2139,8 @@ _02039622:
nop
_02039628: .word 0x00001388
- thumb_func_start FUN_0203962C
-FUN_0203962C: ; 0x0203962C
+ thumb_func_start Field_TrainerIsDoubleBattle
+Field_TrainerIsDoubleBattle: ; 0x0203962C
push {r3, lr}
mov r1, #0x9
bl TrainerData_GetAttr
@@ -2443,17 +2443,17 @@ _02039856:
nop
_02039870: .word 0x0000FFFF
- thumb_func_start FUN_02039874
-FUN_02039874: ; 0x02039874
- ldr r3, _0203987C ; =FUN_02039880
+ thumb_func_start RunPokemonCenterScriptsInNewContext
+RunPokemonCenterScriptsInNewContext: ; 0x02039874
+ ldr r3, _0203987C ; =RunScriptInNewContext
mov r1, #0x96
lsl r1, r1, #0x6
bx r3
.balign 4
-_0203987C: .word FUN_02039880
+_0203987C: .word RunScriptInNewContext
- thumb_func_start FUN_02039880
-FUN_02039880: ; 0x02039880
+ thumb_func_start RunScriptInNewContext
+RunScriptInNewContext: ; 0x02039880
push {r4, lr}
bl CreateScriptContext
add r4, r0, #0x0
@@ -2463,7 +2463,7 @@ _02039888:
cmp r0, #0x1
beq _02039888
add r0, r4, #0x0
- bl FUN_02038E48
+ bl DeleteScriptContext
pop {r4, pc}
.balign 4
@@ -2503,7 +2503,7 @@ _020398CE:
b _020398E2
_020398DC:
add r0, r5, #0x0
- bl FUN_02039880
+ bl RunScriptInNewContext
_020398E2:
mov r0, #0x1
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 568c4b5d..8eac1942 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -116,7 +116,7 @@ _02047774:
lsl r1, r1, #0x4
str r0, [r7, r1]
add r0, r5, #0x0
- bl FUN_02024F30
+ bl Options_new
mov r1, #0x13
lsl r1, r1, #0x4
str r0, [r7, r1]
@@ -237,7 +237,7 @@ FUN_02047814: ; 0x02047814
lsl r1, r1, #0x4
ldr r0, [sp, #0x14]
ldr r1, [r4, r1]
- bl FUN_02024F44
+ bl Options_copy
add r0, r5, #0x0
bl Script_GetTimeOfDay
mov r1, #0x16
@@ -513,7 +513,7 @@ FUN_02047A78: ; 0x02047A78
lsl r1, r1, #0x4
ldr r0, [sp, #0xc]
ldr r1, [r5, r1]
- bl FUN_02024F44
+ bl Options_copy
ldr r1, [sp, #0x8]
add r0, r5, #0x0
mov r2, #0x0
@@ -712,7 +712,7 @@ _02047C98:
lsl r1, r1, #0x4
ldr r0, [sp, #0x4]
ldr r1, [r6, r1]
- bl FUN_02024F44
+ bl Options_copy
ldr r1, [sp, #0x8]
add r0, r6, #0x0
mov r2, #0x0
@@ -896,7 +896,7 @@ _02047E2C:
lsl r1, r1, #0x4
ldr r0, [sp, #0x10]
ldr r1, [r5, r1]
- bl FUN_02024F44
+ bl Options_copy
ldr r1, [sp, #0x14]
add r0, r5, #0x0
mov r2, #0x0
diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s
index 4ca21350..d9259556 100644
--- a/arm9/asm/unk_02048904.s
+++ b/arm9/asm/unk_02048904.s
@@ -599,7 +599,7 @@ FUN_02048D90: ; 0x02048D90
add r4, r0, #0x0
mov r1, #0x0
str r1, [r4, #0x6c]
- bl FUN_02039874
+ bl RunPokemonCenterScriptsInNewContext
ldr r1, _02048DA8 ; =FUN_02048D34
add r0, r4, #0x0
mov r2, #0x0
@@ -2040,7 +2040,7 @@ _020498DC:
ldr r0, [r5, #0x8]
ldr r1, _02049ABC ; =UNK_020F46D8
ldr r2, _02049AB8 ; =0x000003D9
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
str r0, [r4, #0x3c]
mov r0, #0x2
str r0, [r4, #0x0]
diff --git a/arm9/asm/unk_02054590.s b/arm9/asm/unk_02054590.s
index 772871af..6f52c967 100644
--- a/arm9/asm/unk_02054590.s
+++ b/arm9/asm/unk_02054590.s
@@ -74,7 +74,7 @@ FUN_02054608: ; 0x02054608
bl FUN_0201AB08
add r6, r0, #0x0
add r0, r4, #0x0
- bl FUN_02025084
+ bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -119,7 +119,7 @@ FUN_02054658: ; 0x02054658
mov r0, #0x0
bl FUN_02002BB8
add r0, r6, #0x0
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
@@ -131,8 +131,8 @@ FUN_02054658: ; 0x02054658
add sp, #0xc
pop {r3-r6, pc}
- thumb_func_start FUN_02054690
-FUN_02054690: ; 0x02054690
+ thumb_func_start DrawFieldMessage
+DrawFieldMessage: ; 0x02054690
push {r4-r7, lr}
sub sp, #0xc
add r5, r0, #0x0
diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s
index 8429979f..ac7a6808 100644
--- a/arm9/asm/unk_0205C598.s
+++ b/arm9/asm/unk_0205C598.s
@@ -241,7 +241,7 @@ FUN_0205C73C: ; 0x0205C73C
str r0, [r5, #0xc]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0203962C
+ bl Field_TrainerIsDoubleBattle
str r0, [r5, #0x10]
str r4, [r5, #0x14]
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s
index 9809241c..8383e9bb 100644
--- a/arm9/asm/unk_020625EC.s
+++ b/arm9/asm/unk_020625EC.s
@@ -101,11 +101,11 @@ FUN_020625EC: ; 0x020625EC
str r0, [r4, r1]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
strh r0, [r4, #0x1a]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02025084
+ bl Options_GetFrame
strh r0, [r4, #0x1c]
str r4, [r7, #0x8]
mov r0, #0x1
@@ -430,7 +430,7 @@ FUN_020628BC: ; 0x020628BC
ldr r0, [r0, #0x0]
ldr r2, _020628E4 ; =0x000003D9
mov r3, #0xb
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
add r4, #0xc8
str r0, [r4, #0x0]
add sp, #0x4
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 1cf56132..45f5de1d 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -67,11 +67,11 @@ FUN_020653EC: ; 0x020653EC
add r6, r0, #0x0
strb r1, [r4, #0x1a]
bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
strb r0, [r4, #0x16]
add r0, r6, #0x0
bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02025084
+ bl Options_GetFrame
strh r0, [r4, #0x14]
add r0, r4, #0x0
ldr r2, [r4, #0x0]
@@ -2192,7 +2192,7 @@ FUN_02066520: ; 0x02066520
ldr r0, [r4, r0]
ldr r2, _02066548 ; =0x000003D9
mov r3, #0xb
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
mov r1, #0x5a
lsl r1, r1, #0x2
str r0, [r4, r1]
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index f5a0873e..8e89581c 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -1314,7 +1314,7 @@ _0206D1F0:
ldr r0, [r4, #0x0]
mov r2, #0x1
mov r3, #0x8
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
str r0, [r4, #0x40]
add r0, r4, #0x0
add r0, #0x64
@@ -1537,7 +1537,7 @@ _0206D3CC:
ldr r0, [r4, #0x0]
mov r2, #0x1
mov r3, #0x8
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
str r0, [r4, #0x40]
add r0, r4, #0x0
add r0, #0x64
@@ -2343,7 +2343,7 @@ _0206DA26:
mov r1, #0x4
bl FUN_02018744
ldr r0, [r5, #0x2c]
- bl FUN_02025084
+ bl Options_GetFrame
add r6, r0, #0x0
lsl r0, r6, #0x18
lsr r0, r0, #0x18
@@ -2675,7 +2675,7 @@ FUN_0206DD6C: ; 0x0206DD6C
mov r1, #0xff
bl FUN_02019620
ldr r0, [r4, #0x2c]
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index 8d7d828a..e09b1ec4 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1310,7 +1310,7 @@ FUN_0206FD24: ; 0x0206FD24
ldr r0, _0206FE70 ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0xc]
- bl FUN_02025084
+ bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index f6f09ad1..5b3ed0a3 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -1664,7 +1664,7 @@ FUN_0207322C: ; 0x0207322C
ldr r0, _0207326C ; =0x000005A4
ldr r0, [r4, r0]
ldr r0, [r0, #0xc]
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
mov r3, #0x0
str r3, [sp, #0x0]
str r0, [sp, #0x4]
@@ -1741,7 +1741,7 @@ FUN_020732CC: ; 0x020732CC
ldr r1, _020732EC ; =UNK_020F96EC
mov r2, #0x1
mov r3, #0xe
- bl FUN_02002198
+ bl Std_CreateYesNoMenu
ldr r1, _020732F0 ; =0x000006FC
str r0, [r4, r1]
add sp, #0x4
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 7a24d756..eba7f739 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -2355,7 +2355,7 @@ FUN_02077FE8: ; 0x02077FE8
mov r2, #0x12
bl FUN_02002EEC
ldr r0, [r5, #0x18]
- bl FUN_02025084
+ bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 8bace89f..3562d2e7 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -1660,7 +1660,7 @@ _0207A99E:
lsl r0, r0, #0x2
ldr r0, [r5, r0]
ldr r0, [r0, #0x4]
- bl FUN_02025084
+ bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -4738,7 +4738,7 @@ FUN_0207C23C: ; 0x0207C23C
lsl r0, r0, #0x2
ldr r0, [r4, r0]
ldr r0, [r0, #0x4]
- bl FUN_02025084
+ bl Options_GetFrame
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
diff --git a/arm9/asm/unk_02085338.s b/arm9/asm/unk_02085338.s
index 45fcb995..08f7d90c 100644
--- a/arm9/asm/unk_02085338.s
+++ b/arm9/asm/unk_02085338.s
@@ -32,7 +32,7 @@ FUN_02085338: ; 0x02085338
add r0, r6, #0x0
strb r1, [r4, #0x3]
bl Sav2_PlayerData_GetOptionsAddr
- bl FUN_02025084
+ bl Options_GetFrame
str r0, [r4, #0x8]
cmp r5, #0x2
bne _02085390
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index 846e5336..a299f623 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -348,7 +348,7 @@ _02085A9A:
str r0, [r4, r1]
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x24]
- bl FUN_02025084
+ bl Options_GetFrame
add r5, r0, #0x0
add r0, r4, #0x0
add r1, r4, #0x0
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 6ef3d150..4d8fa9a4 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -36,11 +36,11 @@ FUN_02086084: ; 0x02086084
bl OverlayManager_GetField18
str r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
str r0, [r4, #0x10]
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02025084
+ bl Options_GetFrame
str r0, [r4, #0x14]
bl FUN_02086468
str r0, [r4, #0x38]
diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s
index d51eab43..b343ac2c 100644
--- a/arm9/asm/unk_02087A6C.s
+++ b/arm9/asm/unk_02087A6C.s
@@ -5,7 +5,7 @@
.global UNK_020FD144
UNK_020FD144: ; 0x020FD144
- .word MOD59_021D74E0, MOD59_021D7564, MOD59_021D76C0, SDK_OVERLAY_MODULE_59_ID
+ .word MOD59_Init, MOD59_021D7564, MOD59_021D76C0, SDK_OVERLAY_MODULE_59_ID
.text
diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s
index 49d4676c..65d4db3d 100644
--- a/arm9/asm/unk_02087D00.s
+++ b/arm9/asm/unk_02087D00.s
@@ -544,11 +544,11 @@ FUN_020880A0: ; 0x020880A0
str r0, [r4, #0x0]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
- bl FUN_02024FF4
+ bl Options_GetTextFrameDelay
strb r0, [r4, #0xa]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
- bl FUN_02025084
+ bl Options_GetFrame
strb r0, [r4, #0xb]
ldr r0, _02088108 ; =UNK_020FD16C
ldr r2, [r5, #0x0]
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index 82d06472..e4ce48cf 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -415,7 +415,7 @@ _020897B8:
ldr r0, [r4, #0x14]
ldr r2, _02089894 ; =0x000001D9
mov r3, #0x3
- bl FUN_020020EC
+ bl CreateYesNoMenu
str r0, [r4, #0x2c]
mov r0, #0x1
str r0, [r4, #0x4]
@@ -453,7 +453,7 @@ _02089802:
ldr r0, [r4, #0x14]
ldr r2, _02089894 ; =0x000001D9
mov r3, #0x3
- bl FUN_020020EC
+ bl CreateYesNoMenu
str r0, [r4, #0x2c]
mov r0, #0x3
str r0, [r4, #0x4]