diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2020-04-26 18:17:04 -0400 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2020-04-26 18:17:04 -0400 |
commit | 3510d5acb20866b9f0ace302027e413abfb01b10 (patch) | |
tree | a8ce7bc0f0eacc43aa890117442732860dca19fa | |
parent | 399c07bb0deaedc9bdf38fdd92757fd619e85b63 (diff) |
Disasemble ROM7 ITCM
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | arm7/Makefile | 6 | ||||
-rw-r--r-- | arm7/asm/arm7_rom.s | 73 |
3 files changed, 79 insertions, 7 deletions
@@ -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 |