diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-04-28 19:42:58 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-04-28 19:42:58 -0400 |
commit | d5cd419222d10520d601f54fc5f8b8554af5116c (patch) | |
tree | a0667027155f414f7053463e3a3aeb88f9d685a4 | |
parent | da42b2541090efd6926cec7aa125238e92d26711 (diff) |
Lay the groundwork for arm9 makelcf
-rw-r--r-- | arm7/arm7.lcf | 365 | ||||
-rw-r--r-- | arm7/arm7.lsf | 1 | ||||
-rw-r--r-- | arm9/Makefile | 4 | ||||
-rw-r--r-- | arm9/arm9.lsf | 56 | ||||
-rw-r--r-- | arm9/asm/FX_arm9.s | 1 | ||||
-rw-r--r-- | arm9/asm/secure.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_02046030.s | 2 | ||||
-rw-r--r-- | arm9/global.inc | 2 | ||||
-rw-r--r-- | global.inc | 2 |
9 files changed, 66 insertions, 373 deletions
diff --git a/arm7/arm7.lcf b/arm7/arm7.lcf deleted file mode 100644 index b85da8cb..00000000 --- a/arm7/arm7.lcf +++ /dev/null @@ -1,365 +0,0 @@ -MEMORY -{ - arm7 (RWX) : ORIGIN = 0x02380000, LENGTH = 0x0 > arm7.sbin - MAIN (RWX) : ORIGIN = 0x027e0000, LENGTH = 0x0 >> arm7.sbin - WRAM (RWX) : ORIGIN = 0x037f8000, LENGTH = 0x0 >> arm7.sbin - EXT (RWX) : ORIGIN = 0x06000000, LENGTH = 0x0 >> arm7.sbin - binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> arm7.sbin - - arm7_defs (RW) : ORIGIN = AFTER(arm7), LENGTH = 0x0 > arm7_defs.sbin - arm7_table (RW) : ORIGIN = AFTER(arm7), LENGTH = 0x0 > arm7_table.sbin - arena.MAIN (RW) : ORIGIN = AFTER(arm7), LENGTH = 0x0 - check.WORKRAM (RWX) : ORIGIN = 0x037f8000, LENGTH = 0x18000 > workram.check -} - -SECTIONS -{ -#include "undefined_syms.txt" - .arm7: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_STATIC_START =.; - SDK_STATIC_TEXT_START =.; - - OBJECT(_start,*) - crt0.o (.text) - crt0.o (.text) - . = ALIGN(4); - * (.exception) - . = ALIGN(4); - SDK_STATIC_ETABLE_START =.; - EXCEPTION - SDK_STATIC_ETABLE_END =.; - . = ALIGN(4); - crt0.o (.init) - . = ALIGN(4); - crt0.o (.rodata) - . = ALIGN(4); - - SDK_STATIC_SINIT_START =.; - - crt0.o (.ctor) - WRITEW 0; - - SDK_STATIC_SINIT_END =.; - - - . = ALIGN(4); - SDK_STATIC_TEXT_END =.; - - - - - SDK_STATIC_DATA_START =.; - - . = ALIGN(4); - crt0.o (.sdata) - . = ALIGN(4); - crt0.o (.data) - . = ALIGN(4); - - . = ALIGN(4); - SDK_STATIC_DATA_END =.; - SDK_STATIC_END =.; - - SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START; - SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START; - SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START; - __sinit__ = SDK_STATIC_SINIT_START; - __exception_table_start__ = SDK_STATIC_ETABLE_START; - __exception_table_end__ = SDK_STATIC_ETABLE_END; - } > arm7 - - .arm7.bss: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_STATIC_BSS_START =.; - - crt0.o (.sbss) - . = ALIGN(4); - crt0.o (.bss) - . = ALIGN(4); - - . = ALIGN(4); - SDK_STATIC_BSS_END = .; - SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START; - - } >> arm7 - - - - SDK_AUTOLOAD.MAIN.START = 0x027e0000; - SDK_AUTOLOAD.MAIN.END = SDK_AUTOLOAD.MAIN.START; - SDK_AUTOLOAD.MAIN.BSS_END = SDK_AUTOLOAD.MAIN.START; - SDK_AUTOLOAD.MAIN.SIZE = 0; - SDK_AUTOLOAD.MAIN.BSS_SIZE = 0; - SDK_AUTOLOAD.WRAM.START = 0x037f8000; - SDK_AUTOLOAD.WRAM.END = SDK_AUTOLOAD.WRAM.START; - SDK_AUTOLOAD.WRAM.BSS_END = SDK_AUTOLOAD.WRAM.START; - SDK_AUTOLOAD.WRAM.SIZE = 0; - SDK_AUTOLOAD.WRAM.BSS_SIZE = 0; - SDK_AUTOLOAD_START = SDK_STATIC_END; - SDK_AUTOLOAD_SIZE = 0; - SDK_AUTOLOAD_NUMBER = 3; - - .MAIN: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD_MAIN_ID =0; - SDK_AUTOLOAD.MAIN.ID =0; - SDK_AUTOLOAD.MAIN.START =.; - SDK_AUTOLOAD.MAIN.TEXT_START =.; - - itcm.o (.text) - . = ALIGN(4); - itcm.o (.rodata) - . = ALIGN(4); - - SDK_AUTOLOAD.MAIN.TEXT_END =.; - - - - - SDK_AUTOLOAD.MAIN.DATA_START =.; - - . = ALIGN(4); - itcm.o (.sdata) - . = ALIGN(4); - itcm.o (.data) - . = ALIGN(4); - - SDK_AUTOLOAD.MAIN.DATA_END =.; - SDK_AUTOLOAD.MAIN.END =.; - - SDK_AUTOLOAD.MAIN.TEXT_SIZE = SDK_AUTOLOAD.MAIN.TEXT_END - SDK_AUTOLOAD.MAIN.TEXT_START; - SDK_AUTOLOAD.MAIN.DATA_SIZE = SDK_AUTOLOAD.MAIN.DATA_END - SDK_AUTOLOAD.MAIN.DATA_START; - SDK_AUTOLOAD.MAIN.SIZE = SDK_AUTOLOAD.MAIN.END - SDK_AUTOLOAD.MAIN.START; - SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.MAIN.SIZE; - - } > MAIN - - .MAIN.bss: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD.MAIN.BSS_START = .; - - itcm.o (.sbss) - . = ALIGN(4); - itcm.o (.bss) - . = ALIGN(4); - - . = ALIGN(4); - SDK_AUTOLOAD.MAIN.BSS_END = .; - - SDK_AUTOLOAD.MAIN.BSS_SIZE = SDK_AUTOLOAD.MAIN.BSS_END - SDK_AUTOLOAD.MAIN.BSS_START; - - } >> MAIN - - .WRAM: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD_WRAM_ID =1; - SDK_AUTOLOAD.WRAM.ID =1; - SDK_AUTOLOAD.WRAM.START =.; - SDK_AUTOLOAD.WRAM.TEXT_START =.; - - dtcm.o (.text) - libsyscall.o (.text) - dtcm2.o (.text) - . = ALIGN(4); - . = ALIGN(4); - - SDK_AUTOLOAD.WRAM.TEXT_END =.; - - - - - SDK_AUTOLOAD.WRAM.DATA_START =.; - - . = ALIGN(4); - . = ALIGN(4); - dtcm_data.o (.data) - . = ALIGN(4); - - SDK_AUTOLOAD.WRAM.DATA_END =.; - SDK_AUTOLOAD.WRAM.END =.; - - SDK_AUTOLOAD.WRAM.TEXT_SIZE = SDK_AUTOLOAD.WRAM.TEXT_END - SDK_AUTOLOAD.WRAM.TEXT_START; - SDK_AUTOLOAD.WRAM.DATA_SIZE = SDK_AUTOLOAD.WRAM.DATA_END - SDK_AUTOLOAD.WRAM.DATA_START; - SDK_AUTOLOAD.WRAM.SIZE = SDK_AUTOLOAD.WRAM.END - SDK_AUTOLOAD.WRAM.START; - SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.WRAM.SIZE; - - } > WRAM - - .WRAM.bss: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD.WRAM.BSS_START = .; - - . = ALIGN(4); - . = ALIGN(4); - - . = ALIGN(4); - SDK_AUTOLOAD.WRAM.BSS_END = .; - - SDK_AUTOLOAD.WRAM.BSS_SIZE = SDK_AUTOLOAD.WRAM.BSS_END - SDK_AUTOLOAD.WRAM.BSS_START; - - } >> WRAM - - .EXT: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD_EXT_ID =2; - SDK_AUTOLOAD.EXT.ID =2; - SDK_AUTOLOAD.EXT.START =.; - SDK_AUTOLOAD.EXT.TEXT_START =.; - - ext.o (.text) - . = ALIGN(4); - . = ALIGN(4); - - SDK_AUTOLOAD.EXT.TEXT_END =.; - - - - - SDK_AUTOLOAD.EXT.DATA_START =.; - - . = ALIGN(4); - . = ALIGN(4); - . = ALIGN(4); - - SDK_AUTOLOAD.EXT.DATA_END =.; - SDK_AUTOLOAD.EXT.END =.; - - SDK_AUTOLOAD.EXT.TEXT_SIZE = SDK_AUTOLOAD.EXT.TEXT_END - SDK_AUTOLOAD.EXT.TEXT_START; - SDK_AUTOLOAD.EXT.DATA_SIZE = SDK_AUTOLOAD.EXT.DATA_END - SDK_AUTOLOAD.EXT.DATA_START; - SDK_AUTOLOAD.EXT.SIZE = SDK_AUTOLOAD.EXT.END - SDK_AUTOLOAD.EXT.START; - SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.EXT.SIZE; - - } > EXT - - .EXT.bss: - { - ALIGNALL(4); . = ALIGN(4); - - - - - SDK_AUTOLOAD.EXT.BSS_START = .; - - . = ALIGN(4); - . = ALIGN(4); - - . = ALIGN(4); - SDK_AUTOLOAD.EXT.BSS_END = .; - - SDK_AUTOLOAD.EXT.BSS_SIZE = SDK_AUTOLOAD.EXT.BSS_END - SDK_AUTOLOAD.EXT.BSS_START; - - } >> EXT - - - SDK_AUTOLOAD_MAIN_START = SDK_AUTOLOAD.MAIN.START; - SDK_AUTOLOAD_MAIN_END = SDK_AUTOLOAD.MAIN.END; - SDK_AUTOLOAD_MAIN_BSS_END = SDK_AUTOLOAD.MAIN.BSS_END; - SDK_AUTOLOAD_MAIN_SIZE = SDK_AUTOLOAD.MAIN.SIZE; - SDK_AUTOLOAD_MAIN_BSS_SIZE = SDK_AUTOLOAD.MAIN.BSS_SIZE; - SDK_AUTOLOAD_WRAM_START = SDK_AUTOLOAD.WRAM.START; - SDK_AUTOLOAD_WRAM_END = SDK_AUTOLOAD.WRAM.END; - SDK_AUTOLOAD_WRAM_BSS_END = SDK_AUTOLOAD.WRAM.BSS_END; - SDK_AUTOLOAD_WRAM_SIZE = SDK_AUTOLOAD.WRAM.SIZE; - SDK_AUTOLOAD_WRAM_BSS_SIZE = SDK_AUTOLOAD.WRAM.BSS_SIZE; - - - .binary.AUTOLOAD_INFO: - { - WRITEW ADDR(.MAIN); - WRITEW SDK_AUTOLOAD.MAIN.SIZE; - WRITEW SDK_AUTOLOAD.MAIN.BSS_SIZE; - WRITEW ADDR(.WRAM); - WRITEW SDK_AUTOLOAD.WRAM.SIZE; - WRITEW SDK_AUTOLOAD.WRAM.BSS_SIZE; - WRITEW ADDR(.EXT); - WRITEW SDK_AUTOLOAD.EXT.SIZE; - WRITEW SDK_AUTOLOAD.EXT.BSS_SIZE; - } > binary.AUTOLOAD_INFO - - SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE; - SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO); - SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO); - - - SDK_OVERLAY_NUMBER = 0; - - - - - .arena.MAIN: - { - . = ALIGN(4); - SDK_SECTION_ARENA_START =.; - } > arena.MAIN - - - - .arm7_defs: - { - - WRITEW ADDR(.arm7); - WRITEW _start; - WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; - WRITEW _start_AutoloadDoneCallback; - - - - } > arm7_defs - - - - .arm7_table: - { - - } > arm7_table - - - - SDK_WRAM_ARENA_LO = SDK_AUTOLOAD.WRAM.BSS_END; - SDK_SUBPRIV_ARENA_LO = SDK_AUTOLOAD.MAIN.BSS_END; - SDK_IRQ_STACKSIZE = 512; - SDK_SYS_STACKSIZE = 1024; - - - SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1; - .check.WORKRAM: - { - . = . + SDK_AUTOLOAD.WRAM.BSS_END - 0x037f8000 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN; - } > check.WORKRAM -} diff --git a/arm7/arm7.lsf b/arm7/arm7.lsf index 8bc0f86d..9ab7cc9a 100644 --- a/arm7/arm7.lsf +++ b/arm7/arm7.lsf @@ -2,7 +2,6 @@ Static arm7 { Address 0x02380000 - Object crt0.o StackSize 1024 512 } diff --git a/arm9/Makefile b/arm9/Makefile index 9f61364b..0cff252a 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -75,6 +75,8 @@ MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe # only dependency should be MWCCARM. MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe +MAKELSF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe +MAKELSF_FLAGS := -DCONST_34=0x34 -DCONST_3F=0x3F $(foreach module,$(wildcard files/OVERLAY_*.bin.__AT_*),-M${module}) AS := $(WINE) $(MWASMARM) CC := $(WINE) $(MWCCARM) @@ -148,7 +150,7 @@ $(BUILD_DIR)/%.o: %.s $(AS) $(ASFLAGS) $< -o $@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc - # $(MAKELSF) $< $(LD_TEMPLATE) | $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ + # $(MAKELSF) $(MAKELSF_FLAGS) $< $(LD_TEMPLATE) $@ $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BIN_FILES) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index e69de29b..da885c0e 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -0,0 +1,56 @@ + +Static arm9 +{ + Address 0x02000000 + Object main.o + Object FUN_02000DF4.o + Object unk_02000E0C.o + Object rom2.o + Object string_util.o + Object unk_020023C0.o + Object filesystem.o + Object unk_02006864.o + Object script.o + Object unk_02038C78.o + Object scrcmd.o + Object unk_02046030.o + Object unk_0208AC14.o + Object unk_020AF030.o + Object FX_arm9.o + Object GX_arm9.o + Object OS_arm9.o (.text) + Object MI_arm9.o + Object SND_arm9.o + Object PXI_arm9.o + Object FS_arm9.o + Object DGT_arm9.o + Object CP_arm9.o + Object SPI_arm9.o + Object PM_arm9.o + Object RTC_arm9.o + Object CARD_arm9.o + Object WM_arm9.o + Object CTRDG_arm9.o + Object MATH_arm9.o + Object STD_arm9.o + Object libc.o + Object libmwcc.o + Object rom2_2.o +} + +Autoload ITCM +{ + Address 0x01FF8000 + Object arm9_itcm.o (.itcm) +} + +Autoload DTCM +{ + Address 0x027E0000 + Object OS_arm9.o (.dtcm) +} + +Autoload EXT +{ + Address 0x023E0000 +} diff --git a/arm9/asm/FX_arm9.s b/arm9/asm/FX_arm9.s index 68dec58c..61f797b2 100644 --- a/arm9/asm/FX_arm9.s +++ b/arm9/asm/FX_arm9.s @@ -1989,3 +1989,4 @@ _020C5970: .word 0x00000FFF arm_func_start FX_Init FX_Init: ; 0x020C5974 bx lr + diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s index f9d8f159..88ced857 100644 --- a/arm9/asm/secure.s +++ b/arm9/asm/secure.s @@ -5,11 +5,11 @@ .incbin "baserom.nds", 0x4000, 0x19E - non_word_aligned_thumb_func_start FUN_0200019E -FUN_0200019E: ; 0x0200019E + non_word_aligned_thumb_func_start SVC_Sqrt +SVC_Sqrt: ; 0x0200019E swi 13 bx lr - thumb_func_end FUN_0200019E + thumb_func_end SVC_Sqrt .incbin "baserom.nds", 0x41A2, 0x15C diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s index 30b8ee4c..b70ef94e 100644 --- a/arm9/asm/unk_02046030.s +++ b/arm9/asm/unk_02046030.s @@ -107533,7 +107533,7 @@ FUN_020799F4: ; 0x020799F4 mul r0, r1
add r0, r2, r0
lsl r0, r0, #0x4
- bl FUN_0200019E
+ bl SVC_Sqrt
lsr r0, r0, #0x2
pop {r3, pc}
.balign 4
diff --git a/arm9/global.inc b/arm9/global.inc index 9791c8f8..a3c04f6c 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -50,7 +50,7 @@ .extern FS_UnloadOverlay
.extern FS_WaitAsync
.extern FUNRTC_Init
-.extern FUN_0200019E
+.extern SVC_Sqrt
.extern FUN_020002FE
.extern FUN_02000DF4
.extern FUN_02000E7C
@@ -50,7 +50,7 @@ .extern FS_UnloadOverlay
.extern FS_WaitAsync
.extern FUNRTC_Init
-.extern FUN_0200019E
+.extern SVC_Sqrt
.extern FUN_020002FE
.extern SVC_WaitByLoop
.extern OSi_ReferSymbol
|