summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/Makefile13
-rw-r--r--arm9/arm9.lcf30
-rw-r--r--arm9/arm9.lsf492
-rw-r--r--arm9/arm9.sha12
-rw-r--r--arm9/asm/libcard.s (renamed from arm9/asm/CARD_arm9.s)0
-rw-r--r--arm9/asm/libcp.s (renamed from arm9/asm/CP_arm9.s)0
-rw-r--r--arm9/asm/libctrdg.s (renamed from arm9/asm/CTRDG_arm9.s)0
-rw-r--r--arm9/asm/libdgt.s (renamed from arm9/asm/DGT_arm9.s)0
-rw-r--r--arm9/asm/libfs.s (renamed from arm9/asm/FS_arm9.s)0
-rw-r--r--arm9/asm/libgx.s (renamed from arm9/asm/GX_arm9.s)0
-rw-r--r--arm9/asm/libmath.s (renamed from arm9/asm/MATH_arm9.s)0
-rw-r--r--arm9/asm/libmi.s (renamed from arm9/asm/MI_arm9.s)0
-rw-r--r--arm9/asm/libpm.s (renamed from arm9/asm/PM_arm9.s)0
-rw-r--r--arm9/asm/libpxi.s (renamed from arm9/asm/PXI_arm9.s)0
-rw-r--r--arm9/asm/librtc.s (renamed from arm9/asm/RTC_arm9.s)0
-rw-r--r--arm9/asm/libsnd.s (renamed from arm9/asm/SND_arm9.s)0
-rw-r--r--arm9/asm/libspi.s (renamed from arm9/asm/SPI_arm9.s)0
-rw-r--r--arm9/asm/libstd.s (renamed from arm9/asm/STD_arm9.s)0
-rw-r--r--arm9/asm/libwm.s (renamed from arm9/asm/WM_arm9.s)0
-rw-r--r--arm9/asm/secure.s7
-rw-r--r--arm9/asm/unk_02046030.s2
-rw-r--r--arm9/global.inc2
22 files changed, 522 insertions, 26 deletions
diff --git a/arm9/Makefile b/arm9/Makefile
index ac28bbcf..0343dd8c 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -39,9 +39,11 @@ BUILD_DIR := build
TARGET := arm9
-ROM := $(BUILD_DIR)/$(TARGET).bin
+ROM := $(BUILD_DIR)/$(TARGET).sbin
ELF := $(BUILD_DIR)/$(TARGET).elf
-LD_SCRIPT := arm9.lcf
+LD_SCRIPT := $(TARGET).lcf
+LD_SPEC := $(TARGET).lsf
+LD_TEMPLATE := ARM9-TS.lcf.template
# Directories containing source files
SRC_DIRS := src
@@ -73,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
AS := $(WINE) $(MWASMARM)
CC := $(WINE) $(MWCCARM)
@@ -95,7 +99,7 @@ JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE) -q
-TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm,$(wildcard $(TOOLS_DIR)/*))
+TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm $(TOOLS_DIR)/bin,$(wildcard $(TOOLS_DIR)/*))
TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%)
TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE))
@@ -145,7 +149,8 @@ $(BUILD_DIR)/%.o: %.c
$(BUILD_DIR)/%.o: %.s
$(AS) $(ASFLAGS) $< -o $@
-$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt macros.lcf.inc
+$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc
+ # $(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.lcf b/arm9/arm9.lcf
index ed588d71..1a5147a3 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -127,7 +127,7 @@ SECTIONS {
FX_vec.o (.text)
FX_atan.o (.text)
FX.o (.text)
- GX_arm9.o (.text)
+ libgx.o (.text)
OS_irqHandler.o (.text)
OS_irqTable.o (.text)
OS_interrupt.o (.text)
@@ -156,20 +156,20 @@ SECTIONS {
OS_vramExclusive.o (.text)
OS_entropy.o (.text)
OS_terminate_proc.o (.text)
- MI_arm9.o (.text)
- SND_arm9.o (.text)
- PXI_arm9.o (.text)
- FS_arm9.o (.text)
- DGT_arm9.o (.text)
- CP_arm9.o (.text)
- SPI_arm9.o (.text)
- PM_arm9.o (.text)
- RTC_arm9.o (.text)
- CARD_arm9.o (.text)
- WM_arm9.o (.text)
- CTRDG_arm9.o (.text)
- MATH_arm9.o (.text)
- STD_arm9.o (.text)
+ libmi.o (.text)
+ libsnd.o (.text)
+ libpxi.o (.text)
+ libfs.o (.text)
+ libdgt.o (.text)
+ libcp.o (.text)
+ libspi.o (.text)
+ libpm.o (.text)
+ librtc.o (.text)
+ libcard.o (.text)
+ libwm.o (.text)
+ libctrdg.o (.text)
+ libmath.o (.text)
+ libstd.o (.text)
/* C standard library */
libc.o (.text)
/* MWCC library */
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
new file mode 100644
index 00000000..3df64d7d
--- /dev/null
+++ b/arm9/arm9.lsf
@@ -0,0 +1,492 @@
+
+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
+ Library libfx.a
+ Library libgx.a
+ Library libos.a
+ Library libmi.a
+ Library libsnd.a
+ Library libpxi.a
+ Library libfs.a
+ Library libdgt.a
+ Library libcp.a
+ Library libspi.a
+ Library libpm.a
+ Library librtc.a
+ Library libcard.a
+ Library libwm.a
+ Library libctrdg.a
+ Library libmath.a
+ Library libstd.a
+ Library libc.a
+ Library libmwcc.a
+ Object rom2_2.o
+}
+
+Autoload ITCM
+{
+ Address 0x01FF8000
+ Object arm9_itcm.o
+}
+
+Autoload DTCM
+{
+ Address 0x027E0000
+ Library libos.a
+}
+
+Autoload EXT
+{
+ Address 0x02400000
+}
+
+Overlay overlay_00
+{
+ Address 0x021D74E0
+ Object FILE_10C400.o
+}
+Overlay overlay_01
+{
+ Address 0x021D74E0
+ Object FILE_10C600.o
+}
+Overlay overlay_02
+{
+ Address 0x021D7520
+ Object FILE_10C800.o
+}
+Overlay overlay_03
+{
+ Address 0x01FF8700
+ Object FILE_10CA00.o
+}
+Overlay overlay_04
+{
+ Address 0x021D74E0
+ Object FILE_10CC00.o
+}
+Overlay overlay_05
+{
+ Address 0x021D74E0
+ Object FILE_145400.o
+}
+Overlay overlay_06
+{
+ Address 0x022396A0
+ Object FILE_16B600.o
+}
+Overlay overlay_07
+{
+ Address 0x02211E60
+ Object FILE_184400.o
+}
+Overlay overlay_08
+{
+ Address 0x02211E60
+ Object FILE_187800.o
+}
+Overlay overlay_09
+{
+ Address 0x02211E60
+ Object FILE_1A3000.o
+}
+Overlay overlay_10
+{
+ Address 0x021D74E0
+ Object FILE_1AD200.o
+}
+Overlay overlay_11
+{
+ Address 0x0222D5C0
+ Object FILE_1AD400.o
+}
+Overlay overlay_12
+{
+ Address 0x0222D5C0
+ Object FILE_1DFE00.o
+}
+Overlay overlay_13
+{
+ Address 0x02211E60
+ Object FILE_1F9200.o
+}
+Overlay overlay_14
+{
+ Address 0x021D74E0
+ Object FILE_227E00.o
+}
+Overlay overlay_15
+{
+ Address 0x021D74E0
+ Object FILE_237400.o
+}
+Overlay overlay_16
+{
+ Address 0x021D74E0
+ Object FILE_23BC00.o
+}
+Overlay overlay_17
+{
+ Address 0x021D74E0
+ Object FILE_264200.o
+}
+Overlay overlay_18
+{
+ Address 0x022396A0
+ Object FILE_26B200.o
+}
+Overlay overlay_19
+{
+ Address 0x02252440
+ Object FILE_283000.o
+}
+Overlay overlay_20
+{
+ Address 0x02252440
+ Object FILE_283200.o
+}
+Overlay overlay_21
+{
+ Address 0x02254840
+ Object FILE_285600.o
+}
+Overlay overlay_22
+{
+ Address 0x02254840
+ Object FILE_285C00.o
+}
+Overlay overlay_23
+{
+ Address 0x02254840
+ Object FILE_286C00.o
+}
+Overlay overlay_24
+{
+ Address 0x02254840
+ Object FILE_288600.o
+}
+Overlay overlay_25
+{
+ Address 0x02254840
+ Object FILE_289000.o
+}
+Overlay overlay_26
+{
+ Address 0x02254840
+ Object FILE_289600.o
+}
+Overlay overlay_27
+{
+ Address 0x02254840
+ Object FILE_289E00.o
+}
+Overlay overlay_28
+{
+ Address 0x02254840
+ Object FILE_28AA00.o
+}
+Overlay overlay_29
+{
+ Address 0x02254840
+ Object FILE_28C200.o
+}
+Overlay overlay_30
+{
+ Address 0x02254840
+ Object FILE_28CC00.o
+}
+Overlay overlay_31
+{
+ Address 0x02254840
+ Object FILE_28D200.o
+}
+Overlay overlay_32
+{
+ Address 0x02254840
+ Object FILE_28D800.o
+}
+Overlay overlay_33
+{
+ Address 0x02254840
+ Object FILE_28DE00.o
+}
+Overlay overlay_34
+{
+ Address 0x02254840
+ Object FILE_28E200.o
+}
+Overlay overlay_35
+{
+ Address 0x02254840
+ Object FILE_28E800.o
+}
+Overlay overlay_36
+{
+ Address 0x02254840
+ Object FILE_28F200.o
+}
+Overlay overlay_37
+{
+ Address 0x02254840
+ Object FILE_290000.o
+}
+Overlay overlay_38
+{
+ Address 0x02254840
+ Object FILE_290600.o
+}
+Overlay overlay_39
+{
+ Address 0x02254840
+ Object FILE_291200.o
+}
+Overlay overlay_40
+{
+ Address 0x02254840
+ Object FILE_292000.o
+}
+Overlay overlay_41
+{
+ Address 0x02254840
+ Object FILE_292E00.o
+}
+Overlay overlay_42
+{
+ Address 0x02254840
+ Object FILE_294000.o
+}
+Overlay overlay_43
+{
+ Address 0x02254840
+ Object FILE_294A00.o
+}
+Overlay overlay_44
+{
+ Address 0x02254840
+ Object FILE_295400.o
+}
+Overlay overlay_45
+{
+ Address 0x02254840
+ Object FILE_295A00.o
+}
+Overlay overlay_46
+{
+ Address 0x02254840
+ Object FILE_296400.o
+}
+Overlay overlay_47
+{
+ Address 0x02254840
+ Object FILE_296800.o
+}
+Overlay overlay_48
+{
+ Address 0x02254840
+ Object FILE_297600.o
+}
+Overlay overlay_49
+{
+ Address 0x02254840
+ Object FILE_298000.o
+}
+Overlay overlay_50
+{
+ Address 0x02254840
+ Object FILE_298600.o
+}
+Overlay overlay_51
+{
+ Address 0x02254840
+ Object FILE_298A00.o
+}
+Overlay overlay_52
+{
+ Address 0x021D74E0
+ Object FILE_299A00.o
+}
+Overlay overlay_53
+{
+ Address 0x021D74E0
+ Object FILE_299E00.o
+}
+Overlay overlay_54
+{
+ Address 0x021D74E0
+ Object FILE_29C400.o
+}
+Overlay overlay_55
+{
+ Address 0x021D74E0
+ Object FILE_29E800.o
+}
+Overlay overlay_56
+{
+ Address 0x02211E60
+ Object FILE_2A1A00.o
+}
+Overlay overlay_57
+{
+ Address 0x021D74E0
+ Object FILE_2A6200.o
+}
+Overlay overlay_58
+{
+ Address 0x021D9A20
+ Object FILE_2A8800.o
+}
+Overlay overlay_59
+{
+ Address 0x021D74E0
+ Object FILE_2A9E00.o
+}
+Overlay overlay_60
+{
+ Address 0x021D74E0
+ Object FILE_2ACC00.o
+}
+Overlay overlay_61
+{
+ Address 0x021D74E0
+ Object FILE_2ADA00.o
+}
+Overlay overlay_62
+{
+ Address 0x0222D5C0
+ Object FILE_2AEC00.o
+}
+Overlay overlay_63
+{
+ Address 0x021D74E0
+ Object FILE_2B2A00.o
+}
+Overlay overlay_64
+{
+ Address 0x021D74E0
+ Object FILE_2B7600.o
+}
+Overlay overlay_65
+{
+ Address 0x021D74E0
+ Object FILE_2B9400.o
+}
+Overlay overlay_66
+{
+ Address 0x021D74E0
+ Object FILE_2BC400.o
+}
+Overlay overlay_67
+{
+ Address 0x021D74E0
+ Object FILE_2BEC00.o
+}
+Overlay overlay_68
+{
+ Address 0x021D74E0
+ Object FILE_2C1200.o
+}
+Overlay overlay_69
+{
+ Address 0x0222D5C0
+ Object FILE_2C2800.o
+}
+Overlay overlay_70
+{
+ Address 0x021D74E0
+ Object FILE_2C4C00.o
+}
+Overlay overlay_71
+{
+ Address 0x0222D5C0
+ Object FILE_2C5C00.o
+}
+Overlay overlay_72
+{
+ Address 0x021D74E0
+ Object FILE_2C9C00.o
+}
+Overlay overlay_73
+{
+ Address 0x021D74E0
+ Object FILE_2C9E00.o
+}
+Overlay overlay_74
+{
+ Address 0x021D74E0
+ Object FILE_2CEA00.o
+}
+Overlay overlay_75
+{
+ Address 0x021E6BA0
+ Object FILE_2CFE00.o
+}
+Overlay overlay_76
+{
+ Address 0x021D74E0
+ Object FILE_2D5C00.o
+}
+Overlay overlay_77
+{
+ Address 0x021D74E0
+ Object FILE_2D7C00.o
+}
+Overlay overlay_78
+{
+ Address 0x021D74E0
+ Object FILE_2D9800.o
+}
+Overlay overlay_79
+{
+ Address 0x02211E60
+ Object FILE_2D9E00.o
+}
+Overlay overlay_80
+{
+ Address 0x0222D5C0
+ Object FILE_2DF200.o
+}
+Overlay overlay_81
+{
+ Address 0x02237E40
+ Object FILE_2E9A00.o
+}
+Overlay overlay_82
+{
+ Address 0x0222D5C0
+ Object FILE_2EF000.o
+}
+Overlay overlay_83
+{
+ Address 0x0222D5C0
+ Object FILE_2F1600.o
+}
+Overlay overlay_84
+{
+ Address 0x021D74E0
+ Object FILE_2FFA00.o
+}
+Overlay overlay_85
+{
+ Address 0x021D74E0
+ Object FILE_303400.o
+}
+Overlay overlay_86
+{
+ Address 0x021D74E0
+ Object FILE_30C600.o
+}
diff --git a/arm9/arm9.sha1 b/arm9/arm9.sha1
index 3bc27b8a..dd825541 100644
--- a/arm9/arm9.sha1
+++ b/arm9/arm9.sha1
@@ -1 +1 @@
-f72681568e075a56beb25b584734a35d118468a1 build/arm9.bin
+f72681568e075a56beb25b584734a35d118468a1 build/arm9.sbin
diff --git a/arm9/asm/CARD_arm9.s b/arm9/asm/libcard.s
index 664e85f5..664e85f5 100644
--- a/arm9/asm/CARD_arm9.s
+++ b/arm9/asm/libcard.s
diff --git a/arm9/asm/CP_arm9.s b/arm9/asm/libcp.s
index c756e8e2..c756e8e2 100644
--- a/arm9/asm/CP_arm9.s
+++ b/arm9/asm/libcp.s
diff --git a/arm9/asm/CTRDG_arm9.s b/arm9/asm/libctrdg.s
index 301ea233..301ea233 100644
--- a/arm9/asm/CTRDG_arm9.s
+++ b/arm9/asm/libctrdg.s
diff --git a/arm9/asm/DGT_arm9.s b/arm9/asm/libdgt.s
index d5ef358d..d5ef358d 100644
--- a/arm9/asm/DGT_arm9.s
+++ b/arm9/asm/libdgt.s
diff --git a/arm9/asm/FS_arm9.s b/arm9/asm/libfs.s
index d9b791b8..d9b791b8 100644
--- a/arm9/asm/FS_arm9.s
+++ b/arm9/asm/libfs.s
diff --git a/arm9/asm/GX_arm9.s b/arm9/asm/libgx.s
index 59a548b2..59a548b2 100644
--- a/arm9/asm/GX_arm9.s
+++ b/arm9/asm/libgx.s
diff --git a/arm9/asm/MATH_arm9.s b/arm9/asm/libmath.s
index 02dcfbcf..02dcfbcf 100644
--- a/arm9/asm/MATH_arm9.s
+++ b/arm9/asm/libmath.s
diff --git a/arm9/asm/MI_arm9.s b/arm9/asm/libmi.s
index 82747b38..82747b38 100644
--- a/arm9/asm/MI_arm9.s
+++ b/arm9/asm/libmi.s
diff --git a/arm9/asm/PM_arm9.s b/arm9/asm/libpm.s
index 331c0fa9..331c0fa9 100644
--- a/arm9/asm/PM_arm9.s
+++ b/arm9/asm/libpm.s
diff --git a/arm9/asm/PXI_arm9.s b/arm9/asm/libpxi.s
index ab3af5de..ab3af5de 100644
--- a/arm9/asm/PXI_arm9.s
+++ b/arm9/asm/libpxi.s
diff --git a/arm9/asm/RTC_arm9.s b/arm9/asm/librtc.s
index 8116f8de..8116f8de 100644
--- a/arm9/asm/RTC_arm9.s
+++ b/arm9/asm/librtc.s
diff --git a/arm9/asm/SND_arm9.s b/arm9/asm/libsnd.s
index 99351712..99351712 100644
--- a/arm9/asm/SND_arm9.s
+++ b/arm9/asm/libsnd.s
diff --git a/arm9/asm/SPI_arm9.s b/arm9/asm/libspi.s
index 915bb22c..915bb22c 100644
--- a/arm9/asm/SPI_arm9.s
+++ b/arm9/asm/libspi.s
diff --git a/arm9/asm/STD_arm9.s b/arm9/asm/libstd.s
index 39946c46..39946c46 100644
--- a/arm9/asm/STD_arm9.s
+++ b/arm9/asm/libstd.s
diff --git a/arm9/asm/WM_arm9.s b/arm9/asm/libwm.s
index cc3e7998..cc3e7998 100644
--- a/arm9/asm/WM_arm9.s
+++ b/arm9/asm/libwm.s
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
index f9d8f159..632f43bc 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
@@ -20,7 +20,6 @@ FUN_020002FE: ; 0x020002FE
.incbin "baserom.nds", 0x4302, 0x2F0
-
non_word_aligned_thumb_func_start SVC_WaitByLoop
SVC_WaitByLoop:
swi 3
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 0090ff21..849f8212 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