mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-26 00:11:26 -05:00
Disassemble ARM7 ROM
This commit is contained in:
parent
09d866602e
commit
8773084868
147
asm/arm7_rom.s
147
asm/arm7_rom.s
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user