summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-04-26 18:17:04 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2020-04-26 18:17:04 -0400
commit3510d5acb20866b9f0ace302027e413abfb01b10 (patch)
treea8ce7bc0f0eacc43aa890117442732860dca19fa
parent399c07bb0deaedc9bdf38fdd92757fd619e85b63 (diff)
Disasemble ROM7 ITCM
-rw-r--r--.gitignore7
-rw-r--r--arm7/Makefile6
-rw-r--r--arm7/asm/arm7_rom.s73
3 files changed, 79 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index 43a15d11..518bec55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,8 +6,7 @@ tools/mwccarm/**
# Build folder
build/**
-arm7/build/**
-arm9/build/**
+arm*/build/**
# CLion folders
.idea/
@@ -23,3 +22,7 @@ cmake-build-debug/
*.4bpp
*.lz
*.gbapal
+
+# For asmdiff
+arm*/baserom.*
+*.dump
diff --git a/arm7/Makefile b/arm7/Makefile
index edf4b913..c2e69fe2 100644
--- a/arm7/Makefile
+++ b/arm7/Makefile
@@ -79,9 +79,9 @@ OBJDUMP := $(CROSS)objdump
OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o
-ASFLAGS = -proc arm5te -i ..
-CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include
-LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
+ASFLAGS = -proc arm4t -i ..
+CFLAGS = -O4,p -proc v4t -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include
+LDFLAGS = -map -nodead -w off -proc v4t -interworking -map -symtab -m _start
####################### Other Tools #########################
diff --git a/arm7/asm/arm7_rom.s b/arm7/asm/arm7_rom.s
index d22e0d18..b2070728 100644
--- a/arm7/asm/arm7_rom.s
+++ b/arm7/asm/arm7_rom.s
@@ -3,10 +3,79 @@
.include "global.inc"
.section .itcm
- .incbin "baserom.nds", 0x30D1B0, 0xDC
+ arm_func_start FUNC_027E0000
+FUNC_027E0000: ; 0x027E0000 load at 0x023801B0
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r6, [pc, #180] ; 0x270
+ ldr r3, [pc, #180] ; 0x274
+ ldr r0, [pc, #180] ; 0x278
+ b _027E00B0
+_027E0014:
+ mov r2, r3
+ ldr r5, [r3, #4]
+ add r1, r3, #8
+ add r3, r3, #12
+ ldr r4, [r1]
+ ldr r1, [r2]
+ cmp r1, #100663296 ; 0x6000000
+ bne _027E00AC
+ ldr r3, [pc, #144] ; 0x27c
+ ldr r0, [pc, #144] ; 0x280
+ str r3, [r0]
+ add r2, r5, r4
+ ldr r0, [pc, #136] ; 0x284
+ str r2, [r0]
+ ldr r1, [pc, #132] ; 0x288
+ add r0, r3, r2
+ cmp r1, r0
+ beq _027E0060
+ bl FUN_037FB1F0
+_027E0060:
+ ldr r0, [pc, #104] ; 0x280
+ ldr r3, [r0]
+ mov r2, #0
+ mov r1, r5, lsr #2
+ b _027E0080
+_027E0074:
+ ldr r0, [r6], #4
+ str r0, [r3], #4
+ add r2, r2, #1
+_027E0080:
+ cmp r2, r1
+ bcc _027E0074
+ mov r1, #0
+ mov r2, r4, lsr #2
+ mov r0, r1
+ b _027E00A0
+_027E0098:
+ str r0, [r3], #4
+ add r1, r1, #1
+_027E00A0:
+ cmp r1, r2
+ bcc _027E0098
+ b _027E00B8
+_027E00AC:
+ add r6, r6, r5
+_027E00B0:
+ cmp r3, r0
+ bne _027E0014
+_027E00B8:
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_027E00C0: .word 0x023801B0
+_027E00C4: .word 0x023A92F8
+_027E00C8: .word 0x023A931C
+_027E00CC: .word 0x027E00DC
+_027E00D0: .word 0x0380A3F4
+_027E00D4: .word 0x0380A3FC
+_027E00D8: .word 0x027FAFCC
.section .dtcm
- .incbin "baserom.nds", 0x30D28C, 0x90D4
+ .incbin "baserom.nds", 0x30D28C, 0x31F0
+
+ arm_func_start FUN_037FB1F0
+FUN_037FB1F0: ; 0x037FB1F0
+ .incbin "baserom.nds", 0x31047C, 0x5EE4
thumb_func_start SVC_SoftReset
SVC_SoftReset: ; 0x02389360