summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-04-28 19:42:58 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-04-28 19:42:58 -0400
commitd5cd419222d10520d601f54fc5f8b8554af5116c (patch)
treea0667027155f414f7053463e3a3aeb88f9d685a4
parentda42b2541090efd6926cec7aa125238e92d26711 (diff)
Lay the groundwork for arm9 makelcf
-rw-r--r--arm7/arm7.lcf365
-rw-r--r--arm7/arm7.lsf1
-rw-r--r--arm9/Makefile4
-rw-r--r--arm9/arm9.lsf56
-rw-r--r--arm9/asm/FX_arm9.s1
-rw-r--r--arm9/asm/secure.s6
-rw-r--r--arm9/asm/unk_02046030.s2
-rw-r--r--arm9/global.inc2
-rw-r--r--global.inc2
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
diff --git a/global.inc b/global.inc
index 123bc193..6d2d19f9 100644
--- a/global.inc
+++ b/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 SVC_WaitByLoop
.extern OSi_ReferSymbol