mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-08 03:34:24 -05:00
146 lines
2.4 KiB
ArmAsm
146 lines
2.4 KiB
ArmAsm
/* arm7_rom.s TODO: Disassemble */
|
|
.include "asm/macros.inc"
|
|
.global ARM7AutoLoad
|
|
|
|
.section .text
|
|
arm_func_start Entry_ARM7
|
|
|
|
Entry_ARM7:
|
|
mov ip, #67108864 ; 0x4000000
|
|
str ip, [ip, #520] ; 0x208
|
|
ldr r1, _23800cc
|
|
mov r0, #58720256 ; 0x3800000
|
|
cmp r0, r1
|
|
movpl r1, r0
|
|
ldr r2, _23800d0
|
|
mov r0, #0
|
|
_02380020:
|
|
cmp r1, r2
|
|
stmltia r1!, {r0}
|
|
blt _02380020
|
|
mov r0, #19
|
|
msr CPSR_c, r0
|
|
ldr sp, _23800d4
|
|
mov r0, #18
|
|
msr CPSR_c, r0
|
|
ldr r0, _23800d8
|
|
mov sp, r0
|
|
ldr r1, _23800dc
|
|
sub r1, r0, r1
|
|
mov r0, #31
|
|
msr CPSR_fsxc, r0
|
|
sub sp, r1, #4
|
|
ldr r0, _23800e0
|
|
ldr r1, _23800e4
|
|
add r2, r1, #352 ; 0x160
|
|
_02380068:
|
|
ldr r3, [r0], #4
|
|
str r3, [r1], #4
|
|
cmp r1, r2
|
|
bmi _02380068
|
|
ldr r0, _23800e8
|
|
add r2, r1, #32
|
|
_02380080:
|
|
ldr r3, [r0], #4
|
|
str r3, [r1], #4
|
|
cmp r1, r2
|
|
bmi _02380080
|
|
bl FUN_2380100
|
|
ldr r0, _23800ec
|
|
ldr r1, [r0, #12]
|
|
ldr r2, [r0, #16]
|
|
mov r0, #0
|
|
_023800a4:
|
|
cmp r1, r2
|
|
strcc r0, [r1], #4
|
|
bcc _023800a4
|
|
bl FUN_238015C
|
|
ldr r1, _23800f0
|
|
ldr r0, _23800f4
|
|
str r0, [r1]
|
|
ldr r1, _23800f8
|
|
ldr lr, _23800fc
|
|
bx r1
|
|
_23800cc: .word UNK_23801B0
|
|
_23800d0: .word 0x0380ff00
|
|
_23800d4: .word 0x0380ffc0
|
|
_23800d8: .word 0x0380ff80
|
|
_23800dc: .word 0x00000400
|
|
_23800e0: .word 0x023fe940
|
|
_23800e4: .word 0x027ffa80
|
|
_23800e8: .word 0x023fe904
|
|
_23800ec: .word _2380198
|
|
_23800f0: .word 0x0380fffc
|
|
_23800f4: .word 0x037f853c
|
|
_23800f8: .word 0x037f8468
|
|
_23800fc: .word 0xffff0000
|
|
arm_func_end Entry_ARM7
|
|
|
|
arm_func_start FUN_2380100
|
|
FUN_2380100:
|
|
ldr r0, _2380154
|
|
ldr r1, [r0]
|
|
ldr r2, [r0, #4]
|
|
ldr r3, [r0, #8]
|
|
_02380110:
|
|
cmp r1, r2
|
|
beq _02380150
|
|
ldr r4, [r1], #4
|
|
ldr r5, [r1], #4
|
|
add r6, r4, r5
|
|
_02380124:
|
|
cmp r4, r6
|
|
ldrmi r7, [r3], #4
|
|
strmi r7, [r4], #4
|
|
bmi _02380124
|
|
ldr r5, [r1], #4
|
|
add r6, r4, r5
|
|
mov r7, #0
|
|
_02380140:
|
|
cmp r4, r6
|
|
strcc r7, [r4], #4
|
|
bcc _02380140
|
|
beq _02380110
|
|
_02380150:
|
|
b ARM7AutoLoad
|
|
_2380154: .word _2380198
|
|
ARM7AutoLoad:
|
|
bx lr
|
|
arm_func_end FUN_2380100
|
|
|
|
arm_func_start FUN_238015C
|
|
FUN_238015C:
|
|
mov r0, #1
|
|
mov r1, #0
|
|
ldr r2, _2380194
|
|
sub r3, r2, #4194304 ; 0x400000
|
|
_0238016c:
|
|
strh r1, [r2]
|
|
ldrh ip, [r3]
|
|
cmp r1, ip
|
|
movne r0, #2
|
|
bne _0238018c
|
|
add r1, r1, #1
|
|
cmp r1, #2
|
|
bne _0238016c
|
|
_0238018c:
|
|
strh r0, [r2]
|
|
bx lr
|
|
_2380194: .word 0x027ffffa
|
|
_2380198:
|
|
.word UNK_23A92F8
|
|
.word UNK_23A92FC
|
|
.word UNK_23801B0
|
|
.word UNK_23801B0
|
|
.word UNK_23801B0
|
|
.word 0x00000000
|
|
arm_func_end FUN_238015C
|
|
|
|
UNK_23801B0:
|
|
.incbin "baserom.nds", 0x30D1B0, 0x29148
|
|
|
|
UNK_23A92F8:
|
|
.incbin "baserom.nds", 0x3362F8, 0x24
|
|
|
|
UNK_23A92FC:
|