Disassemble ARM7 ROM

This commit is contained in:
PikalaxALT 2020-04-16 08:44:32 -04:00
parent 09d866602e
commit 8773084868

View File

@ -1,10 +1,145 @@
/* arm7_rom.s TODO: Disassemble */
.include "asm/macros.inc"
.global ARM7AutoLoad
.section .text
.global Entry_ARM7
Entry_ARM7: @ 0x02380000
.incbin "baserom.nds", 0x30D000, 0x158
arm_func_start Entry_ARM7
.global ARM7AutoLoad
ARM7AutoLoad: @ 0x02380158
.incbin "baserom.nds", 0x30D158, 0x291C4
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: