mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-07 11:14:05 -05:00
218 lines
3.9 KiB
ArmAsm
218 lines
3.9 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.section .data
|
|
|
|
.global _03807668
|
|
_03807668:
|
|
.word 0xFFFFFFFF
|
|
|
|
.global _0380766C
|
|
_0380766C:
|
|
.word 0x00000001
|
|
|
|
.section .bss
|
|
|
|
.global _038099A0
|
|
_038099A0: ;0x038099A0
|
|
.space 0x038099A4 - 0x038099A0
|
|
|
|
.global _038099A4
|
|
_038099A4: ;0x038099A4
|
|
.space 0x038099A8 - 0x038099A4
|
|
|
|
.global _038099A8
|
|
_038099A8: ;0x038099A8
|
|
.space 0x038099AC - 0x038099A8
|
|
|
|
.section .text
|
|
|
|
arm_func_start FUN_03800E54
|
|
FUN_03800E54: ; 0x03800E54
|
|
stmfd sp!, {lr}
|
|
sub sp, sp, #4
|
|
mov r0, #0
|
|
bl CTRDG_VibPulseEdgeUpdate
|
|
bl SND_BeginSleep
|
|
bl WVR_Shutdown
|
|
bl OS_Terminate
|
|
add sp, sp, #4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
|
|
arm_func_start CARD_CheckPullOut_Polling
|
|
CARD_CheckPullOut_Polling: ; 0x03800E7C
|
|
stmfd sp!, {lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _03800F50 ; =_038099A0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _03800F44
|
|
ldr r0, _03800F54 ; =0x027FFC40
|
|
ldrh r0, [r0]
|
|
cmp r0, #2
|
|
beq _03800F44
|
|
ldr r1, _03800F58 ; =_03807668
|
|
ldr r3, [r1]
|
|
mvn r0, #0
|
|
cmp r3, r0
|
|
ldreq r0, _03800F5C ; =0x027FFC3C
|
|
ldreq r0, [r0]
|
|
addeq r0, r0, #10
|
|
streq r0, [r1]
|
|
beq _03800F44
|
|
ldr r2, _03800F5C ; =0x027FFC3C
|
|
ldr r0, [r2]
|
|
cmp r0, r3
|
|
bcc _03800F44
|
|
ldr r0, [r2]
|
|
add r0, r0, #10
|
|
str r0, [r1]
|
|
bl CARD_IsPulledOut
|
|
cmp r0, #0
|
|
beq _03800F1C
|
|
mov r1, #1
|
|
ldr r0, _03800F50 ; =_038099A0
|
|
str r1, [r0]
|
|
bl CARD_GetRomHeader
|
|
ldr r0, [r0, #12]
|
|
cmp r0, #0
|
|
bne _03800F1C
|
|
ldr r0, _03800F60 ; =_0380766C
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _03800F44
|
|
_03800F1C:
|
|
mov r1, #0
|
|
ldr r0, _03800F60 ; =_0380766C
|
|
str r1, [r0]
|
|
ldr r0, _03800F50 ; =_038099A0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
beq _03800F44
|
|
mov r0, #17
|
|
mov r1, #100 ; 0x64
|
|
bl FUN_03800E0C
|
|
_03800F44:
|
|
add sp, sp, #4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
_03800F50: .word _038099A0
|
|
_03800F54: .word 0x027FFC40
|
|
_03800F58: .word _03807668
|
|
_03800F5C: .word 0x027FFC3C
|
|
_03800F60: .word _0380766C
|
|
|
|
arm_func_start CARD_IsCardIreqLo
|
|
CARD_IsCardIreqLo: ; 0x03800F64
|
|
mov r2, #1
|
|
mov r0, r2
|
|
ldr r1, _03800F88 ; =0x04000214
|
|
ldr r1, [r1]
|
|
ands r1, r1, #1048576 ; 0x100000
|
|
movne r0, #0
|
|
ldrne r1, _03800F8C ; =_038099A8
|
|
strne r2, [r1]
|
|
bx lr
|
|
_03800F88: .word 0x04000214
|
|
_03800F8C: .word _038099A8
|
|
|
|
arm_func_start CARD_CompareCardID
|
|
CARD_CompareCardID: ; 0x03800F90
|
|
stmfd sp!, {lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _03800FE8 ; =0x027FFC10
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
ldreq r0, _03800FEC ; =0x027FF800
|
|
ldrne r0, _03800FF0 ; =0x027FFC00
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
bl CARDi_ReadRomID
|
|
ldr r1, [sp]
|
|
cmp r0, r1
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
cmp r0, #0
|
|
moveq r2, #1
|
|
movne r2, #0
|
|
ldr r1, _03800FF4 ; =_038099A8
|
|
str r2, [r1]
|
|
add sp, sp, #4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
_03800FE8: .word 0x027FFC10
|
|
_03800FEC: .word 0x027FF800
|
|
_03800FF0: .word 0x027FFC00
|
|
_03800FF4: .word _038099A8
|
|
|
|
arm_func_start CARD_IsPulledOut
|
|
CARD_IsPulledOut: ; 0x03800FF8
|
|
stmfd sp!, {lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _03801040 ; =_038099A8
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0380102C
|
|
ldr r0, _03801044 ; =0x027FFC1F
|
|
ldrb r0, [r0]
|
|
ands r0, r0, #1
|
|
beq _03801028
|
|
bl CARD_CompareCardID
|
|
b _0380102C
|
|
_03801028:
|
|
bl CARD_IsCardIreqLo
|
|
_0380102C:
|
|
ldr r0, _03801040 ; =_038099A8
|
|
ldr r0, [r0]
|
|
add sp, sp, #4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
_03801040: .word _038099A8
|
|
_03801044: .word 0x027FFC1F
|
|
|
|
arm_func_start FUN_03801048
|
|
FUN_03801048: ; 0x03801048
|
|
stmfd sp!, {lr}
|
|
sub sp, sp, #4
|
|
and r0, r1, #63 ; 0x3f
|
|
cmp r0, #1
|
|
bne _03801064
|
|
bl FUN_03800E54
|
|
b _03801068
|
|
_03801064:
|
|
bl OS_Terminate
|
|
_03801068:
|
|
add sp, sp, #4
|
|
ldmia sp!, {lr}
|
|
bx lr
|
|
|
|
arm_func_start CARD_InitPulledOutCallback
|
|
CARD_InitPulledOutCallback: ; 0x03801074
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #4
|
|
ldr r0, _038010CC ; =_038099A4
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
bne _038010C0
|
|
mov r1, #1
|
|
str r1, [r0]
|
|
bl PXI_Init
|
|
mov r5, #14
|
|
mov r4, #0
|
|
_038010A0:
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl PXI_IsCallbackReady
|
|
cmp r0, #0
|
|
beq _038010A0
|
|
mov r0, #14
|
|
ldr r1, _038010D0 ; =FUN_03801048
|
|
bl PXI_SetFifoRecvCallback
|
|
_038010C0:
|
|
add sp, sp, #4
|
|
ldmia sp!, {r4, r5, lr}
|
|
bx lr
|
|
_038010CC: .word _038099A4
|
|
_038010D0: .word FUN_03801048
|