Merge pull request #2 from PikalaxALT/main

Disassemble main.s
This commit is contained in:
Revo 2020-04-12 17:45:29 -04:00 committed by GitHub
commit 47f36847e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 165 additions and 41 deletions

View File

@ -10,7 +10,7 @@ _02000808:
ldrh r0, [ip, #6]
cmp r0, #0
bne _02000808
bl sub_02000A78
bl sub_2000A78
mov r0, #0x13
msr cpsr_c, r0
ldr r0, _02000918 @ =0x027E0000
@ -32,54 +32,170 @@ _02000808:
mov r0, #0
ldr r1, _02000918 @ =0x027E0000
mov r2, #0x4000
bl _0200093C
_02000870:
.byte 0x00, 0x00, 0xA0, 0xE3, 0xA4, 0x10, 0x9F, 0xE5, 0x01, 0x2B, 0xA0, 0xE3, 0x2E, 0x00, 0x00, 0xEB
.byte 0x02, 0x0C, 0xA0, 0xE3, 0x98, 0x10, 0x9F, 0xE5, 0x01, 0x2B, 0xA0, 0xE3, 0x2A, 0x00, 0x00, 0xEB
.byte 0x90, 0x10, 0x9F, 0xE5, 0x14, 0x00, 0x91, 0xE5, 0x2C, 0x00, 0x00, 0xEB, 0x56, 0x00, 0x00, 0xEB
.byte 0x80, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0x10, 0x20, 0x90, 0xE5, 0x01, 0x30, 0xA0, 0xE1
.byte 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x81, 0x34, 0xFC, 0xFF, 0xFF, 0x3A
.byte 0x1F, 0x10, 0xC3, 0xE3, 0x9A, 0x0F, 0x07, 0xEE, 0x35, 0x1F, 0x07, 0xEE, 0x3E, 0x1F, 0x07, 0xEE
.byte 0x20, 0x10, 0x81, 0xE2, 0x02, 0x00, 0x51, 0xE1, 0xF9, 0xFF, 0xFF, 0xBA, 0x48, 0x10, 0x9F, 0xE5
.byte 0x00, 0x00, 0x81, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0xFF, 0x1D, 0x81, 0xE2, 0x3C, 0x10, 0x81, 0xE2
.byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x33, 0xAF, 0x03, 0xEB, 0x98, 0x00, 0x00, 0xEB
.byte 0x63, 0xAF, 0x03, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x28, 0xE0, 0x9F, 0xE5, 0x04, 0x00, 0x1D, 0xE3
.byte 0x04, 0xD0, 0x4D, 0x12, 0x11, 0xFF, 0x2F, 0xE1
bl sub_200093C
mov r0, #0
ldr r1, _02000920 @ =0x05000000
mov r2, #1024
bl sub_200093C
mov r0, #512
ldr r1, _02000924 @ =0x07000000
mov r2, #1024
bl sub_200093C
ldr r1, _02000928 @ = 0x02000B68
ldr r0, [r1, #20]
bl sub_2000950
bl sub_20009FC
ldr r0, _02000928 @ =0x02000B68
ldr r1, [r0, #12]
ldr r2, [r0, #16]
mov r3, r1
mov r0, #0
_020008B4:
cmp r1, r2
strcc r0, [r1], #4
bcc _020008B4
bic r1, r3, #31
_020008C4:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r1, cr7, cr5, 1
mcr p15, #0, r1, cr7, cr14, 1
add r1, #32
cmp r1, r2
blt _020008C4
ldr r1, _0200092C @ =0x027FFF9C
str r0, [r1]
ldr r1, _02000918 @ =0x027E0000
add r1, r1, #16320
add r1, r1, #60
ldr r0, _02000930 @ =0x01FF8000
str r0, [r1]
bl sub_20EC5CC
bl sub_2000B64_dummy
bl sub_20EC694
ldr r1, _02000934 @ =0x02000C55
ldr lr, _02000938 @ =0xFFFF0000
tst sp, #4
subne sp, sp, #4
bx r1
_02000918: .4byte 0x027E0000
_0200091C: .4byte 0x00000400
_02000920:
.byte 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x68, 0x0B, 0x00, 0x02, 0x9C, 0xFF, 0x7F, 0x02
.byte 0x00, 0x80, 0xFF, 0x01, 0x55, 0x0C, 0x00, 0x02, 0x00, 0x00, 0xFF, 0xFF
_0200093C:
_02000920: .4byte 0x05000000
_02000924: .4byte 0x07000000
_02000928: .4byte 0x02000B68
_0200092C: .4byte 0x027FFF9C
_02000930: .4byte 0x01FF8000
_02000934: .4byte 0x02000C55 @ NdsMain
_02000938: .4byte 0xFFFF0000
arm_func_end Entry
arm_func_start sub_200093C
sub_200093C:
add ip, r1, r2
_02000940:
cmp r1, ip
stmlt r1!, {r0}
blt _02000940
bx lr
_02000950:
.byte 0x00, 0x00, 0x50, 0xE3, 0x27, 0x00, 0x00, 0x0A, 0xF0, 0x00, 0x2D, 0xE9, 0x06, 0x00, 0x10, 0xE9
.byte 0x02, 0x20, 0x80, 0xE0, 0x21, 0x3C, 0x40, 0xE0, 0xFF, 0x14, 0xC1, 0xE3, 0x01, 0x10, 0x40, 0xE0
.byte 0x02, 0x40, 0xA0, 0xE1, 0x01, 0x00, 0x53, 0xE1, 0x15, 0x00, 0x00, 0xDA, 0x01, 0x50, 0x73, 0xE5
.byte 0x08, 0x60, 0xA0, 0xE3, 0x01, 0x60, 0x56, 0xE2, 0xF9, 0xFF, 0xFF, 0xBA, 0x80, 0x00, 0x15, 0xE3
.byte 0x02, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x73, 0xE5, 0x01, 0x00, 0x62, 0xE5, 0x09, 0x00, 0x00, 0xEA
.byte 0x01, 0xC0, 0x73, 0xE5, 0x01, 0x70, 0x73, 0xE5, 0x0C, 0x74, 0x87, 0xE1, 0x0F, 0x7A, 0xC7, 0xE3
.byte 0x02, 0x70, 0x87, 0xE2, 0x20, 0xC0, 0x8C, 0xE2, 0x07, 0x00, 0xD2, 0xE7, 0x01, 0x00, 0x62, 0xE5
.byte 0x10, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0xAA, 0x01, 0x00, 0x53, 0xE1, 0x85, 0x50, 0xA0, 0xE1
.byte 0xEB, 0xFF, 0xFF, 0xCA, 0x00, 0x00, 0xA0, 0xE3, 0x1F, 0x30, 0xC1, 0xE3, 0x9A, 0x0F, 0x07, 0xEE
.byte 0x35, 0x3F, 0x07, 0xEE, 0x3E, 0x3F, 0x07, 0xEE, 0x20, 0x30, 0x83, 0xE2, 0x04, 0x00, 0x53, 0xE1
.byte 0xF9, 0xFF, 0xFF, 0xBA, 0xF0, 0x00, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x6C, 0x00, 0x9F, 0xE5
.byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x90, 0xE5, 0x08, 0x30, 0x90, 0xE5, 0x02, 0x00, 0x51, 0xE1
.byte 0x15, 0x00, 0x00, 0x0A, 0x04, 0x50, 0x91, 0xE4, 0x04, 0x70, 0x91, 0xE4, 0x07, 0x60, 0x85, 0xE0
.byte 0x05, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0x54, 0xE1, 0x04, 0x70, 0x93, 0x44, 0x04, 0x70, 0x84, 0x44
.byte 0xFB, 0xFF, 0xFF, 0x4A, 0x04, 0x70, 0x91, 0xE4, 0x07, 0x60, 0x84, 0xE0, 0x00, 0x70, 0xA0, 0xE3
.byte 0x06, 0x00, 0x54, 0xE1, 0x04, 0x70, 0x84, 0x34, 0xFC, 0xFF, 0xFF, 0x3A, 0x1F, 0x40, 0xC5, 0xE3
.byte 0x9A, 0x7F, 0x07, 0xEE, 0x35, 0x4F, 0x07, 0xEE, 0x3E, 0x4F, 0x07, 0xEE, 0x20, 0x40, 0x84, 0xE2
.byte 0x06, 0x00, 0x54, 0xE1, 0xF9, 0xFF, 0xFF, 0xBA, 0xE7, 0xFF, 0xFF, 0xEA, 0x00, 0x00, 0x00, 0xEA
.byte 0x68, 0x0B, 0x00, 0x02, 0x1E, 0xFF, 0x2F, 0xE1
arm_func_end sub_200093C
arm_func_start sub_02000A78
sub_02000A78: @ 0x02000A78
arm_func_start sub_2000950
sub_2000950:
cmp r0, #0
beq _020009F8
push {r4, r5, r6, r7}
ldmdb r0, {r1, r2}
add r2, r0, r2
sub r3, r0, r1, lsr #24
bic r1, r1, #-16777216
sub r1, r0, r1
mov r4, r2
_02000974:
cmp r3, r1
ble _020009D4
ldrb r5, [r3, #-1]!
mov r6, #8
_02000984:
subs r6, r6, #1
blt _02000974
tst r5, #128
bne _020009A0
ldrb r0, [r3, #-1]!
strb r0, [r2, #-1]!
b _020009C8
_020009A0:
ldrb ip, [r3, #-1]!
ldrb r7, [r3, #-1]!
orr r7, r7, ip, lsl #8
bic r7, r7, #61440
add r7, r7, #2
add ip, ip, #32
_020009B8:
ldrb r0, [r2, r7]
strb r0, [r2, #-1]!
subs ip, ip, #16
bge _020009B8
_020009C8:
cmp r3, r1
lsl r5, r5, #1
bgt _02000984
_020009D4:
mov r0, #0
bic r3, r1, #31
_020009DC:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r3, cr7, cr5, 1
mcr p15, #0, r3, cr7, cr14, 1
add r3, r3, #32
cmp r3, r4
blt _020009DC
pop {r4, r5, r6, r7}
_020009F8:
bx lr
arm_func_end sub_2000950
arm_func_start sub_20009FC
sub_20009FC:
ldr r0, _02000A70 @ =0x02000B68
ldr r1, [r0]
ldr r2, [r0, #4]
ldr r3, [r0, #8]
_02000A0C:
cmp r1, r2
beq _02000A6C
ldr r5, [r1], #4
ldr r7, [r1], #4
add r6, r5, r7
mov r4, r5
_02000A24:
cmp r4, r6
ldrmi r7, [r3], #4
strmi r7, [r4], #4
bmi _02000A24
ldr r7, [r1], #4
add r6, r4, r7
mov r7, #0
_02000A40:
cmp r4, r6
strcc r7, [r4], #4
bcc _02000A40
bic r4, r5, #31
_02000A50:
mcr p15, #0, r7, cr7, cr10, 4
mcr p15, #0, r4, cr7, cr5, 1
mcr p15, #0, r4, cr7, cr14, 1
add r4, r4, #32
cmp r4, r6
blt _02000A50
b _02000A0C
_02000A6C:
b _2000A74
_02000A70: .4byte 0x02000B68
_2000A74:
bx lr
arm_func_end sub_20009FC
arm_func_start sub_2000A78
sub_2000A78: @ 0x02000A78
mrc p15, #0, r0, c1, c0, #0
ldr r1, _02000B30 @ =0x000F9005
bic r0, r0, r1

View File

@ -2,4 +2,12 @@
.section .text
.incbin "baserom.nds", 0x4E0C, 0x106918
.incbin "baserom.nds", 0x4E0C, 0xEB7C0
.global sub_20EC5CC
sub_20EC5CC:
.incbin "baserom.nds", 0xF05CC, 0xC8
.global sub_20EC694
sub_20EC694:
.incbin "baserom.nds", 0xF0694, 0x1b090