diff options
Diffstat (limited to 'arm9/asm')
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] |