mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-09 20:18:43 -05:00
bunch of small cartridge funcs
This commit is contained in:
parent
1a45d65f16
commit
d5bff2f511
|
|
@ -128,7 +128,7 @@ _020DB290:
|
|||
_020DB294:
|
||||
ldr r0, _020DB2BC ; =UNK_021D6944
|
||||
ldrh r0, [r0, #0x2]
|
||||
bl OS_UnlockCartridge
|
||||
bl OS_UnLockCartridge
|
||||
bl CTRDG_IsExisting
|
||||
_020DB2A4: ; 0x020DB2A4
|
||||
cmp r0, #0x0
|
||||
|
|
@ -241,7 +241,7 @@ _020DB3F0:
|
|||
_020DB404:
|
||||
ldr r0, _020DB42C ; =UNK_021D6944
|
||||
ldrh r0, [r0, #0x2]
|
||||
bl OS_UnlockCartridge
|
||||
bl OS_UnLockCartridge
|
||||
bl CTRDG_IsExisting
|
||||
_020DB414: ; 0x020DB414
|
||||
cmp r0, #0x0
|
||||
|
|
@ -355,7 +355,7 @@ CTRDGi_UnlockByProcessor: ; 0x020DB568
|
|||
ldr r1, [r4, #0x0]
|
||||
cmp r1, #0x0
|
||||
bne _020DB580
|
||||
bl OS_UnlockCartridge
|
||||
bl OS_UnLockCartridge
|
||||
_020DB580:
|
||||
ldr r0, [r4, #0x4]
|
||||
bl OS_RestoreInterrupts
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ CTRDG_IdentifyAgbBackup: ; 0x020DBD50
|
|||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
ldreq r5, _020DBEEC ; =UNK_02103FE8
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
ldr r2, [r5, #0x0]
|
||||
mov r0, #0x1
|
||||
ldrh r1, [r2, #0x38]
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ _020DC92C:
|
|||
orr r0, r0, r5
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
|
|
@ -428,7 +428,7 @@ _020DCB18:
|
|||
ldr r0, _020DCB84 ; =UNK_021D6B0C
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r5
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
|
|
@ -495,7 +495,7 @@ CTRDGi_EraseFlashChipCoreAT: ; 0x020DCBA0
|
|||
orr r0, r0, r5
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ CTRDGi_VerifyFlashErase: ; 0x020DCD94
|
|||
orr r1, r1, r6
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4-r6,lr}
|
||||
bx lr
|
||||
|
|
@ -267,7 +267,7 @@ _020DCFD4:
|
|||
orr r1, r1, r5
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r8
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4-r9,lr}
|
||||
|
|
@ -379,7 +379,7 @@ CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
|
|||
orr r0, r0, r5
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4-r6,lr}
|
||||
|
|
@ -447,7 +447,7 @@ CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
|
|||
orr r0, r0, r5
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ _020DD4FC:
|
|||
orr r1, r1, r7
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r6
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4-r8,lr}
|
||||
|
|
@ -323,7 +323,7 @@ _020DD714:
|
|||
orr r0, r3, r0
|
||||
strh r0, [r2, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
ldr r0, [sp, #0x4]
|
||||
add sp, sp, #0x34
|
||||
ldmia sp!, {r4-r11,lr}
|
||||
|
|
@ -391,7 +391,7 @@ CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
|
|||
orr r0, r0, r5
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x4
|
||||
ldmia sp!, {r4-r5,lr}
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ _020DD9B8:
|
|||
orr r1, r1, r7
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r6
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4-r8,lr}
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ _020DC0D4:
|
|||
orr r0, r0, r7
|
||||
strh r0, [r3, #0x0]
|
||||
ldrh r0, [r1, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, r4
|
||||
add sp, sp, #0x24
|
||||
ldmia sp!, {r4-r7,lr}
|
||||
|
|
@ -253,7 +253,7 @@ _020DC22C:
|
|||
orr r1, r1, r8
|
||||
strh r1, [r2, #0x0]
|
||||
ldrh r0, [r0, #0x0]
|
||||
bl OS_UnlockCartridge2
|
||||
bl OS_UnlockCartridge
|
||||
mov r0, #0x0
|
||||
add sp, sp, #0x28
|
||||
ldmia sp!, {r4-r8,lr}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
|
||||
.text
|
||||
|
||||
arm_func_start OS_UnlockCartridge
|
||||
OS_UnlockCartridge: ; 0x020CA094
|
||||
ldr r1, _020CA09C ; =OS_UnlockCartridge2
|
||||
arm_func_start OS_UnLockCartridge
|
||||
OS_UnLockCartridge: ; 0x020CA094
|
||||
ldr r1, _020CA09C ; =OS_UnlockCartridge
|
||||
bx r1
|
||||
.balign 4
|
||||
_020CA09C: .word OS_UnlockCartridge2
|
||||
_020CA09C: .word OS_UnlockCartridge
|
||||
|
||||
arm_func_start OS_GetLockID
|
||||
OS_GetLockID: ; 0x020CA0A0
|
||||
|
|
@ -99,59 +99,3 @@ OS_TryLockCard: ; 0x020CA17C
|
|||
_020CA18C: .word OS_TryLockByWord
|
||||
_020CA190: .word 0x027FFFE0
|
||||
_020CA194: .word OSi_AllocateCardBus
|
||||
|
||||
arm_func_start OSi_FreeCartridgeBus
|
||||
OSi_FreeCartridgeBus: ; 0x020CA198
|
||||
ldr r1, _020CA1AC ; =0x04000204
|
||||
ldrh r0, [r1, #0x0]
|
||||
orr r0, r0, #0x80
|
||||
strh r0, [r1, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020CA1AC: .word 0x04000204
|
||||
|
||||
arm_func_start OSi_AllocateCartridgeBus
|
||||
OSi_AllocateCartridgeBus: ; 0x020CA1B0
|
||||
ldr r1, _020CA1C4 ; =0x04000204
|
||||
ldrh r0, [r1, #0x0]
|
||||
bic r0, r0, #0x80
|
||||
strh r0, [r1, #0x0]
|
||||
bx lr
|
||||
.balign 4
|
||||
_020CA1C4: .word 0x04000204
|
||||
|
||||
arm_func_start OS_TryLockCartridge
|
||||
OS_TryLockCartridge: ; 0x020CA1C8
|
||||
ldr ip, _020CA1DC ; =OSi_DoTryLockByWord
|
||||
ldr r1, _020CA1E0 ; =0x027FFFE8
|
||||
ldr r2, _020CA1E4 ; =OSi_AllocateCartridgeBus
|
||||
mov r3, #0x1
|
||||
bx r12
|
||||
.balign 4
|
||||
_020CA1DC: .word OSi_DoTryLockByWord
|
||||
_020CA1E0: .word 0x027FFFE8
|
||||
_020CA1E4: .word OSi_AllocateCartridgeBus
|
||||
|
||||
arm_func_start OS_UnlockCartridge2
|
||||
OS_UnlockCartridge2: ; 0x020CA1E8
|
||||
ldr ip, _020CA1FC ; =OSi_DoUnlockByWord
|
||||
ldr r1, _020CA200 ; =0x027FFFE8
|
||||
ldr r2, _020CA204 ; =OSi_FreeCartridgeBus
|
||||
mov r3, #0x1
|
||||
bx r12
|
||||
.balign 4
|
||||
_020CA1FC: .word OSi_DoUnlockByWord
|
||||
_020CA200: .word 0x027FFFE8
|
||||
_020CA204: .word OSi_FreeCartridgeBus
|
||||
|
||||
arm_func_start OS_LockCartridge
|
||||
OS_LockCartridge: ; 0x020CA208
|
||||
ldr ip, _020CA21C ; =OSi_DoLockByWord
|
||||
ldr r1, _020CA220 ; =0x027FFFE8
|
||||
ldr r2, _020CA224 ; =OSi_AllocateCartridgeBus
|
||||
mov r3, #0x1
|
||||
bx r12
|
||||
.balign 4
|
||||
_020CA21C: .word OSi_DoLockByWord
|
||||
_020CA220: .word 0x027FFFE8
|
||||
_020CA224: .word OSi_AllocateCartridgeBus
|
||||
|
|
|
|||
|
|
@ -6438,8 +6438,8 @@
|
|||
.extern OS_TryLockMutex
|
||||
.extern OS_UnlockByWord
|
||||
.extern OS_UnlockCard
|
||||
.extern OS_UnLockCartridge
|
||||
.extern OS_UnlockCartridge
|
||||
.extern OS_UnlockCartridge2
|
||||
.extern OS_UnlockMutex
|
||||
.extern OS_WaitIrq
|
||||
.extern OS_WaitVBlankIntr
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@ s32 OSi_DoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
|||
s32 OS_UnlockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void));
|
||||
s32 OSi_DoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
||||
BOOL disableFiq);
|
||||
s32 OS_LockCartridge(u16 lockID);
|
||||
s32 OS_UnlockCartridge(u16 lockID);
|
||||
s32 OS_TryLockCartridge(u16 lockID);
|
||||
void OSi_AllocateCartridgeBus();
|
||||
void OSi_FreeCartridgeBus();
|
||||
s32 OS_GetLockID(void);
|
||||
|
||||
#endif //POKEDIAMOND_OS_SPINLOCK_H
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
|
|||
|
||||
#define HW_LOCK_ID_FLAG_MAIN (HW_MAIN_MEM + 0x007fffb0)
|
||||
#define HW_SHARED_LOCK_BUF (HW_MAIN_MEM + 0x007fffc0)
|
||||
#define HW_CTRDG_LOCK_BUF (HW_MAIN_MEM + 0x007fffe8)
|
||||
|
||||
#define HW_BUTTON_XY_BUF (HW_MAIN_MEM + 0x007fffa8)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@
|
|||
#include "MI_exMemory.h"
|
||||
|
||||
extern void MIi_CpuClear32(u32 param1, void * addr, u32 length); //not too sure about names
|
||||
extern s32 OSi_DoTryLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void),
|
||||
BOOL disableFiq);
|
||||
extern u32 MI_SwapWord(u32 data, volatile u32* destp);
|
||||
|
||||
ARM_FUNC void OS_InitLock()
|
||||
|
|
@ -121,3 +119,28 @@ ARM_FUNC s32 OSi_DoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp
|
|||
|
||||
return lastLockFlag;
|
||||
}
|
||||
|
||||
ARM_FUNC s32 OS_LockCartridge(u16 lockID)
|
||||
{
|
||||
return OSi_DoLockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_AllocateCartridgeBus, TRUE);
|
||||
}
|
||||
|
||||
ARM_FUNC s32 OS_UnlockCartridge(u16 lockID)
|
||||
{
|
||||
return OSi_DoUnlockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_FreeCartridgeBus, TRUE);
|
||||
}
|
||||
|
||||
ARM_FUNC s32 OS_TryLockCartridge(u16 lockID)
|
||||
{
|
||||
return OSi_DoTryLockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_AllocateCartridgeBus, TRUE);
|
||||
}
|
||||
|
||||
ARM_FUNC void OSi_AllocateCartridgeBus()
|
||||
{
|
||||
MIi_SetCartridgeProcessor(MI_PROCESSOR_ARM9);
|
||||
}
|
||||
|
||||
ARM_FUNC void OSi_FreeCartridgeBus()
|
||||
{
|
||||
MIi_SetCartridgeProcessor(MI_PROCESSOR_ARM7);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user